vue 路由映射到相同组件,crated只执行一次解决方法

项目中遇到过很多次这种情况,路由不同,但是映射到的组件是相同的,这种情况大部分是用来根据角色显示不同的信息的,比如如下这种情况

项目申请页面

 项目审核页面

 显示的大部分内容相同,只有一些操作按钮不同。

路由设置是这样

 路由地址是不同的,但是组件是同一组件,如果只是这样写的话,先点击项目申请,在点击项目审核,组件中created只会执行一次,如果是在created中调用刷新table方法,或者是显示或隐藏按钮方法,第二次点击组件,都不会在执行。

解决方法:

监听路由

  watch:{
    '$route.fullPath':{
      handler(val){
        console.log(val)
        if(val=='/project/apply'){
           //项目申请要做的操作
          this.queryType='项目申请'
        }else{
            //项目审核要做的操作
          this.queryType='项目审核'
        }
        if(this.$refs.table != undefined){
          this.$refs.table.refresh(true)
        }
      },
        //代表watch里面声明了之后会立马执行handler里面的函数
      immediate:true
    }
  }

在监听到路由变化之后,会执行handler中 相应的方法,这样接可以解决created方法只执行一次的问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值