组件差异

Component diffing

这个问题可能会很简单。

假设有以下 Svelte 组件:

{#if condition}
  <A>
{:else}
  <B>
{/if}

其中 A 和 B 是其他 Svelte 组件。问题是:

这个问题有两个用例:

...
...
{#if condition}
  ... The A-only part
{/if}
...
{#if other condition}
 ... The B-only part
{/if}
...

A 完全替换为 B,与虚拟 DOM 算法一样。这部分只是为了简单起见,也是为了正确性 — A 和 B 在概念上 不同,即使它们具有相似的结构,所以重要的是新组件不继承任何状态那是在旧的 DOM 中(正在进行的 CSS 动画、焦点状态等)。 'Surgical' 适用于 组件内的状态更改。