Javascript 根据获取数据设置状态的正确方法是什么?

Javascript 根据获取数据设置状态的正确方法是什么?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我确实对此进行了搜索,但我找不到解释哪种方法是有效的和遵循的 如果我们想在我们的状态中添加新的数据,我们肯定会使用不可变的方式,比如映射整个数据来创建新的数组或删除过滤器等等。然而,当从服务器获取数据时,我不知道哪种方法是合适的,为什么?我真的需要迭代整个数组还是创建对象的深度副本 方式1 方式2 在类组件中,我们有状态对象,我们正在更新它并从中获取值。在这种情况下,不可变状态可能是一个问题 在功能组件中,您可以克服不可变状态,因为我们一次只引用一个实体/值。因此,您的第二个代码示例将是一个很好

我确实对此进行了搜索,但我找不到解释哪种方法是有效的和遵循的

如果我们想在我们的状态中添加新的数据,我们肯定会使用不可变的方式,比如映射整个数据来创建新的数组或删除过滤器等等。然而,当从服务器获取数据时,我不知道哪种方法是合适的,为什么?我真的需要迭代整个数组还是创建对象的深度副本

方式1 方式2
在类组件中,我们有状态对象,我们正在更新它并从中获取值。在这种情况下,不可变状态可能是一个问题

在功能组件中,您可以克服不可变状态,因为我们一次只引用一个实体/值。因此,您的第二个代码示例将是一个很好的方法

const [data, setData] = useState([]);

  useEffect(() => {
    fetch('https://jsonplaceholder.typicode.com/posts')
      .then((response) => {
        return response.json();
      })
      .then(myJson => {      
        setData(myJson);
      });
  }, []);

在类组件中,我们有状态对象,我们正在更新它并从中获取值。在这种情况下,不可变状态可能是一个问题

在功能组件中,您可以克服不可变状态,因为我们一次只引用一个实体/值。因此,您的第二个代码示例将是一个很好的方法

const [data, setData] = useState([]);

  useEffect(() => {
    fetch('https://jsonplaceholder.typicode.com/posts')
      .then((response) => {
        return response.json();
      })
      .then(myJson => {      
        setData(myJson);
      });
  }, []);

这两种方式都使用不可变方式设置状态,对于我来说,如果您需要在前端处理数据,例如筛选、格式化或删除,则需要使用方式1。如果数据不需要处理,我将推荐方法2。此外,我建议您根据需要在数据库或后端准备数据,然后将其发送到前端

两种方式都使用不可变方式设置状态,对于我来说,如果您需要在前端处理数据,例如筛选、格式化或删除,则需要使用方式1。如果数据不需要处理,我将推荐方法2。此外,我建议您根据需要在数据库或后端准备数据,然后将其发送到前端

我看不出我为什么不做不必要的“Way2”way1。我看不出我为什么不做不必要的“Way2”way1。据我所知,如果我们获取的是类组件,我们不应该担心不变性。当然,我不是在说更新当前状态。是的,可能是这样。据我所知,如果我们获取的是类组件,那么我们不应该担心不变性。当然,我不是说更新当前状态。是的,可能是这样。
const [data, setData] = useState([]);

  useEffect(() => {
    fetch('https://jsonplaceholder.typicode.com/posts')
      .then((response) => {
        return response.json();
      })
      .then(myJson => {      
        setData(myJson);
      });
  }, []);