微信小程序-逻辑层

2019-03-15  本文已影响0人  叫我王必过

基于JavaScript开发,增添了一些新功能
1、增加 App 和 Page 方法,进行程序和页面的注册。
2、增加 getApp 和 getCurrentPages 方法,分别用来获取 App 实例和当前页面栈。
3、提供丰富的 API,如微信用户数据,扫一扫,支付等微信特有能力。
4、每个页面有独立的作用域,并提供模块化能力。
注意:小程序框架的逻辑层并非运行在浏览器中,因此 JavaScript 在 web 中一些能力都无法使用,如 window,document 等。

一、App(object)

1、App(object)必须在 app.js 中调用,必须调用且只能调用一次。不然会出现无法预期的后果。
2、前台、后台定义: 当用户点击右上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。关闭小程序(基础库版本1.1.0开始支持): 当用户从扫一扫、转发等入口(场景值为1007, 1008, 1011, 1025)进入小程序,且没有置顶小程序的情况下退出,小程序会被销毁。
3、全局的 getApp() 函数可以用来获取到小程序 App 实例
不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以拿到 app 实例。
通过 getApp() 获取实例之后,不要私自调用生命周期函数。

二、小程序场景值

1、对于小程序,可以在 App 的 onLaunch 和 onShow,或wx.getLaunchOptionsSync 中获取上述场景值。
2、对于小游戏,可以在 wx.getLaunchOptionsSync 和 wx.onShow 中获取上述场景值

三、页面Page(Object)

Page({
  data:{
    //页面第一次渲染的 *初始数据*
  },
  onLoad(){
    // 页面加载时触发,可以获取当前页面路径中的参数
    console.log(this.route)
  },
  onShow(){
    // 页面显示/切入前台时触发
  },
  onReady(){
    //页面完成初次渲染时触发
  },
  onHide(){
    //页面隐藏/切入后台时触发
  },
  onUnload(){
    //页面卸载时触发
  },
  onPullDownRefresh(){
    //监听用户下拉刷新事件
  },
  onReachBottom(){
    //监听用户上拉触底事件
  },
  onPageScroll(Object){
    // 监听用户滑动页面事件。
    //注意:请只在需要的时候才在 page 中定义此方法,不要定义空方法。以减少不必要的事件派发对渲染层-逻辑层通信的影响。 
    //注意:请避免在 onPageScroll 中过于频繁的执行 setData 等引起逻辑层-渲染层通信的操作。尤其是每次传输大量数据,会影响通信耗时。
  },
  onShareAppMessage(Object){
    //监听用户点击页面内转发按钮(<button> 组件 open-type="share")或右上角菜单“转发”按钮的行为,并自定义转发内容。
  },
  onResize(object){
    //小程序屏幕旋转时触发
  },
  onTabItemTap(Object){
    //点击tab时触发
  },
  add(){
    //组件事件处理函数
    this.setData ({
      text:'helo'
    })
  } 

})

四、页面生命周期

页面生命周期-引用小程序文档

五、路由

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


这就相当于一个栈

注意:

六、模块化

用module.exports暴露出来的一个单独的js文件,写一写方法。使用时通过require引入,require暂时不支持绝对路径。

七、API

1、事件监听API:以 on 开头的API是用来监听某个时间是否触发。
2、同步API:以 Sync 结尾的 API 都是同步 API。
3、异步API:大多数 API 都是异步 API

上一篇下一篇

猜你喜欢

热点阅读