Maison > interface Web > Voir.js > le corps du texte

Analyse du schéma de filtrage des données dans la communication des composants Vue

王林
Libérer: 2023-07-17 10:11:10
original
1099 Les gens l'ont consulté

Analyse du schéma de filtrage des données dans la communication des composants Vue

Dans le développement d'applications Vue, la communication de données entre les composants est un sujet important. Lorsqu'une application est composée de plusieurs composants, le transfert de données et l'interaction entre les différents composants sont inévitables. Cependant, dans le développement réel, il se peut que nous n'ayons besoin de transmettre et de recevoir qu'une partie des données, ce qui nous oblige à filtrer et filtrer les données. Cet article présentera plusieurs schémas de filtrage de données courants dans la communication des composants Vue et fournira des exemples de code correspondants.

1. Filtrage des données via des accessoires

Dans Vue, les données sont transférées entre les composants via des accessoires. Nous pouvons filtrer et filtrer les données qui doivent être transmises via des accessoires.

Exemple de code :

<template>
  <div>
    <child-component :filteredProp="filteredData"></child-component>
  </div>
</template>

<script>
import ChildComponent from "@/components/ChildComponent.vue";

export default {
  components: {
    ChildComponent,
  },
  data() {
    return {
      fullData: [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }, { id: 3, name: "Charlie" }],
    };
  },
  computed: {
    filteredData() {
      // 筛选需要传递的数据
      return this.fullData.filter((item) => item.id >= 2);
    },
  },
};
</script>
Copier après la connexion

Dans l'exemple ci-dessus, le composant parent transmet filteredData au composant enfant ChildComponent via des accessoires. Dans l'attribut calculé, nous transmettons les données filtrées au composant enfant en filtrant les éléments dont l'identifiant est supérieur ou égal à 2 dans le tableau fullData.

2. Filtrage des données via des événements

En plus de transmettre des données via des accessoires, Vue fournit également un moyen de transmettre des données via des événements. Nous pouvons transmettre les données filtrées au composant parent ou aux composants frères via des événements.

Exemple de code :

<!-- ParentComponent.vue -->
<template>
  <div>
    <child-component @filteredData="handleFilteredData"></child-component>
    <p>筛选后的数据:{{ filteredData }}</p>
  </div>
</template>

<script>
import ChildComponent from "@/components/ChildComponent.vue";

export default {
  components: {
    ChildComponent,
  },
  data() {
    return {
      fullData: [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }, { id: 3, name: "Charlie" }],
      filteredData: [],
    };
  },
  methods: {
    handleFilteredData(data) {
      // 接收子组件传递的筛选后的数据
      this.filteredData = data;
    },
  },
};
</script>

<!-- ChildComponent.vue -->
<template>
  <div>
    <button @click="filterData">筛选数据</button>
  </div>
</template>

<script>
export default {
  methods: {
    filterData() {
      // 筛选数据
      const filteredData = this.fullData.filter((item) => item.id >= 2);
      // 触发事件将筛选后的数据传递给父组件
      this.$emit("filteredData", filteredData);
    },
  },
};
</script>
Copier après la connexion

Dans l'exemple ci-dessus, le composant enfant ChildComponent filtre les données en cliquant sur le bouton et transmet les données filtrées au composant parent ParentComponent en déclenchant l'événement via this.$emit. Une fois que le composant parent a reçu les données transmises par le composant enfant, il les enregistre dans l'attribut filteredData et les affiche sur la page.

3. Filtrage des données via Vuex

En plus des deux méthodes ci-dessus, nous pouvons également utiliser Vuex pour filtrer les données entre les composants. Vuex est un modèle de gestion d'état pour les applications Vue.js. Il est construit avec une gestion centralisée du stockage de tous les composants de l'application pour faciliter le partage de données et les mises à jour synchrones entre les composants.

Exemple de code :

<!-- store.js -->
import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    fullData: [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }, { id: 3, name: "Charlie" }],
  },
  getters: {
    filteredData: (state) => {
      // 筛选需要的数据
      return state.fullData.filter((item) => item.id >= 2);
    },
  },
  mutations: {},
  actions: {},
});
Copier après la connexion

Dans l'exemple ci-dessus, nous utilisons Vuex pour gérer l'état de l'application. La méthode filteredData est définie via l'attribut getters, et nous pouvons obtenir les données filtrées via this.$store.getters.filteredData dans le composant.

4. Résumé

Cet article présente le schéma de filtrage des données dans la communication des composants Vue et fournit des exemples de code correspondants. Grâce aux accessoires, à la diffusion d'événements et à Vuex, nous pouvons filtrer et transférer de manière flexible les données entre les composants, améliorant ainsi la maintenabilité et l'évolutivité de l'application. Dans le développement actuel, il est très important de choisir une solution de filtrage des données appropriée en fonction de la situation spécifique.

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