本代码段适用于需要为用户提供拍照提示界面的场景,例如:
该代码段实现了以下功能:
<template>
<div class="flex flex-col items-center justify-center h-screen bg-gray-900">
<!-- ... -->
</div>
</template>
<script lang="tsx" setup>
import { ref } from 'vue'
const circleColor = ref('purple-300')
setTimeout(() => {
circleColor.value = 'blue'
}, 3000)
</script>
<style>
<!-- ... -->
</style>
使用 ref
来响应式地设置圆圈的颜色。在 setup
函数中,初始化圆圈颜色为紫色,并在 3 秒后将其变为蓝色。
const circleColor = ref('purple-300')
setTimeout(() => {
circleColor.value = 'blue'
}, 3000)
在圆圈内添加一个 <img>
标签,并使用 src
属性设置摄像头预览的 URL。
<div class="w-40 h-40 rounded-full border-4 border-dashed border-purple-300">
<img
class="object-cover w-full h-full"
src="https://source.unsplash.com/random/400x400"
alt=""
/>
</div>
在界面底部添加一个按钮,点击后触发拍照操作。
<button class="inline-flex items-center px-4 py-2 border border-transparent text-base font-medium rounded-md text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-purple-500">
Take Photo
</button>
经验与收获
开发这段代码的过程让我加深了对 Vue.js 响应式系统的理解,并掌握了如何在 Vue.js 中使用摄像头预览。
未来拓展与优化
该卡片功能可以进一步拓展和优化,例如: