react中三种查找dom元素的方式

还是拿一个经典的react实例来说 可能都知道react中没有vue那样的数据双向绑定的效果
但我们可以通过其他的方式来实现

class App extends React.Component {
    constructor(){
		super();
		this.state={value:''}
	}
	render(){
		return (
			<div>
				<input type="text"  id="d1" ref="d2" onChange={this.change.bind(this)} />
                <div>{this.state.value}</div>
			</div>
		)
	}
	change(e){
		var div=document.getElementById('d1')//第一种方式: 通过原生的dom 操作获取对象
		this.setState({value:div.value})
		this.setState({value:this.refs.d2.value})//第二种方式: 通过 react 自己封装的refs 获取
		this.setState({value:e.target.value}) // 第三种方式 通过 事件对象 获取
	}
}
ReactDOM.render(<App />,document.getElementById('root'))

总结上面的三种情况就是
1.原生dom操作 ById ByClassName querySelector 等等
2.react 自带的 refs 方式 这个官方推荐使用 但不建议使用在事件源上面
3.事件对象 event 来使用 通常用于事件源 上面 上面的情况就推荐使用 这种方式

发布了196 篇原创文章 · 获赞 66 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yunchong_zhao/article/details/104618232
今日推荐