我一直在互联网上搜索这个问题,我得到的结果是没有必要创建其他页面,因为react是为改变页面内容的单页面应用程序或解决方案设计的,而不是页面(url)本身。我真正想知道的是:当我用create-react-app创建一个应用程序时,我得到了所有的设置,现在我可以创建一个新的html文件,就像在公共目录中创建的默认index.html一样,并将组件呈现到这个新文件中吗?
发布于 2019-08-05 00:47:39
CRA正在做的是使用webpack从(默认的) src/index.js文件开始捆绑你的代码。这意味着它创建了一个(或者多个,如果是延迟加载的)包,这些包被加载到public/index.html文件中。您可以通过查看build/index.html并查找在</body>标记之前加载的脚本来检查它。
React的主要入口点是
ReactDOM.render(<App />, document.getElementById('root'));在一个HTML文件中可以有多个入口点。如果你想在多个文件中拆分多个入口点-恐怕你需要eject你的CRA应用程序并自行调整webpack的配置。
我想这里也描述过类似的问题:Multiple modules for multiple entry points in webpack config for reactjs app
但也许你只是在找react-router?您还可以调整您的服务器配置,将所有路径重定向到index.html,并让react-router处理显示正确的组件。例如,How to setup apache server for React route?
发布于 2019-08-05 06:01:08
从您的问题可以看出,您需要多个HTML文件的确切原因并不是很清楚,但可以从CRA readME中考虑一下
Razzle如果你想使用React和Node.js进行服务器渲染,请查看Next.js或
。Create React App与后端无关,只会生成静态的HTML/JS/CSS包。
如果您的网站主要是静态的(例如,文件夹或博客),请考虑使用Gatsby。与创建React App不同,它在构建时将网站预先呈现为HTML。
因此,我认为有必要理解Why do you need it? And maybe there is a tool more suitable for your case than CRA.,而不是whether it is possible to do this with CRA?
https://stackoverflow.com/questions/57348374
复制相似问题