vue-router query params 常规传值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-router query params 常规传值相关的知识,希望对你有一定的参考价值。

CodePen: vue-router pass by value

<div id="app"></div>
div {
  cursor: pointer;
}
var Main = Vue.extend({
  template: `<div @click="goSub">main click me</div>`,
  mounted() { // 重新渲染后显示传值内容
    var info = this.$route.query.info
    if(info) alert(info)
  },
  methods: {
    goSub() {
      this.$router.push({
        path: ‘sub‘,
        name: ‘sub‘, // router 声明加入 name 属性
        params: {info: ‘transmit is params‘} // params 方式, 传值不会附属在地址后面, 但是需要额外配置
      })
    }
  }
})

var Sub = Vue.extend({
  props: [‘info‘], // 将 params 植入 props 需要在 router 中声明 name 与 props 相关
  template: `<div @click="goMain">sub click me</div>`,
  mounted() { // 重新渲染后显示传值内容
    alert(this.info)
    // alert(this.$route.params.info) // 这样是正常获取, 上面的是在本组件声明 props 接入对应 params 同时在 router 声明 props: true
  },
  methods: {
    goMain() {
  this.$router.push({
    path: ‘main‘,
    query: {info: ‘transmit is query‘} // query 方式, 传值会附属在地址 hash 后面
  })
    }
  }
})

var router = new VueRouter({
  routes: [
    {path: ‘/main‘, component: Main, alias: ‘/‘},
    {path: ‘/sub‘, name: ‘sub‘, component: Sub, props: true} // 加入 name 属性使用 params 模式传值; 声明 props: true 在可以使用 this.xxx 的方式直接使用 params 传值
  ]
})

new Vue({
  el: ‘#app‘,
  router,
  template: ‘<router-view />‘
})

CodePen: vue-router pass by value

以上是关于vue-router query params 常规传值的主要内容,如果未能解决你的问题,请参考以下文章

原vue-router中params和query的区别

关于vue-router 中参数传递的那些坑(params,query)

vue-router传参的坑(query和params)

vue-router路由传参之query和params

vue-router中query和params传参(接收参数)以及$router$route的区别

vue-router 路由动态传参 query和params的区别