013.React中事件處理

不廢話直接展翅

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 準備好容器 -->
    <div id="test"></div>
    <!-- 引入依賴 ,引入的時候,必須就按照這個步驟-->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <script type="text/javascript" src="../js/babel.min.js"></script>
    
    <!--這裏使用了babel用來解析jsx語法-->
    <script type="text/babel"> class Demo extends React.Component{ /* 1.經過onXxx屬性指定事件處理函數(注意大小寫) a. React中使用的自定義(合成)事件,而不是使用的原生DOM事件 ——爲了更好的兼容性 b. React中事件是經過事件委託方式處理的(委託給組件最外層的元素)——爲了高效 2.經過event.target獲得發生事件的DOM元素——不要過分使用ref */ // React.createRef調用後會返回一個容器 myRef = React.createRef() myRef2 = React.createRef() // 展現左側輸入框的數據 showData=(c)=>{ alert(this.myRef.current.value) } showData2=(c)=>{ alert(this.myRef2.current.value) } // 當事件綁定在事件源自己時能夠不用ref showData3=(event)=>{ alert(event.target.value) } render(){ return ( <div id="test"> <input ref={this.myRef} type="text" placeholder="點擊提示數據"/> <button onClick={this.showData}>點我啊</button> <input ref={this.myRef2} onBlur={this.showData2} type="text" placeholder="失焦提示數據"/> <input onBlur={this.showData3} type="text" placeholder="失焦提示數據"/> </div> ) } } ReactDOM.render(<Demo/>,document.getElementById('test')) </script>
</body>
</html>
複製代碼

總結

1.經過onXxx屬性指定事件處理函數(注意大小寫)javascript

  • a. React中使用的自定義(合成)事件,而不是使用的原生DOM事件 ——爲了更好的兼容性
  • b. React中事件是經過事件委託方式處理的(委託給組件最外層的元素)——爲了高效

2.經過event.target獲得發生事件的DOM元素(時間綁定在事件源自己)——不要過分使用refhtml

官網可說了 ref雖好不能貪多java

相關文章
相關標籤/搜索