将反应组分注入到客户端的把手中

问题描述:

如何将反应组分注入到在运行时动态加载的车把模板中。将反应组分注入到客户端的把手中

编辑:tl; dr:这是一个很好的问题。注入预呈现将组件反应为HT​​ML模板语言(如句柄)可以改善网站的加载时间,并提高搜索引擎(您的搜索引擎优化)内容的“可索引性”。 诀窍是您必须在服务器端呈现(SSR),并且您不希望在初始请求中将所有代码加载到浏览器中,因此您需要进行代码分割。这些可以用webpack完成。直到最近,他们还没有像Next.js这样的框架...现在有3个选项,我得出的结论是唯一值得使用的是:React-Universal-Component

如果你想了解更多关于在JS资产,CSS assts等加载之前将您的内容转换为HTML所带来的好处,这篇关于Isomorphic or Universal Javascript的文章是一个很好的开始。编写同构/通用JavaScript是为了编写能够呈现客户端或服务器端的灵活代码。

有些情况下,如果React的*API使得这一切变得简单,以及少量的编译/编译/捆绑库(我使用Webpack)是必要的(如果您不想编译模板浏览器)。

因为React组件几乎总是用JSX编写的,所以它们必须先转换为JavaScript才能呈现。这通常通过ReactDOM.render()完成,我们将为React.createElement()拨打电话。

React还有一个函数ReactDOMServer.renderToString(),它接受React元素,构建HTML(在服务器端)并将其转换为字符串。这使我们能够将预渲染的React注入到html模板中。

有关我刚刚描述的过程的示例,请参阅此example,但现在已过期。

结论:注入阵营组件到车把模板是不值得的时间,因为有最后库,帮助我们做到这一点(见我的第一个链接)。 IMO SSR React对于需要SEO优势的网站很重要,如果您的应用正确执行SSR和代码分割,它还可以改善您的加载时间(特别是在欠充电的设备上)。