React中的hook之useState

110 阅读1分钟

1.useState介绍

   useState是react中用于基本数据类型或数组,对象,作为状态变量,向组件中增加,更新状态,简单来说,react项 目只要关系到数据改变,重新渲染,都需要使用useState.

2.何时使用useState

当我们在组件提交表单,更改样式,计算等等,需要重新渲染页面的操作,都需要使用useState

2.使用方法

useState赋值时,需要使用数组的形式,分别添加状态值valuesetValue,这是标准的书写方式,而useState中后面包含的即为所定义变量的初始值( initialState),状态创建非常容易,操作状态的改变是学习 useState的重中之重:

1.基本数据类型:

//引入
import { useState } from 'react'

//类型: string,number,boolean:     

const [count,setCount]=useState("count")

const [count,setCount]=useState(0)

const [count,setCount]=useState(false)

setCount("newCount") //string类型

setCount(count+1)    //number类型

setCount(true)       //boolean类型 

2.数组:

数组避免使用 (会改变原始数组)推荐使用 (会返回一个新数组)
添加元素pushunshiftconcat[...arr] 展开语法
删除元素popshiftsplicefilterslice
替换元素splicearr[i] = ... 赋值map
排序reversesort先将数组复制一份
import { useState } from 'react'

//类型: Array:     

const [count,setCount]=useState([1,2,3,4])

//删除:  删除数组中为1的选项

setCount(()=>count.filter(item => item !== 1))   

//更改:  数组中为1的选项更改为2

 setCount(() => count.map(item => {
          if (item === 1) {
                return 2
            } else {
                return item
            }}))

//添加 :添加 5

 setCount(() => [...count, 5])//末尾   setCount(() => [5,...count])  //开头

//排序

 const nextCount = [...Count];

 nextCount.reverse();
 
 setCount(nextCount)

3.对象:

import { useState } from 'react'

//类型: Object:     

const [count,setCount]=useState({
        id: 1,
        name: '小明',
        sex: '男'
    })

setCount({ ...count,name: '小红' })

setCount({ ...count, name: '小红', sex: '女'})