5.4 微信小程序开发工具和方法
5.4.1 微信小程序简介
关于微信小程序,张小龙(腾讯高级副总裁,Foxmail和微信的开发者)给出这样的描述:
微信小程序是一种不需要下载安装即可使用的应用,它体现了应用“触手可及”的梦想,用户扫一扫搜一搜即可打开应用,也体现了“用完即走”理念,用户不用担心是否安装太多应用问题,应用将无处不在,随时可用,但又无需安装卸载。
微信小程序与微信公众平台的订阅号、服务号、企业号一样,属于并行的微信公众号体系。
微信小程序不须要下载和安装即可在微信里启动和使用。
5.4.2 微信小程序框架
微信团队为小程序提供的框架命名为MINA(MINA IS NOT APP)应用框架。MINA框架通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方便地使用微信客户端提供的各种基础功能与能力,快速构建一个应用。
MINA的目标是通过尽可能简单,高效的方式让开发者可以在微信中开发具有原生APP体验的服务。
运行MINA的项目必须要有微信web开发者工具和微信小程序的AppID,现在已经可以开放注册。
实质上,微信小程序是一个由微信内置JS引擎启动的前端程序,打个比喻就是在微信的框架下写web应用。
1.逻辑层
逻辑层是事务逻辑处理的地方。对于微信小程序而言,逻辑层就是所有.js脚本文件的集合。微信小程序在逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。
微信小程序开发框架的逻辑层是由JavaScript编写。在JavaScript的基础上,微信团队做了一些适当的修改,以便提高开发小程序的效率。主要修改包括:
♦ 增加app和page方法,进行程序和页面的注册
♦ 提供丰富的API,如扫一扫、支付等微信特有的能力
♦ 每个页面有独立的作用域,并提供模块化能力。
逻辑层的实现就是编写各个页面的.js脚本文件。但由于小程序并非运行在浏览器中,所以JavaScript在Web中的一些能力无法使用,如document、window等。
我们开发编写的所有代码最终会打包成一份JavaScript,并在小程序启动的时候运行,直到小程序销毁。
2.视图层
框架的视图层由WXML与WXSS编写,由组件来进行展示。对于微信小程序而言,视图层就是所有.wxml文件与.wxss文件的集合:
♦wxml文件用于描述页面的结构。
♦wxss文件用于描述页面的样式。
微信小程序在逻辑层将数据进行处理后发送给视图层展现出来,同时接收视图层的事件反馈。
视图层以给定的样式展现数据并反馈时间给逻辑层,而数据展现是以组件来进行的。组件是视图的基本组成单元。
3.数据层
数据层包括临时数据或缓存、文件存储、网络存储与调用,页面临时数据或缓存。
在Page()中,我们要使用setData函数将数据从逻辑层发送到视图层,同时改变对应的this.data的值。
注意:
直接修改this.data无效,无法改变页面的状态,还会造成数据不一致。
单次设置的数据不能超过1024KB,请尽量避免一次设置过多的数据。
setData()函数的参数接收一个对象。以key,value的形式表示将this.data中的key对应的值改变成value。其中key可以非常灵活,并且无需在this.data中预先定义。
(2) 文件存储(本地存储)
使用数据API接口,如下所示:
♦ wx.getStorage:获取本地数据缓存。
♦ wx.setStorage:设置本地数据缓存。
♦ wx.clearStorage:清理本地数据缓存。
(3) 网络存储或调用
上传或下载文件API接口,如下:
♦ wx.request:发起网络请求。
♦ wx.uploadFile:上传文件。
♦ wx.downloadFile:下载文件。
调用URL的API接口,如下:
♦ wx.navigateTo:新窗口打开页面。
♦ wx.redirectTo:原窗口打开页面。