javascript - 如何在 react.js 中检测父组件中的子渲染

标签 javascript reactjs refluxjs

我正在尝试缓存 App 组件的渲染标记。我知道这在某种程度上“违反了规则”,但我处于无服务器环境(chrome-extension)中。页面加载后,我想将缓存的 App 标记注入(inject) DOM。预期结果类似于在服务器上使用 react-component rendererd 的体验。非常像这里描述的那样:http://www.tabforacause.org/blog/2015/01/29/using-reactjs-and-application-cache-fast-synced-app/ .

为了说明我的用例,我更新了 Thinking in react example :

  • 应用程序
    • 可过滤的产品表
      • 搜索栏
      • ProductTable(包含来自 reflux store 的状态)
        • 产品类别行
        • 产品行

正如预期的那样,App 中既没有调用 componentDidUpdate 也没有调用 componentWillUpdate

是否有可能以合理的方式检测 App 组件中更新的子组件?最好不要修改子组件类?

我想避免将 props/state 移动到 App

最佳答案

我想出了一个解决方案,它作为解决方案的一部分(无需修改子组件,或了解整个应用程序状态,例如:Flux 模式):

App 可以包装在一个组件中,该组件使用 MutationObserver 来跟踪 DOM 中的实际变化。

关于javascript - 如何在 react.js 中检测父组件中的子渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29041034/

相关文章:

reactjs - 为什么我们需要 Flux 和 React?

javascript - 2 个对象数组的值的交集

reactjs - 如何在 react-final-form 的表单外访问 "pristine", "submitting"和 "form.reset"?

javascript - 如何仅针对 1 个元素重新初始化 AngularJS 1 Controller

javascript - React ChartJS 流式传输实时数据

javascript - enzyme 无法找到组件/<div>

ReactJS 和 Reflux 在组件安装之前监听存储

javascript - 从父 React 刷新子状态

javascript - 过渡不起作用

javascript - 拖放移除目标元素