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

跳转时传参:

vue实现页面传参

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状态管理

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

vue实现页面传参

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 实现简单弹窗 组件基础结构 创建一个名为 Modal.vue 的组件文件,包含模板、脚本和样式部分: <template> <div class="modal-…

vue实现防抖节流

vue实现防抖节流

Vue 中实现防抖(Debounce) 防抖的核心是延迟执行函数,在连续触发时取消前一次的调用,只执行最后一次。适用于输入框搜索、窗口大小调整等场景。 方法1:使用 Lodash 的 _.debo…

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

vue请求实现进度条

vue请求实现进度条

实现请求进度条的方法 在Vue中实现请求进度条可以通过多种方式完成,常见的有使用第三方库如axios结合nprogress或自定义进度条组件。以下是几种实现方法: 使用axios和nprogres…

vue实现右下角弹框

vue实现右下角弹框

实现右下角弹框的基本思路 在Vue中实现右下角弹框,通常需要结合CSS定位和Vue的组件化特性。弹框可以通过绝对定位固定在右下角,并通过Vue控制其显示与隐藏。 创建弹框组件 新建一个Vue组件(如…

vue实现分屏

vue实现分屏

Vue 实现分屏的方法 分屏功能通常用于展示多个独立内容区域,以下是几种常见的实现方式: 使用 CSS Grid 布局 通过 CSS Grid 可以轻松创建分屏布局,在 Vue 组件中直接应用样式…