Maison  >  Article  >  interface Web  >  Introduction détaillée à l'utilisation des mixins et des extensions en vue

Introduction détaillée à l'utilisation des mixins et des extensions en vue

亚连
亚连original
2018-06-19 16:24:061935parcourir

Vue fournit des mixins et étend les éléments de configuration, ce que j'ai trouvé très utile lors d'une utilisation récente. Ensuite, je vais vous présenter l'utilisation intelligente des mixins et des extensions dans Vue à travers cet article. Les amis qui en ont besoin peuvent s'y référer

Vue fournit des mixins et étend des éléments de configuration, ce que j'ai trouvé très utile lors d'une utilisation récente. .

Mélanger les mixins et l'héritage s'étend

Regardez ce que dit la documentation officielle. En fait, les deux peuvent être compris comme de l'héritage, et les mixins reçoivent des tableaux d'objets (peuvent être compris. comme héritage multiple) ), extends reçoit un objet ou une fonction (peut être compris comme un héritage unique).

Hériter la fonction hook

const extend = {
 created () {
  console.log('extends created')
 }
}
const mixin1 = {
 created () {
  console.log('mixin1 created')
 }
}
const mixin2 = {
 created () {
  console.log('mixin2 created')
 }
}
export default {
 extends: extend,
 mixins: [mixin1, mixin2],
 name: 'app',
 created () {
  console.log('created')
 }
}

Sortie de la console

extends created
mixin1 created
mixin2 created
created
  • Conclusion : appelez les mixins et étendez d'abord l'héritage. la classe parent de "extends" a une priorité plus élevée que la file d'attente

  • push(extend, mixin1, minxin2, sa propre fonction hook)

  • Après les tests, les règles d'héritage des valeurs de watch sont les mêmes.

Hériter des méthodes

const extend = {
 data () {
  return {
   name: 'extend name'
  }
 }
}
const mixin1 = {
 data () {
  return {
   name: 'mixin1 name'
  }
 }
}
const mixin2 = {
 data () {
  return {
   name: 'mixin2 name'
  }
 }
}
// name = 'name'
export default {
 mixins: [mixin1, mixin2],
 extends: extend,
 name: 'app',
 data () {
  return {
   name: 'name'
  }
 }
}
// 只写出子类,name = 'mixin2 name',extends优先级高会被mixins覆盖
export default {
 mixins: [mixin1, mixin2],
 extends: extend,
 name: 'app'
}
// 只写出子类,name = 'mixin1 name',mixins后面继承会覆盖前面的
export default {
 mixins: [mixin2, mixin1],
 extends: extend,
 name: 'app'
}
  • Conclusion : Si la sous-classe est à nouveau déclarée, les variables dans data seront réécrit , sous réserve de la sous-catégorie.

  • Si la sous-classe n'est pas déclarée, les variables dans data seront basées sur la dernière classe parent héritée.

  • Après les tests, les règles d'héritage pour les attributs dans les accessoires, les méthodes et les valeurs calculées sont les mêmes.

Ce qui suit est une introduction distincte aux mixins, extends, extend

mixins

Appel method: mixins : [mixin1, mixin2]

est une extension du composant parent, comprenant des méthodes, des composants, des directives, etc. . .

Lorsque la fonction hook est déclenchée, la fonction des mixins est appelée en premier, puis la fonction du composant parent est appelée.

Bien que vous puissiez également ajouter des attributs de données et de modèle lors de la création d'un mixin, lorsque le composant parent possède également cet attribut, le parent prévaudra à partir de ce point, vous pouvez également voir l'intention (expansion) du producteur.

Les objets au format clé-valeur tels que les données, les fonctions internes des méthodes, les composants et les directives sont tous basés sur le composant/l'instance parent

extends

Méthode d'appel : extends : CompA

est également une extension du composant parent, similaire aux mixins, mais sa priorité est inférieure à celle du composant parent

extend

Constructeur de composant étendu

Appelé automatiquement lorsque nous appelons vue.component('a', {...})

Ça vaut le coup Notez que les données en extension sont une fonction

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir.

Articles connexes :

Comment implémenter le tri de table dans Angular

Comment implémenter la validation dans Angular

À propos de la fusion des valeurs d'objet lors de l'utilisation de JavaScript

À propos de l'utilisation de pseudo-tableaux en JavaScript (tutoriel détaillé)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn