国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue搜索組件,顯示熱門、近期搜索(結(jié)合element ui)

這篇具有很好參考價(jià)值的文章主要介紹了Vue搜索組件,顯示熱門、近期搜索(結(jié)合element ui)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

  • ?? 注重版權(quán),轉(zhuǎn)載請注明原作者和原文鏈接

  • ?? 作者:全棧小袁

  • ?? 原創(chuàng)個(gè)人開源博客項(xiàng)目(目前V3.0版本):https://github.com/yuanprogrammer/xiaoyuanboke

  • ?? 開源項(xiàng)目覺得還行的話點(diǎn)點(diǎn)star,有什么需要完善或者點(diǎn)子歡迎提issue

小袁有話說

也是好久沒有發(fā)文章了,之前忙著秋招校招春招,入職后一邊忙著工作一邊忙著畢業(yè)設(shè)計(jì),所以CSDN活躍的比較少了

這次呢,打算整理自己今年所學(xué)到的以及自己的一些demo,然后一篇一篇發(fā)出來和大家分享

今天要分享的是一個(gè)Vue的搜索框組件,近期又做了一個(gè)新的開源項(xiàng)目(后續(xù)會發(fā)布),熱門搜索框組件是項(xiàng)目的其中一個(gè)小組件,分享給大家,先展示下最終的效果圖

vue 搜索欄,Vue,vue.js,ui,前端,elementui,css

搜索框說明

本次實(shí)現(xiàn)的這個(gè)搜索框,是結(jié)合了element ui的兩個(gè)組件

  • Input 輸入框
  • Popover 彈出框 這個(gè)是重點(diǎn),自定義搜索彈框

該組件單獨(dú)分離封裝,直接引入組件就能使用,不需要適配當(dāng)前頁面

因?yàn)橐彩乔岸说囊恍┍容^簡單的操作,代碼也沒什么好教程說明的,直接貼上完整的代碼吧。

唯一要說明的地方應(yīng)該是searchRequest 方法,用于搜索跳轉(zhuǎn),video/search 路徑換成自己項(xiàng)目的搜索結(jié)果也就可以了,我這里的歷史搜索以及熱門搜索都是寫死的,你們可以自己換成自己項(xiàng)目的API接口請求

完整代碼

創(chuàng)建 SearchInput.vue 文件

<template>
  <div class="search-item">
    <el-popover
        placement="bottom"
        width="475"
        ref="popover"
        trigger="focus"
        :visible-arrow="false"
        style="padding-top: 0"
        v-model="visible">
      <div class="search-content">
        <div class="search-his" v-show="historySearch.length > 0">
          <div>
            <span class="title">搜索歷史</span>
            <span class="clear" @click="clearHistory"><i class="el-icon-circle-close"></i>清空</span>
          </div>
          <el-tag
              v-for="tag in historySearch"
              :key="tag.name"
              size="small"
              closable
              style="margin-right: 10px; margin-top: 10px; cursor: pointer"
              @click="handleSearch(tag.name)"
              :type="tag.type">
            {{tag.name}}
          </el-tag>
        </div>

        <div :class="'search-hot ' + (historySearch.length > 0 ? 'mt' : '') ">
          <span class="title">熱門搜索</span>
          <ul class="hot-list">
            <li v-for="(item, index) in items" :key="index" class="hot-item">
              <span v-if="index < 3" class="top">
                <i class="iconvs vs-hot"></i>
              </span>
              <span v-else>
                {{ index + 1 }}
              </span>
              <span @click="handleSearch(item)">{{ item }}</span>
            </li>
          </ul>
        </div>
      </div>
    </el-popover>
    <el-input
        size="medium"
        :placeholder="tipsWord"
        style="width: 500px"
        clearable
        v-popover:popover
        @keyup.enter.native="searchRequest"
        v-model="search">
      <i slot="suffix" class="el-input__icon el-icon-search" style="cursor: pointer" @click="searchRequest"></i>
    </el-input>
  </div>
</template>


<script>
export default {
  data() {
    return {
      visible: false,
      isMouseOver: false,
      search: '',
      tipsWord: '',
      historySearch: [
        { name: '標(biāo)簽一66666', type: 'info' },
        { name: '標(biāo)簽二無敵無敵', type: 'info' },
        { name: '標(biāo)簽三66', type: 'info' },
        { name: '標(biāo)簽四1', type: 'info' },
        { name: '標(biāo)簽四2', type: 'info' },
        { name: '標(biāo)簽四3', type: 'info' },
        { name: '標(biāo)簽四4', type: 'info' },
        { name: '標(biāo)簽五', type: 'danger' }
      ],
      items: [
        '重生之我是都市霸主',
        '熱搜',
        '熱搜重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主重生之我是都市霸主',
        '熱搜',
        '熱搜',
        '熱搜',
        '熱搜',
        '熱搜',
        '熱搜',
        '熱搜'
      ]
    }
  },
  methods: {
    handleSearch(word) {
      this.search = word
      this.searchRequest()
    },
    clearHistory() {
      this.historySearch = []
    },
    searchRequest() {
      const params = {
        word: this.search || this.tipsWord
      }
      const queryString = new URLSearchParams(params).toString();
      const url = `${window.location.origin}/video/search?${queryString}`;
      window.open(url, '_blank');
    }
  },
  mounted() {
    this.tipsWord = this.items[0]
  }
};
</script>

<style scoped>
.search-item ::v-deep .el-input .el-input__inner {
  border-radius: 8px !important;
}

.search-content span.title {
  display: inline-block;
  font-size: 15px;
  font-weight: bold;
}

.search-content .search-his span.clear {
  float: right;
  cursor: pointer;
}

.search-content .search-his span.clear:hover {
  color: #00aeec;
}

.search-content .mt {
  margin-top: 10px;
}

.search-content .search-hot {
  width: 100%;
}

.search-content .search-hot ul.hot-list {
  width: 100%;
  display: flex;
  padding: 0;
  flex-wrap: wrap;
  margin-top: 5px;
  list-style: none;
}

.search-content .search-hot ul.hot-list li.hot-item {
  width: 50%;
  height: 30px;
  font-size: 15px;
  display: flex;
  cursor: pointer;
  align-items: center;
}

.search-content .search-hot ul.hot-list li.hot-item span:first-child {
  width: 10%;
  color: #999999;
  text-align: center;
  display: inline-block;
}

.search-content .search-hot ul.hot-list li.hot-item span:last-child {
  margin-left: 5px;
  width: 80%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search-content .search-hot ul.hot-list li.hot-item span.top {
  color: #EA322BFF;
}

.search-content .search-hot ul.hot-list li.hot-item:hover {
  background-color: #f2f2f2;
}

</style>

使用

使用也很簡單,直接在需要的地方引入該組件就好

vue 搜索欄,Vue,vue.js,ui,前端,elementui,css
最后,如果有什么不懂的地方,可以評論區(qū)留言,或者加主頁的QQ群,群主就是我

感謝各位的支持??和關(guān)注??文章來源地址http://www.zghlxwxcb.cn/news/detail-592240.html

到了這里,關(guān)于Vue搜索組件,顯示熱門、近期搜索(結(jié)合element ui)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • VUE element-ui實(shí)現(xiàn)表格動(dòng)態(tài)展示、動(dòng)態(tài)刪減列、動(dòng)態(tài)排序、動(dòng)態(tài)搜索條件配置、表單組件化。

    VUE element-ui實(shí)現(xiàn)表格動(dòng)態(tài)展示、動(dòng)態(tài)刪減列、動(dòng)態(tài)排序、動(dòng)態(tài)搜索條件配置、表單組件化。

    ? ? 1、本組件支持列表的表頭自定義配置,checkbox實(shí)現(xiàn) 2、本組件支持列表列排序,vuedraggable是拖拽插件,上圖中字段管理里的拖拽效果 ,需要的話請自行npm install 3、本組件支持查詢條件動(dòng)態(tài)配置,穿梭框?qū)崿F(xiàn) https://download.csdn.net/download/askuld/88216937

    2024年01月16日
    瀏覽(40)
  • 基于Vue2.0仿Element UI的el-tooltip實(shí)現(xiàn)一個(gè)氣泡框組件,支持多數(shù)據(jù)類型的顯示和內(nèi)容為空時(shí)不顯示氣泡框

    基于Vue2.0仿Element UI的el-tooltip實(shí)現(xiàn)一個(gè)氣泡框組件,支持多數(shù)據(jù)類型的顯示和內(nèi)容為空時(shí)不顯示氣泡框

    場景:因?yàn)橛袀€(gè)需求就是鼠標(biāo)經(jīng)過可多選的 el-select 選擇器時(shí),需要有個(gè)氣泡框顯示已選的內(nèi)容,其實(shí) el-tooltip 氣泡框可以滿足需求,就是用 el-tooltip 氣泡框來包裹 el-select 選擇器,但是當(dāng)選擇器一個(gè)也沒選中,即內(nèi)容為空時(shí)不應(yīng)該也顯示氣泡框,有點(diǎn)影響美觀。應(yīng)該就是若內(nèi)

    2024年02月13日
    瀏覽(28)
  • element UI 組件封裝--搜索表單(含插槽和內(nèi)嵌組件)

    element UI 組件封裝--搜索表單(含插槽和內(nèi)嵌組件)

    可根據(jù)需要,參考姓名和工作自行增加更多常用的默認(rèn)搜索項(xiàng) 具體原理可參考 https://blog.csdn.net/weixin_41192489/article/details/127966234 可直接在 SearchForm 內(nèi)部通過默認(rèn)插槽添加更多搜索項(xiàng) 必要變量有 searchData 和 searchOption 必要方法有 reset

    2024年02月06日
    瀏覽(21)
  • Element UI Select組件遠(yuǎn)程搜索沒有箭頭圖標(biāo)

    Element UI Select組件遠(yuǎn)程搜索沒有箭頭圖標(biāo)

    el-select 組件啟用遠(yuǎn)程搜索,加上 remote 并傳入一個(gè) remote-method ,此時(shí)內(nèi)部i標(biāo)簽類名缺失,選擇器無法顯示下拉箭頭圖標(biāo) 在控制臺查看對應(yīng)的 dom,發(fā)現(xiàn)使用遠(yuǎn)程搜索之后,對應(yīng)的 icon 的 class 缺失,將缺失部分的class補(bǔ)全( el-icon-arrow-up )即可 tip : 只需要找到對應(yīng)的 dom,然后

    2024年02月04日
    瀏覽(21)
  • 通過RegExp實(shí)現(xiàn) element UI tree 高亮顯示(樣式改變)搜索框過濾內(nèi)容

    通過RegExp實(shí)現(xiàn) element UI tree 高亮顯示(樣式改變)搜索框過濾內(nèi)容

    ????????通過RegExp對象動(dòng)態(tài)的實(shí)現(xiàn)字體樣式的添加與刪除。 element UI 中,樹形控件進(jìn)行過濾操作時(shí),經(jīng)常要求所搜字體進(jìn)行一個(gè)高亮顯示。 ????????樹形控件中提供了一個(gè)Attributes(屬性) : filter-node-method? 解釋為: 對樹節(jié)點(diǎn)進(jìn)行篩選時(shí)執(zhí)行的方法,返回 true 表示這個(gè)節(jié)

    2023年04月08日
    瀏覽(26)
  • Element ui Table組件動(dòng)態(tài)控制列的顯示隱藏

    Element ui Table組件動(dòng)態(tài)控制列的顯示隱藏

    ?最近遇到一個(gè)需求,要求可以動(dòng)態(tài)控制 table 列表中的列的顯示與隱藏,并且將選中的列進(jìn)行存儲,下次進(jìn)入頁面仍展示上次勾選的列。 經(jīng)過查閱資料,實(shí)現(xiàn)了這個(gè)功能,創(chuàng)建一個(gè)Table.vue文件,組件封裝代碼如下: ?組件用法如下,新建一個(gè)index.vue,將Table組件引入使用:

    2024年02月08日
    瀏覽(17)
  • Vue結(jié)合element-ui實(shí)現(xiàn)導(dǎo)航菜單展開收縮小功能

    Vue結(jié)合element-ui實(shí)現(xiàn)導(dǎo)航菜單展開收縮小功能

    1. 先上個(gè)效果圖? ? 這里我把控制菜單收縮的放在中間了,是可以隨便調(diào)整的。? 2. 問題思路想法? ① 首先是布局,這就是個(gè)很經(jīng)典的后臺管理系統(tǒng)的容器頁面,這里分為上下結(jié)構(gòu),上面一般放些系統(tǒng)logo、?登錄的用戶信息,還有一些小功能等等。然后下面又分為左右結(jié)構(gòu),

    2024年02月16日
    瀏覽(23)
  • vue結(jié)合element ui 實(shí)現(xiàn)多個(gè)文件上傳、并刪除不符合條件的

    vue結(jié)合element ui 實(shí)現(xiàn)多個(gè)文件上傳、并刪除不符合條件的

    多個(gè)文件上傳的核心就是將文件append進(jìn)FormData的實(shí)例中,向后臺請求時(shí)將實(shí)例對象傳送過去。 ?多個(gè)文件上傳,傳送的數(shù)據(jù): html部分: js部分(this.$request是我自定義的請求方式,大家可以根據(jù)自身需要來調(diào)整): 1.?我們想要的效果是手動(dòng)一次性上傳多個(gè)文件,但是文件選取

    2024年03月20日
    瀏覽(39)
  • 解決element-ui組件庫中dialog組件只顯示遮罩層,未顯示彈框的問題

    以下是直接粘貼的組件--基礎(chǔ)用法 el-button type=\\\"text\\\" @click=\\\"dialogVisible = true\\\"點(diǎn)擊打開 Dialog/el-button el-dialog ? title=\\\"提示\\\" ? :visible.sync=\\\"dialogVisible\\\" ? width=\\\"30%\\\" ? :before-close=\\\"handleClose\\\" ? span這是一段信息/span ? span slot=\\\"footer\\\" class=\\\"dialog-footer\\\" ? ? el-button @click=\\\"dialogVisible = false\\\"取 消

    2024年02月03日
    瀏覽(113)
  • Vue 中 element-ui table 結(jié)合后端請求實(shí)現(xiàn)排序

    Vue 中 element-ui table 結(jié)合后端請求實(shí)現(xiàn)排序

    一.需求 需要對指定列,結(jié)合后端請求進(jìn)行排序 二.效果 三.知識點(diǎn) 3.1 如果需要結(jié)合后端請求排序,將需要排序的列上設(shè)置sortable為custom 3.2 同時(shí)在el-table標(biāo)簽上監(jiān)聽sort-change事件,在事件回調(diào)中可以獲取當(dāng)前排序列的字段名和排序順序,從而將這些作為發(fā)起接口請求的入?yún)?3

    2024年02月15日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包