vue项目打包上传到服务器使用路由跳转不执行created、mounted方法,页面不刷新,本地是正常的

315 阅读1分钟

今天在使用elementui的 Tree组件时遇到了这样一个bug,我服务器点击路由跳转携带参数到新页面,但是created方法只在第一次进来的时候运行,除了第一次,其他都不执行,本地点击每次都会执行created方法,自己研究了一下

产生原因

vue-router的切换不同于传统的页面的切换,路由之间的切换,其实就是组件之间的切换,不是真正的页面切换,这也会导致一个问题,就是引用相同组件的时候,由于参数不一样不会覆盖原打开的页面而会打开一个重复的页面,只是页面的数据不一样

解决方法

  1. 在watch中设置路由通过监听$route.query.id这个参数
watch: {
  '$route.query.id' (to, from) { //监听路由是否变化
      if(this.$route.path == '/offer/configUpdate'){//仅在当前页面生效
         if(to != from){
            //要加载的数据
         }
      }
   }
}
  1. 使用activated()方法
activated(){
    //要加载的数据
}