不使用useEffect是属于哪个生命周期?

我们可以用useEffect Hook定义生命周期函数:

import React, { useState, useEffect } from 'react';

function LifecycleDemo() {
  const [count, setCount] = useState(0);

  useEffect(() => {
    // 1.componentDidMount(组件挂载时执行)
    console.log('componentDidMount');
    // 3.componentWillUnmount (组件卸载时执行)            
    return () => {
      console.log('componentWillUnmount');
    };
  }, []);

    // 2.componentDidUpdate(组件渲染完成时执行)
  useEffect(() => {
    console.log('componentDidUpdate (without dependencies)');
  });

    // 2.componentDidUpdate (with count dependency)(count状态更新时候执行)
  useEffect(() => {
    console.log('componentDidUpdate (with count dependency)');
  }, [count]);

  return (
    <div>
      <h1>Lifecycle Demo</h1>
     <p>Count: {count}</p>
     <button onClick={() => setCount(c => c + 1)}>Increment</button>
      <button onClick={() => setCount(c => c - 1)}>Decrement</button>
    </div>
  );
}

export default LifecycleDemo;

请问下,不再useEffect里面时候是属于哪个生命周期呢?
比如:

const [count, setCount] = useState(0); 

是属于哪个生命周期?

阅读 1.7k
4 个回答

属于 render 。
类式组件是 Every thing in Schedule
函数组件是 Schedule in render function
你不可能在别的地方找到这两句话,因为都是我刚编的。

useState不属于生命周期函数,它是React Hooks中提供的用于在函数组件中管理状态的函数。useState函数可以在函数组件中定义状态,并返回一个状态变量和更新状态的函数,与类组件中的this.state和this.setState()相对应。它可以在函数组件中模拟类组件中的状态,并且不需要使用生命周期函数来管理状态的更新。

useState Hook不属于React中的任何生命周期。useState是React 16.8中引入的一个新特性,它允许函数组件具有本地状态,并且可以在组件中注册状态并更新状态的函数。

当我们调用useState时,它会返回一个数组,第一个元素是状态值,第二个元素是更新状态的函数。我们可以在函数组件的任何地方调用这个函数,因此它不属于React中的任何生命周期。

需要注意的是,useEffect Hook是仿照类组件的生命周期函数而存在的,在函数组件中模拟类组件的生命周期行为。而useState是React新增的状态管理的一个功能,不属于生命周期。

答案引用AI生成内容,并进行了验证

只想说,用生命周期思考 hooks 已经不适用了。

推荐问题
logo
Microsoft
子站问答
访问
宣传栏