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

VUE2和VU3组件通信方法摘要

时间:2023-03-08 01:58:05 网络应用技术

  我们都知道,Vue作为一个低级别的低阈值进入前端 - 端框架,是组件的核心开发。VUE由多个组件形成,组件是其本质和强度。其他,这意味着不同组件之间的数据不能相互共享。

  但是,在实际项目开发中,我们通常需要其他组件的数据,为此,我们存在组件通信的问题。先前组件之间的关系:父亲和儿子,兄弟和儿子,兄弟和的不同选择的数据传输方法后代也不同。让我们今天做出摘要。

  父组件到子组件值

  在父组件中介绍子组件并绑定afterdata自定义属性

  使用道具接收子组件中父组件传递的数据。

  由于具有VUE机制,子类无法直接修改父组件传输的值,否则,如果可以更改,父组件的值将“污染”。

  但是,如果要修改子组件中父组件的值父亲数据的数据。

  传递到父组件传递值

  使用方案:此时,当一般组件更改内部数据时,请告知父部分数据。

  兄弟的先前价值

  在子组件B中接收变量和绑定触发事件B

  当父组件接收组件B的更改名称事件时,它将执行EditName事件并修改名称的数据。使用响应机制,父组件将将最新名称价值传递给组件A。组件A渲染最新名称价值

  直到今天,组件B的更改已传达数据以通过父组件A将数据完成到组件A

  此文件是在需要组件通信的组件中引入的

  在bus.js文件中还引入了另一个组件,以通过$ on Monitor Event回电

  通过引入BUS.JS文件,EventBus获得了VUE实例,实际上与以前的方式相同。

  直接访问组件实例

  从这个数字可以看出。$ parent可以获取父组件的方法,数据的数据等,并且可以直接使用和执行。

  如您所见,父组件在登录()生命周期中获得了子 - 组件实例,并且获得的实例是一个数组表单

  因此,您可以获得一个组件实例,并调用组件方法和数据

  这样,父组件可以直接使用“采集子”的实例

  多组件或深入组件通信

  例如,如果我们具有这样的层次结构:

  然后我们的提供/注入可以用场

  在这一点上,ProvidEname的变量可以提供给其下的所有子组件,包括Great -Grandson,Grandson组件等。您只需要使用注入

  该方法的优点是:

  VUEX状态管理

  如果您想查看官方网站vuex [https://vuex.vuejs.s.org/zh]]

  总结

  此时,VUE2中的组件通信方法总结了,主要分为三类:

  父亲和儿子的交流:父亲通过道具将数据传递给儿子,孩子通过$ emit事件将数据传达给父亲,父母链/子链使用父母/孩子

  兄弟通讯:巴士,vuex

  。交叉 - 级通信:巴士,Vuex,提供/注入/注入

  设置功能可以接受两个参数,Prop和上下文,上下文可以解构EMIT实例

  VUE3中没有任何概念,因此不会有此概念。$ emit,因此可以从设置传输的上下文结构将是一个emit实例,以便将事件发送到parent component到parent

  VUE3我们可以从VUE导出REF方法以获取子组件的实例

  通过REF属性的子组件声明,属性值必须与const btnref = ref(null)声明的变量名称一致,否则将报告错误。获得子组件实例后

  btnref.value?是可选链操作符号的语法。它代表了继续句子的先前价值。有兴趣的朋友可以单击以查看它。

  子组件仅提供一种方法。父部件获得实例后,它还可以执行更复杂的数据通信

  这里的用法与VUE2没有太大不同,直接转到案例。

  使用直接提供以注入您需要通过的数据,无需考虑获得谁

  后代组件使用注射来获取父组件注入的数据