vue中利用pinyin-pro純前端實現(xiàn)拼音的模糊搜索功能
1、安裝配置插件
pinyin-pro官網(wǎng)網(wǎng)址:
npm 安裝
npm install pinyin-pro
項目中引入
import { pinyin } from 'pinyin-pro';
2.編寫工具類方法
定義三個變量:
// 雙向綁定搜索框,由用戶輸入的數(shù)據(jù) inputProvince: 'ninxia', // 從后臺獲取的,篩選前的總數(shù)據(jù) totalProvinceList: [ { province: '寧夏省',id:'0001', turnover: '50' }, ..... ],
// 由inputProvince從totalProvence中篩選后的數(shù)據(jù),雙向綁定列表 provinceList: [],
編寫方法:
在vue中定義方法用的是mehtod(){return 0}的形式,其他框架中視情況改變定義的辦法
// 輸入框搜索有關(guān)方法 pinyinFilter (inputValue, totalList) { // 工具類方法,從數(shù)組中過濾出漢字、拼音、拼音首字母相同的項 /* 輸入內(nèi)容拼音轉(zhuǎn)換 */ // 完整拼音 const pyInput = pinyin(inputValue, { toneType: 'none', type: 'array' }).join('') console.log('pyInput', pyInput) // 拼音首字母 const headerPyInput = pinyin(inputValue, { pattern: 'first', type: 'array' }).join('') console.log('headerPyInput', headerPyInput) return totalList.filter(e => { // 列表中每項的拼音 const pyE = pinyin(e.province, { toneType: 'none', type: 'array' }).join('').slice(0, pyInput.length) console.log('pyE', pyE) // 列表中每項的拼音首字母 const headerPyE = pinyin(e.province, { pattern: 'first', type: 'array' }).join('').slice(0, headerPyInput.length) console.log('headerPyE', headerPyE) console.log('_____________________') // 過濾匹配 return e.province.includes(inputValue) || (pyE === pyInput) || (headerPyE === headerPyInput) }) },
3.調(diào)用方法
筆者使用的是vue,所以在數(shù)據(jù)的調(diào)用前加了this.
this.provinceList = this.pinyinFilter(this.inputProvince, this.totalProvinceList)
到此這篇關(guān)于vue中利用pinyin-pro純前端實現(xiàn)拼音的模糊搜索的文章就介紹到這了,更多相關(guān)vue 模糊搜索內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用vite構(gòu)建vue3項目的實現(xiàn)步驟
通過本文,您可以了解如何使用Vue CLI創(chuàng)建Vue 3項目,配置Vite,利用其優(yōu)勢進(jìn)行開發(fā),具有一定的參考價值,感興趣的可以了解一下2023-08-08vue-element-admin登錄攔截設(shè)置白名單方式
這篇文章主要介紹了vue-element-admin登錄攔截設(shè)置白名單方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03詳解vue父子組件關(guān)于模態(tài)框狀態(tài)的綁定方案
這篇文章主要介紹了詳解vue父子組件關(guān)于模態(tài)框狀態(tài)的綁定方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06如何用webpack4帶你實現(xiàn)一個vue的打包的項目
這篇文章主要介紹了如何用webpack4帶你實現(xiàn)一個vue的打包的項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06