编程崽

登录

一叶在编程苦海沉沦的扁舟之上,我是那只激情自射的崽

useState Hook

useState Hook

函数式组件的内部数据,类似类组件的 state。

用法

useState 方法返回一个数组:

js 复制代码
const [state, setState] = useState(初始值 或 方法)

入参:

  • 初始值,将直接作为生成 state 的初始值,不传的话则会 undefined。
  • 方法,方法自动执行,返回值将直接作为生成 state 的初始值。

返回数组:

  • state:第一项是变量名,默认值为调用方法时的参数。
  • setState:第二项是一个方法,可以使用该方法对变量更新,用法:
    • 直接传入新的值。
    • 传入回调方法,setState 自动为方法传入此变量旧的值,回调方法的返回值将被设置为新值。

注意

useState 可多次使用,来声明多个 state。oldNameBool

可在执行 setState 时,再执行其他 state 的设置方法。

示例

js 复制代码
import React from 'react';

export default function Home() {
  // 用法一,入参为值
  let [state, setState] = React.useState(10);

  // 用法二,入参为方法
  // const [state, setState] = React.useState(() => {
  //   const date = new Date()
  //   return +date
  // });
  
  return (
    <div>
      <div>当前值:{state}</div>

      {/* 用法一:setState 直接传入新值 */}
      <button onClick={() => setState(state - 1)}> - 1</button>

      {/* 用法二:setState 传入方法 */}
      <button onClick={() => setState(oldState => oldState + 1)}> + 1</button>

    </div>
  )
}
更新时间:2022/12/09 13:40:03