React操作真实dom是否还需要使用state

#1

react可以通过更新state来更新dom,
但操作真实dom获取一些元素信息,改变display,或者top之类的时,
dom.style.xx,直接操作也能生效。
这个时候是否还需要将状态加入state中,而不是直接使用,性能上有区别么?

#2

改变display不需要操作DOM 可以用state去控制 例如

<div style={{display:this.state.xxx?'block':'none'}}>

一般我们获取用户的输入框的时候 才会用到真实的dom节点 都是用ref去获取的

#3

恩,我用的就是ref,主要是不只是简单的控制显示隐藏,还需要进行一些操作位移

#4

恩,我用的就是ref,主要是不只是简单的控制显示隐藏,还需要进行一些操作位移。

#5

输入框为什么要用ref去取。。。

#6

你是想做一个位移 也就是动画这种? 一般也就是两种方法 一种是css3 另外一种就是js修改css
一般建议使用第一种 不建议操作真实DOM用 js去修改css

#7

不是输入框 是输入框里面的值 需要用ref去获取 是我描述不准确 抱歉

#8

要实时改变dom的位置,写css这种方式肯定不合适,只能用style,我现在关心的是说直接改style,还是多走一下state

#9

input value一般也不需要ref取吧

#10

为什么不用onChange到state?如果是antd还有decorator这样的做法,用ref去取input的value让react情何以堪

1 Like
#11

今天才开发完第一个完整的react项目 项目中涉及到大大大量的表单 就开始习惯onchange -> state 最后$().val()…