首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React:我可以在多大程度上操纵React呈现的DOM?

React:我可以在多大程度上操纵React呈现的DOM?
EN

Stack Overflow用户
提问于 2014-05-08 08:27:48
回答 2查看 33.2K关注 0票数 63

这就是我正在做的:jsfiddle

关键部分是:

代码语言:javascript
运行
复制
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似乎可以很好地处理移动内容(如果删除componentWillUpdatecomponentDidUpdate,定位的元素仍然会更新!)

我的问题是,有多少由此产生的假设是安全的(即,如果我假设这些事情,我的代码会在React的未来版本中崩溃吗?):

只要您将DOM放回componentWillUpdate.

  • React中,
  • React就不会关心DOM是否在更新之间移动。
  • React会将您请求的任何内联样式与元素上已有的样式合并(即使它没有设置样式)。
  • React将更新它呈现的DOM,即使您将该DOM移动到文档中的其他位置也是如此!

最后一个对我来说似乎有点极端和神奇,但如果它成立的话,会有一些很大的影响。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23530716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档