欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VUE側(cè)邊導(dǎo)航欄實現(xiàn)篩選過濾的示例代碼

 更新時間:2023年05月17日 09:43:11   作者:晚風予星  
本文主要介紹了VUE側(cè)邊導(dǎo)航欄實現(xiàn)篩選過濾的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

需求

實現(xiàn)側(cè)邊導(dǎo)航欄的同時,需要實現(xiàn)篩選功能。且由于導(dǎo)航名稱中可能包含大寫英文字母,所以還需要支持小寫英文字母篩選。

篩選效果:

2023-05-14 20.29.01.gif

2023-05-14 20.29.30.gif

清除篩選條件:

2023-05-14 20.29.53.gif

思路

  • 監(jiān)聽el-input的回車事件:@keydown.enter.native
  • 將父組件傳過來的導(dǎo)航欄數(shù)據(jù)進行深拷貝一層,并新建一個數(shù)組newMenuList進行存儲匹配的導(dǎo)航欄數(shù)據(jù):const copySideMenuList = JSON.parse(JSON.stringify(this.sideMenuList));
    • 深拷貝一層,為了防止原數(shù)據(jù)在搜索一次后被篡改,因為引用的是同一個內(nèi)存地址
  • el-input中輸入的字符串中的小寫字母轉(zhuǎn)為大寫字母:event = event.toUpperCase();
  • 使用includes方法判斷導(dǎo)航欄的名字中是否有el-input中的數(shù)據(jù),如果有則將這一項整個pushnewMenuList中,最后判斷newMenuListlength是否大于0,如果大于0則將newMenuList賦值給導(dǎo)航欄組件需要的數(shù)據(jù)中,如果newMenuListlength不大于0則進行提示:未匹配到該菜單
  • el-input執(zhí)行clearable操作或者el-input中輸入為空時,將父組件傳過來的導(dǎo)航欄數(shù)據(jù)賦值到導(dǎo)航欄組件所需要的數(shù)據(jù)中

實現(xiàn)

  • 這里使用到el-inputclearable@clear,@keydown.enter.native
  • 注意:因為是el-input標簽的本質(zhì)其實是elementUI的一個組件,所以監(jiān)聽回車鍵需要添加事件修飾符.native,它允許我們在自定義的組件標簽中添加原生的DOM事件
    • 其他的elementUI組件也是可以用這個方法來綁定原生DOM事件
    • el-button之所以可以直接使用@click是因為elementUI在創(chuàng)建組件時就為<el-button>里面的<button>標簽綁定了一個click事件,相當于是官方提前為我們準備好了一個click接口,我們看似是在調(diào)用原生jsclick事件,實際上是在調(diào)用elementUI官方為我們提前準備好的方法。

image.png

主要代碼如下:

<el-input placeholder="輸入關(guān)鍵字進行過濾" v-model="filterText" class="side-menu__filter" size="small" clearable suffix-icon="el-icon-search" @clear="handleSearch(filterText)" @keydown.enter.native="handleSearch(filterText)"></el-input>
handleSearch(event) {
      // 將將輸入的字符串中的小寫字母轉(zhuǎn)為大寫字母
      event = event.toUpperCase();
      let newMenuList = [];
      // 將父組件傳過來的導(dǎo)航欄數(shù)據(jù)進行深拷貝一層
      const copySideMenuList = JSON.parse(JSON.stringify(this.sideMenuList));
      copySideMenuList.forEach((firstItem) => {
        // 循環(huán)判斷導(dǎo)航欄數(shù)據(jù)是否匹配到搜索的字符
        if (firstItem.label.includes(event)) {
          newMenuList.push(firstItem);
        }
        if (!firstItem.label.includes(event) && firstItem.children) {
          for (let secondItem of firstItem.children) {
            if (secondItem.label.includes(event)) {
              newMenuList.push(secondItem);
            }
          }
        }
      });
      if (newMenuList.length > 0) {
        this.menuList = newMenuList;
      } else {
        this.$message.warning('未匹配到該菜單');
      }
      // 搜索字符串為空時返回原數(shù)據(jù)
      if (event == '') {
        this.menuList = this.sideMenuList;
      }
    }

到此這篇關(guān)于VUE側(cè)邊導(dǎo)航欄實現(xiàn)篩選過濾的示例代碼的文章就介紹到這了,更多相關(guān)VUE側(cè)邊導(dǎo)航欄篩選過濾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中uni-app 實現(xiàn)小程序登錄注冊功能

    vue中uni-app 實現(xiàn)小程序登錄注冊功能

    這篇文章主要介紹了uni-app 實現(xiàn)小程序登錄注冊功能,文中給大家介紹了實現(xiàn)思路,以及vuex和本地緩存的區(qū)別,需要的朋友可以參考下
    2019-10-10
  • Vue Element前端應(yīng)用開發(fā)之動態(tài)菜單和路由的關(guān)聯(lián)處理

    Vue Element前端應(yīng)用開發(fā)之動態(tài)菜單和路由的關(guān)聯(lián)處理

    這篇文章主要介紹了Vue Element前端應(yīng)用開發(fā)之動態(tài)菜單和路由的關(guān)聯(lián)處理,對vue感興趣的同學,可以參考下
    2021-05-05
  • Vue 禁用瀏覽器的前進后退操作

    Vue 禁用瀏覽器的前進后退操作

    這篇文章主要介紹了Vue 禁用瀏覽器的前進后退操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • OpenDataV低代碼平臺新增組件流程詳解

    OpenDataV低代碼平臺新增組件流程詳解

    這篇文章主要為大家介紹了OpenDataV低代碼平臺新增組件流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • vue 避免變量賦值后雙向綁定的操作

    vue 避免變量賦值后雙向綁定的操作

    這篇文章主要介紹了vue 避免變量賦值后雙向綁定的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue/cli和vue版本對應(yīng)及安裝方式

    vue/cli和vue版本對應(yīng)及安裝方式

    這篇文章主要介紹了vue/cli和vue版本對應(yīng)及安裝方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 淺談vue中所有的封裝方式總結(jié)

    淺談vue中所有的封裝方式總結(jié)

    因為現(xiàn)在vue的流行,vue的各種插件都出來了,我們公司也是使用vue做項目,那么應(yīng)該如何封裝,本文就介紹一下如何封裝,感興趣的可以了解一下
    2021-07-07
  • Vue.js學習之計算屬性

    Vue.js學習之計算屬性

    Vue.js 的內(nèi)聯(lián)表達式非常方便,但它最合適的使用場景是簡單的布爾操作或字符串拼接。如果涉及更復(fù)雜的邏輯,你應(yīng)該使用計算屬性。下面這篇文章主要給大家介紹了Vue.js中的計算屬性,需要的朋友可以參考借鑒,一起來看看吧。
    2017-01-01
  • vue過濾器filter的使用方法詳解

    vue過濾器filter的使用方法詳解

    這篇文章主要給大家介紹了關(guān)于vue過濾器filter的使用方法,Vue.js的過濾器(Filter)是一種可重用的功能,用于對文本進行格式化,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • 解決Vue項目中Emitted value instead of an instance of Error問題

    解決Vue項目中Emitted value instead of an 

    這篇文章主要介紹了解決Vue項目中Emitted value instead of an instance of Error問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論