最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue搜索高亮popsearch組件的實(shí)現(xiàn)示例

 更新時間:2023年09月27日 11:14:10   作者:啥咕啦嗆  
有時候給頁面內(nèi)容添加一個關(guān)鍵詞搜索功能,如果搜索結(jié)果能夠像瀏覽器搜索一樣高亮顯示,那找起來就會很明顯體驗(yàn)會好很多,本文就來介紹一下vue搜索高亮popsearch組件的實(shí)現(xiàn)示例,感興趣的可以了解一下

背景

最近項(xiàng)目中需要制作一個搜索高亮的組件(如下圖展示),今天分享一下這個組件功能。希望能拋磚引玉,給大家?guī)韱l(fā)。

需求功能

我們需要一個輸入框,比如用來搜索網(wǎng)站的所有菜單,這個時候搜索結(jié)果高亮顯示。

1.搜索關(guān)鍵詞篩選;

2.關(guān)鍵詞鍵入篩選;

3.關(guān)鍵詞列表高亮;

設(shè)計(jì)開發(fā)

先說一下我的開發(fā)環(huán)境版本:

  • node: v11.3.0
  • npm: 6.4.1
  • vue:2.5.11

如果不是以上版本也沒關(guān)系,今日分享的思路,相信你可以自己造出來~

1.先做html排版,簡單的用position相對定位來做哈:

<div class='popcover'>
   <input type="text" class="z-input" placeholder="請輸入" v-model="data">
   <div class="popcoverbox">
      <p v-if="!list.filter(one=>one.name.includes(data)).length"> 無數(shù)據(jù) </p>
      <ul>
        <li v-for="one in list.filter(one=>one.name.includes(data))" :key="one.id" v-html="searchNamefilter(one.name)" ></li>
      </ul>
   </div>
 </div>

2.給html賦上對應(yīng)的css(sass):

.z-input{
  outline: none;
  line-height: 30px;
  border: 1px solid #ddd;
  border-radius: 3px;
  padding: 0 10px;
  &:focus{
    border-color: #1676ff;
    + .popcoverbox{
      display: block;
    }
  }
}
.popcover{
  position: relative;
}
.popcoverbox{
  display: none;
  position: absolute;
  top: 32px;
  left: 0;
  min-width: 200px;
  min-height: 30px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 3px;
  box-shadow: 3px 4px 3px #eee;
  background: #fff;
  line-height: 30px;
  padding: 0;
  p{
    color: #999;
    padding: 0;
    margin: 0;
    border: 0;
    text-indent: 10px;
  }
  ul{
    padding: 0;
    margin: 0;
    border: 0;
    li{
      margin: 0;
      border: 0;
      box-sizing: border-box;
      width: 100%;
      text-indent: 10px;
      cursor: pointer;
      &:hover{
        color: #333;
        background-color: #eee;
      }
      &.hover{
        color: #1676ff;
        background-color: #e8f1ff;
      }
    }
  }
}

3.給出變量定義:

data:"",
list:[
  {
    id: 0,
    name:'張三'
  },
  {
    id: 1,
    name:'趙四'
  },
  {
    id: 2,
    name:'周四'
  },
  {
    id: 3,
    name:'鄭三'
  },
]
}

4.方法高亮定義:

 // 搜索關(guān)鍵詞高亮
searchNamefilter(name){
  if(!name)return
  let key = this.data;
  const reg = new RegExp(key, 'ig');
  return name.replace(reg, `<span style="color:red">${key}</span>`)
},

本組件只用于學(xué)習(xí)交流哈!暫時沒有定義父級傳入?yún)?shù)哈,效果如下:

寫在最后

到此這篇關(guān)于vue搜索高亮popsearch組件的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)vue搜索高亮popsearch 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何用vue封裝axios請求

    如何用vue封裝axios請求

    對axios進(jìn)行封裝以及將API接口按業(yè)務(wù)模塊統(tǒng)一管理,有助于我們簡化代碼,方便后期維護(hù)。本文介紹了如何用vue封裝axios請求,感興趣的同學(xué),可以參考下。
    2021-06-06
  • 如何使用vue開發(fā)公眾號網(wǎng)頁

    如何使用vue開發(fā)公眾號網(wǎng)頁

    因?yàn)轫?xiàng)目需要,近期做了一個公眾號網(wǎng)頁開發(fā)。在此期間也踩了一些坑,解決這些坑之后,準(zhǔn)備對這個項(xiàng)目進(jìn)行復(fù)盤。記錄下項(xiàng)目從開發(fā)到上線所解決的問題,并對使用vue進(jìn)行公眾號開發(fā)的步驟進(jìn)行一個總結(jié)。方便以后有問題進(jìn)行查閱。希望對你有所幫助
    2021-05-05
  • 詳解vue項(xiàng)目接入微信JSSDK的坑

    詳解vue項(xiàng)目接入微信JSSDK的坑

    這篇文章主要介紹了詳解vue項(xiàng)目接入微信JSSDK的坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 構(gòu)建Vue3桌面應(yīng)用程序的方法

    構(gòu)建Vue3桌面應(yīng)用程序的方法

    在項(xiàng)目中會用到 Electron , 一種最流行的框架,可使用Javascript構(gòu)建跨平臺的桌面應(yīng)用程序。在本文中,我們將研究如何通過 Vite 開發(fā) Vue 3 桌面項(xiàng)目,感興趣的可以了解一下
    2021-05-05
  • element ui loading加載開啟與關(guān)閉方式

    element ui loading加載開啟與關(guān)閉方式

    這篇文章主要介紹了element ui loading加載開啟與關(guān)閉方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue中Promise的使用方法詳情

    vue中Promise的使用方法詳情

    這篇文章主要介紹了vue中Promise的使用方法詳情,Promise可以說是異步編程的一種解決方法,主要是為了解決代碼亂的情景而出現(xiàn)的,下文介紹其具體用法,需要的小伙伴可以參考一下
    2022-03-03
  • mpvue項(xiàng)目中使用第三方UI組件庫的方法

    mpvue項(xiàng)目中使用第三方UI組件庫的方法

    這篇文章主要介紹了mpvue項(xiàng)目中使用第三方UI組件庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 使用Vue與WebSocket創(chuàng)建實(shí)時通知系統(tǒng)

    使用Vue與WebSocket創(chuàng)建實(shí)時通知系統(tǒng)

    在現(xiàn)代應(yīng)用開發(fā)中,實(shí)時性已成為用戶體驗(yàn)的一個重要組成部分,ue 作為一款流行的前端框架,配合 WebSocket,可以輕松構(gòu)建實(shí)時通知系統(tǒng),在本文中,我們將通過一個簡單的示例,使用 Vue 3 的 Composition API(setup 語法糖)來創(chuàng)建一個實(shí)時通知系統(tǒng)
    2024-11-11
  • Vue中響應(yīng)式系統(tǒng)實(shí)現(xiàn)原理圖文講解

    Vue中響應(yīng)式系統(tǒng)實(shí)現(xiàn)原理圖文講解

    Vue的響應(yīng)式實(shí)現(xiàn)是借助Object.defineProperty通過重寫getter和setter方法來進(jìn)行的數(shù)據(jù)劫持,Vue3通過Proxy代理攔截對象中任意屬性的變化,通過Reflect反射對源對象的屬性進(jìn)行操作,然后再在get里收集依賴在set里派發(fā)更新
    2023-03-03
  • 詳解基于 Nuxt 的 Vue.js 服務(wù)端渲染實(shí)踐

    詳解基于 Nuxt 的 Vue.js 服務(wù)端渲染實(shí)踐

    這篇文章主要介紹了詳解基于 Nuxt 的 Vue.js 服務(wù)端渲染實(shí)踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論

崇州市| 米易县| 定南县| 儋州市| 喀喇沁旗| 张家口市| 沭阳县| 集安市| 武乡县| 泰宁县| 镇巴县| 余姚市| 巴彦县| 正蓝旗| 大石桥市| 阜宁县| 鹤山市| 辽阳县| 法库县| 平定县| 彩票| 廊坊市| 托克逊县| 如东县| 齐河县| 彭山县| 大姚县| 乡宁县| 上思县| 兴安县| 耒阳市| 泽州县| 民和| 柳州市| 南汇区| 盐津县| 南康市| 丹东市| 平塘县| 福州市| 威远县|