日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue文本模糊匹配功能如何實現

瀏覽:174日期:2022-12-21 18:09:51

模糊匹配功能在下拉菜單的組件中用的非常多,于是打算寫幾個demo看看細節上是如何實現的。

一、最簡單的模糊匹配:計算屬性

<!DOCTYPE html><html lang='zh-CN'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='ie=edge'> <title>Document</title></head><body> <div id='app'> <input type='text' v-model='message'> <ul> <li v-for='(option, index) in matchedOptions' :key='index'>{{ option }}</li> </ul> </div> <script src='http://www.b3g6.com/bcjs/vue.js'></script> <script> new Vue({ el: ’#app’, data: {message: ’’,options: [’html’, ’css’, ’javascript’] }, computed: {matchedOptions() { if (this.message !== ’’) { return this.options.filter(option => option.includes(this.message)) } return this.options} } }) </script></body></html>

在上面的例子中,計算屬性matchedOptions會在文本框內容message變化時篩選options里的數據,效果圖如下所示:

Vue文本模糊匹配功能如何實現

二、使用作用域插槽實現

使用插槽主要是為了使該功能組件化:在select組件中插入option,然后option通過作用域插槽從select中獲取文本值:

<!DOCTYPE html><html lang='zh-CN'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='ie=edge'> <title>Document</title></head><body> <div id='app'> <my-select> <template #default='{ message }'><ul> <li v-for='(option, index) in options' :key='index' v-show='option.includes(message)'>{{ option }}</li></ul> </template> </my-select> </div> <script src='http://www.b3g6.com/bcjs/vue.js'></script> <script> Vue.component(’my-select’, { template: `<div class='my-select'> <input type='text' v-model='message'> <slot :message='message'></slot></div> `, data() {return { message: ’’} } }) new Vue({ el: ’#app’, data: {options: [’html’, ’css’, ’javascript’] } }) </script></body></html>

全局注冊了my-select組件后,可以刪除app里的message數據,使用v-show來控制選項的顯示,運行效果和計算屬性方式相同。缺點就是無法單文件化(剛學vue沒多久,不知道怎么在單文件里使用作用域插槽,試過直接把template里的東西封裝成my-option好像并不管用)

三、混入廣播和派發方法在獨立組件中實現模糊匹配

首先需要一個emitter文件:

/** * 子組件廣播事件 * @param {string} componentName 子組件名 * @param {string} eventName 事件名 * @param {...any} params 事件參數 */function _broadcast(componentName, eventName, ...params) { this.$children.forEach(child => { if (child.$options.name === componentName) { child.$emit(eventName, ...params) } _broadcast.call(child, componentName, eventName, ...params) })}/** * 父組件派發事件 * @param {string} componentName 父組件名 * @param {string} eventName 事件名 * @param {...any} params 事件參數 */function _dispatch(componentName, eventName, ...params) { if (this.$parent) { if (this.$parent.$options.name === componentName) { this.$parent.$emit(eventName, ...params) } _dispatch.call(this.$parent, componentName, eventName, ...params) }}/** * mixin */export default { methods: { broadcast(componentName, eventName, ...params) { _broadcast.call(this, componentName, eventName, ...params) }, dispatch(componentName, eventName, ...params) { _dispatch.call(this, componentName, eventName, ...params) } }}

注意,這里的$children和$parent都是指具有dom父子關系的vue組件。

最后,通過設置查詢條件來控制子組件的顯示與隱藏即可實現實時模糊搜索。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
天堂av在线一区| 亚洲激情偷拍| 每日更新成人在线视频| 亚洲免费福利| 亚洲免费毛片| 久久麻豆视频| 麻豆91精品91久久久的内涵| 久久久久免费| 久久久久.com| 好看的亚洲午夜视频在线| 国产一二在线播放| 97精品视频在线看| 欧美午夜不卡| 国产视频一区二| 国产在线日韩| 欧美天堂一区二区| 中文字幕在线官网| 亚洲精品进入| 伊人久久视频| 蜜桃久久av一区| 久久精品二区三区| 捆绑调教美女网站视频一区| 国产乱人伦丫前精品视频| 国产视频一区在线观看一区免费| 中文字幕在线视频网站| 日韩精品视频中文字幕| 日韩国产一区| 日韩av一区二区在线影视| 亚洲精品一区三区三区在线观看| 日韩精品欧美精品| 欧美日韩国产高清| 四虎8848精品成人免费网站| 亚洲精品日本| 亚洲免费婷婷| 久久蜜桃av| 青青青免费在线视频| 国产精品观看| 青草久久视频| 日韩精品一页| 在线国产日韩| 欧美日韩在线播放视频| 精品福利久久久| 蜜桃久久久久| 国产精品视频一区二区三区综合| 免费精品视频| 日韩在线a电影| 亚洲一区av| 亚洲人成网77777色在线播放| 狠狠色狠狠色综合日日tαg| sm久久捆绑调教精品一区| 国产精品17p| 国产精品对白| 成午夜精品一区二区三区软件| 麻豆国产欧美一区二区三区| 国产精品2区| 日本视频在线一区| 色8久久久久| 久久99蜜桃| 风间由美中文字幕在线看视频国产欧美| 久久国产视频网| 国产成人精品999在线观看| 日韩av自拍| 国产精品99免费看| 免费不卡在线观看| 国产精品一区二区三区av麻| 精品欠久久久中文字幕加勒比| 久久精品福利| 91久久黄色| 日本不卡视频在线观看| 高清av一区| 日韩毛片在线| 亚洲精品中文字幕99999| 麻豆国产欧美一区二区三区| a天堂资源在线| 97久久亚洲| 亚洲精品网址| 日韩欧美1区| 在线一区免费观看| 国产精品久久久久9999高清| 日韩精品dvd| 一区二区精品| 美腿丝袜亚洲一区| 欧美在线网站| **爰片久久毛片| 色爱av综合网| 亚洲免费网址| 欧美日韩亚洲一区二区三区在线| 国产理论在线| 久久精品99久久久| 欧美男人天堂| 日韩精彩视频在线观看| 精品免费av在线| 久久99蜜桃| 日韩av在线免费观看不卡| av一区在线| 欧美视频久久| 国产精品99免费看| 欧美国产另类| 午夜宅男久久久| 日韩1区2区| 国产欧美69| 视频在线在亚洲| 亚洲免费激情| 亚洲福利专区| 欧美二三四区| 老牛影视精品| 麻豆国产在线| 久热精品在线| 欧美亚洲国产激情| 成人日韩av| 国产欧美高清| 日韩和欧美的一区| 伊人久久亚洲| japanese国产精品| 群体交乱之放荡娇妻一区二区| 美女性感视频久久| 国产精品腿扒开做爽爽爽挤奶网站| 精品国产欧美日韩| 国产日产精品_国产精品毛片 | 欧美专区一区二区三区| 九九色在线视频| 国产欧美一区二区三区精品酒店 | 久久久久九九精品影院| 91av一区| 国产精品亚洲成在人线| 亚洲精品观看| 亚洲精品在线二区| 爽爽淫人综合网网站| 亚洲在线一区| 亚洲字幕久久| 欧美片网站免费| 麻豆免费精品视频| 成人亚洲精品| 色爱综合av| 免费日韩av| 国产探花一区在线观看| 久久伊人亚洲| 色吊丝一区二区| 欧美专区18| 国产精品magnet| 精品三级av| 99久久婷婷| 亚洲人成网77777色在线播放 | 国产一区二区三区亚洲| 国产 日韩 欧美一区| 神马日本精品| 99国产精品| 国产视频网站一区二区三区| 免费观看亚洲天堂| 蜜桃视频在线网站| 亚洲深夜福利在线观看| 欧美精品不卡| 激情综合激情| 亚洲精品乱码日韩| 91福利精品在线观看| 蜜臀国产一区| 日韩高清在线观看一区二区| 国产一区二区三区黄网站| 激情综合亚洲| 欧美日韩精品一区二区三区在线观看| 欧美午夜三级| 欧美aa国产视频| 免费成人在线视频观看| 日韩精品欧美成人高清一区二区| 国产日韩欧美中文在线| 精品国产一区二区三区2021| 99久久久久国产精品| 91精品国产经典在线观看| 成人午夜亚洲| 蜜乳av另类精品一区二区| 久久激五月天综合精品| 欧美91精品| 国产videos久久| 日本成人精品| 黄色日韩在线| 亚洲二区免费| 精品美女久久| 在线观看一区| 国产精品99一区二区| 久久99精品久久久久久园产越南 | 午夜精品网站| 日韩久久电影| 国产极品一区| 久久国产三级精品| 水蜜桃久久夜色精品一区的特点| 欧洲精品一区二区三区| 开心激情综合| 欧美激情 亚洲a∨综合| 日韩动漫一区| 日本va欧美va瓶| 亚洲青青久久| 日韩一区二区三区四区五区| 男女性色大片免费观看一区二区 | 国产精品毛片| 亚洲少妇在线| 亚洲激情欧美| 亚洲少妇自拍| 六月丁香综合| 夜久久久久久| 国产美女一区|