当前位置: 首页 > 网络应用技术

[源代码分析]如何挖掘提供 /注入如何与未来组件进行交互

时间:2023-03-07 22:02:29 网络应用技术

  大家好,在以前的VUE2组件的交互方法中,我们整理了几种在VUE中的组件之间交互的方法。交互方法之一是父组件和后代组件之间的交互作用-proivde/inject。那么如何在父组件中的所有后代组件中访问它?实施原则是什么?接下来,我们以VUE2为示例来从源代码级别进行整理。

  提供/注入的源代码中只有70行代码,主要分为三个函数:initerProvide,initiNjects和resolveInject。让我们看一下这三个功能所做的工作!

  Initprovide方法非常简单,只有8行代码。核心想法是在VUE实例中添加_保护属性。该值是由父组件提供的。

  如上所述,Initprovide功能是源代码。此函数接收VM参数。VM实际上是VUE的实例。VUE实例上有一个$选项属性。如果提供了父组件提供,则提供的提供将悬挂在$ options属性上。

  initiNjects方法也很简单。主要功能是劫持注入的每个属性(使其成为响应数据)。

  此方法还接收一个VM参数(VUE的实例)。如果在后代组件中定义了注射属性,则它也将悬挂在VUE实例的$ options符号上。

  ResolveInject是此共享中相对复杂的功能,它也是数据交互的核心,可以实现父组件和后代组件的数据交互。LET首先查看其源代码

  如上所述,该函数接收两个参数,一个是在外部传递的任何类型的类型中的注入,另一个是VUE的实例VM。

  在今天的共享中,我们根据VUE中的源代码简要梳理了项目/注射/注入的实施原则。通过研究源代码,我们知道提供/注入如何实现父组件与后代组件的相互作用。这段时间。

  原始:https://juejin.cn/post/7103036356682579999