首頁  >  文章  >  web前端  >  react中受控元件是啥

react中受控元件是啥

WBOY
WBOY原創
2022-04-21 16:51:202128瀏覽

在react中,受控元件是用state來取得和設定輸入元素值的元件;也可以理解為渲染表單的React元件也控制著使用者輸入過程中表單發生的動作,被React以這種方式控制取值的表單輸入元素就叫做受控元件。

react中受控元件是啥

本教學操作環境:Windows10系統、react17.0.1版、Dell G3電腦。

react中受控元件是啥

React官網中對於受控元件是這樣解釋的: 渲染表單的 React 元件也控制著使用者輸入過程中表單發生的操作。被 React 以這種方式控制取值的表單輸入元素就叫做「受控元件」。

用state來取得並設定輸入元素值的元件,稱為受控元件。 23efcc05e98690ceeb219581933e4231, 4750256ae76b6b9d804861d8f69e79d3 和 221f08282418e2996498697df914ce4e 等標籤都可用 value 屬性,以實現受控組件。

有網友這樣解釋:在React中,每當表單的狀態改變時,都會被寫入到元件的state中,這種元件在React稱為受控元件。

受控元件的更新流程:

1,可以透過在初始state中設定表單的預設值

2,每當表單的值變更時,調用onChange事件處理器,

3,事件處理器透過事件物件e拿到改變後的狀態,改變state;

4,setState觸發檢視更新,完成表單元件值的更新

範例:input

- 阻止表單提交

class NameForm extends React.Component {
    constructor(props) {
        super(props);
        this.state = { value: '' };
        this.handleChange = this.handleChange.bind(this);
        this.handleSubmit = this.handleSubmit.bind(this);
    }
    handleChange(event) {
        this.setState({ value: event.target.value });
    }
    handleSubmit(event) {
        alert('提交的名字: ' + this.state.value);
        event.preventDefault();
    }
    render() {
        return (
            <form onSubmit={this.handleSubmit}>
                <label>
                    名字:
                    <input type="text" value={this.state.value} onChange={this.handleChange} />
                </label>
                <input type="submit" value="提交" />
            </form>
        );
    }
}

- file類型input

// file类型的input,属性value是只读的,所以是非受控组件
<input type="file" />

推薦學習:《react影片教學

以上是react中受控元件是啥的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn