1. 注册程序
小程序APP
在小程序的根目录下有一个app.js文件。有App(Object),App() 函数用来注册一个小程序。接受一个 Object 参数,其内便是小程序的生命周期。
App() 必须在app.js 中调用,必须调用且只能调用一次。
主要参数
onLaunch: 小程序的初始化函数
onShow: 小程序启动,或从后台进入前台显示时
onHide: 小程序从前台进入后台时
onError: 小程序发生脚本错误,或者 api 调用失败时触发,会带上错误信息
onPageNotFound: 小程序要打开的页面不存在时触发,会带上页面信息回调该函数

前台:当小程序呈现在用户屏幕前
后台:右上角关闭小程序,home键 之后的一段时间(目前五分钟)小程序处于后台状态
销毁:当进入后台一段时间或者系统资源占用过高会被销毁,一些场景进入在未置顶的情况下退出会被销毁。
getApp(Object)
全局的 getApp() 函数可以用来获取到小程序 App 实例。这个不是很懂

2. 场景值
场景指的是从哪些地方进入小程序,有对应的场景ID。App函数的 onlaunch onshow ,或者 wx.getLaunchOptionsSync 获取。
App({
onLaunch: function (options) {
console.log("[onLaunch] 本次场景值:", options.scene)
},
onShow: function (options) {
console.log("[onShow] 本次场景值:", options.scene)
}
})

3. 注册页面
页面 Page
Page(Object) 构造器
Page(Object) 函数用来注册一个页面。接受一个 Object 类型参数,初始化数据、生命周期回调和事件处理函数。
data: 页面的初始化数据
onLoad: 生命周期回调--监听页面加载
onShow: 生命周期回调--监听页面显示
onReady: 生命周期回调--监听页面初次渲染完成
onHide: 生命周期回调--监听页面隐藏
onUnload: 生命周期回调--监听页面卸载
onPullDownRefresh: 监听用户下拉动作
onReachBottom: 页面上拉触底事件的处理函数
onShareAppMessage: 用户点击右上角转发
onResize: 页面尺寸改变时触发,一般是屏幕旋转
onTabItemTap: 当前是tab页时,点击tab 时触发
还可以添加自定义字段,同app.js中App() 一样

初始数据
data 是页面第一次渲染使用的初始数据
因为页面加载时,data将会以JSON 字符串的形式由逻辑层传到渲染层,因此data 中的数据必须时可以转成 JSON 的类型:字符串、数字、布尔值、对象、数组
同大多数 mvvm 框架语言一样,也可以实现逻辑层到渲染层的双向绑定。

生命周期回调函数
有 onLoad(Object)、onShow()、onReady()、onHide()、onUnload()

页面事件处理函数
onPullDownRefresh()、onReachBottom()、onPageScroll(Object)

组件事件处理函数
就是渲染层的执行事件,点击之类的

route
当前页面的路径,类型为 String
Page({
onShow() {
console.log(this.route)
}
})

setData
Page.prototype.setData(Object data, Function callback)
setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)

页面生命周期
有一句在vue里面看到的话

下内容你不需要立马完全弄明白,不过以后它会有帮助

4. 路由
在小程序中所有页面的路由全部由框架进行管理。
页面栈
框架以栈的形式维护了当前的所有页面。当发生路由切换的时候,页面栈表现各不相同
初始化:新页面入栈
打开新页面:新页面入栈
页面重定向:当前页面出栈,新页面入栈
页面返回:页面不断出栈,知道目标返回页
Tab切换:页面全部出栈,只留下新的Tab页面
重加载:页面全部出栈,只留下新的页面

getCurrentPages()
此函数可以获取当前页面栈的实例,以数组的形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

路由方式
路由的触发和小程序生命周期处处相关哦

5. 模块化
文件作用域
每个js文件申明的变量,对当前文件有效
App 函数中可以这只全局变量
将公共代码块抽离出来,用export方式引用。

6. API
各种API

微信小程序 逻辑层的更多相关文章

  1. 微信小程序遮罩层覆盖input失效

    问题:微信小程序中,我们常使用遮罩层,如点击按钮弹出下拉框.弹框等等.若在遮罩层下存在input.textarea.canvas.camera.map.video等标签时,会出现遮罩层覆盖失效的问题. ...

  2. 微信小程序视图层介绍及用法

    一. 视图层 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 1.1. 数据绑定 1.1.1. 普通写法 <vi ...

  3. 微信小程序 - 视图层 | 基础语法

    视图层 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 类似前端HTML 一.数据绑定 普通语法 test.wxml ...

  4. 微信小程序开发--页面结构

    一.微信小程序开发--页面文件组成 [page.name].js 页面逻辑文件,用于创建页面对象,以及处理页面生命周期控制和数据处理 [page.name].wxml wxml指的是Wei Xin M ...

  5. 【微信小程序】开发实战 之 「配置项」与「逻辑层」

    微信小程序作为微信生态重要的一环,在实际生活.工作.商业中的应用越来越广泛.想学习微信小程序开发的朋友也越来越多,本文将在小程序框架的基础上就微信小程序项目开发所必需的基础知识及语法特点进行了详细总结 ...

  6. 微信小程序原生开发简介

    简介: 总结: 1. 逻辑层使用js引擎,视图层使用webview渲染 2. 微信小程序已经支持了绝大部分的 ES6 API 3. 可以自动补全css的兼容语法 文档:https://develope ...

  7. 微信小程序开发(1) 天气预报

    本文介绍如何使用微信小程序开发天气预报功能. 一.项目文件列表 二.小程序配置 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. ...

  8. 微信小程序 可用性一览

    1. 调试vConsole微信小程序通过vConsole的形式观察控制台打印.打印到vConsole控制台的是由 JSON 转化的字符串.这还是可以起到调试作用的. Source Map当es6 转  ...

  9. 微信小程序开发--模板(template)使用,数据加载,点击交互

    微信小程序视图层提供了 模板(template),可以在模板中定义代码片段,然后在不同的地方调用.结果在数据渲染那懵逼了.按照官网上对模板的说明和对数据的加载. 1.定义模板 使用name属性,作为模 ...

随机推荐

  1. 常见的页面效果,相关的js代码

    1.焦点图 $(document).ready(function(){ var i=0; var autoChange= setInterval(function(){ if(i<$(" ...

  2. hadoop Namenode因硬盘写满无法启动

    当写元数据的分区写满,可能导致namenode挂掉从而导致及时清理出大块的空间也无法启动namenode,那此时系统namenode会报错 org.apache.hadoop.hdfs.server. ...

  3. 换行和flush()

    在尝试使用BufferedReader的readLine方法读出每一行数据,再用FileWriter依次写到文件里的时候,用了下面的代码段: fr = new FileReader("c:/ ...

  4. [Selenium] 操作 HTML5 中的 Canvas 绘制图形

    测试 http://literallycanvas.com/ 以 Chrome Driver 为例阐述,通过 Actions 在 Canvas 上绘制一个封闭图形.对于 Canvas 上的操作,推荐 ...

  5. 生产环境下搭建mongodb复制集高可用环境(python)

    环境描述:有三台ubuntu服务器,,每台服务器上已经有mongodb实例.创建3个mongo2.4的新实例,分别作为三个复制集节点,同时保证了当前单节点环境的稳定 3台服务器都已经有单个mongo实 ...

  6. Educational Codeforces Round 24 CF 818 A-G 补题

    6月快要结束了 期末也过去大半了 马上就是大三狗了 取消了小学期后20周的学期真心长, 看着各种北方的学校都放假嗨皮了,我们这个在北回归线的学校,还在忍受酷暑. 过年的时候下定决心要拿块ACM的牌子, ...

  7. laravel5.2 增加Caffienate Modules,实现模块化开发

    1.模块化开发可以把框架分成 Topc前台模块,Topm手机端前台,Admin后台管理模块,每个模块中都有自己的一套Controller,Logic,router等. 2.咖啡因模块是一个简单的包,以 ...

  8. 【转】Darwin Streaming Server 核心代码分析

    无意中看到了dqzhangp的一篇博客,分析了DSS的核心架构,读完顿时感觉豁然开朗,茅塞顿开,写得非常的鞭辟入里,言简意赅,我想没有相当的功力是写不出这样的文章的,情不自禁转到自己空间来,生怕弄丢了 ...

  9. windows上搭建php环境

    在Windows 7下进行PHP环境搭建,首先需要下载PHP代码包和Apache与Mysql的安装软件包. PHP版本:php-5.3.2-Win32-VC6-x86,VC9是专门为IIS定制的,VC ...

  10. Hadoop 修改源码以及将修改后的源码应用到部署好的Hadoop中

    我的Hadoop版本是hadoop-2.7.3, 我们可以去hadoop官网下载源码hadoop-2.7.3-src,以及编译好的工程文件hadoop-2.7.3, 后者可以直接部署. 前者hadoo ...