React免費視頻教程-表單的應(yīng)用 (共4集)

第1節(jié):表單的事件響應(yīng)和bind復(fù)用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>表單的事件響應(yīng)和bind復(fù)用</title>
    <script src="./common/react.js"></script>
    <script src="./common/react-dom.js"></script>
    <script src="http://cdn.bootcss.com/babel-core/5.8.38/browser.min.js"></script>
</head>
<body>
    <div id="demo" >
        <script type="text/babel">
        var  MyForm = React.createClass({
           getInitialState:function(){
            return{
                username:'',
                gender:'man',
                checked:true
            }
           },
           handleChange:function(name,event){
                var newState={};
                // checked 是ture,name=event.target.checked,如果是false,name=event.target.value.
                console.log('event.target.checked:',event.target.checked);
                console.log('event.target.value',event.target.value);
                console.log('name',name);
                
                newState[name]=name=="checked"?event.target.checked:event.target.value;
                this.setState(newState);
                console.log('newState:',newState);
           },        
           render:function(){
               return (<form onSubmit={this.submitHandler}>
               <label htmlFor="username">情輸入您的姓名:</label>
               <input type="text" name="username" onChange={this.handleChange.bind(this,"username")} value={this.state.username} id="username" />
               <br/>
               <label htmlFor="checkbox">是或否:</label>
               <input  type="checkbox" value="是否" name="checked" id="checkbox" onChange={this.handleChange.bind(this,"checked")} checked={this.state.checked} />
               <br/>
               <label htmlFor="username">請選擇</label>
               <select name="gender" onChange={this.handleChange.bind(this,"gender")} value={this.state.gender}>
                    <option value="man">帥哥</option>
                    <option value="woman">美女</option>
               </select>
               <br/>
               <button type="submit">提交</button>
               </form>)
           }
       });


       ReactDOM.render(<MyForm/>,document.getElementById('demo'))


        
        
        
        </script>


    </div>    
</body>
</html>
事件響應(yīng)

表單組件可以通過設(shè)置onChange()回調(diào)函數(shù)來監(jiān)聽組件變化溯革。當(dāng)用戶的交互行文導(dǎo)致一下變化時,onChange()被執(zhí)行并通過瀏覽器做出響應(yīng)。

  • <input>或<textarea>的value發(fā)生變化。
  • <input>的checked狀態(tài)改變。
  • <option>的selected 狀態(tài)改變乔妈。
bind復(fù)用

bind方法為事件相應(yīng)函數(shù)增加一個參數(shù),事件響應(yīng)函數(shù)通過該參數(shù)識別事件源氓皱。

我們作一個文本框路召,并使用bind進行復(fù)用,我希望你自己可以親自動手敲一下代碼波材,加深對bind復(fù)用的理解股淡。

 handleChange:function(name,event){
                var newState={};
                newState[name]=name=="checked"?event.target.checked:event.target.value;
                this.setState(newState);
                console.log(newState);
           },

newState[name]=(name=="checked")?event.target.checked:event.target.value;
onChange={this.handleChange.bind(this,"username")

handleChange就這函數(shù)的調(diào)用.沒什么特別.

微信截圖_20180128224821.png

第2節(jié):React表單name復(fù)用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市廷区,隨后出現(xiàn)的幾起案子唯灵,更是在濱河造成了極大的恐慌,老刑警劉巖隙轻,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埠帕,死亡現(xiàn)場離奇詭異,居然都是意外死亡大脉,警方通過查閱死者的電腦和手機搞监,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門水孩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镰矿,“玉大人,你說我怎么就攤上這事俘种〕颖辏” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵宙刘,是天一觀的道長苍姜。 經(jīng)常有香客問我,道長悬包,這世上最難降的妖魔是什么衙猪? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮布近,結(jié)果婚禮上垫释,老公的妹妹穿的比我還像新娘。我一直安慰自己撑瞧,他們只是感情好棵譬,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著预伺,像睡著了一般订咸。 火紅的嫁衣襯著肌膚如雪曼尊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天脏嚷,我揣著相機與錄音骆撇,去河邊找鬼。 笑死然眼,一個胖子當(dāng)著我的面吹牛艾船,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播高每,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼屿岂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鲸匿?” 一聲冷哼從身側(cè)響起爷怀,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎带欢,沒想到半個月后运授,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡乔煞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年吁朦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渡贾。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡逗宜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出空骚,到底是詐尸還是另有隱情纺讲,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布囤屹,位于F島的核電站熬甚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肋坚。R本人自食惡果不足惜乡括,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望智厌。 院中可真熱鬧诲泌,春花似錦、人聲如沸峦剔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吝沫。三九已至呻澜,卻和暖如春递礼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羹幸。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工脊髓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栅受。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓将硝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親屏镊。 傳聞我的和親對象是個殘疾皇子依疼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計者無需花費時間糾纏JS復(fù)雜的高級特性而芥。 1....
    LaBaby_閱讀 1,181評論 0 1
  • ??JavaScript 最初的一個應(yīng)用棍丐,就是分擔(dān)服務(wù)器處理表單的責(zé)任误辑,打破處處依賴服務(wù)器的局面。 ??盡管目前的...
    霜天曉閱讀 671評論 0 3
  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南歌逢,這只是我在學(xué)習(xí)過程中的一些閱讀筆記巾钉,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,842評論 1 18
  • 管理的綜合問題 全球化對組織的影響體現(xiàn)在全球化組織有不同類型秘案。應(yīng)對全球化的方法有全球外包和國內(nèi)生產(chǎn)砰苍,國外銷售。 社...
    Distance_265f閱讀 321評論 0 0
  • 現(xiàn)在OC與swift混編的項目越來越多踏烙,這就涉及到兩種語言互相調(diào)用方法的問題师骗。 在swift調(diào)用OC方法上還是比較...
    shiyueZ閱讀 8,711評論 2 6