Vue的动态路由

我对vue中Router的解释,可以到https://blog.csdn.net/Gbing1228/article/details/103556607了解

一、什么是动态路由?

例如:点击不同的歌手进入到不同的歌手详情页

虽然每个请求的id不同,但是都会导航到同一个组件中,在配置路由的时候就不能写死。在vue-router中,动态路由由“:”开头。

 <router-link to="/user/123">User123</router-link>

 <router-link to="/user/456">User456</router-link>
 {
   path: "/user/:id",
   component: user
 }

二、在动态路由中怎么获取动态部分?

在vue-router实例注入到根实例后,用this.$router来获取router实例,他有一个params属性,来获取这个动态部分。他是一个对象,属性名就是路径中定义的动态id,属性值就是router-link中to的部分。在使用vuex时,组件要想获取state中的状态,使用computed属性,动态路由获取也是一样的用compute属性

computed: {
            dynamicSegment () {//定义一个computed属性来获取动态router
                return this.$route.params.id
            }
        }

三、动态路由的来回切换

动态路由来回切换时,由于他们指向同一个组件,vue并不会销毁原先创建好的这个组件,而是复用这个组件。第一次点击user/123时,vue就把对应的user组件渲染出来了,在user/123、user/456切换时,user组件就不会发生变化了,组件的生命周期就不管用了。这时,需要用watch来监听$router的变化

<script>
    export default {
        data () {
            return {
                dynamicSegment: ''
            }
        },
        watch: {
            $route (to,from){
                // to表示的是你要去的那个组件,from 表示的是你从哪个组件过来的,
                //它们是两个对象,你可
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值