欢迎来到“reactjs 30 天”挑战的第五天!今天,我们将探讨 react 中的两个基本概念:状态和生命周期方法。了解这些将使您能够创建动态的交互式应用程序。
什么是状态?
react 中的
state 指的是一个内置对象,它保存的信息可能会在组件的生命周期内发生变化。与只读并从父组件传递下来的 props 不同,state 是组件本地的并且可以在内部修改。
将状态想象成黑板。您可以根据需要在其上写入和擦除信息,从而使您的组件能够适应变化,例如用户输入或数据获取。
示例:计数器组件
让我们创建一个简单的计数器组件,当单击按钮时它会增加计数:
import { usestate } from 'react'; function counter() { const [count, setcount] = usestate(0); return ( <div> <p>you clicked {count} times</p> <button onclick="{()"> setcount(count + 1)}> click me </button> </div> ); }
这里,usestate 是一个 react hook,允许您向功能组件添加状态。 count 变量保存当前状态,setcount 是更新它的函数。
什么是生命周期方法?
生命周期方法是react类组件中的特殊方法,允许您在组件生命周期的特定点运行代码。这个生命周期包括挂载(添加到 dom)、更新(重新渲染)和卸载(从 dom 中删除)。
尽管随着 react hooks 的引入,类组件变得越来越不常见,但理解生命周期方法仍然很重要,特别是在使用较旧的代码库时。
示例:componentdidmount
常见的生命周期方法是 componentdidmount,它在组件首次渲染后运行。它通常用于初始化数据,例如从 api 获取数据:
class DataFetcher extends React.Component { state = { data: null }; componentDidMount() { fetch('https://api.example.com/data') .then(response => response.json()) .then(data => this.setState({ data })); } render() { return ( <div> {this.state.data ? ( <p>Data: {this.state.data}</p> ) : ( <p>Loading...</p> )} </div> ); } }
在此示例中,一旦组件添加到 dom,componentdidmount 就会获取数据,并使用获取的数据更新状态。
现实生活示例:餐厅订单
想象一下在餐厅下订单(组件安装)。您下订单后,厨房就开始准备食物 (componentdidmount)。当食物正在准备(更新)时,您可能会收到状态更新。最后,食物端上来,您吃完饭(组件卸载)。
vite 的状态和生命周期
由于我们使用 vite 作为开发环境,因此设置状态和生命周期方法是无缝的。 vite 的快速开发服务器可确保您的状态更改和生命周期方法在开发过程中几乎立即得到反映。
以下是如何构建项目以包含状态和生命周期方法:
总结
状态和生命周期方法对于创建动态、响应式的 react 应用程序至关重要。状态允许您的组件进行交互,而生命周期方法使您可以控制组件与 dom 交互的方式和时间。
明天,我们将探索 react 中的处理事件,这将进一步增强应用程序的交互性。