欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React事件處理過程中傳參的實現(xiàn)方法

 更新時間:2022年10月31日 10:19:12   作者:搞前端的小菜  
這篇文章主要介紹了React事件處理過程中傳參的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

摘要

首先我們知道,在React中,是通過小駝峰式給元素綁定事件:

  fn = ()=>{
    //執(zhí)行代碼
  }
  button onClick={this.fn}>111</button>

但是如果有Vue的基礎(chǔ),可以很清楚的看到二者的區(qū)別。在Vue中,我們可以直接給fn傳遞參數(shù)。

但是如果在React中我們這么做:

  fn = (value)=>{
    //執(zhí)行代碼
    console.log(value)
  }
  button onClick={this.fn('2222')}>111</button>

你會發(fā)現(xiàn),在頁面加載的時候,2222已經(jīng)被打印出來了。但是點擊按鈕的時候并沒有效果。

這說明,該方法并沒有被綁定在按鈕上,而是在按鈕加載的時候直接調(diào)用了。

而這一點也很好理解,React并沒有做向Vue這方面的處理,它是直接調(diào)用完,將返回值綁定給了onClick。所以這里我們要記住,事件綁定的時候,一定要綁定的是一個函數(shù)。

OK,現(xiàn)在了解了問題所在,如果我想在調(diào)用方法的時候傳遞參數(shù),應(yīng)該怎么做呢?

1.箭頭函數(shù)

第一個方法,如果我們在給按鈕綁定事件的時候,外層綁定的是一個箭頭函數(shù),里面才是我們寫的方法,似乎就能完美的解決問題了:

  speak = (value) =>{
    alert(value)
  }
  <button onClick={() => {this.speak('qnmlgbd')}}>說話</button>

通過箭頭函數(shù)的方式,直接給onClick綁定的就是我們定義的speak方法,并且傳遞好了參數(shù)。

2.函數(shù)柯里化

那如果箭頭函數(shù)可以,似乎我們直接在方法里面返回一個方法,也沒有什么問題。

	  say = (value)=>{
	    return ()=>{
	      alert(value)
	    }
	  }
	 <button onClick={this.say('qnmlgbd')}>說話</button>

通過這種方式,我們在onClick綁定的時候,可以不用寫箭頭函數(shù)了,比較好看一點。但是原理和剛剛那種方式是一個樣子的。

3.bind方法

我們知道,bind方法是改變方法的this指向,并且返回的是一個方法。不會直接調(diào)用。

OK,如果bind有這個特性,我們就可以利用它解決這個問題。

 loud(value){
   alert(value)
 }
<button onClick={this.loud.bind(this,'qnmlgbd')}>說話</button>

這里可以注意一下,loud方法在定義的時候沒有采用箭頭函數(shù)的方式。而之前的兩個方法在定義的時候都使用了箭頭函數(shù)的方式。

這是因為,在React中,如果定義函數(shù)不使用箭頭函數(shù),函數(shù)里面的this會是綁定事件的元素,而不是React組件。但是如果用bind方法進行事件綁定,就不需要考慮這個問題了。

最后我們總的看一下這三種方式的差別:

export default class Child extends Component {
  say = (value)=>{
    return ()=>{
      alert(value)
    }
  }
  speak = (value) =>{
    alert(value)
  }
  loud(value){
    alert(value)
  }
  render() {
    return (
      <div>
        <button onClick={this.say('qnmlgbd')}>說話</button>
        <button onClick={() => {this.speak('qnmlgbd')}}>說話</button>
        <button onClick={this.loud.bind(this,'qnmlgbd')}>說話</button>
      </div>
    )
  }
}

到此這篇關(guān)于React事件處理過程中傳參的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)React事件處理 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React?中使用?Redux?的?4?種寫法小結(jié)

    React?中使用?Redux?的?4?種寫法小結(jié)

    這篇文章主要介紹了在?React?中使用?Redux?的?4?種寫法,Redux 一般來說并不是必須的,只有在項目比較復(fù)雜的時候,比如多個分散在不同地方的組件使用同一個狀態(tài),本文就React使用?Redux的相關(guān)知識給大家介紹的非常詳細,需要的朋友參考下吧
    2022-06-06
  • React 實現(xiàn)拖拽功能的示例代碼

    React 實現(xiàn)拖拽功能的示例代碼

    這篇文章主要介紹了React 實現(xiàn)拖拽功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 淺談React Native 傳參的幾種方式(小結(jié))

    淺談React Native 傳參的幾種方式(小結(jié))

    這篇文章主要介紹了淺談React Native 傳參的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • React中props使用介紹

    React中props使用介紹

    props是組件(包括函數(shù)組件和class組件)間的內(nèi)置屬性,用其可以傳遞數(shù)據(jù)給子節(jié)點,props用來傳遞參數(shù)。組件實例化過程中,你可以向其中傳遞一個參數(shù),這個參數(shù)會在實例化過程中被引用
    2022-12-12
  • React.js前端導(dǎo)出Excel的方式

    React.js前端導(dǎo)出Excel的方式

    這篇文章主要為大家介紹了React.js前端導(dǎo)出Excel的方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • react如何利用useRef、forwardRef、useImperativeHandle獲取并處理dom

    react如何利用useRef、forwardRef、useImperativeHandle獲取并處理dom

    這篇文章主要介紹了react如何利用useRef、forwardRef、useImperativeHandle獲取并處理dom,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-10-10
  • React?組件權(quán)限控制的實現(xiàn)

    React?組件權(quán)限控制的實現(xiàn)

    本文主要介紹了React?組件權(quán)限控制的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • react之組件通信詳解

    react之組件通信詳解

    本篇文章主要介紹了React組件通信詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10
  • react dva實現(xiàn)的代碼

    react dva實現(xiàn)的代碼

    dva是一個基于redux和redux-saga的數(shù)據(jù)流方案,然后為了簡化開發(fā)體驗,dva額外內(nèi)置了react-router,fetch,可以激烈為一個輕量級的應(yīng)用框架,這篇文章主要介紹了react dva實現(xiàn),需要的朋友可以參考下
    2021-11-11
  • React 事件綁定的實現(xiàn)及區(qū)別

    React 事件綁定的實現(xiàn)及區(qū)別

    事件綁定也是其中一部分內(nèi)容,通過事件委托和事件合成,React 在內(nèi)部對事件進行優(yōu)化和處理,減少了事件處理函數(shù)的調(diào)用次數(shù),從而提升了性能,本文主要介紹了React事件綁定的實現(xiàn)及區(qū)別,感興趣的可以了解一下
    2024-03-03

最新評論