Naive-UI自定义TabPane样式

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

前端开发通常使用 第三方 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>

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

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

### Naive-UI 介绍 Naive-UI 是一个基于 Vue 3 的组件库,全量使用 TypeScript 编写,能够与用户的 TypeScript 项目无缝衔接[^3]。该项目位于 [GitCode](https://gitcode.com/gh_mirrors/nai/naive-ui)[^1]。 ### 特点 #### 完整的 TypeScript 支持 由于完全采用 TypeScript 实现,开发者可以享受到静态类型检查带来的诸多好处,减少运行时错误的发生概率并提高代码质量。 #### 组件丰富多样 提供了大量高质量的基础和高级 UI 组件,满足日常开发需求的同时还支持自定义主题配置,允许用户根据实际应用场景调整样式以适应不同业务逻辑的要求。 #### 易于集成与其他工具链兼容良好 不仅限于此,该库还能轻松融入现代前端构建体系之中,并且和其他流行的 JavaScript 工具包有着很好的协作能力,比如 Vite 或 Webpack 等打包器以及 ESLint 这样的 linting 工具。 ### 使用方法 要开始使用 Naive-UI,在项目的 `package.json` 文件中安装依赖: ```bash npm install naive-ui --save ``` 接着可以在入口文件引入整个库或者按需加载特定模块来减小最终产物体积: ```javascript import { createApp } from 'vue'; import App from './App.vue'; // 引入全部组件 import NaiveUi from 'naive-ui'; import 'naive-ui/lib/style.css'; const app = createApp(App); app.use(NaiveUi); app.mount('#app'); ``` 对于单个组件导入,则只需指定具体路径即可: ```javascript import Button from 'naive-ui/es/button'; import 'naive-ui/es/button/style/css'; ``` 通过上述方式便能快速启动并运行包含 Naive-UI 组件的应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

潮汐未见潮落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值