31 Hooks的使用之useState与useEffect的介绍
在上一篇中,我们讨论了React Router
,学习了如何使用Link
和NavLink
进行页面导航。这为我们构建多页面应用奠定了基础。现在,让我们进入React
的核心概念之一:Hooks
,特别是useState
和useEffect
的使用。
什么是Hooks?
Hooks
是React 16.8
引入的一种新特性,让我们能够在不编写类组件的情况下使用state
和其他React
特性。useState
和useEffect
是最常用的两个Hooks
,它们分别用于处理组件的状态和副作用。
useState
useState
是一个用于声明组件状态的Hook
。它返回一个包含当前状态和更新状态的函数的数组。
示例代码
1 | import React, { useState } from 'react'; |
在上面的示例中,我们使用useState(0)
声明了一个名为count
的状态变量,并将其初始化为0
。setCount
是一个函数,用于更新count
的值。当我们点击按钮时,count
的值会增加1
。
useEffect
useEffect
是一个用于处理副作用的Hook
。副作用可以是数据获取、订阅或手动更改DOM
等。我们可以将其视为componentDidMount
、componentDidUpdate
和componentWillUnmount
的组合。
示例代码
1 | import React, { useState, useEffect } from 'react'; |
在这个示例中,我们使用useEffect
来设置一个定时器,更新seconds
的状态。定时器每秒增加一次seconds
的值。此外,我们在useEffect
内部返回了一个清理函数,以确保组件卸载时定时器被清除。
结合案例
现在,让我们将useState
和useEffect
结合起来,创建一个简单的计数器和定时器应用,让用户可以开始、停止和重置计时。
完整代码示例
1 | import React, { useState, useEffect } from 'react'; |
总结
在这一章中,我们学习了useState
和useEffect
的基本用法。useState
让我们能够在函数组件中管理状态,而useEffect
则处理副作用。通过示例,我们构建了一个简单的计时器应用,展示了如何将这两个Hooks
结合使用。
在下一章中,我们将进一步探讨自定义Hooks
,学习如何封装和重用逻辑,使我们的代码更加模块化和可维护。随着我们对Hooks
的深入理解,它们将为我们的React
开发提供更大的灵活性与可能性。
31 Hooks的使用之useState与useEffect的介绍