小程序开发框架的目标是让开发者以最简单、最高效的方式在微信中开发具有原生APP体验的服务。
微信团队为小程序提供的框架名为MINA。 MINA框架通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,向上层提供了一套完整的API,让开发者可以轻松使用微信客户端提供的各种基础功能和能力。微信客户端,快速构建应用。
米娜框架
微信小程序的框架图如下:
MINA框架主要分为两部分:
在页面视图层的第一部分,开发人员使用WXML文件来构建页面的基本视图结构(WXML是一种类似于HTML标签的语言和一系列基本组件),并使用WXSS文件来控制页面的呈现风格这一页。
第二部分,应用逻辑层,是MINA框架的服务中心。 它通过微信客户端启动异步线程独立加载运行,页面渲染所需的数据以及页面交互处理逻辑都在其中实现。 MINA框架用于编写交互逻辑、网络请求和数据处理,但不能用于DOM操作。 小程序中的每个页面都可以实现数据管理、网络通信、生命周期管理和页面路由。
MINA框架为页面组件提供了一系列事件监控相关的属性(如等),与页面中的事件处理函数绑定,实现用户交互数据的页面层同步。 MINA框架还提供了很多方法将页面中的数据与页面进行单向绑定(注意数据的绑定方向是单向的)。 当页面中的数据发生变化时,会主动触发相应页面组件的重新渲染。
该框架的核心是一个反应式数据绑定系统,可以轻松保持数据和视图同步。 您只需要修改逻辑层的数据,视图层就会相应更新。 示例如下:
欢迎使用{{appname}} 更换名称 //AppService应用逻辑层代码 //初始数据 page({ data:{ appname:'易投票' }, changeAppname:function(e){ this.setData({ appname:'我的小程序' }) } })

图1:初始名称 图2:点击“更改名称”按钮后
示例中的数据是如何更新的? 首先,开发者通过框架将应用逻辑层数据的变化与页面视图层的名称进行绑定。 页面刚打开时,会显示“欢迎来到轻松投票”。然后,当点击“更改名称”按钮时,视图层会将tap事件发送给逻辑层,逻辑层找到事件函数。最后,逻辑层函数执行操作,将对象的值更改为“我的小程序”,因为该对象已经绑定在视图层中,所以视图层将显示为图2中的名称。
小程序的MINA框架有着接近原生App的运行速度,并且在框架层面做了很多优化。 它对重型功能(页面或选项卡切换、多媒体、网络连接等)使用类似的组件继承,并且兼容 和 ios。 终端做出了高度一致的呈现,并且有近乎完整的开发和调试工具。
目录结构
典型的小程序目录结构非常简单,一般一个项目包含两个目录(和)三个文件(app.js、app.json、app.wxss)。 该目录包含了程序所需的各个页面,一个页面对应一个目录,包含2~4个文件(.js、.wxml、.json、.wxss)。 该目录包含一些公共js代码文件。 当然,我们还可以添加其他公共目录,比如用来存放本地图片资源的目录。
逻辑层
小程序的逻辑层是所有.js脚本文件的集合。 小程序在逻辑层处理数据并发送给视图层,同时接受视图层发回的事件请求。
MINA框架的逻辑层是由. 在此基础上,微信团队做了一些优化,以更高效地开发小程序。 这些优化包括:
1、添加app方法注册程序,添加page方法注册页面;
2.提供丰富的API接口;
3、页面范围相对独立,具备模块化能力;
简单来说,逻辑层就是每个页面的.js脚本文件。
需要注意的是,小程序的逻辑层是由js编写的,但它并不运行在浏览器中,所以无法使用web中的一些能力,比如dom等,这也是我们需要解决的一个障碍发展过程中克服的。
视图层
对于微信小程序来说,视图层是所有.wxml()文件和.wxss()文件的集合:.wxml用于描述页面结构,.wxss用于描述页面样式。
视图层以给定的样式呈现数据,并将事件反馈给逻辑层,而数据的呈现则由组件来完成。 () 是视图的基本构建块。
数据层
数据层包括临时数据或缓存、文件存储、网络存储和调用。
1.临时页面数据或缓存
在页面page()中,我们需要使用函数将数据从逻辑层发送到视图层,同时改变对应的this.data的值。 这一般是指小程序中的调用页面,一般是指作为方法调用时包含它的函数所属的对象。 直接修改this.data是无效的,无法改变页面的状态,还会造成数据不一致。 一次设置的数据有一个大小限制,不能超过,以避免一次设置过多的数据。
() 函数的参数接受一个对象。 以key的形式,将this.data中key对应的修改为 。 密钥可以非常灵活,包括以数据路径的形式表示,例如[0]。 并且不需要在this.data中预定义。
2、文件存储(本地存储)
使用微信提供的现成的数据API接口微信文档处理小程序开发,例如:

wx.:获取本地数据缓存
wx.:设置本地数据缓存
wx.:清理本地数据缓存
3.网络存储与调用
用于上传或下载文件的API接口,例如:
wx.:发起网络请求
wx.:上传文件
wx.:下载文件
调用URL的API接口如下:
wx.:保留当前页面并跳转到应用内的某个页面。 但无法跳转到页面。 您可以返回原始页面。
wx.:关闭当前页面并跳转到应用程序中的某个页面。 但跳转到该页面是不允许的。 无法返回原始页面。
以上是微信小程序框架的相关描述。 微信团队一直在不断优化框架能力,及时关注官方小程序开发者文档,了解小程序的最新能力和优化点。