精简编译背后的概念是什么?

时间:2019-05-20 06:28:35

标签: svelte

我浏览了您的文章https://svelte.dev/blog/virtual-dom-is-pure-overhead和其他一些博客,但它们解释了与虚拟dom相比,苗条的效果如何。而我想了解的是它的工作原理,无需与其他框架/概念进行比较。

我问的原因是,与dom-diffing相比,svelte似乎表现出了性能提升。那时,与DOM操纵的代码相比,DOM差异框架展示了性能提升。

我可以在哪里记录/精简编译的图形表示?

我尝试搜索一些严肃的问题/中型文章,但是没有找到我想要的东西。

我也查看了https://github.com/sveltejs/svelte/issues/1011#issuecomment-351262252,但没有找到我想要的内容,因为它解释了其中的详细信息以及它的技术实现方式。

1 个答案:

答案 0 :(得分:3)

了解它的最简单方法是查看它生成的代码。 Visit the REPL,然后单击“ JS输出”标签。请注意,更新代码(从p返回的create_fragment方法)如下:

if (changed.count) {
  set_data(t1, ctx.count);
}

set_data只是textNode.data = ...的包装。换句话说,Svelte生成的代码可根据状态更改(根据更改的值)直接更新DOM。与使用虚拟DOM的框架不同,它不需要检查或重新生成所有内容。