Vue Fuse

一个 Vue.js 的模糊搜索库 Fuse.js 插件。「A Vue.js pluggin for fuzzy search library, Fuse.js」

Github星跟蹤圖

vue-fuse npm package

A Vue.js pluggin for fuzzy search library, Fuse.js
There are two ways to use this plugin. The vue-fuse component, or the $search method. Be sure to take a look at the documentation for both below.

Install

npm install vue-fuse
yarn add vue-fuse

In main.js

import VueFuse from 'vue-fuse'

Vue.use(VueFuse)

Full Fuse.js Documentation

This is just a simple drop in component leverage Fuse.js. For complete documentation, check out http://fusejs.io/

$search Method

The $search instance method allows you to execute a search programmatically within your application. Calling the this.$search function will return a promise, that is fulfilled once Fuse.js returns completes the search. $search takes the following params:

  • term - (required) the search term or query that you will search by
  • list - (required) an array of items to search
  • options - (required) an object with fuse.js options. At minimum, you must provide an array of keys. Other options will default to the fuse.js defaults (see here: http://fusejs.io/)

$search example

this.$search(this.term, this.bikes, this.options).then(results => {
  this.searchResults = results
})

vue-fuse Component

The vue-fuse component can be added any of your existing Vue components. It creates an input html element, and takes props (listed below) to execute a search. Search results are then returned via events.

Compoment Props

Most of the props line up with Fuse.js options with the defaults set to match the defaut Fuse.js behavior.

Component Demo / Example

<template>
  <vue-fuse :keys="keys" :list="bikes" :defaultAll="false" :eventName="bikesChanged"></vue-fuse>
</template>
<script>
export default {
  data () {
    return {
      bikes: [
        {
          brand: "Schwinn",
          model: {
            name: "Classic",
            id: "1345"
          }
        },
        {
          brand: "Red Line",
          model: {
            name: "Flight",
            id: "5430"
          }
        },
        {
          brand: "Hoffman",
          model: {
            name: "Condore",
            id: "0543"
          }
        },
        {
          brand: "Tribe",
          model: {
            name: "CRMO",
            id: "0432"
          }
        }
      ],
      keys: ["brand", "model.name", "model.id"]
    }
  }
}
</script>

Accessing Results from vue-fuse Component

Results are stored in the result data array of the vue-fuse component. The component watches the result array and emits an event when the array is changed. This event is named fuseResultsUpdated and contains the result array. You can also name the event yourself (this is handy if you have more than one instance of vue-fuse in your application) by passing in a string to the eventName prop.

主要指標

概覽
名稱與所有者shayneo/vue-fuse
主編程語言TypeScript
編程語言JavaScript (語言數: 5)
平台Linux, Mac, Web browsers, Windows
許可證MIT License
所有者活动
創建於2017-05-18 18:09:01
推送於2023-04-18 12:39:16
最后一次提交2022-04-25 16:51:23
發布數7
最新版本名稱2.2.1 (發布於 )
第一版名稱1.5.0 (發布於 )
用户参与
星數313
關注者數7
派生數43
提交數221
已啟用問題?
問題數36
打開的問題數1
拉請求數52
打開的拉請求數5
關閉的拉請求數15
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?