AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

百度智能小程序正式开源,开发方案详解

  • 2018-12-14
  • 本文字数:2505 字

    阅读完需:约 8 分钟

百度智能小程序正式开源,开发方案详解

13 日下午,2018 百度·智能小程序学院首场线下公开课在北京举行,百度官方数据显示,自今年 7 月份百度 AI 开发者大会以来,百度智能小程序月活已经过了 1.5 亿,值得一提的是,智能小程序已经在GitHub上开源,百度也即将成立开源联盟,促进小程序生态的发展和建设。会上,百度资深前端工程师张自萌还详解了智能小程序的开发解决方案,以下是对其演讲内容的整理报道。

智能小程序开发流程


首先是智能小程序的接入问题,但这要分为两种情况,一是没有小程序的开发经验,从零开始的开发者,另一种是有过微信小程序开发经验的开发者。


对于没有开发过小程序的开发者,百度给出的解决方案是使用原生或使用应用层框架的方式进行开发。

原生开发


原生开发指的是依据百度智能小程序的规范进行开发,它被分成了视图层和逻辑层,在视图层上,CSS 是标准的 CSS,与 H5 一样有一个标记语言,标记是 SWAN 文件,它提供了自己的容器,当然,开发者也可以自定义开发一些组件。


在逻辑层上,智能小程序定义了一套自己的生命周期,主要是在页面那一层,与 web 不同的是,在做页面切换的时候,调用了页面的生命周期,除了生命周期之外,还有数据管理、数据驱动的方式,通过数据驱动,模板的设计成本会变得非常低。

应用层框架接入

现如今,跨平台开发成为开发者关注的焦点,当然百度智能小程序也自然不会忽视开发者的需求。当开发者希望能够以一套代码能够同时运行在百度智能小程序、微信小程序或 Web 端上时,跨平台解决方案就派上了用场。


之前我们曾在 7 月份报道过智能小程序多端运行的原理,即智能小程序和 Web 是相似的,它使用的技术都是 Web 技术,可以在浏览器上运行,由于智能小程序有逻辑层和视图层,逻辑层最核心的一点是 JS 引擎,不管客户端还是浏览器,都有 JS 引擎,在不同的平台使用不同的渲染技术渲染,这就保证大家写的代码一次开发在不同平台得到运行。


但在真正使用时,你需要使用框架层接入的方式来实现,通过源码框架层开发,编译之后跑在各自的平台上,在这方面,业界出名的框架有 Taro、Mpvue、WePY,它们各自的团队都仍在积极的维护和迭代中,在这方面,百度表示,它们愿意拥抱第三方合作共建小程序框架的开发。


下面重点讲一下三个框架的特点。

WePY

WePY 是一个 MVVM 框架,它跟 Vue 语法非常类似,是一个类 Vue 的框架,开发的时候像 Vue,但是底层不是 Vue;它支持组件的开发,包括 Vue 所有的循环、嵌套、组件 Props 传值、组件通信、自定义事件、第三方组件。


WePY 默认支持的是 ESNext 标准,包括 setData 性能优化(脏检测)、事件传参、编译器(Babel、Ts、Less、Sass)、Mixin,同时,它还支持 NPM 资源,能够处理 NPM 资源的依赖。

Mpvue

Mpvue 和 WePY 非常类似,它使用 Vue.js runtime 支持了小程序,实现小程序和 H5 的组件复用,它可以使用 Vue 的数据管理,包括 Web 的支持等。

Taro

有了 Vue,当然不能缺少 React,比较出名应该就是 Taro 了,Taro 遵循的是 React 语法规范,由于 React 受众广,它能降低小程序开发的学习成本。


Taro 在上面做了一些 JSX 处理,采用 JSX 作为模板,相比字符串模板,更自由、自然、更具表现力,不依赖字符串模板语法糖,也能完成复杂处理。


Taro 还有跨端解决方案,可以给 Taro 后期多端开发带来很大的便利。


下图中,左边是基于 Taro 的京东好物街智能小程序,右边是基于 Mpvue 的官方小程序实例,大家可以打开百度 APP 扫码体验一下。



最后,这是原生开发和使用应用层框架开发的总结和比较,它们没有优劣之分,只有适不适用,开发者可以根据实际情况自行选用。


如果你开发过微信小程序

相信有不少开发者开发过微信小程序了,那么,我们如何从微信小程序一键转到百度智能小程序上呢?大家可以看看下面的视频:


左边是微信小程序,是跑在微信开发者工具里的,转换之后先输入微信小程序的原代码,生成目录,然后开始静态编译,静态转换,在百度开发者工具里打开产出目录,没动一行代码,迁移后,效果一模一样,但是有一些登录支付的能力需要自己处理一下。


也就是说,开发者如果已有微信小程序,可以采用原生开发,使用迁移工具即可。百度的迁移工具有四大特点:


  • 代码搬迁。相同代码,会原样搬迁,保持代码行数、列数一致,方便开发者直接二次开发。

  • 转换 log。做一系列的代码转换,最终都会输出 log 给开发者,辅助开发者进行二次开发。

  • 视图转换。Wx 指令转换成 s-指令,转换非标准标签语法,import 和 include 引用资源的转换。

  • 语法转换。逻辑表达式中的 API 转换,一元运算符中 API 转换,删除不支持的 API。


##开发工具链


选择解决方案之后,我们就需要开发小程序了,开发的时候就要用到开发工具链,这是小程序开发里必不可少的流程,在这方面,百度智能小程序提供了开发者工具,里面囊括了编辑器、模拟器、调试器、引擎调试、编译预览等。


由于小程序是用在手机上,但在手机上开发调试体验不好,为了方便大家开发,智能小程序支持在 PC 端开发,所以在 PC 上有一个模拟器,仿真效果和手机端的运行效果几乎没有什么区别,而且百度智能小程序支持多平台切换,可以切换成安卓、苹果,而且还可以模拟 wifi2G、3G 和无网络等不同的网络环境。


百度智能小程序的编辑器是根据小程序的代码深度定制的,主要是代码提示,如果你在使用这个编辑器开发过程中使用一些 API,它都帮你自动补全,它还能支持 css,js,swan 等多文件格式的高亮。


开发之后离不开调试,调试作为一个 web 开发者最常用的功能,智能小程序自然也不会少,主要包括:


  • Swan 节点样式调试

  • Console 输入输出调试

  • Sources 代码断点调试

  • Network 网络抓包调试

  • Storages 编辑展现调试

  • AppData 编辑展现调试

  • Sensors 罗盘,重力感应调试


还有远程调试,在 PC 上开发好之后先用远程调试,因为是跑在真机上的,PC 上有调试面板,真机上做运行,和真机运行的效果一样。开发者工具里模拟开发没有问题之后再去远程调试里调试,调试之后再使用预览,再看一遍,没有问题就可以上传了。


百度智能小程序还有编译工具,它支持 CMD 模式的编译、AMD 模式的编译、自定义编译条件、热编译和增量编译等。


更多有关百度智能小程序的内容可以查看以下文章:


百度新发布的智能小程序是什么?


苏宁:我们开发百度小程序遇到的那些“坑”


2018-12-14 09:526049
用户头像

发布了 83 篇内容, 共 49.8 次阅读, 收获喜欢 187 次。

关注

评论 6 条评论

发布
用户头像
开发了一个 bug挺多的
2018-12-26 21:28
回复
用户头像
开发了一个 bug挺多的
2018-12-26 21:28
回复
用户头像
东西好不好最终时间会去证明。各位看官心中也有点逼数,但就凭这粗制滥造的PPT,能做好见鬼了!
2018-12-17 12:41
回复
用户头像
希望别发生什么抄袭事件!
2018-12-15 09:08
回复
用户头像
又要安装一个开发者工具了。。。
2018-12-14 20:17
回复
没有更多了
发现更多内容

性能测试|基于JMeter 完成典型电商场景(首页浏览)的性能压测

霍格沃兹测试开发学社

性能测试 JMeter使用教程

构建以数据为中心的全面预算管理系统

智达方通

数据驱动 业财融合 全面预算管理系统

模块六:拆分电商服务为微服务

家有两宝

架构实战营

PoseiSwap 治理通证POSE登录PancakeSwap,开盘涨幅超2100%

BlockChain先知

网络信息安全尤为重要,华为云如何为企业构建云上云下一体化安全方案?

平平无奇爱好科技

爽游做得好,游戏部署方案必不可少,华为云游戏云端部署方案愈发吃香了

平平无奇爱好科技

性能测试|Jmeter压测脚本录制与编写

霍格沃兹测试开发学社

#性能测试 JMeter使用教程

华为云CodeArts Check:带你掌握代码检查技巧,优化代码质量!

华为云PaaS服务小智

云计算 华为云 代码检查 代码检查、

k8s部署springboot

tiandizhiguai

数字化转型与架构-规划篇|谁是需求调研的对象?

数字随行

数字化转型

瓴羊QuickBI,让企业更加清晰地管理和呈现数据

夜雨微澜

代码随想录训练营 Day07 - 哈希表(下)

jjn0703

MQTT 服务新趋势:了解 MQTT 多租户架构

EMQ映云科技

物联网 mqtt 多租户

FastGithub:github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。

汀丶人工智能

GitHub git加速

构建云上和云下统一的安全方案,华为云致力为企业降本增效

平平无奇爱好科技

2023容器网络趋势:CNI网络插件逐渐普及,Kube-OVN受欢迎度持续攀升

York

Kubernetes 云原生 容器网络 cni 容器网络方案

PoseiSwap 治理通证POSE登录PancakeSwap,开盘涨幅超2100%

股市老人

全议程公布丨涌现中重塑,PingCAP 用户峰会 2023 邀你共同引领创新力量!

PingCAP

MySQL 数据库 TiDB pingCAP 平凯星辰

华为云游戏云端部署方案:如何为游戏厂商降本增效

平平无奇爱好科技

百度智能云入选北京市“算力伙伴”、“模型伙伴”!

彭飞

瓴羊QuickBI数据门户帮助企业高效管理和展示数据,使其更加明确易懂

对不起该用户已成仙‖

云上办公时代,华为云桌面表现如何?

平平无奇爱好科技

性能测试|搭建性能监控平台

霍格沃兹测试开发学社

#性能测试

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库 zillizcloud

性能测试|JMeter压测结果分析

霍格沃兹测试开发学社

#性能测试 JMeter使用教程

探究C语言中的二叉树

芯动大师

晴数智慧数据集名列北京市首批“人工智能大模型高质量数据集”,入选产业创新伙伴计划

极客天地

华为云云上云下一体化安全,如何为企业打造统一、高效的安全管理平台

平平无奇爱好科技

百度智能小程序正式开源,开发方案详解_大前端_覃云_InfoQ精选文章