搞一个自定义组件,只是一个很简单的下拉菜单,也就是一个思路,整起
第一步:在项目中专门创建一个放置自定义组件的文件夹(直接components底下的common中)
dropdown.vue 为一级盒子
dropdownMenu.vue 为二级盒子
dropdownItem.vue 为二级盒子内容
第二步 :
对dropdown.vue的操作
<template>
<div class="box">
<!-- 给按钮加点击事件 -->
<div @click="showM">
<!-- 一级按钮 -->
<slot name="title"></slot>
</div>
<!-- 二级盒子 -->
<!-- 加v-if操作 隐藏显示效果 -->
<slot v-if="show" name="dropdown"></slot>
</div>
</template>
<script>
export default {
name: "dropdown",
data() {
return {
// 默认二级盒子关闭
show: false
}
},
methods: {
showM() {
this.show = !this.show
},
commitClick(value) {
// 向父级暴露dropdown事件,并把值传入
this.$emit('change-item',value)
}
}
}
</script>