vue路由第二次进入页面created和mounted不执行问题及解决
短信预约 -IT技能 免费直播动态提醒
vue路由第二次进入页面created和mounted不执行
因为路由中created和mounted默认会进行缓存的,除非在router.js中配置:keepAlive: false;
这样是把这个页面的路由缓存给关闭了;true为开启,false为关闭;
meta: {
keepAlive: false
},
还有一种办法就是使用activated钩子就可以了
1、将要处理的方法,放在activated函数中
总结
1、router-view路由跳转使用keep-alive方式
2、created和mounted只执行一次
3、使用activated钩子,每次进入页面执行一次
vue created、mounted等方法整理
created
:html加载完成之前,执行。执行顺序:父组件-子组件mounted
:html加载完成后执行。执行顺序:子组件-父组件methods
:事件方法执行watch
:watch是去监听一个值的变化,然后执行相对应的函数。computed
:computed是计算属性,也就是依赖其它的属性计算所得出最后的值
export default {
name: "draw",
data(){ // 定义变量source
return {
source:new ol.source.Vector({wrapX: false}),
}
},
props:{ //接收父组件传递过来的参数
map:{
//type:String
},
},
mounted(){ //页面初始化方法
if (map==map){
}
var vector = new ol.layer.Vector({
source: this.source
});
this.map.addLayer(vector);
},
watch: { //监听值变化:map值
map:function () {
console.log('3333'+this.map);
//return this.map
console.log('444444'+this.map);
var vector = new ol.layer.Vector({
source: this.source
});
this.map.addLayer(vector);
}
},
methods:{ //监听方法 click事件等,执行drawFeatures方法
drawFeatures:function(drawType){}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341