当前位置:首页 > React

react如何获取input

2026-02-12 01:54:04React

获取 input 值的常用方法

受控组件方式
通过 React 的状态管理(useState)直接绑定 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} 
    />
  );
}

非受控组件方式
使用 useRef 获取 DOM 节点,在需要时读取值(如提交表单时):

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}>提交</button>
    </div>
  );
}

表单提交场景的处理

通过事件对象获取
在表单的 onSubmit 事件中,通过 e.target 访问表单内的 input:

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

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

动态 input 列表的管理

使用状态数组存储多个输入
适用于动态生成的 input 列表,通过索引或 ID 管理:

function DynamicInputs() {
  const [inputs, setInputs] = useState(['']);

  const handleChange = (index, value) => {
    const newInputs = [...inputs];
    newInputs[index] = value;
    setInputs(newInputs);
  };

  return (
    <div>
      {inputs.map((value, index) => (
        <input
          key={index}
          value={value}
          onChange={(e) => handleChange(index, e.target.value)}
        />
      ))}
    </div>
  );
}

性能优化建议

对于高频输入的场景(如实时搜索),可通过防抖(debounce)减少状态更新频率:

import { debounce } from 'lodash';

function DebouncedInput() {
  const [value, setValue] = useState('');

  const debouncedHandleChange = debounce((val) => {
    console.log('最终值:', val);
  }, 500);

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

  return <input value={value} onChange={handleChange} />;
}

react如何获取input

标签: reactinput
分享给朋友:

相关文章

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impor…

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官…

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一致。…

如何配置react

如何配置react

配置React项目的步骤 安装Node.js和npm 确保系统已安装Node.js(包含npm)。可通过官网下载并安装最新版本。安装完成后,运行以下命令验证版本: node -v npm -v 创…

react如何检测

react如何检测

检测 React 应用的方法 使用 PropTypes 进行类型检查 PropTypes 是 React 内置的类型检查工具,用于验证组件的 props 是否符合预期。在开发环境中,PropTypes…