使用
搜索
通过一些简单的配置和可组合函数,您可以在 Nuxt 内容站点中添加搜索功能。
使用
首先,您需要在 nuxt.config.ts
中启用搜索功能。
nuxt.config.ts
export default defineNuxtConfig({
content: {
experimental: {
search: true
}
}
})
搜索
您可以使用 searchContent
可组合函数在 content
目录中搜索。
app.vue
<script lang="ts" setup>
const search = ref('')
const results = await searchContent(search)
</script>
<template>
<main>
<input v-model="search">
<pre>{{ results }} </pre>
</main>
</template>
默认情况下,searchContent
可组合函数将使用索引搜索。这意味着搜索速度更快,API 响应更小且经过优化。响应只能由 miniSearch
使用。
简单搜索
如果需要,您可以禁用索引搜索并使用简单搜索。
nuxt.config.ts
export default defineNuxtConfig({
content: {
experimental: {
search: {
indexed: false
}
}
}
})
请记住,简单搜索速度较慢,API 响应较大。您仍然可以使用与搜索类型无关的 searchContent
可组合函数。
自定义搜索
使用简单搜索(即非索引搜索),您可以使用您选择的工具在 API 响应中搜索。例如,您可以使用 fuse.js
与 @vueuse/integrations
集成。
composables/custom-search-content.ts
export default async function customSearchContent(search: Ref<string>) {
const runtimeConfig = useRuntimeConfig()
const { integrity, api } = runtimeConfig.public.content
const { data } = await useFetch(`${api.baseURL}/search${integrity ? '.' + integrity : ''}.json`)
const { results } = useFuse(search, data)
return results
}
配置
请阅读 配置部分 以详细了解搜索选项。