pls-00302: 必须声明 组件_父子组件的通信

4b6732a740331854c31e18547b5108cd.png

原创:牛津小马哥web前端工程师陈小妹妹。

6b3710e1269ad156de0f753e4faf3188.png

在前端vue框架中,我们常常使用多个页面组成一个组件来创建项目。每个组件都有其自己的功能,基于组件的体系结构使开发和维护应用程序变得容易。在开发过程中,您可能会遇到需要与其他组件共享数据的情况。在本文中,我们将学习实现组件之间通信的常用方法。

Vue.js允许通过以下方式进行组件通信:

7c8ea902dd29da1521c2f790dcf3c9fc.png

1.父子组件沟通props:

efd1c139ef72ea9421242b4ac3ad16ab.png

在这种类型的通信中,父级通过在组件声明中添加参数将数据传递给子级。

b7a6a603da7ab9341963d8ed2b068b39.png

父组件

考虑上面的代码。在这里,我们在子组件声明中添加了一个参数“ message ”。为了动态设置值,我们必须在参数之前添加“ ”。

5502221c226333886a61802f51e5dc32.png

子组件

在子组件中,我们添加了输入参数“ message ”以及数据类型“ String ”。

道具仅提供父母与孩子之间的单向交流,反之亦然。道具中属性/参数的值的任何更改都直接反映在子级中。

但是,如果要在更改值时在子组件内部调用方法,该怎么办。

7f57d0a9cdad7f0c9c964d85a08c737f.png

props变更时触发动作

在上面的示例中,我们添加了一个属性“ watch ”,在其中声明了用于调用callMe()方法的函数。这将确保在更改值时将调用callMe()函数。

2.子组件向父组件通信:$emit

b561e925573bdc9b15b08d07a0adc31a.png

在这种类型的交流中,事件可确保孩子与父母之间的交流,并且孩子是通过事件向父母传值。

在子组件中,我们编写如下代码:

960abb06964395b1d584846788e61853.png

可以看到,在“ ChildComponent ”中,我们触发一个事件,该事件发出一条消息,其父级可以使用“ v-on: ”指令获取此消息。如下:

5544202845dcfd1092fdc64720031014.png

在事件中,参数是可选的。您可以传递“n”个参数。当子组件触发事件“messageFromChild()”时,

将调用“childMessageReceived()”函数。

除了父子组件的通信,我们将在下一篇讲解Vue的中央事件总线。感谢阅读~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值