006-React事件处理

历史文章目录连接:

https://blog.csdn.net/yy763496668/article/details/113117040

此链接为CSDN连接,目的为方便大家一览博客目录!内容会定期更新。

7bacbb86c757fd73026a930a2d624da6.png

微信公众号:猿媛大本营

概述:

事件绑定

事件对象

正文:

事件绑定

on事件名称={事件逻辑},如onClick={()=>{}}

事件采用小驼峰命名法

源码如下:

import React from 'react'
import ReactDOM from 'react-dom'


function clickMe()
{
  console.log("点我");
  
}


ReactDOM.render(
  <div onClick={clickMe}>点击</div>,
  document.getElementById('root')
)

433c187fddfddc7c5e34adeb24ae45fe.png

如果在单文件组件中绑定事件源码如下

import React from 'react'


class App extends React.Component{
  clickMe()
  {
    console.log('点我');
  }
  render(){
    return(
      <button onClick={this.clickMe}>点我</button>
    )
  }
} 
export default App

435519f9a5b343c15f88180ad9c92d9a.png

事件对象

通过绑定的事件参数获取事件对象,在React中事件对象叫做合成事件(对象)

合成事件:兼容所有的浏览器,无需担心跨浏览器兼容性问题

import React from 'react'


class App extends React.Component{
  constructor(props:any)
  {
    super(props);
    this.click3 = this.click3.bind(this);
  }
  click1(msg:string)
  {
    console.log('点我1'+msg);
    console.log(this);
    
  }
  click2 = (msg:string)=>{
    console.log('点我2'+msg);
  }
  /**
   * 箭头函数
   * @param msg 参数
   */
  click3 = (msg:string)=>{
    console.log('点我2'+msg);
  }
  click4 = (e:React.MouseEvent<HTMLElement>)=>{
    console.log('点我2');
    console.log(e);
  }
  /**
   * 通过HTMLElement 事件参数 阻止a标签的页面跳转行为
   * @param e 获取HTMLElement 事件参数
   */
  click5 = (e:React.MouseEvent<HTMLElement>)=>{
    e.preventDefault();
    console.log("百度");
    
  }
  render(){
    return(
      <div>
        {/* 以下注释的代码是错误的 */}
        {/* <button onClick={this.click1('hello')}>点我3</button> */}
        <button onClick={this.click1.bind(this,'hello')}>点我1</button>
        <button onClick={this.click2.bind(this,'hello')}>点我2</button>
        <button onClick={()=>{this.click1('hello1')}}>点我1</button>
        <button onClick={this.click4.bind(this)}>点我4</button>
        <a href='https://www.baidu.com/' onClick={this.click5.bind(this)}>百度</a>
      </div>
    )
  }
} 
export default App

【文章导航】

https://blog.csdn.net/yy763496668/article/details/113117040

THANKS All !!

【关注、点赞,收藏】

关注公众号,您将第一时间收到文章更新

微信公众号:猿媛大本营

QQ群号:1056320746

254a3ea0870395baa5641e6b0f2d9876.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yy763496668

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值