当前位置:首页 > 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 中实现递归组件通常用于处理树形结构数据,例如菜单、评论列表或文件目录。以下是实现递归组件的关键步骤: 定义递归组件 递归组件需要设置 name 属性,以便在模…

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue mvvm实现

vue mvvm实现

Vue MVVM 实现原理 Vue.js 是一个基于 MVVM(Model-View-ViewModel)模式的框架,其核心是通过数据绑定和响应式系统实现视图与数据的自动同步。以下是 Vue 实现 M…

vue 实现平面

vue 实现平面

Vue 实现平面的方法 在 Vue 中实现平面效果通常涉及 CSS 样式、UI 框架或自定义组件的使用。以下是几种常见方法: 使用 CSS 样式 通过 Vue 的样式绑定或 scoped CSS 为…

vue实现按钮

vue实现按钮

Vue 实现按钮的方法 使用原生 HTML 按钮 在 Vue 模板中可以直接使用 HTML 的 <button> 元素,通过 v-on 或 @ 绑定点击事件。 <template&…

vue框架实现

vue框架实现

Vue 框架实现方法 Vue 是一个渐进式 JavaScript 框架,适用于构建用户界面。以下是一些核心实现方法,涵盖基本使用、组件化、状态管理和优化技巧。 基本项目搭建 使用 Vue CLI…