Rumah hujung hadapan web View.js Cara melaksanakan fungsi carian dan penapisan melalui vue dan Element-plus

Cara melaksanakan fungsi carian dan penapisan melalui vue dan Element-plus

Jul 16, 2023 pm 10:09 PM
vue penapis cari

Cara melaksanakan fungsi carian dan penapisan melalui Vue dan Element-Plus

Petikan:
Dalam aplikasi web moden, fungsi carian dan penapisan merupakan bahagian yang sangat penting, membantu pengguna mencari maklumat yang mereka perlukan dengan cepat. Vue ialah rangka kerja JavaScript yang popular, dan Element-Plus ialah perpustakaan komponen UI untuk Vue Gabungan mereka boleh melaksanakan fungsi carian dan penapisan dengan mudah. Artikel ini akan memperkenalkan cara menggunakan Vue dan Element-Plus untuk melaksanakan fungsi ini dan memberikan contoh kod yang berkaitan.

  1. Persediaan
    Pertama, kita perlu memasang Vue dan Element-Plus. Anda boleh memasangnya dengan arahan berikut:
npm install vue
npm install element-plus
Salin selepas log masuk
  1. Cipta Apl Vue
    Seterusnya, kita perlu mencipta aplikasi Vue. Kita boleh menggunakan alat perancah Vue untuk mencipta aplikasi asas Vue. Jalankan arahan berikut dalam baris arahan:
vue create search-filter-app
cd search-filter-app
Salin selepas log masuk

Kemudian, pilih pilihan konfigurasi mengikut gesaan, atau terus gunakan konfigurasi lalai untuk menjana aplikasi Vue.

  1. Import komponen Element-Plus
    Dalam aplikasi Vue yang dibuat, kami perlu mengimport komponen Element-Plus yang berkaitan. Buka fail src/main.js dan tambahkan kod berikut: src/main.js文件,并添加以下代码:
import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'

createApp(App).use(ElementPlus).mount('#app')
Salin selepas log masuk

这里我们使用了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>
Salin selepas log masuk

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>
Salin selepas log masuk

这里,我们分别创建了两个组件,并在组件中使用了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>
Salin selepas log masuk

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

  1. 运行代码
    最后,我们可以在命令行中运行以下命令来启动应用程序:
npm run serve
Salin selepas log masuk

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

rrreee

Di sini kami menggunakan sintaks import modul ES6 dan mengimport fungsi createApp dan Elemen yang memerlukan untuk digunakan -Plus komponen. Kemudian kami menggunakan fungsi createApp untuk mencipta aplikasi Vue dan menggunakan Element-Plus dalam aplikasi.

    Buat komponen carian dan penapis🎜Kami boleh mencipta dua komponen Vue untuk melaksanakan fungsi carian dan penapis. Cipta dua fail SearchBar.vue dan FilterBar.vue dalam direktori src/components. Tambahkan kod berikut dalam fail SearchBar.vue: 🎜🎜rrreee🎜Tambahkan kod berikut dalam fail FilterBar.vue: 🎜rrreee🎜Di sini, kami telah mencipta dua komponen masing-masing , dan menggunakan kotak input Element-Plus dan komponen kotak pilihan lungsur turun dalam komponen. Ambil perhatian bahawa dalam komponen SearchBar kami menggunakan arahan v-model untuk melaksanakan pengikatan data dua hala dan memantau dalam pilihan <code>watch searchKeyword menukar dan menghantar nilai kepada komponen induk melalui kaedah $emit. 🎜
      🎜Menggunakan komponen carian dan penapis🎜Dalam komponen Apl, kami boleh menggunakan komponen carian dan penapis yang kami buat sebelum ini. Buka fail src/App.vue dan tambahkan kod berikut: 🎜🎜rrreee🎜Di sini, kami telah mengimport komponen SearchBar dan FilterBar dalam komponen App dan lulus <SearchBar @search= " handleSearch"></SearchBar> dan <FilterBar @filter="handleFilter"></FilterBar> mengikat peristiwa pada kaedah komponen Apl. Tatasusunan data ditakrifkan dalam data, dan ditapis mengikut kata kunci carian dan syarat penapis untuk mendapatkan tatasusunan data yang ditapis. Kemudian gunakan arahan v-for untuk menjadikan setiap elemen dalam tatasusunan FilteredData sebagai item senarai. 🎜
        🎜Jalankan kod🎜Akhir sekali, kita boleh memulakan aplikasi dengan menjalankan arahan berikut dalam baris arahan: 🎜🎜rrreee🎜Kemudian lawati http://localhost:8080, anda akan melihat halaman dengan kotak carian dan kotak pilihan lungsur turun. Apabila anda memasukkan kata kunci carian atau memilih syarat penapis, data dalam senarai akan dicari dan ditapis berdasarkan input. 🎜🎜Kesimpulan:🎜Dengan Vue dan Element-Plus, kami boleh melaksanakan fungsi carian dan penapisan dengan mudah. Kami menggunakan pengikatan data Vue dan kotak input Element-Plus dan komponen kotak pilihan lungsur turun untuk menggunakan kata kunci carian dan syarat penapis pada data melalui penghantaran peristiwa dan data, sekali gus merealisasikan fungsi carian dan penapisan. Di atas adalah contoh mudah, anda boleh mengembangkan dan menyesuaikannya mengikut keperluan anda sendiri. 🎜

Atas ialah kandungan terperinci Cara melaksanakan fungsi carian dan penapisan melalui vue dan Element-plus. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara merujuk fail js dengan vue.js Cara merujuk fail js dengan vue.js Apr 07, 2025 pm 11:27 PM

Terdapat tiga cara untuk merujuk kepada fail JS dalam vue.js: Secara langsung tentukan jalan menggunakan & lt; skrip & gt; tag ;; import dinamik menggunakan cangkuk kitaran hayat yang dipasang (); dan mengimport melalui Perpustakaan Pengurusan Negeri VUEX.

Cara Menggunakan Watch di Vue Cara Menggunakan Watch di Vue Apr 07, 2025 pm 11:36 PM

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Apa maksudnya untuk memuatkan vue malas? Apa maksudnya untuk memuatkan vue malas? Apr 07, 2025 pm 11:54 PM

Dalam vue.js, pemuatan malas membolehkan komponen atau sumber dimuatkan secara dinamik seperti yang diperlukan, mengurangkan masa pemuatan halaman awal dan meningkatkan prestasi. Kaedah pelaksanaan khusus termasuk menggunakan & lt; menyimpan-Alive & gt; dan & lt; komponen adalah & gt; komponen. Harus diingat bahawa pemuatan malas boleh menyebabkan masalah fouc (skrin percikan) dan harus digunakan hanya untuk komponen yang memerlukan pemuatan malas untuk mengelakkan overhead prestasi yang tidak perlu.

Cara menambah fungsi ke butang untuk vue Cara menambah fungsi ke butang untuk vue Apr 08, 2025 am 08:51 AM

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Vue menyedari kesan menatal marquee/teks Vue menyedari kesan menatal marquee/teks Apr 07, 2025 pm 10:51 PM

Melaksanakan kesan menatal marquee/teks di VUE, menggunakan animasi CSS atau perpustakaan pihak ketiga. Artikel ini memperkenalkan cara menggunakan animasi CSS: Buat teks tatal dan bungkus teks dengan & lt; div & gt;. Tentukan animasi CSS dan tetapkan limpahan: tersembunyi, lebar, dan animasi. Tentukan frasa key, set Transform: TranslateX () pada permulaan dan akhir animasi. Laraskan sifat animasi seperti tempoh, kelajuan tatal, dan arah.

Cara Menanyakan Versi Vue Cara Menanyakan Versi Vue Apr 07, 2025 pm 11:24 PM

Anda boleh menanyakan versi VUE dengan menggunakan Vue Devtools untuk melihat tab VUE dalam konsol penyemak imbas. Gunakan NPM untuk menjalankan arahan "NPM LIST -G VUE". Cari item VUE dalam objek "Dependencies" fail Package.json. Untuk projek Vue CLI, jalankan perintah "Vue -version". Semak maklumat versi di & lt; skrip & gt; Tag dalam fail HTML yang merujuk kepada fail VUE.

Cara kembali ke halaman sebelumnya oleh Vue Cara kembali ke halaman sebelumnya oleh Vue Apr 07, 2025 pm 11:30 PM

Vue.js mempunyai empat kaedah untuk kembali ke halaman sebelumnya: $ router.go (-1) $ router.back () menggunakan & lt; router-link to = & quot;/& quot; Komponen Window.History.Back (), dan pemilihan kaedah bergantung pada tempat kejadian.

See all articles