Нужно ли уничтожать экземпляры Vue? - PullRequest
1 голос
/ 15 октября 2019

Я динамически создаю экземпляры Vue в устаревшем JS-проекте, который создает элементы VanillaJS и манипулирует ими. Мне интересно, действительно ли экземпляры должны быть явно уничтожены или нормально потерять их ссылку, и они будут автоматически собираться мусором, как любой объект JS?

1 Ответ

1 голос
/ 15 октября 2019

Есть только два сценария, которые я могу придумать, где вы, возможно, захотите уничтожить свои экземпляры вручную.

Сценарий один , если вы используете один и тот же элемент HTML для нескольких компонентов. В этом случае, если вы можете добавить другие элементы на страницу, вы можете просто сделать это и использовать v-if, чтобы Vue уничтожил их, когда они больше не нужны.

Например, если у вас есть это <div>:

<div id="content">...</div>

И используйте его для двух разных компонентов, скажем, A и B, и вам нужно смонтировать и уничтожить их в вашем <div> в зависимости от ситуации, вы можете какхорошо использовать два <div> с, как это:

<div id="content-a" v-if="usingA">...</div>
<div id="content-b" v-if="usingB">...</div>

И всякий раз, когда данный компонент становится ненужным, вы можете просто установить usingA или usingB на false.

Второй сценарий - это когда по тем или иным причинам вы не можете использовать v-if. В этом случае я считаю, что вам, вероятно, придется вручную звонить $destroy, но я действительно не могу придумать ни одной возможной причины, по которой вы не смогли бы использовать v-if, во-первых.

...