- 网页开发
- 渲染线程与脚本线程是互斥的(长时间运行脚本会影响页面响应)
- 使用DOM API进行DOM选中与操作
- 开发面对各种浏览器,及辅助工具或编辑器
- 小程序开发
- 渲染层和逻辑层是分开的
- 逻辑层运行在JSCore中,没有完整浏览器对象,没有DOM操作(基本通过改变数据来实现的)
- 小程序面对的是两大操作系统及维修开发者工具,及申请小程序账号,及配置等等.
- 渲染层使用WebView进行WXML/WXSS的渲染,逻辑层采用JsCore线程执行js脚本
- 一个小程序存在多个页面,WebView中存在多个线程
- 线程间的通讯,通过微信客户端(native)做中转.发送请求也是使用wx的请求方法,在由native转发.(数据驱动的架构模式)
- WXML 模板:标签语句
- 标签名称是小程序自己包装好的,包括一些组件
- 多了{{}}表达式与wx:if等语句,事件也有所不同.
- WXSS 样式:样式语音
- 新增尺寸单位rpx,有全局样式及部分样式
- JS 逻辑交互:逻辑处理网络请求
- 增加App和Page方法,进行程序注册和页面注册
- 增加getApp和getCurrenPages方法,获取App实例及当前页面栈
- 提供丰富的API,如微信用户数据,扫一扫,支付等微信特有能力
- 提供模块化能力,每个页面有独立的作用域
- JSON 配置:当前页面的一些信息
- app.js
- onLaunch:监听小程序初始化
- onShow:监听小程序启动或切前台
- onHide:监听小程序切后台
- page.js
- onLoad:监听页面加载
- onShow:监听页面展示
- onRead:监听页面首次加载完成
- onHide:监听页面隐藏
- onUnload:监听页面卸载
- 组件
- created:组件实例刚刚被创建时执行
- attached:组件实例进入页面节点树时执行
- ready:组件在视图布局完成后执行
- moved:组件实例被移动到节点树另一个位置执行
- detached:组件实例被从页面节点树移除时执行
- error:每当组件方法抛出错误执行
- pages:页面文件夹
- utils:工具类库
- api:统一接口文件
- component:组件
- images:图片文件夹
- app.js:入口文件小程序逻辑
- app.json:公共配置
- app.wxss:公共样式
- project.config.js
- project.private.config.js
- siemap.json
由于原生组件脱离webview渲染层外,所以原生组件的层级最高 使用cover-view