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

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

Vue文本模糊匹配功能如何實現(xiàn)

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

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

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

<!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://m.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會在文本框內(nèi)容message變化時篩選options里的數(shù)據(jù),效果圖如下所示:

Vue文本模糊匹配功能如何實現(xiàn)

二、使用作用域插槽實現(xiàn)

使用插槽主要是為了使該功能組件化:在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://m.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數(shù)據(jù),使用v-show來控制選項的顯示,運行效果和計算屬性方式相同。缺點就是無法單文件化(剛學vue沒多久,不知道怎么在單文件里使用作用域插槽,試過直接把template里的東西封裝成my-option好像并不管用)

三、混入廣播和派發(fā)方法在獨立組件中實現(xiàn)模糊匹配

首先需要一個emitter文件:

/** * 子組件廣播事件 * @param {string} componentName 子組件名 * @param {string} eventName 事件名 * @param {...any} params 事件參數(shù) */function _broadcast(componentName, eventName, ...params) { this.$children.forEach(child => { if (child.$options.name === componentName) { child.$emit(eventName, ...params) } _broadcast.call(child, componentName, eventName, ...params) })}/** * 父組件派發(fā)事件 * @param {string} componentName 父組件名 * @param {string} eventName 事件名 * @param {...any} params 事件參數(shù) */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組件。

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

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

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲va在线| 午夜在线一区| 中文字幕中文字幕精品| 日韩视频在线一区二区三区| 桃色一区二区| 国产91精品对白在线播放| 日韩一区二区在线免费| 电影亚洲精品噜噜在线观看 | 日韩和欧美的一区| 亚洲综合激情在线| 一区二区自拍| 日韩专区欧美专区| 久久亚洲图片| 亚洲aⅴ网站| 91成人在线网站| 国产精品nxnn| 高清日韩中文字幕| 日韩国产一区| 狠狠久久婷婷| 蜜桃视频在线观看一区| 日韩精品91亚洲二区在线观看| 久久精品99国产精品| 国产精品天堂蜜av在线播放| 美女在线视频一区| 欧美香蕉视频| 99久久亚洲精品蜜臀| 亚洲成人精选| 免播放器亚洲一区| 少妇精品久久久一区二区| 青青草国产成人99久久| 国产高清精品二区| 9999国产精品| 2023国产精品久久久精品双| 亚洲3区在线| 久久精品伊人| 欧美亚洲国产精品久久| 石原莉奈在线亚洲二区| 国产精品综合色区在线观看| 97精品一区| 日韩一区二区免费看| 视频一区二区中文字幕| 日韩不卡一区二区三区 | 久久香蕉网站| 日韩久久一区二区三区| 视频一区国产视频| 欧美激情视频一区二区三区在线播放| 国产精品不卡| 国产精品嫩草99av在线| 日韩av中文字幕一区二区三区| 国产精品视频一区二区三区 | 999久久久精品国产| 蜜桃视频免费观看一区| 国产福利亚洲| 精品中文字幕一区二区三区av| 亚洲精品伊人| 黄在线观看免费网站ktv| 视频一区中文字幕国产| 成人精品久久| 免费观看在线色综合| 麻豆91精品视频| 国产韩日影视精品| 国产精一区二区| 91久久国产| 久久只有精品| 欧美天堂亚洲电影院在线观看| 国产欧美欧美| 欧美69视频| 欧美aa在线视频| 模特精品在线| 日韩av有码| 四虎在线精品| 日韩成人高清| 日韩av一区二区在线影视| 日韩激情一区| 97se亚洲| 在线综合欧美| 正在播放日韩精品| 日韩av一区二区三区四区| 国产精品97| 国产精品jk白丝蜜臀av小说| 亚洲一区欧美激情| 日韩.com| 国产一精品一av一免费爽爽| 欧美二区视频| 久久一区精品| 亚欧洲精品视频在线观看| 亚洲视频综合| 美女av在线免费看| 国产香蕉精品| 亚洲精品在线二区| 国产精品美女久久久浪潮软件| 欧美日韩国产观看视频| 国产美女久久| 综合欧美亚洲| 亚洲一级高清| 日本а中文在线天堂| 国产欧美日韩在线一区二区| 亚洲一二av| 国产精品外国| 久久久成人网| 黑人精品一区| 久久精品系列| 国产亚洲精品精品国产亚洲综合| 久久最新视频| 欧美大黑bbbbbbbbb在线| 三级在线看中文字幕完整版| 免费视频一区二区三区在线观看| 日韩动漫一区| 四虎精品永久免费| 欧美另类综合| 久久国产亚洲| 成人自拍av| 四季av一区二区凹凸精品| 国产福利一区二区精品秒拍| 国产欧美一区二区三区精品观看| 日韩免费精品| 日韩三级一区| 日本一区福利在线| 亚洲免费观看高清完整版在线观| 国产视频一区免费看| 欧美va亚洲va日韩∨a综合色| 精品亚洲美女网站| 久久九九电影| 999精品一区| 吉吉日韩欧美| 日本久久精品| 都市激情国产精品| 成人欧美一区二区三区的电影| 98精品视频| 天堂а√在线最新版中文在线| 免费亚洲一区| 国产极品一区| 国产精品99久久久久久董美香| 国产欧美精品久久| 麻豆国产精品| 日韩综合一区| 99国产精品免费视频观看| 久久中文字幕av| 伊人精品在线| 精品一区免费| 黄色亚洲在线| 丝袜美腿成人在线| 亚洲乱亚洲高清| 日韩av在线播放中文字幕| 国产欧美精品久久| 国产成人精品一区二区三区视频| 亚洲黄色网址| 亚洲性视频h| 综合激情视频| 国产精品毛片aⅴ一区二区三区| 久久亚洲国产精品尤物| 亚洲播播91| 亚洲一区二区三区高清不卡| 亚洲欧洲日韩| 日韩不卡免费视频| 国产精品男女| 91日韩欧美| 亚洲精品va| 日韩欧美2区| 国产不卡精品在线| 91精品一区国产高清在线gif| 天使萌一区二区三区免费观看| 欧美伊人久久| а√在线中文在线新版| 亚洲国产日韩欧美在线| 亚洲欧洲免费| 色婷婷综合网| 蜜臀久久99精品久久久画质超高清| 国产一区 二区| 福利片在线一区二区| 蜜桃成人av| 久久精品99国产精品| 神马日本精品| 日本免费一区二区视频| 神马久久午夜| 日本一区福利在线| 日韩高清成人| 日韩欧美三区| 国产aa精品| 麻豆成人综合网| 91精品一区国产高清在线gif | av在线最新| 欧美理论视频| 蜜臀91精品一区二区三区| 九九久久国产| 影视先锋久久| 只有精品亚洲| 91欧美极品| 韩日一区二区三区| 亚洲欧美在线专区| 免费在线亚洲| 天堂网av成人| 亚洲精品伊人| 精品国产a一区二区三区v免费| 91av亚洲| 亚洲精品一区二区在线播放∴| 精品久久网站| 天堂成人免费av电影一区| 欧美激情aⅴ一区二区三区| 亚洲一区欧美二区|