是否保证 Svelte 的 onMount() 在生产中被调用一次?

Is it guaranteed that Svelte's onMount() is called once in production?

鉴于 Svelte 的 onMount() 是一个 lifecycle function,似乎每个组件都调用一次 onMount()

但是,我发现每当我在 Svelte REPL 中修改代码时,都会调用 onMount()

例如,如果您修改Svelte MathJax REPL中的代码,
并打开浏览器的检查器,
你会发现 几个 相同 src 属性的脚本被添加到 DOM.

这只发生在 REPL 中,还是在生产版本中也发生?

在 REPL 中,每次您修改代码时,组件都会重新安装,因为它已经更改,现在应该显示不同的组件。

在生产应用中,这不会发生,因为您不再更改代码。但是,每个此组件的实例都会调用 一次

<Component />
<Component />
<Component />
<Component />

上面的代码会在 Component 中触发 onMount4 次 因为你有 4 个它的实例。