我使用类似于react-snap的自定义工具在构建时创建应用的快照,如recommended in the create-react-app docs。这会生成一个静态服务器呈现版本,我可以在nginx后面部署,而无需在服务器上运行react。这很好。
我还使用代码分割来懒洋洋地加载一些组件以减少初始JS有效负载。 (我使用react-loadable,但我愿意在需要时更改它。)在创建快照时,它正常工作,并且HTML正确生成,用户正确接收,并且所有内容都完全显示在服务器上甚至没有下载任何JS。这很棒。
但是,在客户端重新水化期间,尚未触发对异步加载组件的list
调用。同时,DOM已经拥有了必须从快照中呈现的内容。
在这种情况下,有没有办法在安装过程中阻止组件的初始渲染,因为我已经在DOM中有内容了?
此外,是否可以在import(...)
完成后运行反应水合逻辑,以便即使在导入完成后我也可以防止任何闪烁?
如果重要,延迟加载的组件是不常用的路由,由react-router管理。