当前位置:首页 > React

react如何获取input值

2026-03-31 13:54:16React

获取 input 值的几种方法

在 React 中,获取 input 值可以通过受控组件或非受控组件的方式实现。以下是常见的方法:

受控组件方式

受控组件通过 state 和事件处理函数来管理 input 的值。每次输入变化时,更新 state 并重新渲染组件。

react如何获取input值

import React, { useState } from 'react';

function ControlledInput() {
  const [inputValue, setInputValue] = useState('');

  const handleChange = (e) => {
    setInputValue(e.target.value);
  };

  return (
    <input
      type="text"
      value={inputValue}
      onChange={handleChange}
    />
  );
}

非受控组件方式

非受控组件通过 ref 直接访问 DOM 元素来获取 input 的值。适用于不需要实时更新 state 的场景。

react如何获取input值

import React, { useRef } from 'react';

function UncontrolledInput() {
  const inputRef = useRef(null);

  const handleSubmit = () => {
    console.log(inputRef.current.value);
  };

  return (
    <div>
      <input type="text" ref={inputRef} />
      <button onClick={handleSubmit}>Submit</button>
    </div>
  );
}

表单提交时获取值

在表单提交时,可以通过事件对象的 target 属性获取 input 的值。

import React from 'react';

function FormInput() {
  const handleSubmit = (e) => {
    e.preventDefault();
    const value = e.target.elements.inputName.value;
    console.log(value);
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="text" name="inputName" />
      <button type="submit">Submit</button>
    </form>
  );
}

使用自定义 Hook

如果需要复用逻辑,可以封装一个自定义 Hook 来管理 input 值。

import { useState } from 'react';

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

  const handleChange = (e) => {
    setValue(e.target.value);
  };

  return {
    value,
    onChange: handleChange,
  };
}

function CustomHookInput() {
  const inputProps = useInput('');

  return <input type="text" {...inputProps} />;
}

以上方法可以根据具体需求选择使用。受控组件适合需要实时更新和验证的场景,而非受控组件适合简单表单或性能敏感的场景。

标签: reactinput
分享给朋友:

相关文章

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

react如何清理

react如何清理

清理 React 项目的方法 清理未使用的依赖项 运行 npm prune 或 yarn install --production 可以移除 node_modules 中未在 package.json…

react 如何循环

react 如何循环

循环渲染列表 在React中,循环渲染列表通常使用map方法。map可以遍历数组并返回一个新的React元素数组。 const items = ['Apple', 'Banana', 'Orange…

react如何减少setState

react如何减少setState

减少 React 中 setState 调用的方法 合并多次状态更新 使用函数式更新方式合并多次 setState 调用。React 会将多次状态更新批量处理,避免不必要的重新渲染。 // 非函…

如何读react源码

如何读react源码

理解React源码的结构 React源码托管在GitHub上,主要分为几个核心模块:react、react-dom、react-reconciler等。react包包含核心API和组件逻辑,react…