vue路由第二次进入页面created和mounted不执行问题及解决

2022-12-09

这篇文章主要介绍了vue路由第二次进入页面created和mounted不执行问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

目录
  • vue路由第二次进入页面created和mounted不执行
  • vue created、mounted等方法整理
  • 总结

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){}
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持北冥有鱼。

《vue路由第二次进入页面created和mounted不执行问题及解决.doc》

下载本文的Word格式文档,以方便收藏与打印。