vue路由第二次进入页面created和mounted不执行问题及解决
她和海水一样咸 人气:0vue路由第二次进入页面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){} }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容