vue-router编程式路由

2022-06-24  本文已影响0人  tutututudou

让图片、按钮都可以点击跳转,使用$router这个API

每个组件都能看到$router这个API的

在button、图片添加点击事件,点击事件里调用$router这个API

<ul>
    <li v-for="m in msg" :key="m.id">
    <button @click="hanlderPush(m)">push</button>
    <button @click="handlerReplace(m)">replace</button>
    </li>
   </ul>
methods:{
   // m是for循环的msg的值 v-for="m in msg",是实参,hanlderPush(x),x是形参
   hanlderPush(x){
    //  路由命名方式
    // this.$router.push这个就相当于<router-link :to="{name:'detail',params:{x:m.id,y:m.title}}">
    // 只不过这是写在button事件里,其它的标签也可以写成事件的方式进行跳转
    //{}里面的都和to一样的规则写法
     this.$router.push({ path:'/home/message/detail', query:{id:x.id,title:x.title}})
    //  http://localhost:8080/#/home/message/detail?id=004&title=%E6%B6%88%E6%81%AF4
   },
   handlerReplace(y){
    //  this.$router.replace也可进行跳转,指定跳到哪个路由组件,携带query参数
     this.$router.replace({name:'detail',query:{id:y.id,title:y.title}})
   }
 }
   <button @click="forward">前进</button>
    <button @click="back">后退</button>
    <button @click="go">定点步数</button>
...
  methods:{
    // 和浏览器的前进后台历史记录的按钮一样功能
    forward(){
      this.$router.forward()
    },
    back(){
      this.$router.back()
    },
    // 可以自定义跳转几步,正数是前进,复数是后台
    go(){
      //前进2步
      // this.$router.go(1)
      //后台2步
      this.$router.go(-1)
    }
  },

这个是replace可以应用在无痕浏览

上一篇下一篇

猜你喜欢

热点阅读