当前位置:首页 > 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 native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

react如何取消渲染

react如何取消渲染

取消渲染的方法 在React中,取消渲染通常指的是在某些条件下阻止组件渲染或中断正在进行的渲染过程。以下是几种常见的方法: 条件渲染 通过条件判断决定是否渲染组件或部分内容。可以使用if语句或三元运…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

如何记忆react

如何记忆react

理解核心概念 React的核心概念包括组件、状态(state)、属性(props)、生命周期方法(类组件)和钩子(函数组件)。掌握这些基础概念是记忆React的关键。组件是React应用的构建块,分为…

react如何读

react如何读

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

react就业如何

react就业如何

React 就业市场现状 React 作为当前主流前端框架之一,就业需求持续旺盛。国内外互联网企业、中大型公司以及初创团队普遍采用 React 技术栈,尤其在 Web 应用、移动端(React Nat…