00:00
这节课给大家总结一下组件间的通讯方式,哎,那什么是通讯呢?就说两个组件之间,哎,你的数据我要用,你要给我,或者我的数据要给你,哎,这个就是通讯啊,来画个图看一下。我们来看看这个组件间的一些关系啊。父子组件对吧,还有这个兄弟组件,祖孙组件,我们来画两个啊。那外面这个组件和这个就是一个父子组件对吧?那外面这个和这个也是一个父子组件,而这两个组件是不是就是兄弟组件,哎,非嵌套的,谁也谁也不嵌到谁啊,并列的一个关系。啊,还有一个关系就是组升组件,哎,就是说嵌套的级数啊,再多一些的。哎,比如说这里面再嵌套一层的啊,我们写到这里面再嵌套一层的,那我们最外层的这个组件和最里面的这个组件,哎,就有点类似于一种组成组件,哎是一种跨级的,绕过了中间这个对吧?啊这是我们常见的几种关系。
01:07
那要让这几种关系之间的组件进行通讯,哎,有这么几种方式。Purpose。对吧。Purpose呢,也有两种purpose,还有这个render purpose。哎,我们之前父组件要给子组件一个数据的话,直接使用pop可以直接把数据给到子组件。对吧?啊还有一种就是说消息订阅发布的这个技术啊,我们比如说子组件,这里你开启一个订阅啊,这里你开启一个订阅啊,在这啊开启一个订阅,那这里呢,我去发布。哎,就能把这个消息发布给你,数据发布给你是不是也可以,但这种方式一般多用于。这个。哎,兄弟组间之间的一个通讯对吧?啊。还有还有一种方式,我们是使用这种集中式的一个管理,比如说呃,使用这个redu啊,使用这个啊,D d va等那集中式的状态管理的工具很多,我们哎,记好这个re relax就可以了,其他的用的也不是特别常见,也说我们需要共享的这个数据呢,我们放到这个,呃。
02:13
这个地方啊,放到一个第三方的一个地方,那谁用呢,谁就去这里面取啊,谁用数据就是里面取,然后谁要操作这个数据呢,你就去操作,这样也能达到数据共享的啊,就是说组建通讯的一个目的,对吧。哎,这是我们的集中管理,还有一种是我们的啊这个contest,哎生产者消费者的模式对吧,那这个生产者消费者的模式呢,我们是不是还得借助于哎这个provider啊。好的。还要借助于这个customer这种模式啊,那。这么多通讯的方式,哎,这么多的一个组件的关系。我们怎么搭配比较好呢?再给大家说一下,如果是副词组件使用purpose是最简单的,对吧?那副词组件可以直接传这个数据给。
03:05
通过这个pops传传这个数据给这个子主的是不是。哎,直接使用这个purpose,那如果是兄弟组建呢,兄弟组建的话。之前我们在学习的这个,呃,内容比较少的时候。给他画下。想让兄弟组件之间通讯,哎,是不是我们先啊借助于副组件把数据给到他,然后再由副组件通过purpose传给兄弟组件,对不对,但是后来我们学了很多啊,一些比较啊好用的东西,我们就不推荐在使用的方式,而是使用什么,哎,消息的订阅与发布啊,或者说使用这种集中式的管理,那消息的订阅与发布就说比如说我这个组件订阅的消息,那我这个组件需要给他消息的时候,直接发布消息就过去了。对不对啊,或者说使用这种集中式的这种状态管理,我们把数据给。给存到这个re中啊,你用的时候去这里面取,都可以相互的操作。
04:00
清楚了吧?啊,这个是集中式管理好组孙组件也是这种跨级的组件,跨级的组件呢,哎,可以使用。消息的订阅也发布啊,或者说使用集中式的管理都可以对吧,我们的消息的这个这个订阅发布,它这种机制,它是不受你这个组建关系影响的啊,只要你订阅,只要你订阅了,我一发布你就能收到,对吧?或者说是这种集中式的这个状态管理,它也是不受组件关系的影响,你只要用去这个re里面啊,去我们那种集中式管理里面去取,对吧,你要去操作你就啊给我呃pach你的个这个要操作操作的数据就可以了。哎,清楚了吧,啊,还有一种是这种contact,哎,比如我在。这几个先先删了啊。那我可以在副组件。那比如说。这个这个这个副组件去provide对吧,然后子组件使用customer就可以接收到,对不对,但是实际上用的比较少,比较麻烦啊,一般我们是如果要使用它的话,也会使用一些封装好的一些插件,一些第三方的一些插件,而不是单单的去使用它,哎,这时候比较麻烦,那这个就是。
05:06
我们就说组件间的一些通讯方式,哎,因为我们的应用现在都是这种多组件的,哎,单页面多组件的,所以说组件间的这个通讯是比较常用的一些概念啊,然后你要看你的组件之间它都是什么关系,你来选择最合适的一个通讯的一个方式。那这小节就到这里啊,这也是我们这个课程的最后一节,那后续我们会录制相关的。啊,实战的课程啊,欢迎大家继续学习。
我来说两句