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

vue中輕量級模糊查詢fuse.js使用

這篇具有很好參考價值的文章主要介紹了vue中輕量級模糊查詢fuse.js使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

由于本樣例是基于vue3中來實(shí)現(xiàn)的,若你使用的是vue2,請在評論區(qū)中發(fā)表后,也會出vue2中的相關(guān)使用。fuse是一個前端自行進(jìn)行模糊查詢的相關(guān)插件,常用于系統(tǒng)路由菜單的相關(guān)搜索等數(shù)據(jù)量不太大的情況,若需要數(shù)據(jù)量很大,還是蠻建議通過后端返回數(shù)據(jù)的相關(guān)形式。

1.安裝fuse.js

1.1如下是相關(guān)的引用和安裝,我們可以發(fā)現(xiàn)這種的引入后,就只占用15.8K的大小

npm install fuse.js    
import Fuse from 'fuse.js'

2.fuse相關(guān)配置項的說明

2.1下面是fuse中的一些配置項的相關(guān)說明,但在實(shí)際運(yùn)用的時候,其中的某些配置項比較重要

fuse.js,業(yè)務(wù)場景,vue3,javascript,vue.js,前端,Powered by 金山文檔

3.fuse的實(shí)際運(yùn)用

3.1 具體代碼

這里我們是基于elementplus中的el-select組件來進(jìn)行運(yùn)用的,因?yàn)樵谶@個組件中會有一個方法,remote-method就是在我們搜索之前會執(zhí)行,此時就不需要在通過watch來監(jiān)聽search是否發(fā)生改變,因此這里的v-model就相當(dāng)于是多余的,就類似于遠(yuǎn)程搜索。那么就會有人問,問什么循環(huán)中是option.item.title呢?那是因?yàn)橥ㄟ^fuse模糊查詢出來的數(shù)據(jù)是被封裝到一個一個的item中了。

<template>
  <div class="hello">
    <el-select ref="headerSearchSelect" v-model="search" :remote-method="querySearch" filterable default-first-option
      remote placeholder="Search" class="header-search-select" @change="change">
      <el-option v-for="option in search_result" :key="option.item.title" :value="option.item.title"
      :label="option.item.author.firstName" />
    </el-select>
  </div>
</template>

其實(shí)fuse中比較重要的就兩個配置,這兩個配置如下

一個初始化fuse

其中的keys中的相關(guān)配置項,就是我們目標(biāo)數(shù)據(jù)list中的相關(guān)參數(shù)

//初始化搜索引擎 
const init_search = (list) => {
  fuse.value = new Fuse(list, {
    shouldSort: true,  //是否按分?jǐn)?shù)對結(jié)果列表排序
    threshold: 0.4,    //匹配算法閾值。閾值為0.0需要完全匹配(字母和位置),閾值為1.0將匹配任何內(nèi)容。
    location: 0,    // 確定文本中預(yù)期找到的模式的大致位置。
    distance: 100,
    minMatchCharLength: 1, // 模式的最大長度
    //搜索標(biāo)題與作者名
    keys: [{
      name: 'title',
      weight: 0.7    //設(shè)置權(quán)重
    }, {
      name: 'author.firstName',
      weight: 0.3    //設(shè)置權(quán)重
    }]
  })
}

一個是相關(guān)列表

search_all.value = [
  {
    title: "Java虛擬機(jī)",
    author: {
      firstName: "王浩",
      lastName: "wanghao"
    }
  },
  {
    title: "人工智能",
    author: {
      firstName: "侯建軍",
      lastName: "marquis"
    }
  }
]

具體結(jié)果

fuse.js,業(yè)務(wù)場景,vue3,javascript,vue.js,前端,Powered by 金山文檔
fuse.js,業(yè)務(wù)場景,vue3,javascript,vue.js,前端,Powered by 金山文檔

4.完整代碼

<template>
  <div class="hello">
    <el-select ref="headerSearchSelect" v-model="search" :remote-method="querySearch" filterable default-first-option
      remote placeholder="Search" class="header-search-select" @change="change">
      <el-option v-for="option in search_result" :key="option.item.title" :value="option.item.title"
      :label="option.item.author.firstName" />
    </el-select>
  </div>
</template>

<script setup name="HelloWorld">
import { ref } from '@vue/reactivity'
import Fuse from 'fuse.js'

const fuse = ref(undefined)

//待全文搜索的全部數(shù)據(jù) 
const search_all = ref([])
//搜索的結(jié)果 
const search_result = ref([])
//后面的value的數(shù)據(jù)可以和后臺返回的數(shù)據(jù)進(jìn)行結(jié)核,形成遠(yuǎn)程搜索 
search_all.value = [
  {
    title: "Java虛擬機(jī)",
    author: {
      firstName: "王浩",
      lastName: "wanghao"
    }
  },
  {
    title: "人工智能",
    author: {
      firstName: "侯建軍",
      lastName: "marquis"
    }
  }
]
//搜索前出發(fā) 
const querySearch = (search_value) =>{
  if(search_value === ''){
    search_result.value = []
  }else{
    search_result.value = fuse.value.search(search_value)
    console.log( search_result.value);
  }
}

//初始化搜索引擎 
const init_search = (list) => {
  fuse.value = new Fuse(list, {
    shouldSort: true,  //是否按分?jǐn)?shù)對結(jié)果列表排序
    threshold: 0.4,    //匹配算法閾值。閾值為0.0需要完全匹配(字母和位置),閾值為1.0將匹配任何內(nèi)容。
    location: 0,    // 確定文本中預(yù)期找到的模式的大致位置。
    distance: 100,
    minMatchCharLength: 1, // 模式的最大長度
    //搜索標(biāo)題與作者名
    keys: [{
      name: 'title',
      weight: 0.7    //設(shè)置權(quán)重
    }, {
      name: 'author.firstName',
      weight: 0.3    //設(shè)置權(quán)重
    }]
  })
}
//也可以將這個放在created生命周期,這里使用了setup語法糖
init_search(search_all.value)
</script>

若此文章對你有相關(guān)幫助的話,請幫忙點(diǎn)個贊,若有其他疑問,歡迎在評論中發(fā)表,我們共同進(jìn)步文章來源地址http://www.zghlxwxcb.cn/news/detail-786621.html

到了這里,關(guān)于vue中輕量級模糊查詢fuse.js使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(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)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • 使用Go語言打造輕量級Web框架

    前言 Web框架是Web開發(fā)中不可或缺的組件。它們的主要目標(biāo)是抽象出HTTP請求和響應(yīng)的細(xì)節(jié),使開發(fā)人員可以更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。在本篇文章中,我們將使用Go語言實(shí)現(xiàn)一個簡單的Web框架,類似于Gin框架。 功能 我們的Web框架需要實(shí)現(xiàn)以下功能: 路由:處理HTTP請求的路由

    2023年04月08日
    瀏覽(92)
  • 樹莓派使用Nginx 搭建輕量級網(wǎng)站遠(yuǎn)程訪問

    樹莓派使用Nginx 搭建輕量級網(wǎng)站遠(yuǎn)程訪問

    轉(zhuǎn)載自cpolar極點(diǎn)云文章:樹莓派使用Nginx 搭建輕量級網(wǎng)站遠(yuǎn)程訪問 安裝 Nginx(發(fā)音為“engine-x”)可以將您的樹莓派變成一個強(qiáng)大的 Web 服務(wù)器,可以用于托管網(wǎng)站或 Web 應(yīng)用程序。相比其他 Web 服務(wù)器,Nginx 的內(nèi)存占用率非常低,可以在樹莓派等資源受限的設(shè)備上運(yùn)行。同時

    2024年02月11日
    瀏覽(33)
  • Java輕量級全文檢索引擎Lucene使用及優(yōu)化

    Lucene是一個開源的全文檢索引擎工具包由Doug Cutting編寫。它被設(shè)計用于實(shí)現(xiàn)全文搜索功能,即讀入一堆文本文件并將其轉(zhuǎn)換為易于搜索的數(shù)據(jù)結(jié)構(gòu)。Lucene提供了一組簡單而強(qiáng)大的API,使得索引和搜索過程變得非常方便。 Lucene廣泛應(yīng)用于從1200萬站點(diǎn)中進(jìn)行互聯(lián)網(wǎng)搜索等搜索引

    2024年02月16日
    瀏覽(19)
  • 詳解-樹莓派使用Nginx 搭建輕量級網(wǎng)站遠(yuǎn)程訪問(1)

    轉(zhuǎn)載自cpolar極點(diǎn)云文章:樹莓派使用Nginx 搭建輕量級網(wǎng)站遠(yuǎn)程訪問 安裝 Nginx(發(fā)音為“engine-x”)可以將您的樹莓派變成一個強(qiáng)大的 Web 服務(wù)器,可以用于托管網(wǎng)站或 Web 應(yīng)用程序。相比其他 Web 服務(wù)器,Nginx 的內(nèi)存占用率非常低,可以在樹莓派等資源受限的設(shè)備上運(yùn)行。同時

    2024年02月12日
    瀏覽(22)
  • 教你使用PHP實(shí)現(xiàn)一個輕量級HTML模板引擎

    教你使用PHP實(shí)現(xiàn)一個輕量級HTML模板引擎

    ??作者簡介,黑夜開發(fā)者,全棧領(lǐng)域新星創(chuàng)作者?,2023年6月csdn上海賽道top4。多年電商行業(yè)從業(yè)經(jīng)驗(yàn),對系統(tǒng)架構(gòu),數(shù)據(jù)分析處理等大規(guī)模應(yīng)用場景有豐富經(jīng)驗(yàn)。 ??本文已收錄于PHP專欄:PHP進(jìn)階實(shí)戰(zhàn)教程。 ??另有專欄PHP入門基礎(chǔ)教程,希望各位大佬多多支持??。 在 W

    2024年02月15日
    瀏覽(101)
  • 【HarmonyOS】API6使用storage實(shí)現(xiàn)輕量級數(shù)據(jù)存儲

    ?寫在前面 本篇內(nèi)容基于API6?JS語言進(jìn)行開發(fā),通過結(jié)合輕量級數(shù)據(jù)存儲開發(fā)指導(dǎo)的文檔,幫助大家完成一個實(shí)際的代碼案例,通過這個小案例,可以實(shí)現(xiàn)簡單數(shù)據(jù)的存儲。 參考文檔:文檔中心 1、頁面布局 首先我們編寫一個簡單的頁面布局,頁面中只有一個文本和兩個按鈕

    2024年02月14日
    瀏覽(21)
  • 云原生之使用Docker部署Teedy輕量級文檔管理系統(tǒng)

    云原生之使用Docker部署Teedy輕量級文檔管理系統(tǒng)

    Teedy是一個開源的、功能豐富、易于使用和自定義的文檔管理工具,它能夠幫助用戶管理和組織文檔,適用于個人、小組和組織使用。 創(chuàng)建和編輯文檔:用戶可以使用Markdown格式創(chuàng)建和編輯文檔,還可以添加標(biāo)簽和注釋。 文件上傳和管理:用戶可以上傳和管理文檔、圖片和其

    2024年01月20日
    瀏覽(98)
  • 使用python電腦輕量級控制手機(jī)—adb命令和手機(jī)投屏

    使用python電腦輕量級控制手機(jī)—adb命令和手機(jī)投屏

    通過電腦控制手機(jī)有多種方式如appnium等,本文介紹的是兩種輕量級的方案,使用adb命令剛和手機(jī)投屏。 1、手機(jī)設(shè)置 開發(fā)者選項—usb調(diào)試—無線調(diào)試 2、配對 僅配對時用,第一次配對成功后無需再次使用。 2.1、adb pair 手機(jī)IP:端口,下圖藍(lán)色部分的ip和端口 2.2、輸入配對碼。

    2024年02月03日
    瀏覽(26)
  • C++輕量級跨平臺桌面GUI庫FLTK的簡單使用

    C++輕量級跨平臺桌面GUI庫FLTK的簡單使用

    C++的跨平臺桌面GUI庫有很多,大體上分成兩種流派:retained mode和immediate mode。 其中前者是主流的桌面GUI機(jī)制框架,包括:Qt、wxwidgets、gtk、juce等 后者是一些游戲引擎編輯器常用的GUI機(jī)制框架,包括:imgui、nanogui等 使用這些框架都支持構(gòu)建在windows、mac、linux上面能運(yùn)行的桌面

    2024年02月08日
    瀏覽(87)
  • 輕量級實(shí)時跟蹤算法NanoTrack在瑞芯微RK3588上的部署以及使用

    輕量級實(shí)時跟蹤算法NanoTrack在瑞芯微RK3588上的部署以及使用

    文章目錄 前言 一、模型轉(zhuǎn)換 1.環(huán)境配置 2.模型解構(gòu) 二、rk3588平臺使用 1.模型初始化 2.推理 github: https://github.com/Try2ChangeX/NanoTrack_RK3588_python: python版本基于rk3588的NanoTrack,每秒可達(dá)120FPS 主要參考: SiamTrackers/NanoTrack at master · HonglinChu/SiamTrackers · GitHub GitHub - rockchip-linux/rknn-tool

    2024年02月13日
    瀏覽(33)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包