面试题答案
一键面试实现代码
import React, { useState } from'react';
const InputAndButton = () => {
const [inputValue, setInputValue] = useState('');
const handleClick = () => {
console.log(inputValue);
};
const handleChange = (e) => {
setInputValue(e.target.value);
};
return (
<div>
<input type="text" value={inputValue} onChange={handleChange} />
<button onClick={handleClick}>点击获取值</button>
</div>
);
};
export default InputAndButton;
受控组件原理
在 React 中,受控组件是指其值由 React 组件的 state 控制的表单元素。例如 <input>
、<textarea>
、<select>
等。
原理如下:
- 值的控制:表单元素的值通过
value
属性绑定到 React 组件的 state 中。这意味着表单元素的值完全由 state 决定,而不是由 DOM 自身维护。 - 状态更新:当表单元素的值发生变化时(如用户在输入框中输入内容),会触发
onChange
事件。在onChange
事件处理函数中,通过调用setState
(或 React Hook 中的setXxx
)方法来更新 state,从而更新表单元素的值。这样,React 能够根据 state 的变化重新渲染组件,保证视图与 state 的一致性。
通过这种方式,React 可以对表单数据进行集中管理和控制,方便进行数据验证、实时反馈等操作。