vue

vue路由传参的6种方式

2024-07-28  本文已影响0人  你这个锤子

Vue路由传参有以下6种方式:

// 路由定义
{
  path: '/user/:id',
  name: 'user',
  component: User
}
// 传递参数
this.$router.push({ name: 'user', params: { id: 123 } })
// 接收参数
this.$route.params.id
// 路由定义
{
  path: '/user',
  name: 'user',
  component: User
}
// 传递参数
this.$router.push({ name: 'user', query: { id: 123 } })
// 接收参数
this.$route.query.id
// 路由定义
{
  path: '/user',
  name: 'user',
  component: User,
  meta: {
    title: 'User Profile',
    requiresAuth: true
  }
}
// 获取参数
this.$route.meta.title

命名路由(Named Routes):
在路由定义中给每个路由设置一个唯一的名称,然后通过名称来传递参数。例如,定义一个带有命名路由的路由:

// 路由定义
{
  path: '/user',
  name: 'user',
  component: User
}
// 传递参数
this.$router.push({ name: 'user', params: { id: 123 } })
// 接收参数
this.$route.params.id

在组件中可以通过router.push或<router-link>的to属性来传递参数:this.router.push({ name: 'user', params: { id: 123 } })

// 路由定义
{
  path: '/user',
  component: User,
  props: true
}

// 接收参数
props: ['id']

在组件中可以通过props来接收参数:props: ['id']

Vuex状态管理:
使用Vuex来管理应用程序的状态,并在不同组件之间共享参数。通过在Vuex store中定义和更新参数,然后在组件中使用mapState或mapGetters来获取参数的值。

// Vuex store定义
const store = new Vuex.Store({
  state: {
    userId: null
  },
  mutations: {
    setUserId(state, id) {
      state.userId = id
    }
  }
})
// 设置参数
store.commit('setUserId', 123)
// 获取参数
this.$store.state.userId

原文链接

上一篇 下一篇

猜你喜欢

热点阅读