国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

react開發教程(七)React事件系統

walterrwu / 377人閱讀

摘要:按鈕中使用原生事件中提供了很好的合成事件系統,但有時候也需要用到原生事件。而使用合成事件系統時則不需要,因為內部以及處理了。事件類型鍵盤事件焦點事件表單事件鼠標事件選擇事件觸摸事件事件動畫事件圖像事件媒體事件剪貼板事件上一篇開發教程六與

事件系統

Virtual DOM在內存中是以對象的形式存在的,如果想要在這些對象上添加事件的話,React是基于Virtual DOM實現了一個合成事件層,他完全符合w3c標準,不存在ie的兼容問題。并且擁有和瀏覽器原生事件一樣的接口,支持冒泡,可以使用stopPropagation()和preventDefault()來中斷它。好吧不要想太多記住就是和瀏覽器事件一樣,處了調用形式

合成事件的綁定方式

簡單的很

//jsx:

//瀏覽器原生:

react只是借鑒DOM0級事件的這種寫法

綁定方法

在react組件中,每個方法的上下文都會指向該組件的實例,即自動綁定this為當前組件。而且React還會對這種引用進行緩存,以達到CPU和內存的最優化。在使用ES6 class或者純粹函數時,這種綁定就不復存在了,我們需要手動實現this綁定

bind方法

這個方法可以幫助我們綁定事件處理器內的this,并且可以向事件處理器中傳遞參數

import React, { Component } form "react";

class App extends Component {
    handleClick (e, arg) {
        console.log(e, arg)
    }
    render () {
        return (
            
        )
    }
}
構造器內聲明

在組件的構造器內完成了this的綁定,這種綁定方式的好處在于僅需要進行一次綁定,而不需要每次調用事件監聽器時去執行綁定操作。

import React, { Component } form "react";

class App extends Component {
    constructor () {
        super();
        this.handleClick = this.handleClick.bind(this,arg);
    }
    handleClick (e, arg) {
        console.log(e, arg)
    }
    render () {
        return (
            
        )
    }
}
箭頭函數

箭頭函數不僅是函數的語法糖,它還自動綁定定義此函數作用域的this,因此我們不需要對它使用bind方法。

import React, { Component } form "react";

class App extends Component {
    constructor () {
        super();
        this.handleClick = (e, arg) => {
          console.log(e, arg)
        }
    }
 
    render () {
        return (
            
        )
    }
}
React中使用原生事件

React中提供了很好的合成事件系統,但有時候也需要用到原生事件。在React生命周期中提供了componentDidMount會在組件已經完成安裝并且在瀏覽器中存在真實的DOM后調用,此時我們就可以完成原生事件的綁定。比如:

import React, { Component } form "react";

class App extends Component {
    constructor () {
        super();
    }
    
    componentDidMount () {
        this.refs.button.addEventListener("click", e => {
            handleClick(e);
        })
    }
    
    handleClick (e) {
        console.log(e)
    }
    
    componentWillUnmount () {
        this.refs.button.removeEventListener("click")
    }
    
    render () {
        return (
            
        )
    }
}
一定要注意在React中使用原生DOM事件時,一定要在組件卸載時手動移除,否則很可能出現內存泄漏的問題。2而使用合成事件系統時則不需要,因為React內部以及處理了。
事件類型 鍵盤事件

onKeyDown
onKeyPress
onKeyUp

焦點事件

onFocus
onBlur

表單事件

onChange
onInput
onSubmit

鼠標事件

onClick
onContextMenu
onDoubleClick
onMouseDown
onMouseUp
onMouseOver
onMouseOut
onMouseMove
onMouseEnter
onMouseLeave
onDrag

選擇事件

onSelect

觸摸事件

onTouchCancel
onTouchEnd
onTouchMove
onTouchStart

UI事件

onScroll

動畫事件

onAnimationStart
onAnimationEnd
onAnimationIteration

圖像事件

onLoad
onError

媒體事件

onPause
onPlay
onCanPlay
onLoadStart
onProgress

剪貼板事件

onCopy
onCut
onPaste

上一篇:react開發教程(六)React與DOM

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/87178.html

相關文章

  • react開發教程(六)React與DOM

    摘要:當組件裝載完畢時,就會被調用。它可以是一個回調函數,這個回調函數會在組件被掛載后立即執行。也可以是一個字符串吧放到原生的組件中,我們可以通過獲取到節點而如果吧放到組件上獲取到的就是組件的實例上一篇開發教程五生命周期下一篇開發教程七事件系統 ReactDOM findeDOMNode 語法:DOMElement findDOMNode(ReactComponent component)...

    call_me_R 評論0 收藏0
  • 玩轉 React(一)- 前言

    摘要:本人計劃編寫一個針對中初級前端開發者學習的系列教程玩轉。使用的原因是新的語言規范開發效率更高代碼更優雅,尤其是基于開發的項目。其次也是目前特別流行的一個前端框架,截止目前,上有將近萬,國內一二線互聯網公司都有深度依賴開發的項目。 本人計劃編寫一個針對中初級前端開發者學習 React 的系列教程 - 《玩轉 React》。 文章更新頻率:每周 1 ~ 2 篇。 目錄 玩轉 React(...

    waltr 評論0 收藏0

發表評論

0條評論

walterrwu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<