react如何变更state状态
变更 React 状态的常见方法
使用 useState Hook(函数组件)
通过 useState 声明状态变量和更新函数,调用更新函数直接修改状态:
const [count, setCount] = useState(0);
// 直接更新
setCount(1);
// 基于前值更新
setCount(prevCount => prevCount + 1);
使用 useReducer Hook(复杂状态逻辑)
适合管理包含多个子状态或依赖前状态的对象:
const [state, dispatch] = useReducer(reducer, { count: 0 });
// 通过 dispatch 触发更新
dispatch({ type: 'increment' });
类组件中的 setState
通过 this.setState 更新,支持对象或函数形式:
this.setState({ count: 1 });
// 依赖前状态
this.setState(prevState => ({
count: prevState.count + 1
}));
状态更新注意事项
异步批处理
React 会合并多次 setState 调用以提高性能,若需立即获取更新后状态,可使用 useEffect 监听:
useEffect(() => {
console.log('最新状态:', count);
}, [count]);
不可变数据原则
更新对象或数组时需创建新引用,避免直接修改原状态:

// 对象更新
setUser({ ...user, name: 'New Name' });
// 数组更新
setItems([...items, newItem]);
状态提升
多个组件需共享状态时,将状态提升至最近的共同父组件,通过 props 传递更新函数。






