【React】什么是组件跨层级通信,有哪些使用场景实例?
在一个典型的 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元抢到手
仅限200名额,送完即止!
视频要点
部分内容展示
高阶组件-HOC :
为了提高组件复用率,可测试性,就要保证组件功能单一性;但是若要满足复杂需求就要扩展功能单一的组件,在React里就有了HOC(Higher-OrderComponents)的概念。
定义:高阶组件是参数为组件,返回值为新组件的函数。
// HocPage.js
import React, {Component} from "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 分钟实用干货
仅限200名额,送完即止!