使用naive-ui做一个标签页展示列表

目录

零、引言

一、引入所需组件

二、引入数据

三、使用动态样式控制列表条纹

四、全部代码

五、设计思路

5.1组件设计思路

5.2背景颜色控制思路

5.3说明

六。最终效果


零、引言

有时候我们会有很多数据,分成好几类

每一类都需要展示,那么这时候传统的表格可能用处就不是很大了,于是乎我们就自己来写一个数表单

一、引入所需组件

在这里,我们使用了NCard, NTabs, NTabPane这三个组件

import { NCard, NTabs, NTabPane } from 'naive-ui'

二、引入数据

const tabs = {
  星期一: 1,
  星期二: 2,
  星期三: 3,
  星期四: 4,
  星期五: 5,
  星期六: 6,
  星期日: 7,
};
const data = [
  {
    info: "这是消息1",
    msg: "你挂科了!",
  },
  {
    info: "这是消息2",
    msg: "你及格了!",
  },
  {
    info: "这是消息3",
    msg: "你延毕了!",
  },
  {
    info: "这是消息4",
    msg: "你评优了!",
  },
  {
    info: "这是消息5",
    msg: "你失败了!",
  },
];
export { tabs, data };

三、使用动态样式控制列表条纹

const backColor = ref(["background-color:#F2F9FA", "background-color:#FFD700"])

四、全部代码

<template>
    <n-card title="测试样例" style="margin-bottom: 16px;max-width:50%;">
      <n-tabs style="flex" type="line">
        <n-tab-pane v-for="(value, index) in tabs"
          :key="index"
          :name="index"
          :tab="index"
          >
          <!-- 下面是题目列表 -->
          <div v-for="(value, index) in data" :key="index">
            <div
              class="topic-details"
              :style="backColor[index &1]"
            >
              {{ value.msg }}
              <!-- 这里面需要写很多样式 -->
            </div>
          </div>
        </n-tab-pane>
      </n-tabs>
    </n-card>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
import { NCard, NTabs, NTabPane } from 'naive-ui'
import { tabs, data } from "./data";

const backColor = ref(["background-color:#F2F9FA", "background-color:#FFD700"])
</script>

<style scoped>
.topic-details {
  min-height: 50px;
}
</style>

五、设计思路

5.1组件设计思路

我们在官网了看见每个n-tab-pane是写死的,所以我们可以使用循环控制生成标签页,标签页没有关联,我们就采用字典来组合起来

然后每个n-tab-pane实际上渲染的是同一个框架,只不过每次点击可以设置请求不同的数据,给用户一种切换了容器的样子,你也可以在切换过程中加上加载动画使其看起来逼真

5.2背景颜色控制思路

这里采用了:style来进行动态渲染,:class不知道为什么不能渲染

5.3说明

关闭了全局的居中,所以看起来可能有点不对称

六。最终效果

各位可以发挥创造力自己改装哈! 

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSU_曾是此间年少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值