目录

React基础之useState

目录

React基础之useState

useState是一个ReactHook(函数),它允许我们向组件添加一个状态变量,从而控制组件的渲染效果

https://i-blog.csdnimg.cn/direct/c71fb95dd2b64a33a612f1377dc6270a.png

import

{

useState

}

from

“react”

//使用useState实现计数器按钮

function

App

() {

//count

是状态变量

setcount

是修改变量的方法

const

[

count

,

setCount

]=

useState

(

0

)

//点击事件回调

const

handleClick

=()

=>

{

//

使用传入的新值修改

Count

,重现使用新的

count

来渲染

UI

setCount

(

count

1

)

}

return

(

<

div

className

=

“App”

<

button

onClick

=

{

handleClick

}

{

count

}

</

button

</

div

)

}

export default

App

修改状态的规则

状态不可变,状态是自读的,我们应该是替换它而不是修改它,直接修改状态不能引发视图更新

import

{

useState

}

from

“react”

//使用useState实现计数器按钮

function

App

() {

//count

是状态变量

setcount

是修改变量的方法

const

[

count

,

setCount

]=

useState

(

0

)

//点击事件回调

const

handleClick

=()

=>

{

//

我们直接修改这个值

count

++

setCount

(

count

)

//

是不会触发视图更新的

}

return

(

<

div

className

=

“App”

<

button

onClick

=

{

handleClick

}

{

count

}

</

button

</

div

)

}

export default

App

修改对象状态

对于对象类型的状态数据,应该传递一个set一个全新的对象来进行修改

import

{

useState

}

from

“react”

//使用useState实现计数器按钮

function

App

() {

//修改对象状态

const

[

form

,

setForm

]=

useState

({

name:

‘jack’

})

const

changeFOrm

=()

=>

{

//

错误的写法

// form.name=‘jorn’

//

正确的写法

setForm

({

form

,

name:

‘jorn’

})

}

return

(

<

div

className

=

“App”

<

button

onClick

=

{

changeFOrm

}

{

form

.

name

}

</

button

</

div

)

}

export default

App