代码之家  ›  专栏  ›  技术社区  ›  fatdragon

在这个介绍性示例代码中不需要使用effect?

  •  0
  • fatdragon  · 技术社区  · 5 年前

    从React文档中( https://reactjs.org/docs/hooks-effect.html#example-using-hooks ),我发现了以下示例代码:

    import React, { useState, useEffect } from 'react';
    
    function Example() {
      const [count, setCount] = useState(0);
    
      useEffect(() => {
        document.title = `You clicked ${count} times`;
      });
    
      return (
        <div>
          <p>You clicked {count} times</p>
          <button onClick={() => setCount(count + 1)}>
            Click me
          </button>
        </div>
      );
    }
    

    似乎没有必要使用 useEffect 如果创建一个新的onClick函数 setCount 分配给 document.title .或者使用它有什么好处吗 使用效果 在这里

    0 回复  |  直到 5 年前
        1
  •  0
  •   Oscar Villalta    5 年前

    如果想在本例中使用useEffect,则必须将计数作为依赖项添加到useEffect中。这样,组件将在每次计数更改时更新。它将作为依赖项数组中的第二个参数添加到useEffect中。如果不使用任何参数,它的行为就像组件安装一样。

    
    import React, { useState, useEffect } from 'react';
    
    function Example() {
      const [count, setCount] = useState(0);
    
      useEffect(() => {
        document.title = `You clicked ${count} times`;
      }, [count]);
    
      return (
        <div>
          <p>You clicked {count} times</p>
          <button onClick={() => setCount(count + 1)}>
            Click me
          </button>
        </div>
      );
    }
    
    

    另一种方法可能就是使用类组件。