vue是一个流行的javascript框架,用于构建交互性强、性能高的web应用程序。在vue应用程序中,表格是常见的ui组件,其中常常需要实现隐藏行折叠效果来提高用户体验。本篇文章将介绍一种实现vue表格隐藏行折叠效果的方法。
实现步骤
<template>
<div>
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>身高</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in tableData" :key="index">
<td>{{item.name}}</td>
<td>{{item.age}}</td>
<td>{{item.height}}</td>
<td class="fold" @click="foldRow(index)"></td>
</tr>
</tbody>
</table>
</div>
</template><script>
export default {
data() {
return {
tableData: [
{ name: '小明', age: '20', height: '180' },
{ name: '小红', age: '19', height: '170' },
{ name: '小刚', age: '22', height: '185' },
],
foldArr: [],
};
},
created() {
this.foldArr = new Array(this.tableData.length).fill(false);
},
methods: {
foldRow(index) {
this.foldArr.splice(index, 1, !this.foldArr[index]);
},
},
};
</script><template>
<div v-show="foldArr[index]">
<p>{{item.intro}}</p>
</div>
</template>
<script>
export default {
props: ['item', 'index', 'foldArr'],
};
</script><template>
<div>
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>身高</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in tableData" :key="index">
<td>{{item.name}}</td>
<td>{{item.age}}</td>
<td>{{item.height}}</td>
<td class="fold" @click="foldRow(index)"></td>
</tr>
<tr v-for="(item,index) in tableData" :key="index">
<td colspan="4" v-if="foldArr[index]">
<fold-row :item="item" :index="index" :foldArr="foldArr"></fold-row>
</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import FoldRow from '@/components/FoldRow.vue';
export default {
components: {
FoldRow,
},
data() {
return {
tableData: [
{ name: '小明', age: '20', height: '180', intro: '我是小明,今年20岁,身高180cm' },
{ name: '小红', age: '19', height: '170', intro: '我是小红,今年19岁,身高170cm' },
{ name: '小刚', age: '22', height: '185', intro: '我是小刚,今年22岁,身高185cm' },
],
foldArr: [],
};
},
created() {
this.foldArr = new Array(this.tableData.length).fill(false);
},
methods: {
foldRow(index) {
this.foldArr.splice(index, 1, !this.foldArr[index]);
},
},
};
</script><style lang="scss">
.fold {
position: relative;
width: 0;
height: 0;
&:before,
&:after {
position: absolute;
left: 50%;
transform: translateX(-50%);
content: '';
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #999;
transition: all 0.2s ease;
}
&:before {
top: 0;
}
&:after {
bottom: 0;
}
}
.fold.folded:before {
transform: translateY(2px) translateX(-50%) rotate(45deg);
}
.fold.folded:after {
transform: translateY(-2px) translateX(-50%) rotate(-45deg);
}
</style>至此,我们已成功地实现了Vue表格隐藏行折叠效果。通过这个方法,我们可以轻松地提升用户体验,让用户更加便捷地查看和管理表格数据。
以上就是Vue表格隐藏行折叠效果怎么实现的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号