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

vue和js中實現模糊查詢方式

 更新時間:2022年08月02日 14:56:35   作者:風如也  
這篇文章主要介紹了vue和js中實現模糊查詢方式,具有很好的參考價值,希望對大家有所幫助。也希望大家多多支持腳本之家

vue和js實現模糊查詢

先來看效果圖

在這里插入圖片描述

這種數據量少的場景適用于前端實現模糊查詢

如何實現?

<template>
  <div class="container">
    <div class="search-bar">
      <el-input v-model="inputVal" placeholder="請輸入圖標名稱" suffix-icon="el-icon-search" clearable></el-input>
    </div>
    <div class="icon-contain">
      <div class="icon-item" v-for="item in searchList" :key="item.icon">
        <i class="icon-style" :class="item.icon"></i>
        <span class="icon-name">{{ item.name }}</span>
      </div>
    </div>
  </div>
</template>

js部分

<script>
export default {
  data () {
    return {
      inputVal: '',
      list: [], // 全部圖標列表
    }
  },
  created() {
    this.loadData()
  },
  computed: {
    searchList () {
      ....
    }
  },
  methods: {
    loadData() { // 初始化數據
      this.list = [
        { icon: 'el-icon-delete', name: 'el-icon-delete' },
        { icon: 'el-icon-setting', name: 'el-icon-setting' },
        { icon: 'el-icon-user', name: 'el-icon-user' },
        { icon: 'el-icon-star-off', name: 'el-icon-star-off' },
        { icon: 'el-icon-picture-outline', name: 'el-icon-picture-outline' },
        { icon: 'el-icon-s-custom', name: 'el-icon-s-custom' },
        { icon: 'el-icon-edit', name: 'el-icon-edit' },
        { icon: 'el-icon-folder-opened', name: 'el-icon-folder-opened' },
        { icon: 'el-icon-chat-dot-round', name: 'el-icon-chat-dot-round' },
        { icon: 'el-icon-upload', name: 'el-icon-upload' },
        { icon: 'el-icon-message-solid', name: 'el-icon-message-solid' }
      ]
    },
  }
}
</script>

我們用 computed 計算屬性來動態(tài)獲得圖標列表數據

想要達到的功能是:輸入框輸入內容,列表框能動態(tài)根據輸入值顯示輸入值相關的列表,即模糊查詢

方法1

使用 filter() 和 includes() 實現

  computed: {
    searchList () {
      if (!this.inputVal) {
        return this.list
      }
      return this.list.filter(item => {
      	return item.name.includes(this.inputVal)
      })
      return data
    }
  },

方法2

使用 indexOf() 實現,(涉及到英文字母的還是建議處理一下大小寫問題)

  computed: {
    searchList () {
      if (!this.inputVal) {
        return this.list
      }
      const data = []
      this.list.forEach(item => {
        if (item.name.toLowerCase().indexOf(this.inputVal.toLowerCase()) !== -1) {
          data.push(item)
        }
      })
      return data
    }
  },

方法3

使用 test() 正則匹配實現

語法:RegExp.test(string) ,string 要檢測的字符串

該方法用于檢測一個字符串是否匹配某個模式,如果匹配返回 true ,否則返回 false

  computed: {
    searchList () {
      if (!this.inputVal) {
        return this.list
      }
      const data = []
      const reg = new RegExp(this.inputVal.toLowerCase())
      this.list.forEach(item => {
        if (reg.test(item.name.toLowerCase())) {
          data.push(item)
        }
      })
      return data
    }
  },

還有其他的方法,如 split()、match() 等

正則表達式實現模糊查詢

拿到一個新需求 就是在前端進行查詢一個數據

雖然一般這種行為都是在后端進行但是有時候就是會給你這個需求,這里因為數據量較小所以就進行簡單的遍歷查詢 沒有對數據進行排序后查詢 其實有想過二分查找之類的 但是這里數據量較小 就遍歷吧

? ? search() {
? ? ? console.log(this.searchInformation)
? ? ? this.listData = []
? ? ? var str = ".*" + this.searchInformation + ".*"
? ? ? let reg = new RegExp(str)
? ? ? //這里通過邀請碼查詢
? ? ? for(var i=0;i<this.wholeListData.length;i++){
? ? ? ? if(reg.test(this.wholeListData[i].content)){
? ? ? ? ? this.listData.push(this.wholeListData[i])
? ? ? ? }
? ? ? }
? ? ? //通過附加信息查詢
? ? ? for(var i=0;i<this.wholeListData.length;i++){
? ? ? ? if(reg.test(this.wholeListData[i].addition)){
? ? ? ? ? this.listData.push(this.wholeListData[i])
? ? ? ? }
? ? ? }
? ? },

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關文章

  • Vue學習筆記進階篇之單元素過度

    Vue學習筆記進階篇之單元素過度

    這篇文章主要介紹了Vue學習筆記進階篇之單元素過度,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 使用Vue實現調用接口加載頁面初始數據

    使用Vue實現調用接口加載頁面初始數據

    今天小編就為大家分享一篇使用Vue實現調用接口加載頁面初始數據,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • el-table?樹形數據?tree-props?多層級使用避坑

    el-table?樹形數據?tree-props?多層級使用避坑

    本文主要介紹了el-table?樹形數據?tree-props?多層級使用避坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • vue pages 多入口項目 + chainWebpack 全局引用縮寫說明

    vue pages 多入口項目 + chainWebpack 全局引用縮寫說明

    這篇文章主要介紹了vue pages 多入口項目 + chainWebpack 全局引用縮寫說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue.js中父組件調用子組件的內部方法示例

    vue.js中父組件調用子組件的內部方法示例

    這篇文章主要給大家介紹了關于vue.js中父組件調用子組件內部方法的相關資料,文中給出來了詳細的示例代碼供大家參考學習,對大家的學習或者工作具有一定的參考價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • Vue自定義過濾器格式化數字三位加一逗號實現代碼

    Vue自定義過濾器格式化數字三位加一逗號實現代碼

    這篇文章主要介紹了Vue自定義過濾器格式化數字三位加一逗號的實現代碼,需要的朋友可以參考下
    2018-03-03
  • Element Collapse 折疊面板的使用方法

    Element Collapse 折疊面板的使用方法

    這篇文章主要介紹了Element Collapse 折疊面板的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • vuejs使用FormData實現ajax上傳圖片文件

    vuejs使用FormData實現ajax上傳圖片文件

    本篇文章主要介紹了vuejs使用FormData實現ajax上傳圖片文件,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • Vue中render方法的使用詳解

    Vue中render方法的使用詳解

    這篇文章主要為大家詳細介紹了Vue中render方法的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • vue跳轉頁面常用的幾種方法匯總

    vue跳轉頁面常用的幾種方法匯總

    這篇文章主要介紹了vue跳轉頁面常用的幾種方法匯總,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論