$mount
umożliwia jawne zamontowanie instancji Vue, gdy zajdzie taka potrzeba. Oznacza to, że możesz opóźnić montowanie swojej vue
instancji do czasu zaistnienia określonego elementu na stronie lub zakończenia procesu asynchronicznego, co może być szczególnie przydatne podczas dodawania vue do starszych aplikacji, które wstrzykują elementy do DOM. często w testowaniu ( patrz tutaj ), gdy chciałem użyć tej samej instancji vue w wielu testach:
// Create the vue instance but don't mount it
const vm = new Vue({
template: '<div>I\'m mounted</div>',
created(){
console.log('Created');
},
mounted(){
console.log('Mounted');
}
});
// Some async task that creates a new element on the page which we can mount our instance to.
setTimeout(() => {
// Inject Div into DOM
var div = document.createElement('div');
div.id = 'async-div';
document.body.appendChild(div);
vm.$mount('#async-div');
},1000)
Oto JSFiddle: https://jsfiddle.net/79206osr/
new
słowa kluczowego. . $ mount nie pokazuje tego ostrzeżenia.W podanym przez ciebie przykładzie nie wierzę, że istnieje duża różnica lub korzyść. Jednak w innych sytuacjach może wystąpić korzyść. (Nigdy nie spotkałem się z takimi sytuacjami).
Dzięki temu
$mount()
masz większą elastyczność, na jakim elemencie zostanie zamontowany, jeśli kiedykolwiek zajdzie taka potrzeba.Podobnie, jeśli z jakiegoś powodu musisz utworzyć instancję, zanim faktycznie wiesz, na jakim elemencie zostanie ona zamontowana (być może element, który jest tworzony dynamicznie), możesz zamontować ją później za pomocą
vm.$mount()
Coś jak...
źródło
Najlepsza odpowiedź jest wystarczająco dobra. właśnie zostawiłem tutaj komentarz, ponieważ nie mam wystarczającej liczby punktów reputacji. Alternativley:
źródło