我应该在React生产环境中使用registerServiceWorker吗?

3
当您使用create-react-app引导您的React应用程序时,会有一个名为registerServiceWorker.js的文件被导入并在index.js中使用:
import React from 'react'
import ReactDOM from 'react-dom'
import App from 'App'
import registerServiceWorker from 'registerServiceWorker'

ReactDOM.render(<App />, document.getElementById('root'))
registerServiceWorker()

官方的create-react-app文档建议在生产中保留此服务工作者,并表示: “默认情况下,它还包括一个服务工作者,以便您的应用程序在未来访问时从本地缓存加载。” stackoverflow问题也提出了同样的建议。 但是,这篇medium文章说不要使用默认配置的服务工作者: “关闭服务工作者” “如果您使用像create-react-app这样的东西来引导您的项目,如果您没有专门将其与您的应用程序集成,则需要关闭内置的服务工作者。虽然通常是无害的,但它可能会引起一些问题,因此最好在前期将其摆脱。” 由于我不能配置服务工作者(对React新手而言),因此在生产中是否应该使用registerServiceWorker?

如果我的React应用程序是一个交互式的身份验证应用程序(这使得它离线无用),那么我是否需要它?

1个回答

0
registerServiceWorker是一种JavaScript文件,用于缓存应用程序的某些资产。这不仅可以创建离线可用性,还可以增加站点的性能。我不确定如果您将其保留会出现什么问题(可能没有),但如果您的站点非常复杂,您可能需要考虑创建自定义服务工作者。

所以,如果您的应用程序在离线状态下无用,则registerServiceWorker并不是必需的,尽管它会影响性能。无论如何,我的建议是注册一个响应代码(除非它已经返回503),并放置某种告知用户需要互联网连接的着陆页,如果您还没有这样做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接