当您使用 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 文档建议将此 service worker 保留在生产环境中并说:
By default, it also includes a service worker so that your app loads from local cache on future visits.
An stackoverflow question也有相同的建议。
但是还有this medium article它说不要将它与默认配置一起使用:
Turn off service workers
If you’ve used something like create-react-app to bootstrap your project, you’ll want to turn off the built-in service worker if you haven’t specifically integrated it to work with your app. While usually harmless, it can cause some issues, so it’s best to just get rid of it up front
由于我无法配置服务 worker (React 新手),我是否应该在生产中使用 registerServiceWorker
?
此外,如果我的 React 应用程序是一个基于交互式身份验证的应用程序(不知何故使其离线无用),我还需要它吗?
最佳答案
registerServiceWorker 是一个 JavaScript 文件,用于缓存应用程序的某些 Assets 。这不仅可以创建离线可用性,还可以提高您网站的性能。我不确定如果您将其保留(可能没有)会出现什么问题,但如果您的网站如此复杂,您可能需要考虑创建一个自定义服务 worker 。
所以不,如果您的应用离线无用,则 registerServiceWorker 不是必需的,尽管它会影响性能。无论如何,我的建议是注册一个响应代码(除非它已经返回 503)并放置某种登陆页面,告诉用户他们需要互联网连接,如果您还没有的话。
关于reactjs - 我应该在 React 生产中使用 registerServiceWorker 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51609117/