在典型的 React 应用程序中,数据通过 props 自上而下(父元件到子元件)传递,但是对於应用程序中的许多组件都会使用到的资料,或是定义资料的元件跟实际用到资料的元件差了很多层,那麽夹在两者中间的元件就会多了很多次不必要的传递,使用这种每次用都要传递到元件的每个层别的传递方式很麻烦。
Context 提供了一种在组件之间共享这些值的方法,允许你轻松将 prop 传递到元件树不同层别,而无需将 prop 传递到每个层别。
建立Context 的方式是在根元件的地方(例如,App.js)透过 <Context.Provider> 中的value属性,可以把需要传递的资料带入 Context 中,接着在需要使用到此资料的地方,可以透过 <Context.Consumer> 元件,取得 Context 的值取得 Provider的value 内的资料。
若有需要修改 Context 中的内容,则是去修改根元件 <Context.Provider> 中的 value,如此子层的元件就可以再次透过 < Context.Consumer> 元件取得新的资料。
const Question = createContext();
const App = () => {
return (
<div>
<Question.Provider value={"How to use Context ?"}>
<ComA />
</Question.Provider>
</div>
)
}
export default App;
export { Question };
import React from 'react';
import { Question } from "../App"
const ComC = () => {
return (
<div>
<Question.Consumer>
{(ques) =>{
return (
<h1> Question is: {ques}</h1>
);
}}
</Question.Consumer>;
</div>
)
}
export default ComC
>>: Day19-Vue Router 路由设定(part2)
最近的工作专案很常用到 button 按钮 因为小公司的关系没有设计 所以通常要自已想 button...
二元搜寻树(Binary Search Tree)建立的方法 insert: 新增元素进入树中 de...
前言 上次我们断开了英文文本的锁链,将庞大的字串拆解成成为词条的小单元。语言中仍有时态变化、单复数型...
前言 昨天知道一些背景的属性後,是不是觉得有点单调呀,所以我们今天就来谈谈渐层 基本语法 backg...
大家好,小弟弟我在今年的时候,开始了Android 开发的学习,看到自己写的Code烧录到手机,能够...