Skip to content

Navbar 头部导航

介绍

提供导航功能,常用于页面顶部。

基础用法

vue
<template>
  <nut-navbar title="Title" />
</template>

自定义左侧插槽

vue
<template>
  <nut-navbar title="Title">
    <template #left>
      <nut-icon name="left" />
    </template>
  </nut-navbar>
  <nut-navbar custom-class="mt-20px" title="Title">
    <template #left>
      <nut-icon name="left" /> Back
    </template>
  </nut-navbar>
</template>

自定义右侧插槽

vue
<template>
  <nut-navbar title="Title">
    <template #right>
      Share
    </template>
  </nut-navbar>
  <nut-navbar title="Title">
    <template #right>
      <nut-icon name="share" />
    </template>
  </nut-navbar>
</template>

自定义导航栏中间内容

vue
<script lang="ts">
import { ref } from 'vue'
export default {
  setup() {
    const tab1value = ref(0)
    const methods = {
      back() {
        alert('Click Back')
      },
      title() {
        alert('Click Title')
      },
      rightClick() {
        alert('Click Right')
      },
      changeTab(tab: any) {
        tab1value.value = tab.paneKey as number
      },
    }

    return {
      tab1value,
      ...methods
    }
  }
}
</script>

<template>
  <nut-navbar desc="编辑">
    <template #content>
      <div class="h-full">
        <nut-tabs v-model="tab1value" @click="changeTab">
          <nut-tab-pane title="商品" />
          <nut-tab-pane title="店铺" />
        </nut-tabs>
      </div>
    </template>

    <template #right>
      <nut-icon name="more-x" class="right" width="16px" />
    </template>
  </nut-navbar>
  <nut-navbar
    :left-show="false"
    title="购物车"
    :title-icon="true"
    desc="编辑"
  >
    <template #titleIcon>
      <nut-icon name="cart2" width="16px" />
    </template>
  </nut-navbar>
</template>

多 tab 切换导航

vue
<script lang="ts">
import { ref } from 'vue'
export default {
  setup() {
    const tab2value = ref(0)
    const methods = {
      back() {
        alert('Click Back')
      },
      changeTabList(tab: any) {
        tab2value.value = tab.paneKey as number
      }
    }
    return {
      tab2value,
      ...methods
    }
  }
}
</script>

<template>
  <nut-navbar @on-click-back="back">
    <template #content>
      <nut-tabs v-model="tab2value" @click="changeTabList">
        <nut-tab-pane title="标题1" />
        <nut-tab-pane title="标题2" />
        <nut-tab-pane title="标题3" />
      </nut-tabs>
    </template>

    <template #right>
      <nut-icon name="horizontal-n" class="right" width="16px" />
    </template>
  </nut-navbar>
</template>

API

Props

参数说明类型默认值
title标题名称string-
left-text左侧文案string-
desc右侧描述string-
left-show是否展示左侧箭头booleanfalse
title-icon标题中是否展示 iconbooleanfalse
border是否显示下边框booleanfalse
fixed是否固定到顶部booleanfalse
placeholder固定在顶部时,是否在标签位置生成一个等高的占位元素booleanfalse
safe-area-inset-top是否开启顶部安全区适配booleanfalse
z-index导航栏 z-indexnumber | string10
size图标与字体大小number | string-
custom-color图标与字体颜色number | string#979797

Events

事件名说明回调参数
on-click-title点击页面标题事件event:Event
on-click-icon点击页面标题icon事件event:Event
on-click-right点击右侧按钮事件event:Event
on-click-back点击左侧图标事件event:Event

Slots

名称说明
left自定义左侧内容
right自定义右侧内容
content自定义导航栏中间内容
leftShow左侧箭头自定义图标
titleIcon标题中自定义图标

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值
--nut-navbar-height44px
--nut-navbar-margin-bottom20px
--nut-navbar-padding0 16px
--nut-navbar-backgroundvar(--nut-white)
--nut-navbar-box-shadow0px 1px 7px 0px rgba(237, 238, 241, 1)
--nut-navbar-colorvar(--nut-title-color2)
--nut-navbar-title-base-fontvar(--nut-font-size-2)
--nut-navbar-title-fontvar(--nut-font-size-2)
--nut-navbar-title-font-weight0
--nut-navbar-title-font-colorvar(--nut-navbar-color)
--nut-navbar-title-width100px
--nut-navbar-title-icon-margin0 0 0 13px

MIT Licensed