一、主要是讲一下类组件的状态和函数组件的状态
1.类组件中state只能有一个,
函数组件中state可以有多个
函数组件:可以使用对个状态,便于控制。
// 文章数量的初始值
const [articleData, setArticleData] = useState({
list: [],// 文章列表
count: 0,// 文章数量
})
const [info,setinfo] = useState("个人信息");
类组件
state ={
task:[],
number:0,
}
2.关于修改数据
1.useState使用函数改变数据,传入的值不会和原来的数据进行合并,而是直接替换。
因为useState建议不同的状态分开,不要不同的状态混在一个用。所以每次都是替换。
2.setState修改数据时,是合并。
二、useState原理
当运行一个函数组件时(即调用该函数),会 执行函数
1.会调用useState,
2.检查该节点的状态表格,是否存在对应的下标N;
不存在:
使用默认值创建一个状态
将该状态加入状态数组,下标为N
存在:
忽略默认值
直接得到状态值使用
所以尽管一个组件我们使用多次,每个函数组件都会用自己的状态数组。
function App () {
const [count,setCount] = useState(1);
}