美文网首页
vue路由之间传参的多种方式

vue路由之间传参的多种方式

作者: 谢大见 | 来源:发表于2018-08-03 11:30 被阅读0次

路由组件传参

方式1:使用 $router.params

// 在路由中定义参数
const router = new VueRouter({
  routes: [
    { path: '/user/:id',  name: 'user', component: User }
  ]
})

// 页面a跳转的时候传参
<router-link to="{ path:'/user/123'}">
或者
<router-link to="{ name: 'user', params: { id: 123 }}">User</router-link>
或者
this.$router.push({path: '/user/123'})
或者
this.$router.push({ name: 'user', params: { id: 123 }})




// 在 user 页面中使用参数
<div>User {{ $route.params.id }}</div>
或者
this.$route.params.id

方式2: 使用props

文档: https://router.vuejs.org/zh/guide/essentials/passing-props.html

在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性

使用 props 将组件和路由解耦:

// 定义路由 props
const router = new VueRouter({
  routes: [
    { path: '/user/:id', component: User, props: true },

    // 对于包含命名视图的路由,你必须分别为每个命名视图添加 `props` 选项:
    {
      path: '/user/:id',
      components: { default: User, sidebar: Sidebar },
      props: { default: true, sidebar: false }
    }
  ]
})

// 同方法1,在a页面跳转的时候传参
<router-link to="{ path:'/user/123'}">


// 在路由user组件中使用props接受参数
const User = {
  props: ['id'],
  template: '<div>User {{ id }}</div>'
}

这样你便可以在任何地方使用该组件,可以路由使用,也可以组件嵌套的时候使用,使得该组件更易于重用和测试。

方式3: 通过 vuex

虽然不太推荐,但是也可以通过vuex实现,有点杀鸡用牛刀

// 定义store
import Vuex from 'vuex'
import Vue  from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
    state:{
             id: ''
      },
      mutations:{
           setId(state ,  id) {
                   state.id = id            
             }
        }
})

// 在a页面设置
 this.$store.commit( 'setId' ,(123) )

// 在b页面取
this.$store.state.id 

方式4:使用本地存储,localstorage或者Session Storage

原理很简单,a页面存,b页面取,不推荐

推荐方式2,解耦更通用

相关文章

  • vue路由之间传参的多种方式

    路由组件传参 方式1:使用 $router.params 方式2: 使用props 文档: https://rou...

  • vue 路由传参的三种方式

    vue路由传参方式 params query vuex + sessionStore

  • Vue-Router

    1. 路由配置 默认路由跳转 在 new Router时可用的配置参数: 2.路由传参 Vue路由传参的几种方式 ...

  • vue - 路由带参跳转

    vue路由传参按照传参方式可划分为params传参和query传参; params传参分为在url中显示和影藏参数...

  • 31.vue传参

    1.vue传参 vue传参使用路由传参params,query,或者使用vuex,localStorage,vue...

  • vue-router

    vue传参两种方式 1、对象传参2、路径传参 vue路由两种模式 1、hash模式 onhashchange2、h...

  • 开发之路十五——vue开发笔记

    ps:好记性不如烂笔头,记录开发vue过程中的点滴 1、路由传参(3种方式) params传参(显示参数)需要路由...

  • 几种vue的组件传值方式

    几种vue的组件传值方式 1、路由传参 ①定义路由时加上参数props: true,在定义路由路径时要留有参数占位...

  • nuxt路由及传参

    最近的nuxt项目中经常会用到路由传参,故在此有所总结了下nuxt中传参的方式和vue项目中传参的方式 nuxt ...

  • 20.路由的基本使用

    1.路由的基本使用: 2.路由规则中传参方式: 方式1: 方式2: 3.路由之间的嵌套:

网友评论

      本文标题:vue路由之间传参的多种方式

      本文链接:https://www.haomeiwen.com/subject/kjjyvftx.html