vue5種模糊查詢方式

在Vue中,有多種方式可以實現模糊查詢。以下是五種常見的模糊查詢方式:

  1. 使用JavaScript的filter()方法:使用filter()方法可以對數組進行篩選,根據指定的條件進行模糊查詢。例如:
data() {return {items: [{ name: 'Apple' },{ name: 'Banana' },{ name: 'Orange' },{ name: 'Grapes' }],searchKeyword: ''}
},
computed: {filteredItems() {return this.items.filter(item => item.name.includes(this.searchKeyword));}
}

在上面的示例中,我們使用filter()方法對items數組進行篩選,只返回包含searchKeyword關鍵字的項。

  1. 使用Vue的v-for指令和計算屬性:使用v-for指令可以遍歷數組,并結合計算屬性進行模糊查詢。例如:
<template><div><input type="text" v-model="searchKeyword"><ul><li v-for="item in filteredItems" :key="item.id">{{ item.name }}</li></ul></div>
</template><script>
export default {data() {return {items: [{ id: 1, name: 'Apple' },{ id: 2, name: 'Banana' },{ id: 3, name: 'Orange' },{ id: 4, name: 'Grapes' }],searchKeyword: ''}},computed: {filteredItems() {return this.items.filter(item => item.name.includes(this.searchKeyword));}}
}
</script>

在上面的示例中,我們使用v-for指令遍歷filteredItems計算屬性的結果,只渲染包含searchKeyword關鍵字的項。

  1. 使用Vue的watch屬性:使用watch屬性可以監聽searchKeyword的變化,并在變化時執行相應的操作。例如:
data() {return {items: [{ name: 'Apple' },{ name: 'Banana' },{ name: 'Orange' },{ name: 'Grapes' }],searchKeyword: ''}
},
computed: {filteredItems() {return this.items.filter(item => item.name.includes(this.searchKeyword));}
},
watch: {searchKeyword(newValue) {console.log('搜索關鍵字變化為:', newValue);}
}

在上面的示例中,我們使用watch屬性監聽searchKeyword的變化,并在變化時輸出搜索關鍵字的值。

  1. 使用第三方庫(Fuse.js):
    Fuse.js是一個輕量級的模糊查詢庫,可以用于在前端執行高級的模糊查詢操作。以下是使用Fuse.js實現模糊查詢的示例:
<template><div><input type="text" v-model="searchKeyword"><ul><li v-for="item in filteredItems" :key="item.id">{{ item.name }}</li></ul></div>
</template><script>
import Fuse from 'fuse.js';export default {data() {return {items: [{ id: 1, name: 'Apple' },{ id: 2, name: 'Banana' },{ id: 3, name: 'Orange' },{ id: 4, name: 'Grapes' }],searchKeyword: ''}},computed: {filteredItems() {const fuse = new Fuse(this.items, { keys: ['name'] });const result = fuse.search(this.searchKeyword);return result.map(item => item.item);}}
}
</script>

在上面的示例中,我們首先使用import語句導入Fuse.js庫。然后在filteredItems計算屬性中,我們創建了一個Fuse實例,通過keys選項指定了要進行模糊查詢的字段。然后我們調用search()方法執行模糊查詢,并將結果映射為原始數據項。

  1. 使用后端API:
    如果您的數據存儲在后端數據庫中,您可以使用后端API來執行模糊查詢。以下是一個簡單的示例:
// 后端代碼(Node.js + Express.js)
app.get('/items', (req, res) => {const searchKeyword = req.query.keyword;// 執行模糊查詢操作,查詢關鍵字為searchKeyword// 返回匹配的結果
});// 前端代碼(Vue.js)
<template><div><input type="text" v-model="searchKeyword"><ul><li v-for="item in filteredItems" :key="item.id">{{ item.name }}</li></ul></div>
</template><script>
export default {data() {return {items: [],searchKeyword: ''}},computed: {filteredItems() {// 發送請求到后端API,將查詢關鍵字作為參數傳遞// 接收后端返回的匹配結果}},mounted() {// 在組件掛載時獲取初始數據// 可以發送請求到后端API獲取所有數據項}
}
</script>

在上面的示例中,我們假設后端使用Node.js和Express.js框架。后端提供了一個/items的GET路由,可以接收查詢關鍵字作為keyword參數。在前端,我們使用v-model指令綁定輸入框的值到searchKeyword屬性,并在filteredItems計算屬性中發送請求到后端API,將查詢關鍵字作為參數傳遞。后端執行模糊查詢操作,并返回匹配的結果。

請注意,以上示例只是簡單的示例,實際情況下您需要根據您的具體后端框架和數據庫進行相應的調整。

第5種方案使用后端API進行模糊查詢適用于以下場景:

  1. 大規模數據:如果您的數據量很大,使用前端庫進行模糊查詢可能會導致性能問題。在這種情況下,將模糊查詢的操作放在后端可以更好地處理大規模數據。

  2. 安全性:有些數據可能包含敏感信息,不適合直接在前端進行查詢。通過后端API進行模糊查詢可以更好地保護數據的安全性。

  3. 多平臺應用:如果您的應用有多個前端平臺(如Web、移動端、桌面應用等),使用后端API進行模糊查詢可以實現統一的查詢邏輯,避免在每個前端平臺都實現一次模糊查詢。

優點:

  • 可以處理大規模數據,避免前端性能問題。
  • 提供更好的數據安全性。
  • 可以實現多平臺應用的統一查詢邏輯。

缺點:

  • 需要額外的后端開發工作,增加了開發成本。
  • 增加了網絡請求的開銷,可能會影響查詢的響應時間。
  • 需要考慮后端的性能和可擴展性,以應對高并發查詢請求。

綜上所述,使用后端API進行模糊查詢適用于處理大規模數據、保護數據安全性以及實現多平臺應用的場景。但需要注意開發成本和網絡請求開銷,以及后端的性能和可擴展性。根據您的具體需求和應用場景,選擇適合的方案來實現模糊查詢功能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41010.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41010.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41010.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

接口自動化測試(添加課程接口調試,調試合同上傳接口,合同列表查詢接口,批量執行)

1、我們把信息截取一下 1.1 添加一個新的請求 1.2 對整個請求進行保存&#xff0c;Ctrl S 2、這一次我們添加的是課程添加接口&#xff0c;以后一個接口完成&#xff0c;之后Ctrl S 就能夠保存 2.1 選擇方法 2.2 設置請求頭&#xff0c;參數數據后期我們通過配置設置就行 3、…

收銀一體化-億發2023智慧門店新零售營銷策略,實現全渠道運營

伴隨著互聯網電商行業的興起&#xff0c;以及用戶理念的改變&#xff0c;大量用戶從線下涌入線上&#xff0c;傳統的線下門店人流量急劇收縮&#xff0c;門店升級幾乎成為了每一個零售企業的發展之路。智慧門店新零售收銀解決方案是針對傳統零售企業面臨的諸多挑戰和問題&#…

Mathematica 與 Matlab 常見復雜指令集匯編

Mathematica 常見指令匯編 Mathematica 常見指令 NDSolve 求解結果的保存 sol NDSolve[{y[x] x^2, y[0] 0, g[x] -y[x]^2, g[0] 1}, {y, g}, {x, 0, 1}]; numericSoly sol[[1, 1, 2]]; numericSolg sol[[1, 2, 2]]; data Table[{x, numericSoly[x], numericSolg[x]},…

JVM——類加載器

回顧一下類加載過程 類加載過程&#xff1a;加載->連接->初始化。連接過程又可分為三步:驗證->準備->解析。 一個非數組類的加載階段&#xff08;加載階段獲取類的二進制字節流的動作&#xff09;是可控性最強的階段&#xff0c;這一步我們可以去完成還可以自定義…

【計算機網絡篇】UDP協議

?作者簡介&#xff1a;大家好&#xff0c;我是小楊 &#x1f4c3;個人主頁&#xff1a;「小楊」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起進步呀&#xff01; UDP協議 1&#xff0c;UDP 簡介 UDP&#xff08;User Datagram Protocol&#xff09;是一種無連…

Flink學習筆記(一)

流處理 批處理應用于有界數據流的處理&#xff0c;流處理則應用于無界數據流的處理。 有界數據流&#xff1a;輸入數據有明確的開始和結束。 無界數據流&#xff1a;輸入數據沒有明確的開始和結束&#xff0c;或者說數據是無限的&#xff0c;數據通常會隨著時間變化而更新。 在…

Kaptcha的基本應用

Kaptcha Kaptcha 是一個用于生成和驗證驗證碼的 Java 庫&#xff0c;提供了豐富的生成和驗證功能&#xff0c;并支持自定義配置。它可以用于增加應用程序的安全性&#xff0c;防止機器人和惡意攻擊。 Kaptcha 可以生成各種類型的驗證碼&#xff0c;包括數字、字母、數字字母組…

KDD 2023 獲獎論文公布,港中文、港科大等獲最佳論文獎

ACM SIGKDD&#xff08;國際數據挖掘與知識發現大會&#xff0c;KDD&#xff09;是數據挖掘領域歷史最悠久、規模最大的國際頂級學術會議&#xff0c;也是首個引入大數據、數據科學、預測分析、眾包等概念的會議。 今年&#xff0c;第29屆 KDD 大會于上周在美國加州長灘圓滿結…

HTTP--Request詳解

請求消息數據格式 請求行 請求方式 請求url 請求協議/版本 GET /login.html HTTP/1.1 請求頭 客戶端瀏覽器告訴服務器一些信息 請求頭名稱: 請求頭值 常見的請求頭&#xff1a; User-Agent&#xff1a;瀏覽器告訴服務器&#xff0c;我訪問你使用的瀏覽器版本信息 可…

藍橋杯每日N題 (消滅老鼠)

大家好 我是寸鐵 希望這篇題解對你有用&#xff0c;麻煩動動手指點個贊或關注&#xff0c;感謝您的關注 不清楚藍橋杯考什么的點點下方&#x1f447; 考點秘籍 想背純享模版的伙伴們點點下方&#x1f447; 藍橋杯省一你一定不能錯過的模板大全(第一期) 藍橋杯省一你一定不…

【日常積累】HTTP和HTTPS的區別

背景 在運維面試中&#xff0c;經常會遇到面試官提問http和https的區別&#xff0c;今天咱們先來簡單了解一下。 超文本傳輸協議HTTP被用于在Web瀏覽器和網站服務器之間傳遞信息&#xff0c;HTTP協議以明文方式發送內容&#xff0c;不提供任何方式的數據加密&#xff0c;如果…

09- DMA(DirectMemoryAccess直接存儲器訪問)

DMA 09 、DMA(DirectMemoryAccess直接存儲器訪問)DMA配置流程 09 、DMA(DirectMemoryAccess直接存儲器訪問) DMA配置流程 dma.c文件 main.c文件 詳見《stm32中文參考手冊》表57。

tsconfig.json和jsconfig.json配置

{// 編譯選項"compilerOptions": {// 生成代碼的語言版本&#xff1a;將我們寫的 TS 代碼編譯成哪個版本的 JS 代碼// 命令行&#xff1a; tsc --target es5 11-測試TS配置文件.ts"target": "es5",// 指定要包含在編譯中的 library"lib&quo…

3年 Android 開發的面試心經(后悔當初沒有拿 N+1)

作者&#xff1a;勇闖天涯 當某人順利通過大廠面試時&#xff0c;總會有人認為這是運氣比較好罷了&#xff0c;但他們不曾得知對方之前受過多少苦和委屈&#xff0c;又付出了多少努力一步步去突破這些困境。正是因為他們的努力付出&#xff0c;在合適的時間與地點&#xff0c;用…

SSH連接工具匯總

xshell 這是個熟悉的軟件啦&#xff0c;目前我正在使用Xshell_7 鏈接&#xff1a;https://www.xshell.com/zh/xshell/ FinalShell 國產軟件&#xff0c;有windows和MAC版本&#xff1b;使用方便而且免費&#xff0c;但是軟件比較占用內存。但是都2021年了&#xff0c;筆記本…

AlphaZero能否從圍棋和國際象棋飛躍到量子計算?

一項新的研究表明&#xff0c;DeepMind驚人的游戲算法AlphaZero可以幫助釋放量子計算的力量和潛力。 自兩年多前出現以來&#xff0c;AlphaZero一再證明了其快速學習能力&#xff0c;將自己提升到圍棋&#xff0c;國際象棋和將棋&#xff08;日本象棋&#xff09;的特級大師級別…

VHDL記錄

文章目錄 使用function名稱作為“常量”numeric_std包集中使用乘法的注意項variable的使用對于entity設置屬性的方法在entity聲明中嵌入function的定義VHDL仿真讀寫文件File declaration/File handingFile readingFile writing小例子 使用函數 模塊中打印出調試信息 使用functi…

RTC實驗

一、RTC簡介 RTC(Real Time Clock)即實時時鐘&#xff0c;它是一個可以為系統提供精確的時間基準的元器件&#xff0c;RTC一般采用精度較高的晶振作為時鐘源&#xff0c;有些RTC為了在主電源掉電時還可以工作&#xff0c;需要外加電池供電BCD碼&#xff0c;四位二進制表示一位…

Java Persistence APl(JPA)——JPA是啥? SpringBoot整合JPA JPA的增刪改查 條件模糊查詢 多對一查詢

目錄 引出Jpa是啥&#xff1f;Jpa的使用創建實體類寫dao接口類寫服務類 crud增刪改查增加修改根據id刪除全查詢分頁查詢 條件查詢模糊查詢單條件查詢多條件查詢模糊查詢排序查詢 多對一查詢定義實體類auto主鍵策略下新增進行全查詢測試 全部代碼application.yml配置類pom配置文…

Java反射機制是什么?

Java反射機制是 Java 語言的一個重要特性。 在學習 Java 反射機制前&#xff0c;大家應該先了解兩個概念&#xff0c;編譯期和運行期。 編譯期是指把源碼交給編譯器編譯成計算機可以執行的文件的過程。在 Java 中也就是把 Java 代碼編成 class 文件的過程。編譯期只是做了一些…