【问题标题】:How to detect when ReactJS has finished page manipulation?如何检测 ReactJS 何时完成页面操作?
【发布时间】:2014-10-07 02:49:36
【问题描述】:

我们的客户将我们的 JS 标记添加到他们页面的头部。我们的标签在修改页面之前需要知道 reactJS 何时完成。

我曾尝试使用 jQuery 的 $(document).ready() 但这会在 reactJS 完成之前触发。我可以使用$(window).load(),但是如果页面上有很多图像,这会太慢。

有哪些选项可以绑定到React.renderComponent的完成?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    如果您无法直接控制 React 代码,您可以随时查看是否可以通过 DOM Mutation events 嗅探相关更改。

    【讨论】:

    • React 创建的虚拟 DOM 在这里有用吗?
    【解决方案2】:

    通过您可以传递给React.renderComponent 的可选回调开始执行您的代码。在React.renderComponent 完成之前,此回调不会执行。如果您无权访问正在执行 React.renderComponent 的代码(我刚刚意识到几乎肯定是这种情况),那么就没有明确/可靠的方法来监听函数的执行,当然除非该函数暴露某种你可以监听的事件,甚至保证“x”一旦完成就会如此。可悲的是,对于您的情况,这似乎不是 React.renderComponent 的选项。如果您有任何其他问题,请告诉我。

    【讨论】:

    • 感谢普利。也许我们的客户愿意使用你提到的 React.renderComponent 的回调功能。
    • 当然没问题。我想得越多,我认为这将是一个完全合理的期望放在客户端上 - 真的没有避免它,假设你编写代码是用户友好的,那么添加一个对他们来说是微不足道的线进入回叫。这与 javascript 如何处理回调和一般异步性等非常一致。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 2013-01-16
    • 2018-09-29
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多