大家好,我是小编,这几天自己学习了小程序,发现真的太爽了,以下是我写下的笔记,希望给入门的盆友提供一些帮助吧。
app.js 用于监听并处理小程序的生命周期函数,声明全局变量,调用框架,提供丰富的API
同步存储:wx.setStorageSync()
同步读取本地数据的API:wx.getStorageSync()
app.json : 对整个小程序的全局配置
app.wxss: 整个小程序的公共样式表
注:.wxml与.js文件是页面所必需的 .wxss 与.json 文件则是可选的
每一个页面的“路径+页面名” 都需要写在app.json的pages中 ,且pages中的第一个页面
是小程序的首页
<block/>并不是一个组件,仅仅是一个包装元素,不会在页面做任何渲染,只
接受控制属性(wx:for或wx:if)
小程序执行的生命周期:
app.onLaunch(启动,初始化)->app.onShow(进入前台,触发执行的操作)->page1.onLoad
(page1页面加载执行初始化)->page1.onShow->page1.onReady(页面就绪)->
page1.onHide(页面隐藏)->page2.onLoad->page2,onShow->page2.onReady->page2.onUnload
(page2页面关闭)->page1.onShow(page1页面显示)->...-> app.onUnload(退出小程序)
-------------------------------------------
每个小程序分为2个线程: ①view : 负责解析渲染页面(wxml 和 wxss )
②appServer:负责运行js
小程序的开发步骤: ①创建小程序实例:编写3个app前缀的文件
小程序实例将由appServer线程执行
②创建页面(页面结构与事务处理逻辑)
小程序页面由view线程来执行
---------------------------------------------------
MINA框架 : 有着接近原生App的运行速度,做了大量的框架层面的优化设计,对Android端和
ios端做出了高度一致的呈现
逻辑层: 事务逻辑处理的地方(所有.js脚本文件的集合)
小程序逻辑层由js编写,但并非运行在浏览器中
视图层:由wxml和wxss编写,由组件来进行展示(所有.wxml文件与.wxss文件的集合)
数据层:临时数据或缓存,文件存储,网络存储与调用
①页面临时数据或缓存 setData
②文件存储: wx.getStorage 本地数据缓存
wx.setStorage 设置本地数据缓存
wx.clearStorage 清理本地数据缓存
3、网络存储或调用 wx.request 发起网络请求
wx.uploadFile 上传文件
wx.downloadFile 下载文件
调用url的api接口
wx.navigateTo 新窗口打开页面
wx.redirectTo 原窗口打开页面
------------------------------------
小程序入口: (用户端)
1.给定二维码,扫描进入
2.关注小程序后进入,或可自定义保存在桌面上
3.其他公众号图文、朋友圈广告、朋友分享等链接进入
(开发者)
1.电脑上运行“微信Web开发者工具”,直接模拟使用
2.使用手机微信扫码进行预览
小程序的界面与操作具有以下特点:
1.界面开发成本低,速度快
2.风格可控
3.操作简单
4.操作性能佳(具有接近原生App的性能)
小程序与H5区别:
1.javascript的限制(小程序中没有cookie)
2.改进优化:登陆方面-- H5 通过微信授权一般采用URL重定向的方式获取code
小程序 通过wx.login 获取code 避免了登陆重定向
存储方面: 小程序用storage(5M)替代了H5的localstorage,
sessionstorage。支持同步异步
微信支付路径不再受限
不方便之处: ①每个页面需要手动在app.json中进行注册
②打开页面有5个限制,开发时需控制打开页面的数量
---------------------------------------------
页面.json文件配置比app.json配置简单(页面的.json会覆盖app.json的内容)
onLaunch 函数全局只触发一次
App() 方法必须在app.js中注册,且不能注册多个
获取小程序实例: var appInstance = getApp() 不能私自调用生命周期函数