当前位置:首页 > 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)减少状态更新频率:

react如何获取input

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} />;
}

标签: reactinput
分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 React 确保 Node.js 安装在本地环境中。通过以下命令创建新的 React 项目: npx create-react-app my-app 进入项目目录并启动开发服务器:…

react如何读

react如何读

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

react如何验证

react如何验证

表单验证方法 在React中验证表单数据通常使用以下几种方式: 内置HTML5验证 利用HTML5原生表单验证属性如required、pattern等,结合form.noValidate属性禁用浏览…

如何配置react

如何配置react

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

如何安装react

如何安装react

安装React的方法 方法一:使用Create React App(官方推荐) Create React App是官方提供的脚手架工具,适合快速搭建React项目。确保已安装Node.js(建议版本≥…

react路由如何配置

react路由如何配置

React 路由配置方法 安装 React Router 使用 npm 或 yarn 安装 React Router 的 DOM 版本: npm install react-router-dom #…