微信小程序相关

Posted by wantingtr on April 15, 2018

通过开发者调试器的APPdata这个type,我们可以实时调试每个页面的所有内部状态变量的取值。 webview

小程序的运行环境

每个小程序都运行在微信客户端上,可以直接获取微信客户端的原生体验和能力

运行环境的基本架构

视图层(渲染层)

  • wxml
  • wxss
    视图层的每一个页面都是在一个独立的webview进程中渲染的

逻辑层

  • JS
    运行在一个统一的JsCore进程中

  1. 渲染层和数据相关。
  2. 逻辑层负责产生、处理数据
  3. 逻辑层通过 Page 实例的 setData 方法传递数据到渲染层

每一个pages都内置了一个webviewId的内部状态变量,来记录它们各自是在几号webviwe进程之中进行渲染的。

这两层架构中,主要通过基于数据绑定和事件机制进行通讯

数据绑定

基于数据绑定在逻辑层对应的逻辑代码对相应的数据进行更新之后,逻辑层会将更新之后的数据传递给视图层,然后视图层会找到对应需要更新的视图部分,进行相应的更新。

事件机制

视图层会接受到用户的交互反馈的行为,会将其传递给逻辑层对应的事件处理函数进行处理。

setdata函数

setdata函数实际上是把数据从逻辑层传递给渲染层,从而达到更新界面的目的。

本地数据缓存

利用本地数据缓存可以存储用户在小程序上产生的操作,在用户关闭小程序重新打开时可以恢复之前的状态。

wx.getStorageSync(key:string)将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
wx.setStorageSync(key:string)从本地缓存中同步获取指定 key 对应的内容.