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

vue如何实现参数传递

<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发送事件:

vue如何实现参数传递

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和事件:

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

分享给朋友:

相关文章

vue如何实现两栏布局

vue如何实现两栏布局

使用Flexbox实现两栏布局 Flexbox是CSS3中强大的布局方式,可以轻松实现两栏布局。在Vue中可以直接在组件的style标签中使用。 <template> <div…

vue如何实现增删

vue如何实现增删

使用 Vue 实现增删功能 在 Vue 中实现增删功能通常涉及数据绑定、事件处理和列表渲染。以下是具体实现方法: 数据定义与初始化 在 Vue 组件的 data 选项中定义数组来存储需要操作的数据…

java如何实现跨平台

java如何实现跨平台

Java实现跨平台的原理 Java通过“一次编写,到处运行”的设计理念实现跨平台能力。其核心机制包括: Java虚拟机(JVM) Java源代码编译为字节码(.class文件),由JVM解释执行。不…

react如何实现分页

react如何实现分页

实现分页的基本思路 在React中实现分页通常需要以下几个核心步骤:管理当前页码状态、计算分页数据、渲染分页控件。以下是一个典型的分页实现方法。 管理分页状态 使用React的useState钩子来…

java是如何实现跨平台的

java是如何实现跨平台的

Java 跨平台的实现原理 Java 实现跨平台的核心机制基于 “一次编写,到处运行” 的理念,主要通过以下技术实现: 字节码与 JVM Java 源代码编译后生成字节码(.class 文件),而非…

如何实现vue验证

如何实现vue验证

Vue 表单验证的实现方法 Vue 表单验证可以通过多种方式实现,包括内置指令、第三方库和自定义验证逻辑。以下是几种常见的方法: 使用 Vue 内置指令进行基础验证 Vue 提供了 v-mod…