Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将功能组件与状态和(箭头)功能结合使用_Javascript_Reactjs - Fatal编程技术网

Javascript 将功能组件与状态和(箭头)功能结合使用

Javascript 将功能组件与状态和(箭头)功能结合使用,javascript,reactjs,Javascript,Reactjs,我学习了JavaScript和React的基础知识,今天我再次回顾了我的React学习。令我惊讶的是,所有基于类的组件都已经过时了,现在所有的东西都是功能组件。这让我很困惑,因为: 我习惯于写: state = { todos = [ {sometodo: content}, {sometodo: content}] } someFunction = (para) => { do something } 但现在我显然不得不写: function App() { const [to

我学习了JavaScript和React的基础知识,今天我再次回顾了我的React学习。令我惊讶的是,所有基于类的组件都已经过时了,现在所有的东西都是功能组件。这让我很困惑,因为:

我习惯于写:

state = {
todos = [ {sometodo: content}, {sometodo: content}]
}

someFunction = (para) => {
do something
}
但现在我显然不得不写:

function App() {

  const [todos, setTodos ] = useState([
      {id: 1, content: 'buy some milk'},
      {id: 2, content: 'play mario kart'}
  ]);

  const deleteTodo = (id) => {
    console.log(id);
  }
从本质上说,我不介意,因为我理解创新的意愿。但我想知道,在任何地方抛出一个常量是否是编写此代码的正确方法。老实说,我只是需要一些确认,如果我这样做是正确的?因为如果我在React中查找arrow函数,我得到的只是带有基于类的组件的旧页面

哦,还有一个附带的问题:你现在只是把所有东西都做成一个功能组件吗


提前谢谢

类组件仍然非常活跃并在使用中。随着挂钩的引入,功能组件变得越来越流行
useState
是一个钩子,允许您将功能组件转换为有状态组件,而无需转换为类组件。因此,您可以使用功能组件更清晰地编写内容。我个人仍然经常使用类组件,特别是对于更大、更强的组件


我看不出你写的有任何错误。(除了在你的第一行代码中应该是
状态:[……]
,而不是
状态=[…]

我不知道你在问什么。React文档中介绍了这一点。您的func组件看起来不错。:)仅供参考:您可以使用箭头函数创建函数组件。它不必包含
函数
关键字。基于类的组件不会消失。只是功能组件变得越来越流行。两者都有各自的优点和缺点。“…现在我显然必须编写”-不,您不必开始编写组件,因为
函数组件
基于类的组件
很好。另外,不确定“在
React
中查找箭头函数”是什么意思?箭头函数是一种
JavaScript
功能,
React
Arrow函数无关
-在适当的情况下在
React
代码中使用它们。在你说了什么之后,我决定查找它,React自己说它们不会删除类。因此,对于我当前的项目,我将使用新的钩子样式(因此我对它很熟悉),并且在将来,我将根据我将使用的样式的情况来确定它。我个人更喜欢基于分类的组件,因为在我看来它看起来更干净。但是如果项目更大,功能需要更深入的能力,它可能会改变,因此为什么react会制作这些钩子呢。