成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

React組件綁定this的方式有哪些

本篇內(nèi)容主要講解“React組件綁定this的方式有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“React組件綁定this的方式有哪些”吧!

創(chuàng)新互聯(lián)建站專注于中小企業(yè)網(wǎng)站建設(shè)、策劃制作、運(yùn)行維護(hù),主要提供一站式的企業(yè)網(wǎng)站建設(shè)服務(wù)。建站類型:公司網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司獨(dú)立站等。創(chuàng)新互聯(lián)不是單一的建網(wǎng)站,而是結(jié)合企業(yè)的建站目標(biāo)去規(guī)劃網(wǎng)站怎么建,如何利于運(yùn)營(yíng),尋求適合的建站方案。其次,網(wǎng)站后臺(tái)操作的便捷性也是網(wǎng)站制作過程中的重點(diǎn),創(chuàng)新互聯(lián)建站的網(wǎng)站后臺(tái)簡(jiǎn)單便捷,真正實(shí)現(xiàn)了零基礎(chǔ)操作。

用react進(jìn)行開發(fā)組件時(shí),我們需要關(guān)注一下組件內(nèi)部方法this的指向,react定義組件的方式有兩種,一種為函數(shù)組件,一種為類組件,類組件內(nèi)部可以定義一些方法,這些方法的this需要綁定到組件實(shí)例上,小編這里總結(jié)了一下,一共有四種方案:

第一種方案,在構(gòu)造函數(shù)內(nèi)部使用bind綁定this,這樣做的好處是,避免每次渲染時(shí)都要重新綁定,代碼如下:

import React, {Component} from 'react'
class Test extends React.Component {    constructor (props) {        super(props)        this.state = {message: 'Allo!'}        this.handleClick = this.handleClick.bind(this)    }
   handleClick (e) {        console.log(this.state.message)    }
   render () {        return (            <div>                <button onClick={ this.handleClick }>Say Hello</button>            </div>        )    }}

第二種方案同樣是用bind,但是這次不再構(gòu)造函數(shù)內(nèi)部使用,而是在render函數(shù)內(nèi)綁定,但是這樣的話,每次渲染都需要重新綁定,代碼如下:

import React, {Component} from 'react'
class Test extends React.Component {    constructor (props) {        super(props)        this.state = {message: 'Allo!'}    }
   handleClick (name, e) {        console.log(this.state.message + name)    }
   render () {        return (            <div>                <button onClick={ this.handleClick.bind(this, '趙四') }>Say Hello</button>            </div>        )    }}

第三種方案是在render函數(shù)中,調(diào)用方法的位置包裹一層箭頭函數(shù),因?yàn)榧^函數(shù)的this指向箭頭函數(shù)定義的時(shí)候其所處作用域的this,而箭頭函數(shù)在render函數(shù)中定義,render函數(shù)this始終指向組件實(shí)例,所以箭頭函數(shù)的this也指向組件實(shí)例,代碼如下:

class Test extends React.Component {    constructor (props) {        super(props)        this.state = {message: 'Allo!'}    }
   handleClick (e) {        console.log(this.state.message)    }
   render () {        return (            <div>                <button onClick={ ()=>{ this.handleClick() } }>Say Hello</button>            </div>        )    }

以上這種方式有個(gè)小問題,因?yàn)榧^函數(shù)總是匿名的,如果你打算移除監(jiān)聽事件,是做不到的,那么怎么做才可以移除呢?看下一種方案。

第四種方案,代碼如下:

class Test extends React.Component {    constructor (props) {        super(props)        this.state = {message: 'Allo!'}    }     handleClick = (e) => {        console.log(this.state.message)    }     render () {        return (            <div>                <button onClick={ this.handleClick }>Say Hello</button>            </div>        )    }}

不過,在Classes中直接賦值是ES7的寫法,ES6并不支持,你有兩種選擇,一種是配置你的開發(fā)環(huán)境支持ES7,一種使采用如下方式,下面這種方式是第四種方案的另外一種寫法,代碼如下:

class Test extends React.Component {    constructor (props) {        super(props)        this.state = {message: 'Allo!'}        this.handleClick = (e) => {            console.log(this.state.message)        }    }     render () {        return (            <div>                <button onClick={ this.handleClick }>Say Hello</button>            </div>        )    }

以上便是react組件內(nèi)部方法this綁定的四種方案,如果還有其它方案歡迎留言。

資料引用:

https://blog.csdn.net/sinat_17775997/article/details/56839485

到此,相信大家對(duì)“React組件綁定this的方式有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

標(biāo)題名稱:React組件綁定this的方式有哪些
文章網(wǎng)址:http://jinyejixie.com/article24/pggcje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站、微信小程序、虛擬主機(jī)服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
晋宁县| 台南县| 偏关县| 夏邑县| 绥德县| 芜湖市| 乌兰察布市| 阿拉善左旗| 通榆县| 时尚| 尼木县| 同心县| 绿春县| 泰和县| 遵化市| 梁河县| 依兰县| 承德县| 大足县| 河间市| 全椒县| 贵南县| 卫辉市| 萨嘎县| 长宁区| 祁东县| 策勒县| 镇原县| 大石桥市| 利川市| 徐闻县| 巧家县| 康乐县| 融水| 庄浪县| 淅川县| 沭阳县| 鄂托克前旗| 昭平县| 福清市| 曲周县|