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

React學習之事件綁定的幾種方法對比

 更新時間:2017年09月24日 16:48:48   作者:jiangwenyang  
這篇文章主要給大家介紹了關(guān)于React學習之事件綁定的幾種方法對比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

前言

本文主要給大家介紹了關(guān)于React事件綁定的幾種方法對比的相關(guān)呢榮,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

React事件綁定

由于類的方法默認不會綁定this,因此在調(diào)用的時候如果忘記綁定,this的值將會是undefined。

通常如果不是直接調(diào)用,應(yīng)該為方法綁定this。綁定方式有以下幾種:

1. 在構(gòu)造函數(shù)中使用bind綁定this

class Button extends React.Component {
constructor(props) {
 super(props);
 this.handleClick = this.handleClick.bind(this);
 }
 handleClick(){
 console.log('this is:', this);
 }
 render() {
 return (
  <button onClick={this.handleClick}>
  Click me
  </button>
 );
 }
}

2. 在調(diào)用的時候使用bind綁定this

class Button extends React.Component {
 handleClick(){
 console.log('this is:', this);
 }
 render() {
 return (
  <button onClick={this.handleClick.bind(this)}>
  Click me
  </button>
 );
 }
}

3. 在調(diào)用的時候使用箭頭函數(shù)綁定this

class Button extends React.Component {
 handleClick(){
 console.log('this is:', this);
 }
 render() {
 return (
  <button onClick={()=>this.handleClick()}>
  Click me
  </button>
 );
 }
}

4. 使用屬性初始化器語法綁定this(實驗性)

class Button extends React.Component {
 handleClick=()=>{
 console.log('this is:', this);
 }
 render() {
 return (
  <button onClick={this.handleClick}>
  Click me
  </button>
 );
 }
}

比較

方式2和方式3都是在調(diào)用的時候再綁定this。

  • 優(yōu)點:寫法比較簡單,當組件中沒有state的時候就不需要添加類構(gòu)造函數(shù)來綁定this
  • 缺點:每一次調(diào)用的時候都會生成一個新的方法實例,因此對性能有影響,并且當這個函數(shù)作為屬性值傳入低階組件的時候,這些組件可能會進行額外的重新渲染,因為每一次都是新的方法實例作為的新的屬性傳遞。

方式1在類構(gòu)造函數(shù)中綁定this,調(diào)用的時候不需要再綁定

  • 優(yōu)點:只會生成一個方法實例,并且綁定一次之后如果多次用到這個方法也不需要再綁定。
  • 缺點:即使不用到state,也需要添加類構(gòu)造函數(shù)來綁定this,代碼量多一點。。。

方式4:利用屬性初始化語法,將方法初始化為箭頭函數(shù),因此在創(chuàng)建函數(shù)的時候就綁定了this。

  • 優(yōu)點:創(chuàng)建方法就綁定this,不需要在類構(gòu)造函數(shù)中綁定,調(diào)用的時候不需要再作綁定。結(jié)合了方式1、方式2、方式3的優(yōu)點
  • 缺點:目前仍然是實驗性語法,需要用babel轉(zhuǎn)譯

總結(jié)

方式1是官方推薦的綁定方式,也是性能最好的方式。方式2和方式3會有性能影響并且當方法作為屬性傳遞給子組件的時候會引起重渲問題。方式4目前屬于實驗性語法,但是是最好的綁定方式,需要結(jié)合bable轉(zhuǎn)譯

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • react-router4 配合webpack require.ensure 實現(xiàn)異步加載的示例

    react-router4 配合webpack require.ensure 實現(xiàn)異步加載的示例

    本篇文章主要介紹了react-router4 配合webpack require.ensure 實現(xiàn)異步加載的示例,非常具有實用價值,需要的朋友可以參考下
    2018-01-01
  • 如何使用 React Native WebView 實現(xiàn) App 與 Web 的通訊

    如何使用 React Native WebView 實現(xiàn) App&nb

    通過 react-native-webview,我們可以輕松實現(xiàn) App 與 Web 的雙向通訊,這種技術(shù)非常適合需要在移動應(yīng)用中嵌入復雜網(wǎng)頁功能的場景,感興趣的朋友一起看看吧
    2024-12-12
  • react?hooks深拷貝后無法保留視圖狀態(tài)解決方法

    react?hooks深拷貝后無法保留視圖狀態(tài)解決方法

    這篇文章主要為大家介紹了react?hooks深拷貝后無法保留視圖狀態(tài)解決示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • React中CSS模塊沖突的問題及解決

    React中CSS模塊沖突的問題及解決

    本文將探討 React 中 CSS 模塊沖突的常見原因,并提供解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 使用React hook實現(xiàn)remember me功能

    使用React hook實現(xiàn)remember me功能

    相信大家在使用 React 寫頁面的時候都遇到過完成 Remember me 的需求吧!本文就將這個需求封裝在一個 React hook 中以供后續(xù)的使用,覺得有用的同學可以收藏起來以備不時之需,感興趣的小伙伴跟著小編一起來看看吧
    2024-04-04
  • React實現(xiàn)下拉框的key,value的值同時傳送

    React實現(xiàn)下拉框的key,value的值同時傳送

    這篇文章主要介紹了React實現(xiàn)下拉框的key,value的值同時傳送方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React ts模式使用http-proxy-middleware代理時訪問報404問題

    React ts模式使用http-proxy-middleware代理時訪問報404問題

    這篇文章主要介紹了React ts模式使用http-proxy-middleware代理時訪問報404問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • react-intl實現(xiàn)React國際化多語言的方法

    react-intl實現(xiàn)React國際化多語言的方法

    這篇文章主要介紹了react-intl實現(xiàn)React國際化多語言的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • React中組件通信的幾種主要方式

    React中組件通信的幾種主要方式

    React知識中一個主要內(nèi)容便是組件之間的通信,以下列舉幾種常用的組件通信方式,通過代碼示例介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-10-10
  • reactjs學習解決unknown at rule @tailwind css問題

    reactjs學習解決unknown at rule @tailwind css

    這篇文章主要介紹了reactjs學習解決unknown at rule @tailwind css問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

宝坻区| 高淳县| 隆林| 清原| 广丰县| 渝北区| 宣威市| 太白县| 房山区| 元朗区| 武乡县| 博客| 尉犁县| 四平市| 石家庄市| 鸡东县| 无极县| 桃园市| 望都县| 石阡县| 淅川县| 巴彦淖尔市| 阿荣旗| 石景山区| 临汾市| 武定县| 江津市| 大连市| 思茅市| 祁门县| 旬邑县| 克山县| 凤冈县| 汉寿县| 和静县| 万年县| 大荔县| 齐齐哈尔市| 麦盖提县| 南通市| 平谷区|