因为是用element-ui渲染出来的tree菜单,

每个节点完成路由只能使用编程式导航(在函数里触发路由)

并传参需要组件需要获取的数据

使用this.$router.push()

this.$router.push({name: '你路由的名字', query: {id: '可以是变量'}})


获取的方法为

this.$route.query.id


文档中提到

提醒一下,当使用路由参数时,例如从 /user/foo 导航到 user/bar,原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。

复用组件时,想对路由参数的变化作出响应的话,你可以简单地 watch(监测变化) $route 对象:

 

watch: { '$route' (to, from) { // 对路由变化作出响应... } }

 

也就是说当你把参数绑定到节点里后

<p>{{params}}</p>

 

data () {
      return {
        params: this.$route.query.id
      }
    }

当参数发生变化时,你需要

watch: {
      '$route' (to, from) {
        this.params = this.$route.query.id
      }
    }

不然p标签里的值不会发生改变

 

 

Logo

前往低代码交流专区

更多推荐