微信小程序onLaunch、onLoad执行生命周期
原文转载自:微信小程序onLaunch、onLoad执行生命周期
1、需求:先执行App的onLaunch添加验证权限等,再执行Page里的onLoad。
2、问题:还没有等onLaunch执行完成,onLoad就已经开始执行了。
3、解决办法:定义回调函数。
4、具体实现:Page页面判断一下当前app.globalData.employld是否有值,如果没有(第一次)定义一个app方法(回调函数),App页面在success后判断有没有page页面定义的回调方法,如果有就执行,因为回调函数是在Page页面内,方法作用域应指向的是Page页面。
app.employIdCallback = employId => {...}。
App.js
App({
onLaunch:function(){
wx.request({
url: 'test.php',
succrss:(res)=>{
this.globalData.employId = res.employId;
//由于这里是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (this.employIdCallback){
this.employIdCallback(employId);
}
}
})
},
globalData: {
employId: ''
}
});
index.js
//获取应用实例
const app = getApp() Page({
data:{},
onLoad:function(){
//判断是用户是否执行完了请求,绑定了信息
if (app.globalData.employId && app.globalData.employId != '') {
//执行操作
}else{
//由于请求是网络请求,可能会在Page.onLoad后才返回
//所以加入callback 防止这种情况
app.employIdCallback = employId =>{
if(employId!=''){
//执行操作。。
}
}
}
})
实现~
微信小程序onLaunch、onLoad执行生命周期的更多相关文章
- 【微信小程序】App.js生命周期
1.小程序的生命周期-App.js App() 必须在 app.js 中注册,且不能注册多个.所以App()方法在一个小程序中有且仅有一个. App({ onLaunch: function () { ...
- 微信小程序onlaunch异步,首页onLoad先执行?
按照原理是小程序初始化时会先触发APP里的onLaunch事件,之后再执行页面Page里的onLoad事件.但实际请求时在onLaunch事件中请求获取数据,等待返回值的时候Page里的onLoad事 ...
- 微信小程序onLaunch异步,首页onLoad先执行?
本来按照事件顺序,小程序初始化时触发App里的onLaunch,后面再执行页面Page里的onLoad,但是在onLaunch里请求获取是否有权限,等待返回值的时候Page里的onLoad事件就已经执 ...
- 小程序的基本概念-生命周期(组件 wxml)
一.组件生命周期:一个组件从创建开始到使用中最后被销毁的过程 ---onLoad事件:组件(创建成功并且加载完成)触发一次 (1)当此事件触发发送请求获取数据 (2)获取其他组件传递数据(option ...
- 「小程序JAVA实战」小程序视频播放的时候生命周期的控制(56)
转自:https://idig8.com/2018/09/23/xiaochengxujavashizhanxiaochengxushipinbofangdeshihoushengmingzhouqi ...
- 「小程序JAVA实战」 小程序私有页面的生命周期以及导航(10)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-10/ 之前讲了小程序全局的生命周期,今天咱们说说单个页面的生命周期!源码:https://gith ...
- 微信小程序onLaunch修改globalData的值
//app.js App({ onLaunch: function (options) { //设置场景值到缓存中: //wx.setStorageSync("scene", op ...
- 教你理解微信小程序的生命周期和运行原理
转自:http://blog.csdn.net/tsr106/article/details/53052879 写微信小程序,他的生命周期不能不知道,不知道小程序就会出现各种bug而无法解决.小助君 ...
- 【Taro全实践】Taro在微信小程序中的生命周期
一.Taro的本身生命周期 生命周期componentWillMount在微信小程序中这一生命周期方法对应页面的onLoad或入口文件app中的onLaunch componentDidMount在微 ...
随机推荐
- 倒计时5S秒自动关闭弹窗
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 程序员50题(JS版本)(七)
程序31:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中 var test=[213,134,134,84,62,11]; const num=33; test.push(num ...
- sql 服务启动失败 SQL Server(MSSQLSERVER) 错误码126
SQL配置管理器-->sql server 网络配置-->mssqlerver的协议-->VIA禁用服务
- 前端页面基于JQuery的点击事件
一,使用id选择器 1.方式一 $("#id").click(function(){ do something }) 2.方式二 $("#id").on(&qu ...
- jQuery事件绑定,解绑,触发
事件绑定 1.bind(type,[data],fn) --type: 含有一个或多个事件类型的字符串,由空格分隔多个事件.比如"click"或"submit" ...
- 服务器部署Apache+PHP+MYSQL+Laravel
1.安装PHP 添加php安装源: sudo apt-get install python-software-properties sudo add-apt-repository ppa:ondrej ...
- 纯Java实现微信朋友圈分享图
纯Java实现微信朋友圈分享图 1.实现分享图的效果 2.开发环境 2.1 JDK * oracle's jdk 1.8以上 2.2 字体 * 若选择了微软雅黑字体又是代码部署到Linux,则需要安装 ...
- eslint 代码缩进 报错及解决
一.背景 使用vue在VScode中正常写的代码,报了一堆的错误,仔细检查,发现都是缩进要么多了要么少了,总之是代码不规范的的报错. 二.原因 百度查了发现代码规范默认缩进2个空格,而VScode默认 ...
- mysql 基础sql语句
1.mysqladmin语句: # 查看mysql版本 mysqladmin version # 更改root用户密码 mysqladmin -u root -p原密码 password '新密码 ...
- Tomcat设置cmd窗口的title属性
说明:官网下载tomcat之后,双击bin目录下的startup.bat文件,即可运行tomcat:linux下面运行startup.sh. 但是如果测试服务器上面搭建了多个项目,则启动之后窗口一样, ...