在Vue.js中,组件封装是一种将UI和行为封装成可复用部分的方法。组件可以被看作是自定义的HTML元素,具有自己的模板、数据、样式和行为。
基础概念:
优势:
类型:
应用场景:
问题与解决:
示例代码: 下面是一个简单的Vue 3组件封装实例:
<template>
<div class="custom-button">
<slot>{{ label }}</slot>
</div>
</template>
<script>
export default {
name: 'CustomButton',
props: {
label: {
type: String,
default: 'Click me'
}
},
methods: {
handleClick() {
this.$emit('click');
}
}
};
</script>
<style scoped>
.custom-button {
padding: 10px 20px;
border: none;
background-color: #007bff;
color: white;
cursor: pointer;
}
.custom-button:hover {
background-color: #0056b3;
}
</style>
在这个例子中,CustomButton
是一个可复用的按钮组件,它接受一个 label
prop,并在点击时触发一个 click
事件。使用 scoped
确保样式只应用于当前组件。
如何使用:
在父组件中,你可以这样使用 CustomButton
组件:
<template>
<CustomButton @click="handleButtonClick">Submit</CustomButton>
</template>
<script>
import CustomButton from './CustomButton.vue';
export default {
components: {
CustomButton
},
methods: {
handleButtonClick() {
console.log('Button clicked!');
}
}
};
</script>
在这个父组件中,我们引入了 CustomButton
并监听它的 click
事件。当按钮被点击时,handleButtonClick
方法会被调用。
领取专属 10元无门槛券
手把手带您无忧上云