我有兴趣在不涉及 Node.Js 的情况下在浏览器中使用 react-refresh。我当前的开发服务器提供静态文件(本机 es 模块),并且可以检测文件何时更改。此更改检测通过 SSE 传达给浏览器。
我想使用像 Skypack 这样的 CDN 来加载 react-refresh 并启用运行时。
import RefreshRuntime from 'https://cdn.skypack.dev/react-refresh/cjs/react-refresh-runtime.development.js';
我在https://github.com/facebook/react/issues/16604#issuecomment-528663101阅读了 Dan 的初始指南,但我不确定如何将所有内容拼凑在一起。
我需要做什么才能为已安装的组件启用 react-refresh?如何让浏览器知道导入的模块/组件应该重新导入?
我需要用任何东西将我的组件包装在我的模块中吗?这部分最让我困惑。想象一下我有一个像这样的组件:
import React from 'https://cdn.skypack.dev/react';
function App() {
return React.createElement('div', null, `App component`);
}
export default App;
为了让它与react-refresh一起玩,需要发生什么?
我的主要入口点 index.js 模块看起来像
import App from './app.js';
ReactDOM.render(
React.createElement(App, {}, null),
document.getElementById('root')
);
以最简单的形式,我想在加载组件的地方进行概念验证。在本地更改它并在某处按下按钮以模仿文件更改的 SSE。然后单击按钮应调用 react-refresh 并且已安装的 App 组件应反映更改。