【发布时间】:2021-05-08 13:48:44
【问题描述】:
- 该项目正在使用 EJS、Express/NodeJs、MongoDB,我已向其中添加了 ReactJs。
- 现在我想实现 Webpack 以将 EJS 和 ReactJs 文件捆绑在一起。
- 项目最终必须转换为 ReactJs,但现在我们还需要 Bundle EJS。
有什么办法可以做到吗?我需要帮助。
【问题讨论】:
标签: javascript reactjs mongodb express ejs
【问题讨论】:
标签: javascript reactjs mongodb express ejs
EJS 可以运行客户端,React 可以运行服务器端,但是典型的 Express/EJS 设置运行 EJS 服务器端并将纯 HTML 传递给客户端,而典型的 React 设置在客户端运行 React 代码(并且可能会添加服务器端渲染作为奖励)。
假设您没有做任何非常不典型的事情(在这种情况下,您真的需要更详细地解释您的设置),那么简短的回答是:不。
你需要你的 EJS 在服务器端运行,所以把它放在一个包中然后发送给客户端是没有意义的。
如果你想从 HTML 的经典服务器端渲染过渡到 React 系统,那么典型的方法是逐页进行。 \
您可以为您替换的页面提供一个基本的静态引导 HTML 文档,或者为这些页面使用 SSR 系统获得创意(或者巧妙地混合路由规则,或者只是放置一个反向代理来转移不同的 URL到 Next.js 服务器或 Express 服务器,具体取决于它们是否已迁移)。
另一种方法是编写一系列小的 React 组件来替换页面的各个组件(例如导航栏应用程序),并让入口点包括对每个组件的多个 ReactDOM.render 调用。
不过,后一种方法根本不适合涉及 SSR。
无论哪种方式:您都不会将服务器端 EJS 代码发送到客户端,因此它不会与 React 代码捆绑在一起。
【讨论】: