6 votes

Vuejs - Quand les plugins jquery doivent-ils être initialisés ?

J'ai quelques plugins JQuery qui ont besoin d'être initialisés, normalement cela pourrait être fait en utilisant $(document).ready(function () { }) mais cela ne semble pas fonctionner lorsqu'on le fait dans un composant Vue. created événement. Dans cette optique, j'ai fait usage de this.$nextTick(function () { }) mais cela ne semble pas fonctionner avec les éléments qui sont introduits sur le composant enfant. Par exemple, je fais ceci :

created: function () {
  this.$nextTick(function () {
    window.materialadmin.AppOffcanvas.initialize()
  })
}

J'ai un bouton qui est introduit dans un composant enfant mais le handler onclick que ce code ci-dessus attache ne se déclenche pas. Si je le fais :

setTimeout(function () {
    window.materialadmin.AppOffcanvas.initialize()
}, 1000)

Ensuite, mon gestionnaire de clics sera lié et fonctionnera.

À quel moment faut-il lier mes événements pour que je n'aie pas besoin de compter sur les éléments suivants setTimeout lequel est pirate ?

4voto

Saurabh Points 29563

monté ou actualisé Crochets du cycle de vie devrait résoudre votre problème car mounted est appelé après que l'instance vienne d'être montée où el est remplacé par le vm.$el nouvellement créé et updated est appelé après qu'un changement de données provoque le re-rendu et la correction du DOM virtuel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X