>我可以依赖React忽略我在React树中与React DOM节点并排添加的DOM节点吗? – 我知道如果React决定删除我插入的节点,将删除非React节点.这对我很好.但我确实想知道React某一天是否会对这些不是由React管理的额外节点感到不安,并拒绝工作?
>如果React不管理DOM节点的任何样式(我没有向render()生成的节点添加任何样式属性),那么我可以通过jQuery安全地将自己的样式添加到这个DOM节点吗?例如.在jQuery中通过#id查找节点,然后设置其宽度.
>如果React生成的DOM节点上没有className,那么我可以安全地通过jQuery添加和删除该节点的类吗? (例如,在鼠标悬停时添加一个类.)
我目前正在做这些可能奇怪的事情的一个原因是,我有一些jQuery汤遗留代码,我现在不想移植到React.另一个是我正在使用一些有时在React树中添加DOM节点的jQuery插件.
解决方法
>不要删除/替换/移动React创建的任何节点
>不要为React节点创建兄弟节点,尤其是在反应节点之间或之前
>创建节点,添加事件侦听器,修改componentDidMount和/或componentDidUpdate中的dom
>在componentWillUnmount中删除节点,删除事件侦听器
>在componentDidMount中手动创建和附加节点以传递给jQuery插件
>不要在反应组件之外修改DOM
>确实将一个回调传递给setState(参数2),以便在做出反应后做一些事情(但更喜欢componentDidUpdate)
对于手动安装的React组件(通过React.render)
>不要将react组件作为没有生命周期挂钩的插件控制元素的子项挂载
>在从DOM中删除父级之前,请使用React.unmountComponentAtNode清理React组件
>如果在安装组件后必须执行某些操作,请将回调传递给React.render(参数3)
如果我错过任何内容,请编辑问题,或者包含您认为无效的规则.