子戈信息

图片展示

微信小程序架构:开发规范

发表时间: 2022-02-23 00:00:00

页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。 调用页面路由带的参数可以在目标页面的onLoad中获取。

小程序框架 /介绍

微信小程序架构:开发规范

框架

小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务。

微信小程序架构:开发规范

整个小程序框架系统分为两部分:逻辑层(App Service)和 视图层(View)。小程序提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。

响应的数据绑定

框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。当做数据修改的时候,只需要在逻辑层修改数据,视图层就会做相应的更新。

通过这个简单的例子来看:

在开发者工具中预览效果

 Hello {{name}}!  Click me! 
// This is our App Service.// This is our data.var helloData = {name: 'Weixin'}// Register a Page.Page({data: helloData,changeName: function(e) {// sent data change to view
this.setData({name: 'MINA'
})
}
})
  • 开发者通过框架将逻辑层数据中的 name 与视图层的 name 进行了绑定,所以在页面一打开的时候会显示 Hello Weixin!
  • 当点击按钮的时候,视图层会发送 changeName 的事件给逻辑层,逻辑层找到并执行对应的事件处理函数;
  • 回调函数触发后,逻辑层执行 setData 的操作,将 data 中的 name 从 Weixin 变为 MINA,因为该数据和视图层已经绑定了,从而视图层会自动改变为 Hello MINA!

页面管理

框架 管理了整个小程序的页面路由,可以做到页面间的无缝切换,并给以页面完整的生命周期。开发者需要做的只是将页面的数据、方法、生命周期函数注册到 框架 中,其他的一切复杂的操作都交由 框架 处理。

基础组件

框架 提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的微信小程序 。

丰富的 API

框架 提供丰富的微信原生 API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等。

页面路由

在小程序中所有页面的路由全部由框架进行管理。

页面栈

框架以栈的形式维护了当前的所有页面。 当发生路由切换的时候,页面栈的表现如下:

路由方式

页面栈表现

初始化

新页面入栈

打开新页面

新页面入栈

页面重定向

当前页面出栈,新页面入栈

页面返回

页面不断出栈,直到目标返回页

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

Tab 切换对应的生命周期(以 A、B 页面为 Tabbar 页面,C 是从 A 页面打开的页面,D 页面是从 C 页面打开的页面为例):

当前页面

路由后页面

触发的生命周期(按顺序)

A

A

Nothing happend

A

B

A.onHide(), B.onLoad(), B.onShow()

A

B(再次打开)

A.onHide(), B.onShow()

C

A

C.onUnload(), A.onShow()

C

B

C.onUnload(), B.onLoad(), B.onShow()

D

B

D.onUnload(), C.onUnload(), B.onLoad(), B.onShow()

D(从转发进入)

A

D.onUnload(), A.onLoad(), A.onShow()

D(从转发进入)

B

D.onUnload(), B.onLoad(), B.onShow()

注意事项

  • navigateToredirectTo 只能打开非 tabBar 页面。
  • switchTab 只能打开 tabBar 页面。
  • reLaunch 可以打开任意页面。
  • 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
  • 调用页面路由带的参数可以在目标页面的onLoad中获取。


微信小程序架构:开发规范
页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。 调用页面路由带的参数可以在目标页面的onLoad中获取。
长按图片保存/分享

在线表单

  • 姓名 *

  • 电话 *

  • 留言

免费试用

Top

© 2010-2021 上海子戈信息科技有限公司 版权所有

沪ICP备19012659号

友情链接:  抖音推广   SEO快排  宣传片制作  食品经营许可证  代缴社保  抖音企业认证

在线咨询

您好,请点击在线客服进行在线沟通!

联系方式
热线电话
021-20960009
上班时间
周一到周五
E-mail地址
contact@zigetech.com
扫一扫二维码
二维码
添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功
添加微信好友,详细了解产品
我知道了