Skip to content

一、useState

1、使用钩子函数useState()来创建state

js
import {useState} from "react"

2、它需要一个值作为参数,这个值就是state的初始值

js
const result=useState(1);

3、useState会返回一个数组,result就是数组,数组包含俩个元素

js
//第一个元素是初始值,只用来显示数据,直接修改触发不了组件的重新渲染
let counter=result[0];
//第二个元素,是一个函数,用来接受一个参数来修改state的值
let setCounter=result[1];

4、最终写法

js
const [state,setState]=useState(initialState);

注意事项

setState修改state的值的过程是异步过程,所以存在一个情况:假如异步的时间是一秒钟,如果在一秒里面给state设置俩次的值,并且每次的值都要根据上一次的值来,比如计数器,需要前一个值进行运算,就会出现一秒内进行俩次运算,结果可能会出错

js
//比如一秒内进行俩次运算
const [counter,setCounter]=useState(1);
setCounter(counter+1);
setCounter(counter+1);
//结果是2

所以这种需要利用上一次产生的值进行下一次运算的state,需要用回调函数来进行运算

js
setCounter(preState=>prestate+1);