日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
React表單-創(chuàng)新互聯(lián)

表單組件兩種類型:約束組件和無(wú)約束組件

公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出黔江免費(fèi)做網(wǎng)站回饋大家。

  1. 無(wú)約束組件:

     eg:

var MyForm = React.createClass({

   render: function() {

      return ;

   }

});

      組件的value并非由父組件設(shè)置,而是讓自己控制自己的值。

     一個(gè)無(wú)約束的組件沒(méi)有太大用處,除非可以訪問(wèn)它的值。可以通過(guò)給添加一個(gè)ref屬性以訪問(wèn)到DOM節(jié)點(diǎn)的值。ref是一個(gè)不屬于DOM屬性的特殊屬性??梢酝ㄟ^(guò)this上下文訪問(wèn)這個(gè)節(jié)點(diǎn),所有的ref都添加到了this.refs上。

     eg:調(diào)用value:

var MyForm = React.createClass({

   submitHandler: function(event) {

      event.preventDefault();

      //通過(guò)ref訪問(wèn)輸入框

      var helloTo = this.refs.helloTo.getDOMNode().value;

      alert(helloTo);

   }

   render: function() {

      return (

         

            

            

            

         

      );

   }

});

   2. 約束組件:

     約束組件的模式與React其他類型組件的模式一致。表單的狀態(tài)交由React組件控制。狀態(tài)值被存儲(chǔ)在React組件的state中。

     約束組件能更好的控制表單組件。在約束組件中,輸入框的值是由父組件社設(shè)置的。

     eg:

var MyForm = React.createClass({

   getInitialState: function() {

      return {

         helloTo: "Hello World!"

      };

   }

   handleChange: function(event) {

      this.setState({

         helloTo: event.target.value

      });

   }

   submitHandler: function(event) {

      event.preventDefault();

      //通過(guò)ref訪問(wèn)輸入框

      alert(this.state.helloTo);

   }

   render: function() {

      return (

         

            

            

            

         

      );

   }

});

     約束組件可以控制數(shù)據(jù)流,在用戶輸入數(shù)據(jù)時(shí)更新state。如將用戶輸入的字符轉(zhuǎn)成變大寫(如:this.setState({helloTo: event.target.value.toUpperCase()});)并添加到輸入框時(shí)不會(huì)發(fā)生閃爍。這是因?yàn)镽eact攔截了瀏覽器原生的change事件,在setState被調(diào)用后,這個(gè)組件就會(huì)重新渲染輸入框。然后React計(jì)算差異,更新輸入框的值。

   3. 表單事件:

     React支持所有HTML事件。這些事件遵循駝峰命名的約定,且會(huì)被轉(zhuǎn)成合成事件。這些事件是標(biāo)準(zhǔn)化的,提供了跨瀏覽器的一致接口。

     所有合成事件都提供了event.target來(lái)訪問(wèn)觸發(fā)事件的DOM節(jié)點(diǎn)。

     訪問(wèn)約束組件最簡(jiǎn)單的方式之一:

handleEvent: function(syntheticEvent) {

   var DOMNode = syntheticEvent.target;

   var newValue = DOMNode.value;

}

   4. Label:

     Label是表單元素中重要組件,可以明確地向用戶傳達(dá)你的要求,提升單選框和復(fù)選框的可用性。

     React中class變成className,for變?yōu)閔tmlFor:

  5. 文本框和Select:

     React中的