react hook -- useState

2022-12-27  本文已影响0人  廖雪青

基本知识

React的组件有两种属性,statepropsstate一般是在组件内部使用,而props则代表父组件传入的属性。

useState对应于state,是用来管理组件的内部属性的,用法如下:

const [count, setCount] = useState(initState)

当需要修改count的值的时候,只需调用setCount进行修改就行。
setCount用两种使用方法

useState 让函数组件具有维持状态的能力。也就是说,在一个函数组件的多次渲染之间,这个 state 是共享的

useState 和Class组件中的 setState

useState更新对象类型的state

useState不会自动合并需要更新的对象,所以如果在函数式组建种通过useState去管理一个对象类型的state时,在使用setXX的时候,需要用函数式更新方式,在函数中返回一个对象类型的数据,如:

import React, {userState} from "react";

const UserInfo = (saveUserInfo) => {
    const [userInfo, setUserInfo] = userState({name:'', age: 10});

    return (
    <>
        <div>name: {userInfo.name}</div>
        <div>age: {userInfo.age}</div>
        <input
            label="Name"
            type="text"
            value={userInfo.name}
            onChange={(event) =>
                setUserInfo((preUserInfo) => ({...preUserInfo, name: event.target.value}))
            }
        ></input>
        <input
            label="Age"
            type="number"
            value={userInfo.age}
            onChange={(event) =>
                setUserInfo((preUserInfo) => ({...preUserInfo, age: event.target.value}))
            }
        ></input>
        <button onClick={() => saveUserInfo(userInfo)}>Save</button>
    </>
    )
}

export default UserInfo;

有状态组件与无状态组件

比如一个组件想在服务器端请求获取一个用户列表并显示,如果把读取到的数据放到本地的 state 里,那么每个用到这个组件的地方,就都需要重新获取一遍。

上一篇 下一篇

猜你喜欢

热点阅读