React表單詳解

2021-09-02 14:08:26 字數 2424 閱讀 6713

不可控元件和可控元件介紹

不可控元件

如下:

input元素中有個預設值 為helloworld這個字串 我們知道react元件是將資料繫結到狀態中 如上給input元素直接繫結了預設值 這樣有可能使元素的值和元件中狀態繫結的值不統一 當我們要獲取input的輸入值時就得給input 加乙個ref值 然後 var inputvalue=react.finddomnode(this.refs.input).value 這樣獲得input的輸入值 很麻煩

例項:

var myform = react.createclass(

event.preventdefault();

var helloto = reactdom.finddomnode(this.refs.helloto).value;

alert(helloto);

},render:function ()

});reactdom.render(,document.body);

可控元件

如下:

這樣寫 要獲取input的輸入值就

var inputvalue = this.state.value

例項:var myform = react.createclass(

},handlechange:function (event) )

},handlesubmit:function (event) ,

render:function ()

});reactdom.render(,document.body);

元件可控的好處

不同表單元素的使用

首先看有那些常見的表單元素

1、name標籤作用是指明乙個input 或者checkbox或等等是做什麼用的 label標籤有個比較重要的屬性是for 對應的值是另乙個元素的id

2、

3、

4、

select的值就是被選中的option的值,當option被選中時 會多乙個selected屬性

表單元素例項

var myform = react.createclass(

},handlesubmit:function (event) ,

handlenamechange:function (event) )

},handle***change:function (event) )

},handlecheckedchange:function (event) )

},render:function ()

});

事件處理函式的復用

復用的兩種方式:

一:bind復用

寫函式時要有兩個引數 第乙個通常是name 第二個 event

handlechange:function(name,event)

呼叫時有兩個引數 乙個是this另乙個是字串 指明是誰呼叫

例項:

//事件處理函式的復用----bind復用

var myform = react.createclass(

},handlechange:function (name,event)

newstate[name] = name == 'checked' ? event.target.checked :event.target.value;

this.setstate(newstate);

},handlesubmit:function (event) ,

render:function ()

});

二:name 復用

給元素新增name

建構函式:

handlechange:function(event)

呼叫函式

例項:

//事件處理函式的復用----name復用

var myform = react.createclass(

},handlechange:function (event)

newstate[event.target.name] = event.target.name == 'checked' ? event.target.checked :event.target.value;

this.setstate(newstate);

},handlesubmit:function (event) ,

render:function ()

});

表單元件自定義

react表單處理

input textarea 1.狀態屬性 value,checked,selected 2.事件屬性 onchange,react支援domlevel3定義的所有表單事件 import react,from react export default class myform extends com...

React 表單操作

使用者在表單填入的內容,屬於使用者跟元件的互動,所以不能用this.props讀取 上面 中,文字輸入框的值,不能用this.props.value讀取,而要定義乙個onchange事件的 函式,通過event.target.value讀取使用者輸入的值。textarea元素 select元素 ra...

React中的表單元件

表單是前端非常重要的一塊內容,並且往往包含了錯誤校驗等邏輯。react對表單元素做了專門的優化處理,他對表單元素做了一些抽象,使得他們的使用方式更統一更規範。表單裡面出來了乙個新的概念叫 約束性元件 那麼如何理解約束性元件和非約束性元件呢。約束性元件,簡單的說,就是由react管理了它的value,...