问题描述
按照理解, created
和 onLoad
生命周期函数在各平台中均应该按照 created -> onLoad 的顺序执行,但实际上在 H5 平台中的执行顺序则是相反的,先回调了onLoad 再回调 created,不知道这个是 bug 还是官方故意为之,有何深意。
复现步骤
[或者可以直接贴源代码]
created: function() {
console.log('created')
},
onLoad: function() {
console.log('onLoad')
}
预期结果
不管是在微信小程序/支付宝小程序/H5等各平台中,均应该依次打印 created
-> onLoad
实际结果
微信小程序/支付宝小程序打印结果: created
-> onLoad
H5的打印结果: onLoad
-> created
系统信息:
截止目前最新版 3.1.7.20210330 依然有该问题
补充信息
在社区里面找到了一篇反馈文章 【报Bug】uni-app的created onLoad为什么在h5和微信小程序中,显示的顺序不一致 ,但是官方并没有进行任何回复。
2条答案
按热度按时间cnh2zyt31#
我也遇到,比较头疼,我想封装一个页面和组件可以共用的mixin,最后选择的办法是,判断如果在组件里面使用,逻辑写在beforeMount里面,如果是页面,写在onLoad里面,created我已经决定不用了
bfnvny8b2#
我也遇到,比较头疼,我想封装一个页面和组件可以共用的mixin,最后选择的办法是,判断如果在组件里面使用,逻辑写在beforeMount里面,如果是页面,写在onLoad里面,created我已经决定不用了
emmm,组件应该是mounted,mp的时候组件的beforeMount执行完才会页面的onLoad