React 之 事件处理与条件渲染

本文介绍了React中处理事件的方法,包括事件命名规则、事件处理函数的绑定方式,并对比了React与DOM事件处理的不同之处。此外,还讲解了几种常用的条件渲染技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事件处理

需要注意 React 和 DOM 的区别:

  • React 事件的命名采用 小驼峰式(camelCase),而不是纯小写;
  • 使用 JSX 语法时你需要传入 一个函数 作为事件处理函数,而不像 DOM 那样,是一个字符串;
  • 不能通过返回 false 的方式阻止默认行为。你必须显式的使用 preventDefault()
绑定 this 的方法

以下回调函数名称用 handleClick 来表示
方法一bind

在 constructor 中:

this.handleClick = this.handleClick.bind(this);

方法二:使用 class fields 正确的绑定回调函数

前提:使用实验性的 public class fields 语法,Create React App 默认启用此语法。

 handleClick = () => {
    console.log('this is:', this);
  }

render() {
    return (
      <button onClick={this.handleClick}>
        Click me
      </button>
    );
  }

方法三:在回调中使用箭头函数
当没有使用 public class fields 语法时,可以通过箭头函数确保 handleClick 内的 this 已被绑定。

class LoggingButton extends React.Component {
  handleClick() {
    console.log('this is:', this);
  }

  render() {
    // 此语法确保 `handleClick` 内的 `this` 已被绑定。
    return (
      <button onClick={() => this.handleClick()}>
        Click me
      </button>
    );
  }
}

由于每次渲染 LoggingButton 时都会创建不同的回调函数,因此,如果该回调函数作为 prop 传入子组件时,这些组件可能会进行额外的重新渲染,所以推荐使用 public class fields 语法来避免性能问题。

条件渲染

if

最简单的条件渲染方式,也很方便,但还有更为简捷的语法;

与运算符 &&

在 JavaScript 中,true && expression 总是会返回 expression, 而 false && expression 总是会返回 false;

因此,如果条件是 true,&& 右侧的元素就会被渲染,如果是 false,React 会忽略并跳过它。

三元运算符
 condition ? true : false

组织组件渲染

让 render 方法直接返回 null,而不进行任何渲染。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值