vue动态路由

1 动态路由 (监听路由变化的两种写法)

方法一:

const List = {
    template: `
      <div>{{this.$route.params}}商品</div>
    `,
    created(){
      console.log(this.$route.params);
    },
    watch:{
      $route(){
        console.log(this.$route.params);
      }
    }
}

方法二:

const List = {
  template: `
        <div>{{this.$route.params}}商品</div>
      `,
  watch:{
    '$route': {
      handler: function(){
        console.log(this.$route.params);
      },
      immediate: true  //(立刻)
    }
  }
}

注意:使用immediate: true;这个属性,默认为false。其值代表是否以当前的初始值执行handler的函数。

2.获取路由参数的其他实现($route.query)

<router-link to="/demo?id=2">去往id为2的链接</router-link>
<router-link :to="{path: '/demo', query:{id: 3}}">去往id为3的链接</router-link>
<router-link :to="{name: 'demo', query:{id: 4}}">去往id为3的链接</router-link>
<script>
  const routes = [
    {
      name:'demo',
      path: '/demo',
      component: Demo
    }
  ]

  const router = new VueRouter({
    routes
  })
  
  const app = new Vue({
    el: '#app',
    router
  })

  const Demo = {
      template: `
        <div>{{$route.query}}</div>
      `,
      methods: {
        fn (to, from){
          // to表示新的路由信息对象 from表示旧的路由信息对象
          console.log(to.query)
        }
      },
      watch: {
        '$route': {
          handler: 'fn',
          immediate: true
        }
      }
    }
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值