美文网首页纵横研究院React技术专题社区
HOOK—useState、useEffect的使用

HOOK—useState、useEffect的使用

作者: 小胖周 | 来源:发表于2019-06-24 11:17 被阅读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特性还有很多内容值得我们去学习去探索。

    相关文章

      网友评论

        本文标题:HOOK—useState、useEffect的使用

        本文链接:https://www.haomeiwen.com/subject/myjnqctx.html