分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

[Web 前端] ??React高级教程(es6)——(2)对于Refs最新变动的理解

发布时间:2023-09-06 02:00责任编辑:董明明关键词:Web前端Reactes6

cp :  https://blog.csdn.net/liwusen/article/details/53384561

1.什么是ReactJS中的refs

在React中组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual

DOM)。只有当它插入文档以后,才会变成真实的 DOM 。根据 React 的设计,所有的 DOM 变动,都先

在虚拟 DOM 上发生,然后再将实际发生变动的部分,反映在真实 DOM上,这种算法叫做 DOM diff ,它

可以极大提高网页的性能表现。

如果我们想在虚拟DOM时(此时DOM还没有转化为真是DOM),取到某一个元素,此时不能通过

JS的getElementByXXX这种形式。

2.ReactJS前期的做法

前期在虚拟DOM阶段取元素,语法如下:

function Hello(){ ???handleClick:function(){ ??????this.refs.myinput.fucus(); ???} ???return <input ref="myinput" />}

从上述我们可以知道可以通过refs.[refsName]来取得虚拟DOM中的元素。

3.ReactJS最新版本,对于refs的定义

关于refs的定义在最新版本中,并没有变化,但是使用语法有了很大的改变。

现在组件中的refs是一个回调函数。

这个函数,在组件生成期(mounted)

会自动执行,这个回调函数的参数是元素本身:

function Hello(){ ??handleClick:function(){ ??} ??return <input ref={(input)=>{this.myinput=input;}}/>}

在这个例子中,ref的函数,传入了input元素本身,并且将this.myinput赋值为input元素本身。

在元素的销毁期(unmounted)也会执行,但是在销毁期,无论如何只会返回null。

[Web 前端] ??React高级教程(es6)——(2)对于Refs最新变动的理解

原文地址:https://www.cnblogs.com/0616--ataozhijia/p/9189023.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved