进阶必学,2023最新 ,打造媲美ElementPlus的组件库
// download:
3w ukoou com
Vue.js 是一款流行的 JavaScript 框架,它提供了丰富的工具和组件,帮助开发者构建交互性强、响应式的用户界面。在本教程中,我们将介绍如何创建一个 Collapse(折叠)组件,它允许用户点击标题以展开或收起相关内容。我们将使用 Vue.js 来构建这个组件,让你了解 Vue 组件的基本用法。
创建 Vue 项目
首先,确保你已经安装了 Node.js 和 Vue CLI。如果没有安装,你可以在官方网站找到安装指南。
在安装完成后,打开命令行,创建一个新的 Vue 项目:
vue create vue-collapse-demo
然后按照提示选择默认配置或手动配置,取决于你的项目需求。
创建 Collapse 组件
进入项目目录,并在 src 文件夹下创建一个名为 Collapse.vue 的组件文件。这个组件将包含折叠效果的逻辑。
<template>
<div>
<div class="collapse-title" @click="toggleCollapse">
{{ title }}
<span :class="{ 'rotate-icon': isOpen }">▼</span>
</div>
<div v-if="isOpen" class="collapse-content">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
props: {
title: String,
},
data() {
return {
isOpen: false,
};
},
methods: {
toggleCollapse() {
this.isOpen = !this.isOpen;
},
},
};
</script>
<style scoped>
.collapse-title {
cursor: pointer;
font-weight: bold;
margin-bottom: 10px;
}
.rotate-icon {
transform: rotate(180deg);
}
.collapse-content {
border: 1px solid #ccc;
padding: 10px;
}
</style>
上面的代码创建了一个 Collapse 组件,其中包含一个标题和一个内容区域。当点击标题时,内容区域可以展开或折叠。
使用 Collapse 组件
现在,我们可以在父组件中使用我们创建的 Collapse 组件。在 src/App.vue 中,添加以下代码:
<template>
<div id="app">
<h1>Vue Collapse 组件实例</h1>
<Collapse title="Section 1">
<p>This is the content of section 1.</p>
</Collapse>
<Collapse title="Section 2">
<
继续优化我们的 Collapse 组件以支持更多功能和自定义选项。
支持默认展开状态
有时候,我们可能希望某些折叠部分在页面加载时默认处于展开状态。为了实现这一功能,我们可以为 Collapse 组件添加一个新的属性 defaultOpen。
首先,在 Collapse.vue 组件的 props 中添加这个属性:
props: {
title: String,
defaultOpen: Boolean, // 新增属性
},
然后,在 data 中将 isOpen 的初始值设置为 defaultOpen:
data() {
return {
isOpen: this.defaultOpen || false,
};
},
现在,我们可以在使用 Collapse 组件时,通过设置 defaultOpen 属性来指定默认展开或折叠的状态。