微信小程序基础学习(二)
MINA
框架
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kzYVQDpC-1580378437962)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200128153437112.png)]
运行机制–启动
启动分为:冷启动和热启动
- **热启动:**假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程就是热启动;
- 冷启动:用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动,即冷启动。
- 小程序没有重启的概念。
- 小程序冷启动时,如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。
运行机制–加载
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UQ01T7bS-1580378437963)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200128154739161.png)]
程序生命周期
onLaunch
onShow
onHide
onError
页面生命周期
onLoad
onShow
onHide
onUnload
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LtAhDyX8-1580378437963)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200128162336751.png)]
启动的时候会启动俩个线程,分别是AppService Thread
和 View Thread
一般是在onLoad
或者 onShow
中请求数据接口
页面路由
路由方式 | 页面栈表现 |
---|---|
初始化 | 新页面入栈 |
打开新页面 | 新页面入栈 |
页面重定向 | 当前页面出栈,新页面入栈 |
页面返回 | 页面不断出栈,直到目标返回页 |
Tab 切换 | 页面全部出栈,只留下新的 Tab 页面 |
重加载 | 页面全部出栈,只留下新的页面 |
- 可以使用
getCurrentPages()
函数获取当前页面栈。
路由方式
对于路由的触发方式以及页面生命周期函数如下:
路由方式 | 触发时机 | 路由前页面 | 路由后页面 |
---|---|---|---|
初始化 | 小程序打开的第一个页面 | onLoad, onShow | |
打开新页面 | 调用 API wx.navigateTo 使用组件 `` | onHide | onLoad, onShow |
页面重定向 | 调用 API wx.redirectTo 使用组件 `` | onUnload | onLoad, onShow |
页面返回 | 调用 API wx.navigateBack 使用组件`` 用户按左上角返回按钮 | onUnload | onShow |
Tab 切换 | 调用 API wx.switchTab 使用组件 `` 用户切换 Tab | 各种情况请参考下表 | |
重启动 | 调用 API wx.reLaunch 使用组件 `` | onUnload | onLoad, onShow |
事件
- 事件是视图层到逻辑层的通讯方式
- 事件可以将用户的行为反馈到逻辑层进行处理
- 事件可以绑定在组件上,触发事件后,就会执行逻辑层中对应的事件处理函数
- 事件对象可以携带额外信息
事件模型
- 事件捕获阶段
- 事件处理阶段
- 事件冒泡阶段
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7l3dbrCk-1580378437964)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200128172813257.png)]
组件
- 组件是视图层的基本组成单元
- 组件自带一些功能与微信风格的样式
- 一个组件通常包括:开始标签和结束标签、属性用来修饰这个组件、内容在俩个标签之内
- 媒体组件、地图、开放能力、画布、视图容器、基础内容、表单组件、导航
- 视图容器
view
scroll-view
swiper
movable-view
:支持移动和缩放的组件cover-view
- 视图容器
媒体组件
audio
image
video
live-player
camera
live-pusher
API
- 网络
- 媒体
- 文件
- 数据缓存
- 位置
- 设备
- 界面
- 开放接口