美文网首页
web前端开发中父链和子链方式实现通信

web前端开发中父链和子链方式实现通信

作者: Eric_V | 来源:发表于2019-12-02 19:57 被阅读0次

父链和子链是一种父子间组件通信的新方式。

概念

父链:

在子组件中,使用this.$parent可以直接访问该组件的父实例或组件,【类似于原生或者jquery中获取父节点的方式,但是并没有操作dom】

子链:

在父组件中,使用this.$children访问它所有的子组件,当子组件较多时可以通过子组件索引名称来实现查找。【类似于原生或者jquery中获取子节点的方式】

说明

1. this.$parent与this.$children可以无限的向上或向下访问,直到根实例或最内层组件。

2. 然后由于子组件可以有多个,this.$children获取子组件时,获取的是一个数组,要给其下标才能获取到具体的某一个子组件。

3. 这时操作起来不是很方便,此时我们就可以使用:子组件索引的方式实现获取具体子组件

父链实例

子链实例

子组件索引实例

给子组件定义索引时,需要在子组件调用标签上使用ref属性定义,如:

然后在父组件中获取时,通过this.$refs.refName的方式获取具体的子组件,然后.$refs只在组件渲染完成后才会充填。

this.$refs.sub2.submes = "来自父组件的信息--sub2";

由于$refs是非响应式的,所以他仅仅作为直接访问子组件的一个应急方案。应当避免在计算属性或者模板中使用$refs.

父链和子链总结

1. 父链与子链的父子组件通信方式非常相似与传统的dom节点通信方式,当然他仍然没有去操作dom节点,他操作的仍然是数据。

2. 不过这种方式会让父子组件间出现 紧耦合 很难看清他们的状态,因为他随时可能会被任意组件修改,所以这种方式并不推荐!

3. 父子组件通信最好还是使用props与【自定义事件+$emit】的方式来通信。

4. 跨级组件间的通信还是使用中央事件总线的方式实现通信。【bus.$emit(),bus.$on()】

相关文章

  • web前端开发中父链和子链方式实现通信

    父链和子链是一种父子间组件通信的新方式。 概念 父链: 在子组件中,使用this.$parent可以直接访问该组件...

  • Vue组件间的通信

    子传父:通过events($emit);通过父链 / 子链通信($parent / $children);ref也...

  • vue面试题

    1、组件间怎么传值,具体说说代码怎样实现 子传父:子向父是通过 events($emit);通过父链 / 子链也可...

  • VUE面试总结

    1、组件间怎么传值,具体说说代码怎样实现 子传父:子向父是通过 events($emit);通过父链 / 子链也可...

  • 父链 和 子链

    父链:this.$parent $parent 属性可以用来从一个子组件访问父组件的实例。它提供了一种机会,可以在...

  • JS继承

    JS继承的几种实现方式 继承是指子类继承父类的属性和方法,要实现继承,首先我们需要有一个父类 原型链继承 原型链继...

  • 区块链学习之侧链

    一、什么是侧链 侧链是平行于主链的区块链,本质上是为了实现跨链通信,实现链与链之间资产和状态的转移。其基础和核心机...

  • 墨客MOAC大事记

    2019.1.3,墨客女娲1.06版实现母链和子链原子跨链 2019.1.3, 烨链科技成功实现MOAC(墨客)子...

  • React-组件之间的通信

    在开发过程中,经常会遇到父组件和子组件之间相互通信,React子组件和父组件通信包括以下几个方面: 子组件向父组件...

  • vue Bus总线

    vue中我们经常遇到组件之间的通信,通常的通信方式有 父 → 子、子 → 父、兄弟组件 之间的通信。通常处理方式...

网友评论

      本文标题:web前端开发中父链和子链方式实现通信

      本文链接:https://www.haomeiwen.com/subject/vgnfgctx.html