[React] Reduce Code Redundancy with Custom React Hooks

In this lesson, we'll cover how to create a custom React hook for managing the state of any input. This is one of the most powerful features of react hooks as it allows you to easily share functionality in a reusable way.

 

复制代码
import React, { useState } from 'react'
import ReactDOM from 'react-dom'

import './styles.css'

function useInput(defaultValue) {
  const [value, setValue] = useState(defaultValue)

  function onChange(e) {
    setValue(e.target.value)
  }

  return {
    value,
    onChange
  }
}

function App() {
  const name = useInput('')
  const age = useInput('')
  const email = useInput('')

  return (
    <div className="App">
      <h1>How to create a custom hook in React</h1>

      <label>
        <span>Name</span>
        <input {...name} /> <!-- the same as value={name.value} onChange={name.onChange}-->
      </label>

      <label>
        <span>Age</span>
        <input {...age} />
      </label>

      <label>
        <span>Email Address</span>
        <input {...email} />
      </label>
    </div>
  )
}

const rootElement = document.getElementById('root')
ReactDOM.render(<App />, rootElement)
复制代码

 

posted @   Zhentiw  阅读(301)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-05-21 [Javascript] Highlights from IO18 Javascript new features
2018-05-21 [CSS3] :empty Selector
2018-05-21 [Python] Use Static Typing in Python 3.6
2018-05-21 [Javascript] Understand common misconceptions about ES6's const keyword
2016-05-21 [PWA] 16. Clean IDB
2015-05-21 [AngularJS] angular-formly: Extending Types
点击右上角即可分享
微信分享提示