我正在创建反应应用程序。对于 SEO 实践,我决定使用 Rendertron,如下所示。
https://github.com/GoogleChrome/rendertron
它可以通过 Rendertron 返回渲染的 HTML,但我注意到按钮事件不起作用。
Rendertron 渲染的内容不包括事件处理代码吗?
你有什么想法吗?
元信息
反应:ver16.8
Webpack:ver4
Rendertron(我将其存储在EC2实例中)
我认为您正在谈论 Rendertron 生成的 HTML。关键是 Rendertron 是为搜索引擎机器人设计的,而不是为用户交互设计的。它为爬虫生成静态 HTML,但是:
事件监听器:React 的事件监听器(例如按钮单击处理程序)是 JavaScript 逻辑的一部分,不包含在 Rendertron 返回的静态 HTML 中。这是因为机器人不需要交互功能,只需要用于索引的渲染 HTML。
为什么按钮不起作用:当您与 Rendertron 生成的 HTML 交互时,它不包含 React 应用程序的补水或用于附加事件侦听器的 JavaScript 代码。生成的内容是快照,而不是完全交互式的 React 应用程序。