上周末,David Gwyer 宣布了一个用于块插件的自定义服务器端渲染组件。 WPGO 插件的联合创始人主要构建了他们的组件,以加快他们自己插件中动态块的渲染过程。不过,他现在已经为 WordPress 社区的其他区块开发者发布了这个组件。

大多数块都是静态的。它们的输出保持不变,无需更改。但是,有些块是动态的。由于多种原因,它们的输出需要更改,例如它们的输出上下文或 WordPress 中的其他更改。例如,核心“最新帖子”块是动态的,因为它显示的帖子会随着新帖子的编写而变化。如果您将它们输出为静态块,则最终用户每次撰写新帖子时都需要更新该块。因此,当动态块由服务器在编辑器和前端中呈现时,它们会派上用场。

从服务器呈现的问题是它可能很慢,尤其是当用户对特定块进行多次连续选项更改时。每次更改后,都必须重新渲染块。动态块的核心体验并不理想。

Gwyer 的新组件可通过 GitHub 获得。该项目的代码非常少,其主要 JavaScript 文件的大小刚刚超过 4kb(未压缩)。它引入了一个新的 组件,其工作方式与 WordPress 现有的 类似。块开发人员切换到此版本进行快速测试应该没有什么问题。

他目前正在使用自己的组件 Flexible FAQ 插件。经过几次测试后,插件的动态块感觉响应更快,几乎与 JavaScript 呈现的静态块之间几乎没有区别。

在编辑器中更新动态块选项时实时呈现。

他还计划在内部将其用于他的 Simple Sitemap 插件和未来的任何其他插件动态块。假设 WordPress 在此期间没有改进其服务器端呈现组件。

组件的工作原理

Gwyer 的组件是核心 组件的一个分支,它说除了渲染状态之间的转换之外,该组件还不错。他的自定义组件旨在纠正这一点。“主要的添加是跟踪以前的块内容以用作占位符,”他说内容的新状态,以及一个新的组件属性来处理微调器的位置。

他阐述了核心及其组件如何与核心组件渲染一起工作,如下所示:

  1. 渲染块.
  2. 块属性已更新。
  3. 用微调器替换整个块内容。
  4. 呈现新块内容。
  5. ol>

    他的新组件进行了重要的更改,至少是为了提高视觉速度:

    1. 块被渲染。
    2. 块属性已更新。
    3. 用右上角的微调器用占位符内容(当前/以前的内容)替换整个块内容。
    4. 呈现新块内容。

    Gwyer 说:“由于块内容基本上保持不变,直到它准备好呈现新内容,它看起来更快更流畅。 ”

    真正的问题是这个分支是否应该进入 Project Gutenberg 并最终合并到 WordPress 中。 WordPress 开发人员 Ben Gillbanks 这么认为,并根据请求创建了一个新的 GitHub 票证。

    Gwyer 说:“我希望看到它被添加到 Gutenberg,因为它为动态块提供了更好的渲染体验。”如果他们有兴趣将其纳入核心,我很乐意与团队取得联系。 "

    喜欢这样:

    喜欢正在加载...

    资源