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

Viewed 594

Given that onMount() of Svelte is a lifecycle function, it seems that onMount() is called once for each component.

However, I found that onMount() is called whenever I modify the code in Svelte REPL.

For example, if you modify the code in Svelte MathJax REPL,
and open the inspector of the browser,
you will find several scripts of the same src attribute are added to the DOM.

example image

Does this only happen in REPL, or also in the production version?

1 Answers

In the REPL everytime you modify the code the component is re-mounted because it has changed and should now show a different component.

In a production app this will not happen because you are not changing the code anymore. It will however be called once per instance of this component:

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

the above code would fire the onMount in Component 4 times because you have 4 instances of it.

Related