@tuzzle/vue
Vue 3 components and composables for Tuzzle assets.
@tuzzle/vue provides Vue 3 components and composables built on @tuzzle/url and @tuzzle/chooser. Components are render-function based, so there are no .vue SFCs to compile.
npm install @tuzzle/vue
Plugin
Install the plugin with your CDN host and space.
import { tuzzlePlugin } from '@tuzzle/vue'
import { createApp } from 'vue'
createApp(App)
.use(tuzzlePlugin({ cdnUrl: 'https://cdn.tzzl.io', space: 'a1b2c3' }))
.mount('#app')
TuzzleImage
<script setup>
import { TuzzleImage } from '@tuzzle/vue'
</script>
<template>
<TuzzleImage src="image-01HQ..." :width="400" :height="300" format="webp" :quality="80" alt="Cover" loading="lazy" />
</template>
Choosing files
TuzzleChooser supports v-model:open; TuzzleChooserButton is a ready-made trigger. Both accept every @tuzzle/chooser option.
<script setup>
import { TuzzleChooser, TuzzleChooserButton } from '@tuzzle/vue'
import { ref } from 'vue'
const open = ref(false)
function onSelect(assets) {
insert(assets)
}
</script>
<template>
<TuzzleChooserButton space="a1b2c3" cdnUrl="https://cdn.tzzl.io" @select="onSelect" />
<TuzzleChooser v-model:open="open" space="a1b2c3" cdnUrl="https://cdn.tzzl.io" @select="onSelect" />
</template>
Composables
| Composable | Returns |
|---|---|
useTuzzle() | { url, image, config } |
useTuzzleImage(key, transforms?) | A reactive ComputedRef<string> |
useChooser(options) | { open, close, isOpen } |
useUpload() | { upload, reset, status, progress, error, data } (refs) |
<script setup>
import { useTuzzleImage } from '@tuzzle/vue'
const src = useTuzzleImage('image-01HQ...', { width: 400, format: 'webp' })
</script>