我们有一个使用 React.lazy 和 Suspend 进行代码分割的 React 应用程序。每个星期二我们都会部署一个新版本,因此我们的块也会发生变化。
我们现在遇到的问题是,如果我们的用户在部署后没有刷新,他们的旧数据main.js仍然指向具有旧哈希值的旧块文件。当他们尝试加载旧的块文件时,它会崩溃。
我们知道我们可以在加载应用程序时预取路由,但是需要预取的路由很多(大约 20 条)。这可能会影响我们的主页性能,因为我们在主页上有一些 API 调用。
有没有更好的方法来处理这个问题?
提前谢谢了。
我正在查看应用程序 The History of Everything,因为我正在学习编写 Flutter 应用程序。但后来我注意到应用程序中的页面过渡动画比我自己的应用程序(也是用 Flutter 制作的)平滑得多。您可以看到下面的比较:
\n\n
^ 您可以在我的应用程序中看到,当我执行滑动手势并释放半程时,它会立即重置为 0,而无需任何转换。
\n\n
^ 你可以在《万物的历史》中看到,当我做滑动手势并释放半键时,它会平滑地过渡回 0。
\n\n我在 GitHub ( https://github.com/2d-inc/HistoryOfEverything ) 上检查了他们的源代码,它以与我相同的方式推送路线,使用MaterialPageRoute. 我已经使用发布模式在手机上构建我的应用程序,因此它不应该与性能相关。
以下是我如何推动新路线:
\n\nNavigator.push(\n context,\n MaterialPageRoute(\n builder: (context) {\n return MessageScreen(conversation: _conversation);\n },\n ),\n);\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的 Flutter doctor 输出:
\n\n[\xe2\x9c\x93] Flutter (Channel stable, v1.2.1, on Mac OS X 10.14.4 18E226, locale en-HK)\n[\xe2\x9c\x93] Android toolchain - develop for Android devices (Android SDK version 28.0.3)\n[!] iOS toolchain - develop for iOS devices …Run Code Online (Sandbox Code Playgroud)