UniApp在Vue3下使用setup语法糖创建和使用自定义组件的操作方法 |
UniApp在Vue3下使用setup语法糖创建和使用自定义组件在现代前端开发中,Vue 3 的 1. 创建自定义组件首先,我们创建一个简单的自定义组件
<template>
<view :style="styleObject">
<p v-if="showText">{{ text }}</p>
<p>Number: {{ number }}</p>
<p>Boolean: {{ boolean }}</p>
<ul>
<li v-for="item in array" :key="item">{{ item }}</li>
</ul>
<p>Object: {{ object.name }} - {{ object.age }}</p>
<button @click="emitEvent">点击触发事件</button>
</view>
</template>
<script setup>
import { defineProps, defineEmits, computed } from 'vue';
// 定义接收的 props
const props = defineProps({
text: {
type: String,
default: '默认文本'
},
number: {
type: Number,
default: 0
},
boolean: {
type: Boolean,
default: false
},
array: {
type: Array,
default: () => []
},
object: {
type: Object,
default: () => ({ name: '默认名字', age: 20 })
}
});
// 定义触发的事件
const emit = defineEmits(['customEvent']);
// 计算属性,用于处理样式对象
const styleObject = computed(() => ({
marginTop: props.number + 'px',
color: props.boolean ? 'red' : 'black'
}));
// 方法:触发自定义事件
const emitEvent = () => {
emit('customEvent', '这是一个自定义事件');
};
</script>
<style scoped>
/* 组件内的局部样式 */
button {
margin-top: 10px;
}
</style>详细解释 1.1 定义属性 ( 在 const props = defineProps({
text: {
type: String,
default: '默认文本'
},
number: {
type: Number,
default: 0
},
boolean: {
type: Boolean,
default: false
},
array: {
type: Array,
default: () => []
},
object: {
type: Object,
default: () => ({ name: '默认名字', age: 20 })
}
});1.2 定义事件 ( 我们使用 const emit = defineEmits(['customEvent']); 1.3 计算属性 ( 我们使用 const styleObject = computed(() => ({
marginTop: props.number + 'px',
color: props.boolean ? 'red' : 'black'
}));1.4 方法 ( 我们定义了一个方法 const emitEvent = () => {
emit('customEvent', '这是一个自定义事件');
};2. 使用自定义组件接下来,我们在另一个
<template>
<view>
<MyComponent
text="你好,世界!"
:number="50"
:boolean="true"
:array="['苹果', '香蕉', '橙子']"
:object="{ name: '张三', age: 30 }"
@customEvent="handleCustomEvent"
/>
</view>
</template>
<script setup>
import MyComponent from './components/MyComponent.vue';
// 定义一个方法来处理自定义事件
const handleCustomEvent = (message) => {
console.log('自定义事件触发:', message);
};
</script>
<style>
/* 页面级别的样式 */
</style>详细解释 2.1 导入和使用自定义组件 在 <MyComponent
text="你好,世界!"
:number="50"
:boolean="true"
:array="['苹果', '香蕉', '橙子']"
:object="{ name: '张三', age: 30 }"
@customEvent="handleCustomEvent"
/>2.2 处理自定义事件 我们定义了一个方法 const handleCustomEvent = (message) => {
console.log('自定义事件触发:', message);
};总结通过以上步骤,我们创建了一个自定义组件 到此这篇关于UniApp在Vue3下使用setup语法糖创建和使用自定义组件的文章就介绍到这了,更多相关UniApp Vue3 setup语法糖内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! |