博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue核心技术-20,组件通信-父链和父组件索引
阅读量:2222 次
发布时间:2019-05-08

本文共 835 字,大约阅读时间需要 2 分钟。

一,前言

前面介绍了父子组件通信,使用Bus中央事件总线实现各种组件的通信组件通信的方式还可以用过父链和子组件索引来实现本篇介绍父链和子组件索引如何实现组件通信

二,父链

在子组件中,可以使用this.$parent对组件的父级(父实例或父组件)进行访问父组件也可以通过this.$children访问其下的全部子组件(无限递归直至根实例或最内层组件)

通过一个简单的例子介绍父链的使用:

接收到的数据: {
{ message }}

运行结果:

父链
当点击按钮,通过父链修改父组件数据:
父链2
注意:

虽然Vue提供了通过父链进行操作的功能,但在实际开发中尽量不要使用这种方式修改数据处于耦合考虑,子组件应尽量避免依赖父组件数据,更不应主动修改父组件的数据正常情况下,只有组件自己才能够修改自己的状态,不然组件状态将很难管理和维护对于父子组件最好通过props和$emit进行通信

三,子组件索引

当子组件很多时,通过this.$children遍历找到我们需要的组件实例是一件很困单的事情而且,在组件动态渲染时,顺序并不是固定不变的,这里可以使用Vue提供的子组件索引方法,通过ref属性,为子组件添加唯一索引,通过this.$refs指定名称可直接查找到对应的子组件

通过一个简单的例子介绍子组件索引的使用:

获取的值为: {
{ getMessage }}

运行结果:

子组件索引-初始化
点击按钮,用过子组件索引获取子组件数据,并传递给父组件显示:
子组件索引-获取

通过ref属性直接找到我们需要操作的子组件并完成数据更新

注意:

$refs只在组件渲染完成后才填充,并且是非响应式的,因此应皮面在模板或计算属性中使用$refs

四,结尾

到这里全部组件通信的方式就简单介绍完毕了下一篇开始介绍slot插槽
你可能感兴趣的文章
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
Spring源码剖析8:Spring事务概述
查看>>