当前位置:首页 > VUE

vue实现页面传参

2026-01-22 17:46:30VUE

路由传参(动态路由)

在路由配置中定义动态参数,通过this.$route.params获取参数。

路由配置示例:

{
  path: '/user/:id',
  component: User
}

跳转时传参:

this.$router.push('/user/123')

接收参数:

const userId = this.$route.params.id

query传参

通过URL的查询字符串传递参数,使用this.$route.query获取。

跳转时传参:

this.$router.push({
  path: '/user',
  query: {
    name: 'John',
    age: 30
  }
})

接收参数:

const name = this.$route.query.name
const age = this.$route.query.age

props传参

将路由参数作为组件的props传递,需要在路由配置中开启props。

路由配置:

{
  path: '/user/:id',
  component: User,
  props: true
}

组件接收:

export default {
  props: ['id']
}

编程式导航传参

使用this.$router.push的state参数传递对象(Vue Router 4+)。

跳转时传参:

this.$router.push({
  name: 'User',
  state: {
    userInfo: {
      name: 'Alice',
      age: 25
    }
  }
})

接收参数:

const userInfo = history.state.userInfo

事件总线传参

创建全局事件总线实现任意组件间通信。

创建事件总线:

// eventBus.js
import Vue from 'vue'
export const EventBus = new Vue()

发送参数:

import { EventBus } from './eventBus'
EventBus.$emit('updateUser', { name: 'Tom' })

接收参数:

import { EventBus } from './eventBus'
EventBus.$on('updateUser', (data) => {
  console.log(data.name)
})

Vuex状态管理

通过全局状态管理实现跨组件数据共享。

store定义:

const store = new Vuex.Store({
  state: {
    user: null
  },
  mutations: {
    setUser(state, payload) {
      state.user = payload
    }
  }
})

提交数据:

this.$store.commit('setUser', { name: 'Lisa' })

获取数据:

const user = this.$store.state.user

localStorage/sessionStorage

通过浏览器本地存储实现页面间数据持久化传递。

存储数据:

localStorage.setItem('userToken', 'abc123')

获取数据:

const token = localStorage.getItem('userToken')

移除数据:

localStorage.removeItem('userToken')

vue实现页面传参

标签: 页面vue
分享给朋友:

相关文章

vue实现列表显示

vue实现列表显示

Vue 实现列表显示的方法 在 Vue 中实现列表显示通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式。 基本列表渲染 通过 v-for 指令遍历数组,动态生成列…

vue实现上移下移插件

vue实现上移下移插件

实现上移下移功能的 Vue 插件 在 Vue 中实现列表项的上移和下移功能,可以通过自定义指令或组件封装的方式完成。以下是两种常见实现方式: 基于数组操作的通用方法 通过操作数组索引实现元素位置交…

vue实现矩阵

vue实现矩阵

Vue 实现矩阵的方法 在 Vue 中实现矩阵操作可以通过多种方式完成,以下是一些常见的方法: 使用二维数组表示矩阵 矩阵可以用二维数组来表示,每个元素对应矩阵中的一个值。在 Vue 的 data…

vue实现点击

vue实现点击

实现点击事件的基本方法 在Vue中实现点击事件可以通过v-on指令或@简写方式绑定。以下是常见的点击事件绑定方法: <template> <button v-on:click…

vue实现跑车

vue实现跑车

Vue 实现跑车动画效果 使用 Vue 结合 CSS 动画可以实现跑车在屏幕上移动的效果。以下是一个完整的实现方案: 创建 Vue 组件结构 <template> <div…

vue交互实现

vue交互实现

Vue 交互实现方法 Vue.js 提供了多种方式实现用户交互,包括事件处理、表单绑定、动态渲染等。以下是常见的交互实现方法: 事件处理 通过 v-on 或 @ 指令绑定事件,触发方法或直接执行表…