最近做项目,使用的uniapp+vue2.碰到了一个问题。在页面跳转时。如a页面跳转到b页面。点击返回到A页面,再次进入到b页面。在mounted函数中的自定义函数不执行。
其实是因为自己基础知识的不扎实,以及vue生命周期的了解不够。
经过各种尝试以及网上各位大佬的经验。找到了解决办法。created():当html渲染之前就触发;但是不强制刷新或者重启时只创建一次,也就是说,created()只会触发一次(基于这一点咱可以把它用于页面预加载数据);mounted():页面初始化完成后触发,与created一样只会触发一次(可用于页面初始化数据);activated():在vue对象存活的情况下,进入当前存在activated()函数的页面时,一进入页面就触发;可用于初始化页面数据(可解决页面返回上一页后,重新进入此页面的数据刷新问题)
但是,首次进入的时候,函数没有被执行。我是因为需要用到onLoad去调用接口函数。所以就将我的自定义函数放到了,onLoad里面,解决了首次进入页面不执行的问题。再通过activated()解决再次进入当前页不执行的问题。
onLoad() {
this.getDeptList().then(() => {
this.getDeptSonList();
});
},
activated() {
this.deptSonList = [];
this.getDeptSonList();
// });
},