幽映每白日,清辉照衣裳。这篇文章主要讲述小程序启动时加载顺序,App()所做的事相关的知识,希望能为你提供帮助。
文章图片
启动小程序后,首先会执行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
}) } })
文章图片
【小程序启动时加载顺序,App()所做的事】
上面的域名包括端口,需要在 微信管理平台上配置上才能正常发起请求;
当然,我们开发时,可以在微信开发工具的 详情 按钮模块里,将校验合法域名 取消勾选,这样我们在开发时就先不用设置合法域名了。
文章图片
可以在Page中监听 页面的点击事件、上拉刷新、下拉加载等等
另外,在页面中用箭头函数的话,里面用this,指向的是Page这个对象,如果用function定义的函数,this指向undefined,我们可以早onLoad生命周期函数中定义一个常量
_this=this; 然后在其它方法内就可以用_this来使用this对象了,注意这是es6箭头函数和正常function函数的一个区别,箭头函数没有this,会一级一级往上找。
。
推荐阅读
- 创建个人或企业聊天机器人的10种工具????
- webapp开发之bui入门环境搭建及执行npm命令报错解决
- Flutter Android 真机器调试 模拟器调试Vscode 中开发 Flutter 应用
- Android Webview 的使用
- HBuilder X 中使用模拟器进行App开发
- 三分钟,利用 Termux 将你的安卓手机变成 linux 服务器 (非密钥)
- android studio的 gradle 依赖同步错误解决方法
- 初探 Android 系统
- Android 开发环境搭建与编译