本讲我们一起来探讨“React 如何面向组件跨层级通信”,这个问题在面试中应该如何回答。
破题
“React 如何面向组件跨层级通信”当面试官提出这个问题时,其实是在试探你是否有经手大型前端项目的经验。“跨层级通信”是所有现代前端框架都会遇到的一个场景,并且设计大型前端项目中的组件通信,对于开发人员来说非常具有考验。如何让不同的组件在通信中保持一致性、排除副作用,几乎是所有状态管理框架的开发者都在思考的问题。但这里我们暂时先不讨论这个问题,具体的讲解放在第 15 讲。
回到本讲的问题上来,我将类似的问题统称为“列举题”。如果你还有印象的话,应该会记得在第 05 讲我们也讲解过类似的问题,解题思路是“一个基本,多个场景”,即先确定主题,再根据场景列举。
所以该讲我们还是通过结合实践、丰富场景的方式,来表述面向组件跨层级通信的各个分类。
承题
由于 React 是一个组件化框架,那么基于组件树的位置分布,组件与组件之间的关系,大致可分为 4 种。
● 父与子:父组件包裹子组件,父组件向子组件传递数据。
● 子与父:子组件存在于父组件之中,子组件需要向父组件传递数据。
● 兄弟:两个组件并列存在于父组件中,需要金属数据进行相互传递。
● 无直接关系