<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        React中的refs的使用教程

        來源:懂視網 責編:小采 時間:2020-11-27 22:19:27
        文檔

        React中的refs的使用教程

        React中的refs的使用教程:ref是React中的一種屬性,當render函數返回某個組件的實例時,可以給render中的某個虛擬DOM節點添加一個ref屬性,如下面的代碼所示: <body> <script type=text/jsx> var App = React.createClass({ rend
        推薦度:
        導讀React中的refs的使用教程:ref是React中的一種屬性,當render函數返回某個組件的實例時,可以給render中的某個虛擬DOM節點添加一個ref屬性,如下面的代碼所示: <body> <script type=text/jsx> var App = React.createClass({ rend

        ref是React中的一種屬性,當render函數返回某個組件的實例時,可以給render中的某個虛擬DOM節點添加一個ref屬性,如下面的代碼所示:

        <body> 
         <script type="text/jsx"> 
         var App = React.createClass({ 
         render: function() { 
         return ( 
         <div> 
         <input type="text" placeholder="input something..." ref="input" /> 
         </div> 
         ); 
         } 
         }); 
         React.render( 
         <App />, 
         document.body 
         ); 
         </script> 
        </body> 
        

        在上面的代碼中,render函數里僅僅返回了一個<div>標簽,<div>里僅有一個<input>標簽,在<input>標簽的屬性中,添加了一個ref屬性,官方文檔上對于ref屬性的解釋如下:

        ref 屬性

        React 支持一種非常特殊的屬性,你可以用來綁定到 render() 輸出的任何組件上去。這個特殊的屬性允許你引用 render() 返回的相應的支撐實例( backing instance )。這樣就可以確保在任何時間總是拿到正確的實例。

        給<input>標簽設置ref屬性有什么用途呢?下面是官方文檔給出的解釋:

        在其它代碼中(典型地事件處理代碼),通過 this.refs 獲取支撐實例( backing instance ),就像這樣:this.refs.input。其中"input"就是上面給<input>標簽設置的ref屬性的值。

        通過ref屬性,我們還可以拿到該虛擬DOM對應的真實DOM節點,有兩種方法可以拿到真實DOM節點,如下代碼所示:

        <input type="text" ref="username" /> 
        //下面4種方式都可以通過ref獲取真實DOM節點 
        var usernameDOM = this.refs.username.getDOMNode(); 
        var usernameDOM = React.findDOMNode(this.refs.username); 
        var usernameDOM = this.refs['username'].getDOMNode(); 
        var usernameDOM = React.findDOMNode(this.refs['username']); 
        

        下面通過一個demo來了解ref的使用:

        demo在瀏覽器中運行的效果如下圖:

        在最上面的輸入框中輸入任意1-10的數字,即可讓下面10個輸入框中對應的輸入框獲取焦點,如上圖,輸入3后,下面第3個輸入框馬上獲取焦點,這里就用到了ref屬性,代碼如下:

        <!DOCTYPE html> 
        <html lang="en"> 
        <head> 
         <meta charset="UTF-8"> 
         <title>Refs</title> 
         <script type="text/javascript" src="../react-0.13.0/build/react.js"></script> 
         <script type="text/javascript" src="../react-0.13.0/build/JSXTransformer.js"></script> 
        </head> 
        <body> 
         <script type="text/jsx"> 
         var App = React.createClass({ 
         handleChange: function(event) { 
         var index = event.target.value; 
         if(index >= 1 && index <= 10) { 
         //找到對應的輸入框并將焦點設置到里面 
         var refName = "input" + index; 
         //var inputDOM = React.findDOMNode(this.refs[refName]); 
         var inputDOM = this.refs[refName].getDOMNode(); 
         inputDOM.focus(); 
         } 
         }, 
         render: function() { 
         var inputs = []; 
         for(var i = 1; i <= 10; i++) { 
         inputs.push(<div><li><input type="text" ref={"input" + i}/></li><br/></div>); 
         } 
         return ( 
         <div> 
         <label htmlFor="input" >在這里輸入下面任意輸入框的索引,光標會自動定位到輸入框內:</label> 
         <input type="text" id="input" onChange={this.handleChange} /> 
         <hr /> 
         <ol> 
         {inputs} 
         </ol> 
         </div> 
         ) 
         } 
         }); 
         React.render( 
         <App />, 
         document.body 
         ); 
         </script> 
        </body> 
        </html> 

        在render函數中,為html文檔的body部分添加了10個輸入框,每個輸入框的ref屬性都設置成了["index" + 索引]的這種方式,然后在最上面的輸入框的handleChange函數中,獲取輸入的數字,并得到ref屬性的值,最后根據ref屬性的值,找到對應的真實DOM節點,然后讓該DOM節點獲取焦點。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        React中的refs的使用教程

        React中的refs的使用教程:ref是React中的一種屬性,當render函數返回某個組件的實例時,可以給render中的某個虛擬DOM節點添加一個ref屬性,如下面的代碼所示: <body> <script type=text/jsx> var App = React.createClass({ rend
        推薦度:
        標簽: 中的 方法 用法
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 67pao强力打造高清免费| 黄在线观看www免费看| 中文字幕乱码免费看电影| 日本免费A级毛一片| 国产美女精品视频免费观看| 亚洲另类激情综合偷自拍图| 一区二区亚洲精品精华液| 中国一级毛片免费看视频| 成人毛片免费网站| 久久伊人久久亚洲综合| 免费在线观看亚洲| 亚洲黄色片免费看| 亚洲一区二区三区在线 | 亚洲中文字幕无码中文字在线| 亚洲狠狠ady亚洲精品大秀| 一级毛片免费观看不收费| 毛片A级毛片免费播放| 亚洲爆乳成av人在线视菜奈实| 亚洲最大免费视频网| 亚洲a级片在线观看| 日韩成人免费aa在线看| 亚洲乱码卡三乱码新区| 免费国产黄网站在线观看| 亚洲日韩在线观看免费视频| 亚洲丶国产丶欧美一区二区三区| 无码专区一va亚洲v专区在线 | AV激情亚洲男人的天堂国语| 男女免费观看在线爽爽爽视频| 亚洲av色福利天堂| 91嫩草国产在线观看免费| 亚洲综合图片小说区热久久| 成年女人免费v片| 久久高潮一级毛片免费| 亚洲国产精品激情在线观看| 亚洲av无码偷拍在线观看| 在人线av无码免费高潮喷水| 无码的免费不卡毛片视频| 又色又污又黄无遮挡的免费视| 看一级毛片免费观看视频| 国产V亚洲V天堂无码| 日本免费高清视频|