javascript - 以函数式风格编写 React 组件

标签 javascript reactjs functional-programming react-hooks

我正在同时学习 React 和 elm,它们的相似之处让我想知道我是否可以像下面的代码片段一样编写所有 React 组件,而不是使用类

import React from 'react';
import './App.css';

export default function App() {
  const [name, setName] = React.useState("oof")

  return (
    <div className="App App-header">
      <Head/>
      <Adorable name={name}/>
      <AdoreForm setName={setName}/>
    </div>
  );
}

const Head = () =>
  <header>Adorable Genator OwO</header>

const Adorable = (props) =>
  <img src={`https://api.adorable.io/avatars/221/${props.name}@adorable.png`}/>

const AdoreForm = (props) =>
  <div>
    <input onChange={(e) => props.setName(e.target.value)}/>
  </div>

最佳答案

是的,您可以按照代码片段中所示的方式编写代码。您还可以使用箭头函数来创建应用程序组件,如下所示。

 const App = () => {
  const [name, setName] = React.useState("oof")

  return (
    <div className="App App-header">
      <Head/>
      <Adorable name={name}/>
      <AdoreForm setName={setName}/>
    </div>
  );

}

export default App;

使用哪种方法(即:类或函数)来创建组件并不重要,尤其是在引入 react 钩子(Hook)的情况下。

关于javascript - 以函数式风格编写 React 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57265962/

相关文章:

reactjs - 当你运行时,npm start,index.js 是如何被拾起运行的

javascript - react : FitBounds issue when passing array of longlat - react-mapbox-gl

javascript - 如何在React中正确显示内容

javascript - 如何将 React 中的状态从一个类传递到另一个类?

php - 单击“提交表单”按钮后重新加载时显示隐藏的 div

javascript - Node js Google Drive api 错误

clojure - 带父指针的纯函数树

functional-programming - 在 scheme 中转换具有两次递归调用的函数以使其成为尾递归

haskell - 翻转/反转 fmap (<$>)?

javascript - Cookie 还是本地存储?