问答题1302/1593什么是受控组件?

难度:
2021-07-04 创建

参考答案:

受控组件(Controlled Component)是指一个表单元素的值由 React 组件的状态(state)控制,而不是由 DOM 元素自身控制。也就是说,表单元素的值和状态都是由 React 组件的 state 进行管理的,表单元素的值由组件的 state 决定,并通过事件处理函数来更新 state

受控组件的特点

  1. 状态管理

    • 由组件状态控制:受控组件的表单元素(如 <input><textarea><select>)的值由 React 组件的 state 控制。表单元素的值始终与组件的 state 保持同步。
  2. 单向数据流

    • 从上到下:表单元素的值由组件的 state 决定,当用户输入或选择时,事件处理函数会更新组件的 state,进而重新渲染表单元素。数据流是单向的,即数据从组件的 state 流向表单元素。
  3. 事件处理

    • 更新状态:每当用户对表单元素进行交互时(如输入文本、选择选项),会触发相应的事件处理函数,这些函数会更新组件的 state。组件的 render 方法会根据更新后的 state 重新渲染表单元素。

受控组件的示例

以下是一个使用受控组件的示例,其中 <input> 元素的值由组件的 state 控制:

1import React, { useState } from 'react'; 2 3function ControlledForm() { 4 // 初始化状态 5 const [value, setValue] = useState(''); 6 7 // 处理输入变化的函数 8 const handleChange = (event) => { 9 setValue(event.target.value); 10 }; 11 12 // 处理表单提交的函数 13 const handleSubmit = (event) => { 14 event.preventDefault(); 15 alert('提交的值: ' + value); 16 }; 17 18 return ( 19 <form onSubmit={handleSubmit}> 20 <label> 21 输入内容: 22 {/* 受控组件 */} 23 <input type="text" value={value} onChange={handleChange} /> 24 </label> 25 <button type="submit">提交</button> 26 </form> 27 ); 28} 29 30export default ControlledForm;

最近更新时间:2024-08-10

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!