Use Effect
简单用法
const [number, setNumber] = useState(0);
// 没有依赖
useEffect(() => {
console.count("useEffect");
document.title = `You clicked ${number} times`;
},);
// 正确
useEffect(() => {
console.count("useEffect");
document.title = `You clicked ${number} times`;
}, [number]);
console.count("组件渲染!");
useMemo VS useEffect
useMemo VS useEffect const [state, setState] = useState({
name: "",
selected: false,
});
// useMemo相当于vue的计算属性
const user = useMemo(
() => ({
name: state.name,
selected: state.selected,
}),
[state.name, state.selected]
);
// 监听计算属性
useEffect(() => {
console.log(`user改变, useEffect`);
}, [user]);
// 理解watch成直接监听state属性
useEffect(() => {
console.log(`state改变, useEffect`);
}, [state.name, state.selected]);清理计时器
useeffect回调函数
useeffect回调函数接口请求和取消
useEffect vsuseLayoutEffect
useEffect vsuseLayoutEffectLast updated