微信团队为小程序提供的框架命名为应用框架。框架通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,对上层提供一整套 ,让者能够非常方便地使用微信客户端提供的各种基础功能与能力,快速构建一个应用。
通过框架图我们可以看到两大部分:在页面视图层,是提供的一套类似标签的语言以及一系列基础组件。者使用文件来搭建页面的基础视图结构,使用文件来控制页面的展现样式。应用逻辑层是的服务中心,由微信客户端启用异步线程单独加载运行。页面渲染所需的数据、页面交互处理逻辑都在中实现。框架中的使用来编写交互逻辑、网络请求、数据处理,但不能使用中的操作。小程序中的各个页面可以通过实现数据管理、网络通信、应用生命周期管理和页面路由。
框架为页面组件提供了、等事件监听相关的属性,来与中的事件处理函数绑定在一起,实现也面向层同步用户交互数据。框架同时提供了很多方法将中的数据与页面进行单向绑定,当中的数据变更时,会主动触发对应页面组件的重新渲染。使用技术,加快了页面的渲染效率。
框架的核心是一个响应的数据绑定系统,它让数据与视图非常简单地保持同步。当做数据修改的时候,只需要在逻辑层修改数据,视图层就会做相应的更新。我们看下面这个例子:
♦ 者通过框架将逻辑层数据库中的与视图层的进行了绑定,所以在页面一打开的时候会显示
♦ 当点击按钮的时候,视图层会发送的事件给逻辑层,逻辑层找到对应的事件处理函数。
♦ 逻辑层执行了的操作,将从 变为 ,因为该数据和试图层已经绑定了,从而视图层会自动改变为 。
微信小程序不仅在底层架构的运行机制上做了大量的优化,还在重功能(如切换、切换、多媒体、网络连接等)上使用接近于的组件承载。所以微信小程序有着接近原生的运行速度,做了大量的框架层面的优化设计,对端和端做了高度一致的呈现,并且准备了完备的和调试工具。
逻辑层
逻辑层是事务逻辑处理的地方。对于微信小程序而言,逻辑层就是所有.脚本文件的。微信小程序在逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。
微信小程序框架的逻辑层是由编写。在的基础上,微信团队做了一些适当的修改,以便提高小程序的效率。主要修改包括:
♦ 增加和方法,进行程序和页面的注册
♦ 提供丰富的,如扫一扫、支付等微信特有的能力
♦ 每个页面有的作用域,并提供模块化能力。
逻辑层的实现就是编写各个页面的.脚本文件。但由于小程序并非运行在浏览器中,所以在中的一些能力无法使用,如、等。
我们编写的所有代码最终会打包成一份,并在小程序启动的时候运行,直到小程序销毁。
视图层
框架的视图层由与编写,由组件来进行展示。于微信小程序而言,视图层就是所有.文件与.文件的:
♦ .文件用于描述页面的结构。
♦ .文件用于描述页面的样式。
微信小程序在逻辑层将数据进行处理后发送给视图层展现出来,同时接收视图层的事件反馈。
视图层以给定的样式展现数据并反馈时间给逻辑层,而数据展现是以组件来进行的。组件是视图的基本组成单元。
数据层
数据层包括临时数据或缓存、文件存储、网络存储与调用。
1.页面临时数据或缓存
在()中,我们要使用函数将数据从逻辑层发送到视图层,同时改变对应的.的值。
()函数的参数接收一个对象。以,的形式表示将.中的对应的值改变成。其中可以非常灵活,包括以数据路径的形式给出,如[2].,...,并且无需在.中预先定义。
2.文件存储(本地存储)
使用数据接口,如下所示:
♦ .:获取本地数据缓存。
♦ .:设置本地数据缓存。
♦ .:清理本地数据缓存。
3.网络存储或调用
上传或下载文件接口,如下:
♦ .:发起网络请求。
♦ .:上传文件。
♦ .:下载文件。
调用的接口,如下:
♦ .:新窗口打开页面。
♦ .:原窗口打开页面。