最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React實現(xiàn)雙向綁定示例代碼

 更新時間:2016年09月19日 09:29:54   作者:starwmx520  
這篇文章給大家介紹了在React中如何實現(xiàn)雙向綁定,文中給出了示例代碼,對大家的理解與學(xué)習(xí)很有幫助,有需要的朋友下面來一起看看吧。

前言

React.js現(xiàn)在已經(jīng)很流行了,不會React.js都不好意思說自己會前端了。

那么下面就來看看關(guān)于React雙向綁定的實現(xiàn)。

雙向綁定的使用:

組件需要mixins:引用LinkedStateMixin。它提供一個linkState方法。

參數(shù)是state屬性

雙向綁定用valueLink={this.linkState(XX)}

linkState方法返回一個對象,有一個value屬性,指定state的屬性。

還有一個requestChange回調(diào)方法,用來實現(xiàn)state的修改。參數(shù)是新值

可以理解成onchange的綁定方法??梢宰约簩懸粋€linkState對象,value是state.XX requestChange里用setState()來修改值。用valueLink={obj}來實現(xiàn)。

可以理解成this.linkState()實現(xiàn)的就是指定綁定值value 和change方法

valueLink屬性實現(xiàn)了linkstate.value綁定到value requestChange方法綁定onChange

可以創(chuàng)建一個this.linkState('XX') value={XX.value} onchange={fn}方法內(nèi)使用Xx.requestChange(e.target.value)

-------------------------

小結(jié):linkState()方法提供state屬性和change方法。valueLink={}來實現(xiàn)value 和change事件的綁定。

以下是實現(xiàn)代碼

/*默認(rèn)表單雙向綁定
   * 給每個input綁定change事件來實現(xiàn)修改state
   * 如果標(biāo)簽多了一個個綁定肯定是不行的,
   * 所以react 給我個提示了reactLink來
   */
   var Box1=React.createClass({
   getInitialState:function(){
    return {
    name:'star',bool:true
    }
   },
   handlNameChange:function(event){
    this.setState({name:event.target.value});
   },handlboolChange:function(event){
    this.setState({bool:event.target.checked})
   },
   render:function(){
    return (
    <div>
     <input type="text" value={this.state.name} onChange={this.handlNameChange}/>   <br/>
     <input type="checkbox" checked={this.state.bool} onChange={this.handlboolChange} />
    </div> 
    )
   }
   }) ;
   React.render(<Box1></Box1>,document.querySelector('#div1'));
   
   /*ReactLink僅是提供了onchange setState模式的簡單包裝和約定。是其的簡寫方式
   * 1、需要mixins添加引用
   * 2、原先的value綁定換成valueLink。參數(shù)從this.state.XX換成this.linkState('XX')這樣就可以了
   */
   /*ReactLink解析
   * LinkedStateMixin給組件添加一個linkState方法,參數(shù)是state屬性名。
   * 它返回一個reactlink對象,包含state當(dāng)前值和一個改變值 的回調(diào).
   * reactlink 可以在組件間通過props傳遞
   */
   var Box2=React.createClass({
   mixins:[React.addons.LinkedStateMixin],//添加引用
   getInitialState:function(){
    return {
    name:'star',bool:true
    }
   },
   render:function(){//綁定時屬性從value換成valueLink值需要用this.linkState方法調(diào)用
    return (
    <div>
     <input type="text" valueLink={this.linkState('name')} />   <br/>
     <input type="checkbox" checkedLink={this.linkState('bool')} />
    </div>   
    );
   }
   })
   React.render(<Box2></Box2>,document.querySelector('#div2'));
   
   /*底層原理
   * reactlink對象其實就一個value屬性,和一個requestChange方法,value值 是state。方法實現(xiàn)修改state值
   * 
   */
   var Box3=React.createClass({
   getInitialState:function(){
    return {
    name:'star',bool:true
    }
   },
   handlnamechange:function(val){
    this.setState({name:val})
   },
   handlboolchange:function(val){
    this.setState({bool:val})
   },
   render:function(){
    var reactlink={
    value:this.state.name,
    requestChange:this.handlnamechange
    }
    var reactlink2={
    value:this.state.bool,
    requestChange:this.handlboolchange
    }
     return(
      <div>
     <input type="text" valueLink={reactlink} />   <br/>
     <input type="checkbox" checkedLink={reactlink2} />
    </div> 
     )
   }
   });
   React.render(<Box3></Box3>,document.querySelector('#div3'));
   
   /*valuelink
   * 它實際上實現(xiàn)的是狀態(tài)的綁定和change事件的修改
   * requestChange方法接收值來實現(xiàn)state的修改
   */
   var Box4=React.createClass({
   mixins:[React.addons.LinkedStateMixin],//添加引用
   getInitialState:function(){
    return {
    name:'star',bool:true
    }
   },
   render:function(){
    var valuelink=this.linkState('name');
    var handlenamechange=function(e){
      valuelink.requestChange(e.target.value) 
    }
    var valuelink2=this.linkState('bool');
    var handlenboolchange=function(e){
      valuelink2.requestChange(e.target.checked) 
    }    
    return (
      <div>
     <input type="text" value={valuelink.value} onChange={handlenamechange} />   <br/>
     <input type="checkbox" checked={valuelink2.value} onChange={handlenboolchange} />
    </div> 
    )
   }
   });
   React.render(<Box4></Box4>,document.querySelector('#div4'));

------------------------ReactLink對象傳遞

可以向子組件傳遞:

linkname={this.linkState('name')}

子組件內(nèi)可:

<input type="text" valueLink={this.props.linkname} >

通過props來引用并綁定到valueLink上。

也可以用this.props.linkname.requestChange()來用方法修改值 。

它們的變化 會同步到父組件的。并更新標(biāo)簽的。

總結(jié)

以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能有所幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • 詳解Redux的工作流程

    詳解Redux的工作流程

    這篇文章主要介紹了Redux的工作流程,redux是一個專門用于做狀態(tài)管理的JS庫,它可以在react、angular、vue等項目中,但基本與react配合使用,需要的朋友可以參考下
    2022-08-08
  • React與Redux之?dāng)?shù)組處理講解

    React與Redux之?dāng)?shù)組處理講解

    這篇文章主要介紹了React與Redux之?dāng)?shù)組處理講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 需要避免的五個react的ref錯誤用法

    需要避免的五個react的ref錯誤用法

    react是一個優(yōu)秀的框架,提供了我們很多的便利,但是在使用的過程中,我們也會遇到很多的問題,其中一個就是ref的使用,以下是我列出的5個使用ref的錯誤用法,并提供了正確的用法,需要的朋友可以參考下
    2024-12-12
  • React實現(xiàn)骨架屏的示例代碼

    React實現(xiàn)骨架屏的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何通過React自動化實現(xiàn)骨架屏,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • ReactNative踩坑之配置調(diào)試端口的解決方法

    ReactNative踩坑之配置調(diào)試端口的解決方法

    本篇文章主要介紹了ReactNative踩坑之配置調(diào)試端口的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 使用Webpack打包React項目的流程步驟

    使用Webpack打包React項目的流程步驟

    隨著React應(yīng)用日益復(fù)雜,開發(fā)者需要借助模塊打包工具來管理項目依賴、轉(zhuǎn)換代碼和優(yōu)化性能,Webpack是一款功能強大的模塊打包器,它可以將React項目中的JavaScript、CSS、圖片等資源打包成瀏覽器友好的文件,本文將全面介紹如何使用Webpack打包React項目
    2025-03-03
  • 解決React報錯React.Children.only expected to receive single React element child

    解決React報錯React.Children.only expected to rece

    這篇文章主要為大家介紹了React報錯React.Children.only expected to receive single React element child分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • react中實現(xiàn)將一個視頻流為m3u8格式的轉(zhuǎn)換

    react中實現(xiàn)將一個視頻流為m3u8格式的轉(zhuǎn)換

    這篇文章主要介紹了react中實現(xiàn)將一個視頻流為m3u8格式的轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 深入淺析React refs的簡介

    深入淺析React refs的簡介

    React中的Refs提供了一種方式,允許我們訪問DOM節(jié)點或在render方法中創(chuàng)建的React元素,本文給大家介紹react refs的相關(guān)知識,感興趣的朋友一起看看吧
    2021-07-07
  • React引入css的幾種方式及應(yīng)用小結(jié)

    React引入css的幾種方式及應(yīng)用小結(jié)

    這篇文章主要介紹了React引入css的幾種方式及應(yīng)用小結(jié),操作styled組件的樣式屬性,可在組件標(biāo)簽上定義屬性、也可以通過attrs定義屬性,本文通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03

最新評論

安远县| 南雄市| 页游| 鲁甸县| 安丘市| 莫力| 临猗县| 临朐县| 黄梅县| 峨边| 常州市| 安阳市| 瑞昌市| 枣阳市| 绵阳市| 桑日县| 石狮市| 漳浦县| 裕民县| 靖远县| 宁海县| 潜江市| 金寨县| 凤庆县| 天峻县| 崇仁县| 彭州市| 吴桥县| 哈密市| 平舆县| 封丘县| 永和县| 台南县| 历史| 淳化县| 泾阳县| 赤城县| 安国市| 贡山| 新巴尔虎左旗| 贵定县|