diff --git a/docs/.vuepress/components/ClearButtonOverride.vue b/docs/.vuepress/components/ClearButtonOverride.vue
index 837ea68..c533883 100644
--- a/docs/.vuepress/components/ClearButtonOverride.vue
+++ b/docs/.vuepress/components/ClearButtonOverride.vue
@@ -1,9 +1,10 @@
diff --git a/docs/.vuepress/components/FuseFilter.vue b/docs/.vuepress/components/FuseFilter.vue
new file mode 100644
index 0000000..a73e277
--- /dev/null
+++ b/docs/.vuepress/components/FuseFilter.vue
@@ -0,0 +1,31 @@
+
+
+
+ {{ title }}
+ {{ author.firstName }} {{ author.lastName }}
+
+
+
+
+
+
+
diff --git a/docs/.vuepress/components/InfiniteScroll.vue b/docs/.vuepress/components/InfiniteScroll.vue
index f3fdd8b..677d8fb 100644
--- a/docs/.vuepress/components/InfiniteScroll.vue
+++ b/docs/.vuepress/components/InfiniteScroll.vue
@@ -5,7 +5,6 @@
@open="onOpen"
@close="onClose"
@search="query => search = query"
- ref="select"
>
@@ -17,16 +16,16 @@
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 9cff15a..a7cd0d0 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -131,7 +131,8 @@ module.exports = {
collapsable: false,
children: [
['guide/keydown', 'Keydown Events'],
- ['guide/positioning', 'Dropdown Position']
+ ['guide/positioning', 'Dropdown Position'],
+ ['guide/filtering', 'Option Filtering'],
],
},
{
diff --git a/docs/guide/filtering.md b/docs/guide/filtering.md
new file mode 100644
index 0000000..c05bd8c
--- /dev/null
+++ b/docs/guide/filtering.md
@@ -0,0 +1,19 @@
+Vue Select provides two props accepting `functions` that can be used to implement custom filtering
+algorithms.
+
+- `filter`
+- `filterBy`
+
+By default, the component will perform a very basic check to see if an options label includes
+the current search text. If you're using scoped slots, you might have information within the
+option templates that should be searchable. Or maybe you just want a better search algorithm that
+can do fuzzy search matching.
+
+## Filtering with Fuse.js
+
+You can use the `filter` and `filterBy` props to hook right into something like
+[Fuse.js](https://fusejs.io/) that can handle searching multiple object keys with fuzzy matchings.
+
+
+
+<<< @/.vuepress/components/FuseFilter.vue
diff --git a/docs/guide/infinite-scroll.md b/docs/guide/infinite-scroll.md
index 2444581..6583d16 100644
--- a/docs/guide/infinite-scroll.md
+++ b/docs/guide/infinite-scroll.md
@@ -4,8 +4,8 @@ by hooking into the `open`, `close`, and `search` events, along with the `filter
Let's break down the example below, starting with the `data`.
-- `observer` - when the component is mounted, a new `IntersectionObserver` will be set here
-- `limit` - the number of options to display 'per page'
+- `observer` - a new `IntersectionObserver` with `infiniteScroll` set as the callback
+- `limit` - the number of options to display
- `search` - since we've disabled Vue Selects filtering, we'll need to filter options ourselves
When Vue Select opens, the `open` event is emitted and `onOpen` will be called. We wait for