在 uni-app
中使用 Vue 3 的 <script setup>
语法糖来编写组件时,你可以通过定义组件的 props
、emit
事件以及内部逻辑和模板来实现组件的功能。以下是一个简单的示例,展示了如何使用 <script setup>
语法糖编写一个带有提示功能的组件。
首先,确保你的项目已经配置好 Vue 3 和 <script setup>
语法。以下是一个简单的组件示例,假设这个组件是一个带有悬停提示的按钮:
<template>
<button @mouseover="showTooltip" @mouseleave="hideTooltip">
<slot></slot>
<div v-if="tooltipVisible" class="tooltip">{{ tooltipText }}</div>
</button>
</template>
<script setup>
import { ref } from 'vue';
// 定义 props
const props = defineProps({
tooltipText: {
type: String,
default: '默认提示文本'
}
});
// 定义内部状态
const tooltipVisible = ref(false);
// 定义方法
const showTooltip = () => {
tooltipVisible.value = true;
};
const hideTooltip = () => {
tooltipVisible.value = false;
};
</script>
<style scoped>
button {
position: relative;
padding: 10px 20px;
font-size: 16px;
}
.tooltip {
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
background-color: #333;
color: #fff;
padding: 5px 10px;
border-radius: 3px;
white-space: nowrap;
pointer-events: none;
z-index: 1000;
}
</style>
在这个例子中:
- 使用了
<script setup>
语法糖来定义组件的 props
、内部状态和方法。
props
中定义了一个 tooltipText
属性,用于传递提示文本,默认值为“默认提示文本”。
- 使用
ref
定义了一个内部状态 tooltipVisible
,用于控制提示的显示和隐藏。
- 定义了
showTooltip
和 hideTooltip
方法,分别在鼠标悬停和离开按钮时调用。
- 在模板中,通过
@mouseover
和 @mouseleave
事件绑定这两个方法,并使用 v-if
指令根据 tooltipVisible
的值显示或隐藏提示框。
- 使用
<slot>
标签允许父组件传递按钮的文本内容。
- 使用
<style scoped>
为组件定义了样式,确保样式只作用于当前组件。
这个示例展示了如何在 uni-app
中使用 Vue 3 的 <script setup>
语法糖编写一个简单的带提示功能的组件。你可以根据实际需求进一步扩展和修改这个组件。