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

时间:2016-03-03 22:49:14

标签: javascript template-engine

到目前为止,我尝试过的所有模板引擎(Handlebars,Underscore,Embedded)都要求您输入数据并将模板呈现为HTML。但是,我的数据更新频繁,这会导致页面在重建布局时闪烁。

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

2 个答案:

答案 0 :(得分:1)

React是一种"视图框架"允许DOM根据您提供的任何数据重新渲染。

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

这基本上意味着布局是数据的函数。

我会看看Getting Started (React)。有很多教程可供选择。

请注意,React仅处理"视图"层。您必须决定数据流的发生方式。作为一个起点,我会看一下Redux,它开始受欢迎。

  

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

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

答案 1 :(得分:0)

正如@Josh Beam所说,React是一种“视图框架”。但它不是模板引擎。也许Vdt是被通缉的人。它基于virtual-dom,因此可以在不重新创建整个DOM的情况下进行更新。

像下面这样的片段:

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

// then update
vdt.data.name = 'Vdt';
vdt.update();