React什么是组件跨层级通信,有哪些使用场景实例?

Posted 菜鸟教程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React什么是组件跨层级通信,有哪些使用场景实例?相关的知识,希望对你有一定的参考价值。


Q

什么是组件跨层级通信(Context),有哪些使用场景实例?
A

在一个典型的 React 应用中,数据是通过 props 属性自上而下(由父及子)进行传递的,但这种做法对于某些类型的属性而言是极其繁琐的(例如:地区偏好,UI 主题),这些属性是应用程序中许多组件都需要的。Context 提供了一种在组件之间共享此类值的方式,而不必显式地通过组件树的逐层传递 props。


React中使用Context实现祖代组件向后代组件跨层级传值。Vue中的provide & inject来源于Context。


使用场景如react-redux中store的传递、react-router中的history等。


React的一大优势,便是把用户界面抽象成一个个组件,如按钮组件Button、对话框组件Dialog、日期组件Calendar。开发者通过组合这些组件,最终得到功能丰富、可交互的页面。通过引入JSX语法,使得编写组件简单快速,同时也能保证组件结构清晰。


但在我们学习React组件化的过程中,hook、 高阶组件(hoc)、组件跨层级通信(Context)等等难点却都让我们止不住的头皮发麻,哀呼学不懂。


其实大家觉得React难,一个很重要的原因是难以找到好的教程,而自学又往往动不动卡壳,效率低下。


别着急,今天我特别为你推荐这份来自开课吧的《React组件化视频教程》



掌握组件化开发中多种实现技术:

1.掌握context,跨层级传递;


2. 掌握高阶组件;


3. 掌握antd4 form 表单实现原理;


4. 掌握自定义hook


120 分钟实用干货

原价399 ,限时0元抢到手

 扫码立即领取 【React】什么是组件跨层级通信,有哪些使用场景实例?

【React】什么是组件跨层级通信,有哪些使用场景实例?

仅限200名额,送完即止!


【React】什么是组件跨层级通信,有哪些使用场景实例?

视频要点



【React】什么是组件跨层级通信,有哪些使用场景实例?





【React】什么是组件跨层级通信,有哪些使用场景实例?

部分内容展示


高阶组件-HOC :


为了提高组件复用率,可测试性,就要保证组件功能单一性;但是若要满足复杂需求就要扩展功能单一的组件,在React里就有了HOC(Higher-OrderComponents)的概念。

定义:高阶组件是参数为组件,返回值为新组件的函数。


// HocPage.js 

import React, {Componentfrom "react"


// hoc: 是⼀个函数,接收⼀个组件,返回另外⼀个组件 

//这⾥⼤写开头的Cmp是指function或者class组件 

const foo Cmp => props => { 

    return ( 

        <div className="border"

            <Cmp {...props/>

        </div> 

    ); 

};


// const foo = Cmp => {

//     return props => { 

//         return ( 

//             <div className="border"> 

//             <Cmp {...props} /> 

//         </div> 

//         ); 

//     };


// };

function Child(props) {

    return <div> Child {props.name}</div>


const Foo foo(Child);

export default class HocPage extends Component {

    render() {

        return ( 

            <div>

                <h3>HocPage</h3> 

                <Foo name="msg" />

            </div> 

        );

    } 

}





120 分钟实用干货

原价399 , 限时0元抢到手  
【React】什么是组件跨层级通信,有哪些使用场景实例? 扫码立即领取 

仅限200名额,送完即止!


以上是关于React什么是组件跨层级通信,有哪些使用场景实例?的主要内容,如果未能解决你的问题,请参考以下文章

[react] react组件间的通信有哪些?

前端技能树,面试复习第 23 天—— React 的组件通信方式有哪些,具体说说

16.如何优雅地获取跨层级组件实例(拒绝递归)

react

React中兄弟组件通信和组件跨级传递Context的使用

vue3provide和inject实现跨层级组件间通信祖孙组件