纵横研究院React技术专题社区

HOOK—useState、useEffect的使用

2019-06-24  本文已影响33人  小胖周

HOOK是React的新增特性,它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。Hook 是一些可以让你在函数组件里“钩入” React state 及生命周期等特性的函数。下面主要介绍一下useState和useEffect 的使用。

useState

通过在函数组件里调用它来给组件添加一些内部 state。useState 会返回一对值:当前状态和一个让你更新它的函数,你可以在事件处理函数中或其他一些地方调用这个函数。useState 唯一的参数就是初始 state。这个初始 state 参数只有在第一次渲染的时候会被用到。

useState简单实例

使用useState可以声明多个state变量

实例-声明多个state变量

useEffect

useEffect (副作用函数)是一个 Effect Hook,给函数组件增加了操作副作用(在 React 组件中进行数据获取、订阅或者手动修改 DOM等)的能力。它跟 class 组件中的 componentDidMount、componentDidUpdate 和 componentWillUnmount 具有相同的用途,只不过被合并成了一个 API,默认情况下,React 会在每次渲染后调用副作用函数 ,包括第一次渲染的时候。

useEffect简单实例

通过使用 Hook,你可以把组件内相关的副作用组织在一起(例如创建订阅及取消订阅),而不要把它们拆分到不同的生命周期函数里。

上面实例每次重新渲染都要执行一遍useEffect,如果你在useEffect中使用了useState则会导致无限循环,这样显然是影响性能的。为了处理这个问题,我们可以给useEffect传第二个参数。用第二个参数来告诉react只有当这个参数的值发生改变时,才执行我们传的副作用函数(即第一个参数)。

useEffect-第二个参数

当我们第二个参数传一个空数组[]时,相当于只在首次渲染的时候执行。

第二个参数传一个空数组

在这里只是简单的介绍了HOOK中useState和useEffect的使用,其实HOOK特性还有很多内容值得我们去学习去探索。

上一篇下一篇

猜你喜欢

热点阅读