Maison > interface Web > js tutoriel > le corps du texte

Interprétation détaillée de la technologie de reconstruction de vue

亚连
Libérer: 2018-06-09 17:59:48
original
1790 Les gens l'ont consulté

Cet article présente principalement les points clés et un résumé de la technologie de reconstruction du projet Vue. Je vais maintenant le partager avec vous et vous donner une référence.

Avant-propos

J'ai été trop occupé ces derniers temps et mon blog n'a pas été mis à jour depuis longtemps. Prenant une pause dans mon emploi du temps chargé aujourd'hui, je voudrais résumer brièvement certains des points techniques de la récente reconstruction du projet Vue.

Les données de vue sont mises à jour, mais la vue n'est pas mise à jour

Nous rencontrons souvent ce problème, généralement lorsque les données de vue sont attribuées, les données de vue changent, mais le la vue n'est pas mise à jour. Ce n'est pas le point technique de la reconstruction d'un projet. Partageons avec vous la solution habituelle de vue2.0 !

La solution est la suivante :

1. Attribuez une valeur via la méthode vue.set

Vue.set(数据源, key, newValue)
Copier après la connexion

2 via Array.prototype.splice. method

Data source.splice(indexOfItem, 1, newValue)

3. Modifier la longueur des données

Data source.splice(newLength)

4. Méthode de mutation

Vue.js encapsule les méthodes de mutation du tableau observé, afin qu'elles puissent déclencher des mises à jour de vue. Les méthodes encapsulées sont :

push()
pop()
shift()
unshift()
splice()
sort()
reverse()
Copier après la connexion

application de tableau d'objets prop

En JavaScript, les objets et les tableaux sont des types de référence, pointant vers le même espace mémoire Si prop est. Un objet ou un tableau qui change à l'intérieur du composant enfant affecte l'état du composant parent. En profitant de cela, lorsque nous modifions le tableau ou l'objet prop dans le composant enfant, le composant parent et tous les endroits où les données dans le prop sont appliquées changeront. J'ai déjà écrit un article sur la copie profonde et la copie superficielle js. Si vous êtes intéressé, jetez-y un œil. En fait, les principes sont les mêmes.

Le cas est le suivant :

<input class="pinput max" type="text" v-model="itemData.data.did">

<script>
export default {
 components: {
 },
 data() {
 },
 props: {
 itemData: Object
 },
 methods: {
 }
};
</script>
Copier après la connexion

Partout appliqué à itemData va changer !

Vue ne donnera pas d'avertissement dans la console pour le changement de prop ci-dessus. Si nous modifions complètement ou attribuons une valeur à prop, la console donnera un avertissement ! La solution officielle citée est la suivante :

1. Définissez une variable locale et initialisez-la avec la valeur de prop :

props: [&#39;initialCounter&#39;],
data: function () {
 return { counter: this.initialCounter }
}
Copier après la connexion

2. Définissez un attribut calculé, traitez la valeur de prop. et Retour :

props: [&#39;size&#39;],
computed: {
 normalizedSize: function () {
 return this.size.trim().toLowerCase()
 }
}
Copier après la connexion

Quelques pièges du v-model

En fait, le v-model et la synchronisation sont des sucres syntaxiques que je les ai présentés dans un article. avant, et le site officiel également Vous pouvez trouver des cas similaires !

Les données du modèle V ne signalent parfois pas d'erreur lorsqu'elles sont indéfinies, alors assurez-vous de noter que le modèle V ne peut pas être indéfini, sinon il y aura des problèmes inexplicables !

Refactoring - Création de composants dynamiques

Parfois, nous avons de nombreux composants similaires avec seulement une petite différence. Nous pouvons écrire de tels composants similaires dans le fichier de configuration, créer dynamiquement. et composants de référence

Méthode 1 : Utiliser le composant et est ensemble

En utilisant des éléments réservés et en liant dynamiquement leurs attributs is , vous pouvez basculer dynamiquement plusieurs composants sur le même support point :

var vm = new Vue({
 el: &#39;#example&#39;,
 data: {
 currentView: &#39;home&#39;
 },
 components: {
 home: { /* ... */ },
 posts: { /* ... */ },
 archive: { /* ... */ }
 }
})
<component v-bind:is="currentView">
 <!-- 组件在 vm.currentview 变化时改变! -->
</component>
Copier après la connexion

Méthode 2 : Créer

<script>
export default {
 data() {
 return {
 };
 },
 render: function(createElement) {
 let _type = bi.chart.data.type;
 let _attr = bi.chart.components[_type]["attr"];
 return createElement(_attr, {
  props: {
  }
 });
 }
};
</script>
Copier après la connexion

bi.chart via la méthode de rendu [_type]["attr"] est configurée dynamiquement. dans le fichier de configuration. Lorsque vous cliquez sur le type, il changera et l'attribut attr sous différents types sera pris !

Extraction d'attributs publics

Dans les projets, nous utilisons souvent beaucoup d'états ou de données. Nous pouvons extraire beaucoup de données publiques et les mettre dans un objet. , nous pourrons surveiller les modifications apportées à cet objet de données plus tard. Enregistrez ou obtenez des données.

c: {
 handler: function (val, oldVal) { /* ... */ },
 deep: true
},
// 该回调将会在侦听开始之后被立即调用
d: {
 handler: function (val, oldVal) { /* ... */ },
 immediate: true
},
Copier après la connexion

Vous pouvez utiliser la surveillance de profondeur ci-dessus. S'il doit être exécuté immédiatement lors de l'initialisation, nous pouvons utiliser le suivi d'exécution immédiat !

exiger des dépendances chargées dynamiquement

Nous pouvons utiliser la fonction de synchronisation requise pour charger dynamiquement des dépendances dans le code. Par exemple, avec le thème echart ci-dessous, nous pouvons charger dynamiquement. quand on clique pour changer !

require("echarts/theme/"+ data.theme);
Copier après la connexion

Le chargement de l'importation doit être placé dans la tête Lors de l'initialisation, vous pouvez importer le thème par défaut pour le charger !

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Obtenir la méthode de valeur du bouton radio sélectionné par défaut dans AngularJS (tutoriel détaillé)

Grâce à AngularJS Comment utiliser la radio pour implémenter l'une des deux options (tutoriel détaillé)

Interprétation complète de cli en vue (tutoriel détaillé)

Les détails sont as Votre interprétation des nouvelles fonctionnalités de vue-cli 3.0 (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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!