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

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。




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

时间: 2024-10-05 05:04:37

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

怎样系统的学习WEB前端,系统教程分享

随着web前端的发展,衍生出了web前端开发工程师这样一个职位,虽然开始受到重视的时间不足10载,可是web前端开发工程师还是很吃香,出现了供不应求的现象. Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript! 现在市场很需要优秀的.高级的前端工程师. 一方面是因为这是一个比较新的细分行业,而且前端程序员大都自学一部分,知识结构不系统:另一方面,大学里面没有这种课程,可是在麦子学院里,有专门系统的web前端开发教程(http://www.maiziedu.com/cour

黑马web前端39期教程2019-01结课

最新web前端开发视频教程,2019年,有视频,有源码,完整版,有了他你前段就够了 需要的朋友,可以加微信(备注请写:我学前段) 原文地址:https://www.cnblogs.com/johnson-jiang/p/10455586.html

[Web 前端] React-router4简约教程

cp from : http://react-china.org/t/react-router4/15843/1 React-router和React-router-dom的选择 很多刚使用react的同学在接触到react-router的时候就会很蛋疼,什么react-router和react-router-dom?往往开始会比较懵逼.下面我们就来一探究竟. React-router React-router提供了一些router的核心api,包括Router, Route, Switch等,

[Web 前端] React Router v4 入坑指南

cp from : https://www.jianshu.com/p/6a45e2dfc9d9 万恶的根源 距离React Router v4 正式发布也已经过去三个月了,这周把一个React的架子做了升级,之前的路由用的还是v2.7.0版的,所以决定把路由也升级下,正好“尝尝鲜”... 江湖传言,目前官方同时维护 2.x 和 4.x 两个版本.(ヾ(??﹏?)??咦,此刻相信机智如我的你也会发现,ReactRouter v3 去哪儿了?整丢了??巴拉出锅了???敢不敢给我个完美的解释!?)事

web前端开发高级

前端高效开发框架技术与应用 Vue 基础 Vue 框架简介 MVX 模式介绍 Vue 框架概述 如何使用 Vue.js 基础语法 实例对象 生命周期 模板语法 计算属性 Methods 方法 渲染 列表渲染 条件渲染 事件与表单 事件处理 事件对象 事件委派 表单处理 Vue 组件 Vue 组件概述 组件对象剖析 Vue 组件的 data 属性 Props 传递数据 事件通信 父子组件事件通信 非父子组件事件通信 插槽 组件类型 双向绑定 动态组件 递归组件 Vue 工程化工具 搭建 node

web前端工程师全套教程免费分享

这是我自己早前听课时整理的前端全套知识点,适用于初学者,也可以适用于中级的程序员,你们可以下载下来.我自认为还是比较系统全面的,可以抵得上市场上90%的学习资料.讨厌那些随便乱写的资料还有拿出来卖钱的人!在这里我免费的分享出来供大家使用! 在这个平台真的可以学习到不少的东西!有很多的人都在无私的奉献着他们的智慧与知识. 希望对于学习者有所帮助! 如果你觉得好的话,就在评论出给予回应,谢谢.这是我劳动成果!希望给予鼓励! 点击下载 之前的链接有人说失效了!现在我又重新更新了! 这次还打不开的就直接

[Web 前端] React Js img 图片显示默认 占位符

cp from : https://blog.csdn.net/wyk304443164/article/details/77093339 没有考虑到兼容性,因为我们暂时只适配了webkit. 也没有考虑到懒加载,因为项目比较紧有需要加的朋友看react-lazyload,也比较简单,现成的轮子 /** * Created by wuyakun on 2017/8/11. * 会显示默认图片的image */ import React from 'react'; class DefaultIma

web前端javaScript基础教程

大家好,我是轻风乍起,本人从事前端8年了,总结了很多学习资料,有时间我会普及一些入门和提升建议,思想提升了,路线明确了自然就好了,于是就整理了下这篇学习路线文章,干货福利内容 在文末↓ 一,循环语句1.1 累加器累加器:我们不想输出所有的可能值,只想输出一个最后满足条件的总数.累加器:1累加器是一个变量,必须书写在for循环外面.2累加器初始值是0,有一个满足条件的结果累加器自加13累加器最终结果也是在for外面输出 案例:求一个正整数约数总个数.1// 获取数字2var num = parse

[web前端] react router4.0 登录后返回之前浏览页面(回到来源页)

本文链接:https://blog.csdn.net/zeroyulong/article/details/81911704困扰了好久的问题,最终还是在官方文档上找到了答案(看英文文档真心难受啊~~) 官方文档地址:https://reacttraining.com/react-router/web/example/auth-workflow 1.来源页中跳转登录按钮: 将本页pathname存放到路由state中, <Link to={{ pathname:"/login",