admin 管理员组

文章数量: 1086019


2024年4月13日发(作者:crashrpt应用程序错误)

vue父组件向子组件传值的三种方式

(实用版)

目录

1.父子组件传值的三种方式

2.第一种方式:父子组件通过事件通信

3.第二种方式:父组件通过 props 向子组件传递数据

4.第三种方式:子组件通过$emit 向父组件传递数据

5.总结

正文

在 中,父子组件之间的数据传递是非常常见的场景。下面我

们来详细探讨一下在 Vue 中,父组件向子组件传值的三种方式:

1.第一种方式:父子组件通过事件通信

这种方式是基于事件总线的,父组件通过监听子组件触发的事件来获

取子组件的数据。具体操作如下:

- 父组件模板中,通过`v-on`或`@`指令监听子组件触发的事件,如:

`

@child-say="handleChildSay">`。

- 父组件中定义事件处理函数,如:`methods:

{ handleChildSay(data) { (data); } }`。

- 子组件中,通过`this.$emit`触发事件,并传递数据,如:

`this.$emit("child-say", "Hello from child component!")`。

2.第二种方式:父组件通过 props 向子组件传递数据

这种方式是基于 Vue 的组件传参机制的,父组件通过在子组件标签

上绑定属性来传递数据。具体操作如下:

第 1 页 共 2 页

- 父组件模板中,通过`v-bind`指令将数据绑定到子组件的属性上,

如:

``。

- 子组件中,定义`props`选项,以便接收父组件传递的数据,如:

`props: { message: String }`。

- 在子组件中,可以通过`e`访问从父组件传递过来的数

据。

3.第三种方式:子组件通过$emit 向父组件传递数据

这种方式与第一种方式类似,不过这次是子组件主动向父组件传递数

据。具体操作如下:

- 子组件中,通过`this.$emit`触发事件,并传递数据,如:

`this.$emit("child-say", "Hello from child component!")`。

- 父组件模板中,通过`v-on`或`@`指令监听子组件触发的事件,如:

`

@child-say="handleChildSay">`。

- 父组件中定义事件处理函数,如:`methods:

{ handleChildSay(data) { (data); } }`。

综上所述,在 Vue 中,父组件向子组件传值的三种方式分别是:父

子组件通过事件通信、父组件通过 props 向子组件传递数据、子组件通

过$emit 向父组件传递数据。

第 2 页 共 2 页


本文标签: 组件 方式 事件 触发 传递数据