当前位置:首页 > VUE

vue如何实现参数传递

2026-01-21 21:11:21VUE

路由参数传递

通过路由配置动态参数,在组件中通过this.$route.params获取。例如定义路由{ path: '/user/:id', component: User },访问/user/123时可通过this.$route.params.id获取值123。

<router-link>中传递参数:

<router-link :to="{ name: 'user', params: { id: 123 }}">User</router-link>

props解耦路由参数

在路由配置中开启props: true,可将路由参数自动注入为组件props:

const router = new VueRouter({
  routes: [
    { path: '/user/:id', component: User, props: true }
  ]
})

组件内直接通过props接收:

export default {
  props: ['id']
}

查询参数传递

通过$route.query获取URL问号后的参数,如/user?id=123

<router-link :to="{ path: '/user', query: { id: 123 }}">User</router-link>

组件内通过this.$route.query.id获取。

编程式导航传参

使用router.push()时传递参数:

this.$router.push({
  name: 'user',
  params: { id: 123 },
  query: { plan: 'premium' }
})

父子组件通信

父组件通过v-bind传递props:

<child-component :message="parentMsg"></child-component>

子组件声明props接收:

export default {
  props: ['message']
}

子父组件通信

子组件通过$emit触发事件:

this.$emit('update', newValue)

父组件监听事件:

<child-component @update="handleUpdate"></child-component>

事件总线跨组件通信

创建事件中心:

export const eventBus = new Vue()

组件A发送事件:

eventBus.$emit('eventName', data)

组件B监听事件:

eventBus.$on('eventName', (data) => {})

Vuex状态管理

适合复杂应用的状态管理,通过store共享数据:

// 存储
this.$store.commit('mutationName', payload)

// 获取
this.$store.state.moduleName.data

provide/inject

祖先组件提供数据:

export default {
  provide() {
    return {
      sharedData: this.sharedValue
    }
  }
}

后代组件注入使用:

export default {
  inject: ['sharedData']
}

$attrs/$listeners

传递未声明的props和事件:

vue如何实现参数传递

<child-component v-bind="$attrs" v-on="$listeners"></child-component>

分享给朋友:

相关文章

vue底层如何实现

vue底层如何实现

Vue 底层的核心实现机制 Vue 的底层实现主要围绕响应式系统、虚拟 DOM 和组件化架构展开。以下是关键技术的详细解析: 响应式系统 依赖追踪与发布订阅模式 通过 Object.definePr…

h5页面如何实现

h5页面如何实现

实现H5页面的方法 H5页面是基于HTML5技术的网页,通常用于移动端和响应式设计。以下是实现H5页面的关键步骤和技术要点。 基础结构 使用HTML5的DOCTYPE声明作为页面的起始。HTML5简…

vue如何实现404

vue如何实现404

实现 Vue 404 页面的方法 在 Vue 中实现 404 页面通常需要结合路由配置和动态路由匹配。以下是几种常见方法: 使用通配符路由匹配 在 Vue Router 配置中,可以通过 * 通配符…

vue如何实现confirm

vue如何实现confirm

Vue 实现 Confirm 弹窗的方法 在 Vue 中实现确认弹窗(Confirm)可以通过多种方式,以下是几种常见的方法: 使用浏览器原生 confirm 最简单的实现方式是直接调用浏览器的原生…

vue如何实现拖拽

vue如何实现拖拽

实现拖拽的基本方法 在Vue中实现拖拽功能通常使用HTML5的Drag and Drop API或第三方库如vuedraggable。以下是两种方法的详细说明。 使用HTML5 Drag and D…

vue 分页如何实现

vue 分页如何实现

实现 Vue 分页的几种方法 使用 Element UI 分页组件 Element UI 提供了现成的分页组件 el-pagination,适合快速集成。安装 Element UI 后,直接引入组件并…