一、什么是useContext 在Hooks之前,react开发者都是使用class组件进行开发,父子组件之间通过props传值。但是现在开始使用方法组件开发,没有constructor构造函数,也就没有了props的接收,所以父子组件的传值就成了一个问题。
于是,就有了useContext。
别忘记 useContext
的参数必须是 context 对象本身:
- 正确:
useContext(MyContext)
- 错误:
useContext(MyContext.Consumer)
- 错误:
useContext(MyContext.Provider)
2.Context的作用就是对它所包含的组件树提供全局共享数据的一种技术。
三、代码示例 1、创建父组件
import React,{useContext, useState, createContext} from 'react';
import {Button} from 'antd';
import '../../App.css';
const CountContext = createContext();
const TestContext = () =>{
const [count, setCount] = useState(0);
console.log(CountContext);
console.log(useContext(CountContext));
return(父组件点击次数:{count}
)
};
2、创建子组件
const Counter = () => {
const count = useContext(CountContext);
console.log(CountContext);
// console.log(count);
// console.log(useContext(CountContext));
return (子组件获得的点击数量:{count}
);
};
3、完整代码
import React,{useContext, useState, createContext} from 'react';
import {Button} from 'antd';
import '../../App.css';
const CountContext = createContext();
const TestContext = () =>{
const [count, setCount] = useState(0);
console.log(CountContext);
console.log(useContext(CountContext));
return(父组件点击次数:{count}
)
};
const Counter = () => {
const count = useContext(CountContext);
console.log(CountContext);
// console.log(count);
// console.log(useContext(CountContext));
return (子组件获得的点击数量:{count}
);
};
export default TestContext;
4、运行效果 点击+1的时候,父组件和子组件都能获取到当前点击的次数。
文章图片
【react|useContext详细说明与使用】
推荐阅读
- 一文入门JavaScript
- 前端|推荐20个值得收藏的前端开源项目
- 支付宝小程序|支付宝小程序-基础入门技能汇总
- uni-app|uni-app实现swiper滑动放大缩小、实现scroll-view与swiper双向联动
- 微信小程序|微信小程序项目实例——图片处理小工具(自制低配版美图秀秀)
- 前端|前端面试八股文--Vue篇(持续更新)
- 前端|前端面试八股文个人汇总--普通知识篇(持续补充)
- 微信小程序|微信小程序学习之旅--零基础制作自己的小程序--第二个页面的制作
- vue|微信小程序中的web-view,实现微信小程序与h5页面间跳转