当前位置:   article > 正文

React-Context机制

React-Context机制

1.概念

说明:通过Context机制跨层级组件通讯。父传子

2.实现步骤

说明:使用createContext方法创建实例对象;顶层组件通过实例对象上面的Provider组件提供数据;底层组件中通过useContext钩子函数获取数据。

3.代码实现

3.1使用createContext方法创建实例对象

const MsgContext=createContext()

3.2 顶层组件通过实例对象上面的Provider组件提供数据

  1. // 顶层组件
  2. function App() {
  3. const msg='this is app msg'
  4. return (
  5. <div>
  6. {/* 上下文允许组件之间共享数据,而无需通过逐层传递属性(props) */}
  7. <MsgContext.Provider value={msg}>
  8. this is app
  9. <Son1></Son1>
  10. </MsgContext.Provider>
  11. </div>
  12. );
  13. }

3.3 底层组件中通过useContext钩子函数获取数据

  1. function Son2() {
  2. const msg=useContext(MsgContext)
  3. return <div>
  4. this is son2,{msg}
  5. </div>;
  6. }

4.源代码 

  1. // 实现步骤:
  2. // l.使用createContext方法创建一个上下文对象Ctx
  3. // 2.在顶层组件(App)中通过Ctx.Provider组件提供数据
  4. // 3.在底层组件(B)中通过useContext钩子函数获取消费数据
  5. import {createContext, useContext} from 'react'
  6. const MsgContext=createContext()
  7. function Son1() {
  8. return <div>
  9. this is son1
  10. <Son2></Son2>
  11. </div>;
  12. }
  13. function Son2() {
  14. const msg=useContext(MsgContext)
  15. return <div>
  16. this is son2,{msg}
  17. </div>;
  18. }
  19. // 顶层组件
  20. function App() {
  21. const msg='this is app msg'
  22. return (
  23. <div>
  24. {/* 上下文允许组件之间共享数据,而无需通过逐层传递属性(props) */}
  25. <MsgContext.Provider value={msg}>
  26. this is app
  27. <Son1></Son1>
  28. </MsgContext.Provider>
  29. </div>
  30. );
  31. }
  32. export default App;

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/201318
推荐阅读
相关标签
  

闽ICP备14008679号