valaxy-theme-sakura
Version:
<h1 align="center">valaxy-theme-sakura</h1> <pre align="center"> 一个简单、个性化、可爱的动漫风格博客主题 ❥(ゝω・✿ฺ) </pre>
32 lines (28 loc) • 623 B
text/typescript
import { isClient } from '@vueuse/core'
import { ref, watch } from 'vue'
export function fetchData<T>(source: string | T[]) {
const data = ref<T[]>()
watch(() => source, () => {
let rawData: T[]
if (typeof source === 'string') {
if (!isClient)
return
fetch(source)
.then(res => res.json())
.then((json: T[]) => {
rawData = json || []
data.value = rawData
})
.catch(() => {
data.value = []
})
}
else {
rawData = source
data.value = rawData
}
}, { immediate: true })
return {
data,
}
}