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

Comment implémenter des fonctions de recherche et de filtrage via vue et Element-plus

PHPz
Libérer: 2023-07-16 22:09:08
original
2021 Les gens l'ont consulté

Comment implémenter des fonctions de recherche et de filtrage via Vue et Element-Plus

Citation :
Dans les applications Web modernes, les fonctions de recherche et de filtrage sont un élément très important, aidant les utilisateurs à trouver rapidement les informations dont ils ont besoin. Vue est un framework JavaScript populaire et Element-Plus est une bibliothèque de composants d'interface utilisateur pour Vue. Leur combinaison peut facilement implémenter des fonctions de recherche et de filtrage. Cet article expliquera comment utiliser Vue et Element-Plus pour implémenter ces fonctions et fournira des exemples de code pertinents.

  1. Préparation
    Tout d'abord, nous devons installer Vue et Element-Plus. Vous pouvez les installer avec la commande suivante :
npm install vue
npm install element-plus
Copier après la connexion
  1. Créer une application Vue
    Ensuite, nous devons créer une application Vue. Nous pouvons utiliser les outils d'échafaudage de Vue pour créer une application Vue de base. Exécutez la commande suivante dans la ligne de commande :
vue create search-filter-app
cd search-filter-app
Copier après la connexion

Ensuite, sélectionnez les options de configuration en fonction des invites, ou utilisez directement la configuration par défaut pour générer l'application Vue.

  1. Importer les composants Element-Plus
    Dans l'application Vue créée, nous devons importer les composants associés d'Element-Plus. Ouvrez le fichier src/main.js et ajoutez le code suivant : src/main.js文件,并添加以下代码:
import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'

createApp(App).use(ElementPlus).mount('#app')
Copier après la connexion

这里我们使用了ES6的模块导入语法,导入了createApp函数和需要使用的Element-Plus组件。然后我们使用createApp函数创建了一个Vue应用,并在应用中使用了Element-Plus。

  1. 创建搜索和过滤组件
    我们可以创建两个Vue组件来实现搜索和过滤功能。在src/components目录下创建两个文件SearchBar.vueFilterBar.vue。在SearchBar.vue文件中添加以下代码:
<template>
  <div>
    <el-input v-model="searchKeyword" placeholder="请输入搜索关键字"></el-input>
  </div>
</template>

<script>
export default {
  data() {
    return {
      searchKeyword: ''
    }
  },
  watch: {
    searchKeyword(newKeyword) {
      this.$emit('search', newKeyword)
    }
  }
}
</script>
Copier après la connexion

FilterBar.vue文件中添加以下代码:

<template>
  <div>
    <el-select v-model="filterOption" placeholder="请选择过滤条件" @change="filterData">
      <el-option label="选项1" value="option1"></el-option>
      <el-option label="选项2" value="option2"></el-option>
      <el-option label="选项3" value="option3"></el-option>
    </el-select>
  </div>
</template>

<script>
export default {
  data() {
    return {
      filterOption: ''
    }
  },
  methods: {
    filterData() {
      this.$emit('filter', this.filterOption)
    }
  }
}
</script>
Copier après la connexion

这里,我们分别创建了两个组件,并在组件中使用了Element-Plus的输入框和下拉选择框组件。注意,在SearchBar组件中我们使用了v-model指令来实现双向数据绑定,并在watch选项中监听searchKeyword的变化,并通过$emit方法将值传递给父组件。

  1. 使用搜索和过滤组件
    在App组件中,我们可以使用之前创建的搜索和过滤组件。打开src/App.vue文件,并添加以下代码:
<template>
  <div>
    <SearchBar @search="handleSearch"></SearchBar>
    <FilterBar @filter="handleFilter"></FilterBar>
    <ul>
      <li v-for="item in filteredData" v-bind:key="item.id">{{ item.name }}</li>
    </ul>
  </div>
</template>

<script>
import SearchBar from './components/SearchBar.vue'
import FilterBar from './components/FilterBar.vue'

export default {
  components: {
    SearchBar,
    FilterBar
  },
  data() {
    return {
      data: [
        { id: 1, name: 'item1', option: 'option1' },
        { id: 2, name: 'item2', option: 'option2' },
        { id: 3, name: 'item3', option: 'option3' }
      ],
      searchKeyword: '',
      filterOption: ''
    }
  },
  computed: {
    filteredData() {
      let result = this.data
      if (this.searchKeyword) {
        result = result.filter(item => item.name.toLowerCase().includes(this.searchKeyword.toLowerCase()))
      }
      if (this.filterOption) {
        result = result.filter(item => item.option === this.filterOption)
      }
      return result
    }
  },
  methods: {
    handleSearch(keyword) {
      this.searchKeyword = keyword
    },
    handleFilter(option) {
      this.filterOption = option
    }
  }
}
</script>
Copier après la connexion

这里,我们在App组件中导入了SearchBar和FilterBar组件,并通过<SearchBar @search="handleSearch"></SearchBar><FilterBar @filter="handleFilter"></FilterBar>将事件绑定到App组件的方法上。在data中定义了一个数据数组,并根据搜索关键字和过滤条件进行过滤得到filteredData数组。然后使用v-for指令将filteredData数组中的每个元素渲染为列表项。

  1. 运行代码
    最后,我们可以在命令行中运行以下命令来启动应用程序:
npm run serve
Copier après la connexion

然后在浏览器中访问http://localhost:8080

rrreee

Ici, nous utilisons la syntaxe d'importation du module ES6 et importons la fonction createApp et les éléments dont vous avez besoin. à utiliser -Plus de composants. Ensuite, nous avons utilisé la fonction createApp pour créer une application Vue et utilisé Element-Plus dans l'application.

    Créer des composants de recherche et de filtrage🎜Nous pouvons créer deux composants Vue pour implémenter des fonctions de recherche et de filtrage. Créez deux fichiers SearchBar.vue et FilterBar.vue dans le répertoire src/components. Ajoutez le code suivant dans le fichier SearchBar.vue : 🎜🎜rrreee🎜Ajoutez le code suivant dans le fichier FilterBar.vue : 🎜rrreee🎜Ici, nous avons créé deux composants respectivement, et a utilisé les composants de la zone de saisie Element-Plus et de la zone de sélection déroulante dans le composant. Notez que dans le composant SearchBar, nous utilisons la directive v-model pour implémenter la liaison de données bidirectionnelle et surveiller dans l'option <code>watch searchKeyword modifie et transmet la valeur au composant parent via la méthode $emit. 🎜
      🎜Utilisation des composants de recherche et de filtrage🎜Dans le composant App, nous pouvons utiliser les composants de recherche et de filtrage que nous avons créés précédemment. Ouvrez le fichier src/App.vue et ajoutez le code suivant : 🎜🎜rrreee🎜Ici, nous avons importé les composants SearchBar et FilterBar dans le composant App et passé <SearchBar @search= " handleSearch"></SearchBar> et <FilterBar @filter="handleFilter"></FilterBar> lient les événements aux méthodes du composant App. Un tableau de données est défini dans data et filtré en fonction des mots-clés de recherche et des conditions de filtrage pour obtenir le tableau filteredData. Utilisez ensuite la directive v-for pour afficher chaque élément du tableau filteredData sous forme d'élément de liste. 🎜
        🎜Exécutez le code🎜Enfin, nous pouvons démarrer l'application en exécutant la commande suivante dans la ligne de commande : 🎜🎜rrreee🎜Puis visitez http://localhost:8080, vous verrez une page avec un champ de recherche et une zone de sélection déroulante. Lorsque vous saisissez des mots-clés de recherche ou sélectionnez des conditions de filtrage, les données de la liste seront recherchées et filtrées en fonction de la saisie. 🎜🎜Conclusion :🎜Avec Vue et Element-Plus, nous pouvons facilement implémenter des fonctions de recherche et de filtrage. Nous avons utilisé la liaison de données de Vue et les composants de zone de saisie et de zone de sélection déroulante d'Element-Plus pour appliquer des mots-clés de recherche et des conditions de filtrage aux données via la transmission d'événements et de données, réalisant ainsi les fonctions de recherche et de filtrage. Ce qui précède est un exemple simple, vous pouvez le développer et le personnaliser en fonction de vos propres besoins. 🎜

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