是否有模板引擎可以在数据更改时更新 DOM

Is there a template engine that updates the DOM when data is changed?

本文关键字:数据 DOM 更新 引擎 是否      更新时间:2023-09-26

到目前为止,我尝试过的所有模板引擎(车把、下划线、嵌入式)都需要您输入数据并将模板渲染为 HTML。但是,我的数据更新相当频繁,这会导致页面在重建布局时闪烁。

是否有支持更新 DOM 而不是每次都重新创建它的模板引擎?

React 是一种"视图框架",它允许 DOM 根据你给它的任何数据重新渲染。

您可以编写组件,当状态更改(即属于该组件的数据)时,组件将重新呈现。

这实质上意味着布局是数据的函数。

我会看看入门(React)。有许多可用的教程。

请注意,React 只处理"视图"层。您必须决定数据流的发生方式。作为起点,我会看看Redux,它开始流行起来。

是否有支持更新 DOM 而不是每次都重新创建它的模板引擎?

在引擎盖下,React 不一定总是重新渲染整个 DOM。它在内存中保存 DOM 的虚拟表示形式(称为虚拟 DOM),查看数据、实际 DOM 和虚拟 DOM,并决定实际需要重新渲染的内容。

正如 @Josh Beam 所说,React 是一种"视图框架"。但它不是模板引擎。也许Vdt是想要的那个。它基于虚拟dom,因此可以在不每次重新创建整个DOM的情况下进行更新。

像下面这样的片段:

<div>Hello {name}!</div>
var vdt = Vdt(template);
vdt.render({name: 'World'});
// then update
vdt.data.name = 'Vdt';
vdt.update();