当前位置:首页 > 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')

移除数据:

vue实现页面传参

localStorage.removeItem('userToken')

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

相关文章

vue实现视窗

vue实现视窗

Vue 实现视窗功能 在 Vue 中实现视窗功能通常涉及监听浏览器窗口大小变化、响应式布局或创建自定义弹窗组件。以下是几种常见实现方式: 监听浏览器窗口大小变化 使用 Vue 的 mounted 和…

实现vue模版

实现vue模版

Vue 模板的基本结构 Vue 模板基于 HTML 语法,通过 Vue 的指令和插值实现动态渲染。以下是一个基础模板示例: <template> <div id="…

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <ul&g…

vue监听实现

vue监听实现

Vue 监听实现方法 在 Vue 中可以通过多种方式实现监听数据变化或事件触发,以下是常见的几种方法: 使用 watch 选项 watch 是 Vue 提供的核心功能之一,用于观察和响应 Vue 实…

vue实现发帖

vue实现发帖

使用 Vue 实现发帖功能 前端实现 创建发帖表单组件,包含标题和内容输入框,以及提交按钮。使用 v-model 绑定表单数据。 <template> <div>…

vue实现 treegrid

vue实现 treegrid

Vue 实现 TreeGrid 的方法 使用现成组件库 Element UI、Ant Design Vue 等流行组件库提供了现成的 TreeTable/TreeGrid 组件,可直接使用。 Ele…