React 笔记

ref

1. 作用

通常是为了引用真实的dom节点(对该节点进行相应操作),或者某个组件实例(只有类组件有,函数组件不能被实例化)。

2. 使用(三种方式)

2.1 字符串设置

即将被废弃,除了很紧急的开发,不推荐使用。

<div ref="div"></div>

2.2 回调函数

自己定义一个变量,然后绑定一个回调函数赋值。
注意如果是内联函数,每次render后,该函数会被执行2次,第一次传入的参数是null。(在类自身上的回调并不会)
开发常用。

<div ref={(c)=>{this.div = c;console.log(c);}}></div>

2.3 React 提供的方式

类组件:React.createRef()
函数组件:useRef()
好处是不用自己写回调,将获取 ref 的过程交给 React 执行。并且 React 会在组件销毁后自动解除去真实 dom 的引用,避免内存堆积。

  constructor(props) {
    super(props);
    this.inputRef = React.createRef();
  }
  render() {
    return <input type="text" ref={this.inputRef} />;
  }
}

事件

1. 通过 React 自身的 onXxx 属性指定事件处理函数(注意大小写)

React 主要使用了事件代理,主要有两方面的优点:

  • React使用的是自定义(合成)事件, 而不是使用的原生DOM事件,实现了多个浏览器的兼容性
  • React中的事件是通过事件委托方式处理的(委托给组件最外层的元素),高效

2. 通过 ref

通过 ref 获取原生 dom 后,和原生 js 操作一样,不推荐。

posted @   Sebastian·S·Pan  阅读(34)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示