React Tips 依赖注入、全局包裹Context
依赖注入
props 传递
- props 层层传递
- 很多组件并不需要使用 props
- 不推荐
1 | // Title.jsx |
1 | // Header.jsx |
1 | // App.jsx |
HOC 高阶组件
1 | // title.jsx |
1 | // inject.jsx |
1 | // header.jsx |
新版 Context API
1 | // title.jsx |
1 | // inject.jsx |
1 | // header.jsx |
1 | // App.js |
全局包裹Context
新版Context API 实现
相比于单纯的数据对象,将context包装成一个提供一些方法的对象会是更好的实践。因为这样能提供一些方法供我们操作context里面的数据。
1 | // dependcies.js |
1 | // header.jsx |
1 | // inject.js |
创建dependcies
后可以用dependencies.register
注册数据
1 | // App.js |
然后在 Title 组件中直接从 Context 获取数据
1 | import React from 'react' |
高阶组件 HOC 实现
1 | // dependencies.jsx |
在App 组件中使用register
注册数据
1 | // App.js |
1 | // header.jsx |
在 Title 组件中通过 wire 注入数据
1 | // title.jsx |