react系列(14)受控元件與非受控元件

2021-09-30 17:07:31 字數 1004 閱讀 1803

在這類表單元素中,當使用者修改輸入資料,表單會自動將其賦值到value屬性中,這稱為html元素維持了自身狀態。但在react開發中,我們應盡可能的將這種可變的狀態儲存在元件的狀態屬性中,並且只能用 setstate() 方法進行更新。也就是說,react不但負責渲染表單的元件而且自主控制著表單元素的輸出值,這類元件稱為受控元件。在開發元件時,應盡可能定義為受控元件,如:

import react from 'react';

class nameform extends react.component ;

this.handlechange = this.handlechange.bind(this);

this.handlesubmit = this.handlesubmit.bind(this);

} handlechange(event) );

} handlesubmit(event)

render()

}//匯出元件

export default nameform;

該例子中 value= onchange= 是整段**的核心語句,其的value屬性只能通過自身狀態this.state來控制。

在受控元件中,表單資料由 react 元件處理。如果讓表單資料由dom處理時,這時候該元件稱為非受控元件。比如說在html中,可以讓使用者從其裝置儲存中選擇乙個或多個檔案上傳到伺服器,或通過file api進行操作,它始終是乙個不受控制的元件,因為它的值只能由使用者設定,而不是以程式設計方式設定。針對非受控元件,我們通常通過ref從dom中獲取表單值或操作dom節點。

import react from 'react';

class fileinput extends react.component

handlesubmit(event)

render()

}//匯出元件

export default fileinput;

react受控元件與非受控元件

在html中,標籤input textarea select的值的改變通常是根據使用者輸入進行更新。在react中,可變狀態通常儲存在元件的狀態屬性中,並且只能使用 setstate 更新,而呈現表單的react元件也控制著在後續使用者輸入時該表單中發生的情況,以這種由react控制的輸入表單元素而...

react受控元件與非受控元件

一 受控元件 或都要繫結乙個change事件 每當表單的狀態發生變化,都會被寫入元件的state中,這種元件在react中被稱為受控元件 在受控元件中,元件渲染出的狀態與它的value或者checked prop向對應.react通過這種方式消除了元件的區域性狀態,是的應用的整個狀態可控.react...

react受控元件與非受控元件

非控元件 input textarea等普通元素預設是非受控元件 輸入框內部的值是使用者控制和react無關 這種簡單的input就是非控元件 受控元件 受控元件就是可以被 react 狀態控制的元件 input textarea等普通元素通常onchange 事件獲取當前輸入內容使用setstat...