React:我可以操作DOM React渲染了多少?
这是我在做什么:
http://jsfiddle.net/iamnoah/pTrrw/
关键部分是: position: function() { var container = $(this.getDOMNode()); this._menu = $(this.refs.menu.getDOMNode()); this._menu.appendTo(document.body). offset({ top: container.offset().top + container.outerHeight(),left: container.offset().left }); },restore: function() { this._menu.appendTo(this.getDOMNode()); },componentWillUpdate: function() { this.restore(); },componentDidUpdate: function() { this.position(); },componentDidMount: function() { this.position(); }, 这工作伟大的现在。我把组件更新之前的内容,假设React在更新之间单独保留DOM,不会错过它。事实上,React似乎对移动内容很好(如果我删除componentWillUpdate和componentDidUpdate,定位的元素仍然更新!) 我的问题是有多少结果假设是安全的(即,如果我假设这些事情,我的代码会在React的未来版本中打破?): > React不关心DOM是否在更新之间移动,只要将它放回componentWillUpdate即可。 最后一个似乎有点极端,神奇的我,但有一些很大的影响,如果它持有。
我是一个React dev。我会回答你的每个问题:
True – React不会查看DOM,除非更新时,除了事件处理程序:
我不会依赖这个,我不知道它现在甚至是真的。
我也不会依赖这个 – 现在React设置单个属性,但我可以很容易想象它设置el.style.cssText如果这是更快,这将吹走你所做的个人更改。
我不相信这是真的目前,你也不应该依赖于这一点。 一般来说,你不应该手动操作React创建的DOM。创建一个空的< div>是100%的犹太教在React和手工填充它;甚至可以修改React渲染的元素的属性,只要你以后不尝试在React中改变它的属性(使React执行DOM更新),但是如果你移动一个元素,React可能会寻找它,当它找不到它时会感到困惑。 希望有帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何实现自定义XML标签--急急急!
- ruby-on-rails – 如何在ActiveAdmin中将链接添加回应用程序
- c# – 多个可选查询字符串参数REST API GET
- 快速掌握一个语言最常用的50%
- c# – Dynamics Crm:获取statuscode / statecode映射的元数
- 详解Vue的computed(计算属性)使用实例之TodoList
- ruby-on-rails – Rails flash:通知不起作用
- oracle – ORA-12514 TNS:侦听器当前不知道连接描述符中请
- ruby-on-rails – Ruby on Rails:用不同的语言插入部分语言
- postgresql – 数据库内容版本控制