在 React 中,props
和 state
是两个不同的概念,它们有不同的目的和用法。变动 props
不会直接引起 state
的变动,因为它们是不同的数据源。
props
:props
(即属性)是组件之间通信的一种方式,用于从父组件传递数据到子组件。props
是不可变的,即一旦传递给子组件,子组件无法直接修改它们。props
发生变化时,React 会重新渲染子组件,并传递新的 props
。state
:state
是用于保存组件内部状态的机制。useState
hook 或 class 组件中的 this.setState
来管理组件的 state
。state
发生变化时,React 会触发重新渲染组件。import React, { useState, useEffect } from 'react';
function MyComponent(props) {
// 使用 state hook 定义内部状态
const [count, setCount] = useState(0);
// 当 props 发生变化时,可以在 useEffect 中处理
useEffect(() => {
// 执行一些操作,例如根据新的 props 更新组件的 state
setCount(props.initialCount);
}, [props.initialCount]); // 仅在 props.initialCount 发生变化时触发 useEffect
return (
<div>
<p>Count: {count}</p>
</div>
);
}
export default MyComponent;
在上面的例子中,当 props.initialCount
发生变化时,我们使用 useEffect
来更新组件的内部状态 count
。这并不是 props
直接影响 state
,而是通过 useEffect
实现了在 props
变动时更新组件状态的逻辑。
原文链接:codingdict.net