Naive-UI自定义TabPane样式

文章介绍了如何利用Naive-UI,一个基于Vue3和TypeScript的组件库,来创建和定制Tab组件。尽管Naive-UI的Tab样式相对单一,但通过使用TabPaneSlots可以自定义Tab的样式,例如添加图标和文字。作者提供了修改后的TabPane示例,展示了如何增加内容和编辑页面,以适应不同的功能需求,如即时聊天、线上直播和圆桌会议等。
摘要由CSDN通过智能技术生成

前言

前端开发通常使用 第三方 UI 组件库,像大家熟悉的 Element-UI、AntD Vue 等

最近发现一个 还比较好用的 组件库 Naive-UI 传送门 ,Vue 3 组件库,使用 TypeScript ,用起来感觉还不错,它的主题也可以切换 (有暗夜模式),缺点可能就是提供的组件代码示例 比较少


标签页Tab

很多页面都需要使用到 Tab 进行不同资源的切换展示

Naive-UI 的 Tab 样式比较单一(如下)


TabPane

可以使用 TabPane Slots ( <template #tab>) 对 TabPane 的样式进行修改
<div class="tab">
    <n-tabs default-value="1">
      <n-tab-pane name="1">
        <template #tab>
          <div class="tab-title">
            <n-icon class="icon" size="40"><ChatbubblesOutline /> </n-icon>
            <span>即时聊天</span>
          </div>
        </template>
       
      </n-tab-pane>
      <n-tab-pane name="2">
        <template #tab>
          <div class="tab-title">
            <n-icon class="icon" size="40"><VideocamOutline /> </n-icon>
            <span>线上直播</span>
          </div>
        </template>
        
      </n-tab-pane>
      <n-tab-pane name="3">
        <template #tab>
          <div class="tab-title">
            <n-icon class="icon" size="40"><Contrast /> </n-icon>
            <span>圆桌会议</span>
          </div>
        </template>
        
      </n-tab-pane>
    </n-tabs>
  </div>
可以看到 TabPane 的样式被成功修改

后面可以根据自己的需求,继续往 TabPane 中添加内容,对页面进行编辑
<div class="tab">
    <n-tabs default-value="1">
      <n-tab-pane name="1">
        <template #tab>
          <div class="tab-title">
            <n-icon class="icon" size="40"><ChatbubblesOutline /> </n-icon>
            <span>即时聊天</span>
          </div>
        </template>
        <div class="tab-content">
          <div class="tab-content-text">
            <h2><span>01</span>&nbsp;即时聊天</h2>
            <p></p>
            <n-divider />
            <ul>
              <li>
                <n-icon color="#006cff" size="24"
                  ><CheckmarkCircleOutline />
                </n-icon>
                <span>在线互通交流平台</span>
              </li>
              <li>
                <n-icon color="#006cff" size="24"
                  ><CheckmarkCircleOutline />
                </n-icon>
                <span>用户异地互动聊天,轻松参与</span>
              </li>
              <li>
                <n-icon color="#006cff" size="24"
                  ><CheckmarkCircleOutline />
                </n-icon>
                <span>满足业务接洽的场景需要 </span>
              </li>
            </ul>
          </div>
          <div class="tab-content-img">
            <n-image
              lazy
              width="600"
              height="390"
              src="https://static1.weizan.cn/zhibo/static/img/vzan/pc/index_image/block2-img3.png"
            />
          </div>
        </div>
      </n-tab-pane>
      <n-tab-pane name="2">
        <template #tab>
          <div class="tab-title">
            <n-icon class="icon" size="40"><VideocamOutline /> </n-icon>
            <span>线上直播</span>
          </div>
        </template>
      
      </n-tab-pane>
      <n-tab-pane name="3">
        <template #tab>
          <div class="tab-title">
            <n-icon class="icon" size="40"><Contrast /> </n-icon>
            <span>圆桌会议</span>
          </div>
        </template>
        
      </n-tab-pane>
    </n-tabs>
  </div>

文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一 回复

文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 长路漫漫,道阻且长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

潮汐未见潮落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值