ReactDOM.findDOMNode(this.refs.a)与this.refs.a有什么不同?

时间:2016-04-16 07:04:37

标签: reactjs

如果直接从this.refs获取元素对象,那么为什么选择ReactDOM.findDOMNode?

var HelloMessage = React.createClass({
click:function(){
  console.log(ReactDOM.findDOMNode(this.refs.a))
  console.log(ReactDOM.findDOMNode(this.refs.b))
  console.log(this.refs.a)
  console.log(this.refs.b)
},
  render: function() {
    return <div><div onClick={this.click}>click</div>Hello {this.props.name}{this.props.no?<div ref="a">{this.props.no}</div>:<div ref="b"></div>}</div>;
  }
});

ReactDOM.render(<HelloMessage name="John" no={1}/>, mountNode);

1 个答案:

答案 0 :(得分:6)

从使用角度来看,这些之间没有区别。

ReactDOM.findDOMNode是过去获得参考的一种方式。目前它已被弃用,this.refs是您现在应该如何做的。