目标:
了解小程序技术,认识小程序的基本开发方式,为小程序技术学习打下良好的
基础
- 小程序与web区别
- 小程序开发历程
- 小程序开发方案
- Taro简单原理解析
小程序与web区别
为什么会有小程序?
布局|载体|综合生态
- 以社交流量为载体
- 以信息传播流量为载体
- 以交易属性为载体
小程序的特点
-
触手可及,用完即走
小程序是一种无需下载安装即可使用的应用,能以最低成本触达用户,极大程度上降低了使用门槛
-
流量互导,功能互补
小程序依托各平台生态,有线下扫码,分享,搜索等各种入口。帮助各平台做功能上的补充,同时也为平台带来更多流量。
-
提升体验,媲美原生
小程序采用逻辑和渲染分离的模式,同时部分组件使用native进行渲染,并通过资源管理等方式,帮助小程序加载更快,使用起来更加流畅
小程序与web在技术上的区别
- 小程序部分组件直接通过原生实现如camera、canvas、video、map和textarea等
- 小程序会在端上做资源的缓存、销毁等,控制小程序的周期,让小程序能够更快速的加载
- 小程序在架构上将逻辑和渲染进行了分离,而web是在同一个进程中。
小程序与web在生态上的区别
- 小程序各方面限制更加严格,将渲染和逻辑分开,这样做的直接后果就是之前很多在WEB中的东西不能直接用了,必须在平台给定的规则进行开发,方便了平台进行管控。
- 各端提供官方入口,包括扫码,我的小程序,文章内嵌等等。并可快速分享。
- 发布被各平台管控,有着统一的应用版本管理。
小程序架构
小程序发展历程
发展期 | 事件 | 时间线 |
---|---|---|
探索期 | 微信张小龙提出应用号概念 | 2016.1 |
微信小程序公测开放 | 2016.11 | |
发展初期 | 微信小程序正式发布 | 2017.1 |
因入口和能力限制,市场遇冷 | 2017.2 | |
支付宝小程序公测 | 2017.9 | |
微信小游戏上线,市场反应良好 | 2017.12 | |
高速发展期 | 大量开发者、企业、资本、运行入场 | 2018.1 |
百度小程序正式发布 | 2018.7 | |
支付宝小程序正式上线 | 2018.9 | |
今日头条小程序内测 | 2018.9 | |
平稳发展期 | 小程序全面爆发,小程序数量激增 | 2019 |
小游戏平稳发展,深入到方方面面 | 2020及之后 |
小程序开发方案
数据绑定
列表渲染
条件渲染
Page对象
原生写法-index.ttml
原生写法-index.js
原生写法-index.ttss
原生写法-index.json
如何提升开发效率
Taro是一个开放式跨端跨框架解决方案
Taro写法
写法对比
原生写法 | Taro写法 | |
---|---|---|
学习成本 | 低 | 如果不了解框架,相对较高 |
运行效率 | 最好 | 相比原生低 |
开发体验 | 官方支持好 | 也还不错 |
开发效率 | 复杂应用效率低 | 复杂应用效率相对高 |
跨端 | 只可在对应小程序载体运行 | 可编译成不同小程序,甚至WEB和RN |
Taro原理简单解析
如何实现用React/Vue来写小程序
编译时|运行时
-
编译时:
把react代码编译成小程序可以识别的代码
-
运行时
在运行阶段,适配小程序的语法
AST抽象语法树
Taro编译时方案
解析|转换|生成