博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ReactJS学习系列课程(React ref的使用)
阅读量:4589 次
发布时间:2019-06-09

本文共 973 字,大约阅读时间需要 3 分钟。

在我学习的过程当中,总会被一些名词搞得晕头转向,但是细想起来又非常简单,比如定义的这个refs,其实就是用于获取dom的一种方式。

在React中组件并不是真实的 DOM 节点,而是存在于内存之中的一种,叫做虚拟 DOM (virtual DOM)。只有当它插入文档以后,才会变成真实的 DOM 。根据 React 的设计,所有的 DOM 变动,都先在虚拟 DOM 上发生,然后再将实际发生变动的部分,反映在真实 DOM上,这种叫做 DOM diff ,它可以极大提高网页的性能表现。

var MyComponent = React.createClass({  handleClick: function() {    this.refs.myTextInput.focus();  },  render: function() {    return (      
); }});ReactDOM.render(
, document.getElementById('example'));

上面代码中,组件 MyComponent 的子节点有一个文本输入框,用于获取用户的输入。这时就必须获取真实的 DOM 节点,虚拟 DOM 是拿不到用户输入的。为了做到这一点,文本输入框必须有一个 ref 属性,然后 this.refs.[refName] 就会返回这个真实的 DOM 节点。

通过这个ref我们同样可以获取input的输入值。就是这么简单。

但是使用过程中我们切记:由于 this.refs.[refName] 属性获取的是真实 DOM ,所以必须等到虚拟 DOM 插入文档以后,才能使用这个属性,否则会报错。上面代码中,通过为组件指定 Click 事件的回调函数,确保了只有等到真实 DOM 发生 Click 事件之后,才会读取 this.refs.[refName] 属性。

原文连接:http://blog.csdn.net/jiangbo_phd/article/details/51758148

转载于:https://www.cnblogs.com/taoshengyijiuai/p/7073400.html

你可能感兴趣的文章
Shuffle过程详解
查看>>
微软云数据库SQL Azure
查看>>
Amazon DynamoDB
查看>>
云数据库概念
查看>>
云数据库与其他数据库的关系
查看>>
HBase 表和Region
查看>>
HBase功能组件
查看>>
UMP系统架构 RabbitMQ
查看>>
UMP系统架构 Mnesia
查看>>
UMP系统架构 Controller服务器
查看>>
UMP系统架构 Zookeeper
查看>>
HBase+Redis
查看>>
UMP系统架构 LVS
查看>>
Store工作原理
查看>>
HBase Ambari
查看>>
HLog工作原理
查看>>
构建HBase二级索引
查看>>
HBase Master-status
查看>>
HBase Region的定位
查看>>
HBase Ganglia
查看>>