小程序启动时加载顺序,小程序初始化,页面初始化

 启动小程序后,首先会执行App({}),中的声明周期函数。(注册小程序示例)

onLauch函数,监听小程序的启动后的函数(监听小程序初始化),可以在这个函数中 进行网路请求,或者获取用户信息。

和App相关的生命周期函数文档:https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html

 wx.getUserInfo({//获取用户信息

  success:function(res){

    console.log(res)
  }

})

 小程序后台运行后,会存活两个小时,如果在两个小时内再次进入小程序,不会初始化小程序。

 onShow:小程序在前台显示

onHide(options):小程序后台运行    options中就有小程序的打开场景

onError:小程序中,程序发生错误时会执行

补充:一般在App()注册小程序时,我们会获取用户信息,判断进入小程序的场景

都有哪些小程序进入场景呢?分享,搜索?等等,文档链接:https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.html

 wx.getUserInfo()在将来有可能废弃,那么补救方案是什么呢?通过button

<button size="mini" open-type="getUserInfo" bindgetUserInfo="handleGetUserInfo">获取用户信息</button>

methods:

handleGetUserInfo(event){
  event.detail.userInfo
}

 另外用open-data组件可以直接展示用户信息,只是展示,不能获取

在文档的  组件  开放能力里可以查看该组件用法

在App()中是可以定义一些全局的数据的

globalData:{

  name:"哈哈"

}

在小程序所有页面都是可以取到全局数据的

const  app=get App();//获取小程序产生的示例对象

console.log(app.globalData.name);

上面说的是小程序初始化时调用App()

那么每个页面也需要注册,页面注册是调用Page方法

 那么在页面注册时,Page方法中我们会做什么事情呢?

1、监听页面生命周期,请求网络数据,初始化数据

https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html

 几个常用的生命周期函数:onLoad:页面加载;onShow:页面显示;onHide:页面隐藏;onUnload:页面卸载(页面发生跳转);onReady:页面第一次渲染完成

 onLoad页面加载周期函数通常是发起服务器请求:

wx.request({
  url: 'http://123.207.32.32:8002//recommend', //仅为示例,并非真实的接口地址
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' // 默认值
  },
  success (res) {
    console.log(res.data)
   this.setData({
    list:res.data
   }) } })

上面的域名包括端口,需要在 微信管理平台上配置上才能正常发起请求;

当然,我们开发时,可以在微信开发工具的 详情 按钮模块里,将校验合法域名 取消勾选,这样我们在开发时就先不用设置合法域名了。

 可以在Page中监听 页面的点击事件、上拉刷新、下拉加载等等

 另外,在页面中用箭头函数的话,里面用this,指向的是Page这个对象,如果用function定义的函数,this指向undefined,我们可以早onLoad生命周期函数中定义一个常量

_this=this;然后在其它方法内就可以用_this来使用this对象了,注意这是es6箭头函数和正常function函数的一个区别,箭头函数没有this,会一级一级往上找。

原文地址:https://www.cnblogs.com/fqh123/p/12324723.html