当前位置:首页 > uni-app

uniapp导航菜单

2026-02-06 01:47:17uni-app

uniapp导航菜单实现方法

使用uni-ui的TabBar组件

pages.json中配置tabBar选项:

"tabBar": {
  "list": [
    {
      "pagePath": "pages/index/index",
      "text": "首页",
      "iconPath": "static/tabbar/home.png",
      "selectedIconPath": "static/tabbar/home-active.png"
    },
    {
      "pagePath": "pages/user/user",
      "text": "我的",
      "iconPath": "static/tabbar/user.png",
      "selectedIconPath": "static/tabbar/user-active.png"
    }
  ]
}

自定义顶部导航栏

在页面配置中设置navigationStyle为custom:

uniapp导航菜单

{
  "path": "pages/custom/custom",
  "style": {
    "navigationStyle": "custom"
  }
}

页面中使用自定义导航组件:

<template>
  <view>
    <custom-nav title="自定义标题" :back="true"></custom-nav>
    <!-- 页面内容 -->
  </view>
</template>

侧边抽屉菜单

使用uni-drawer组件实现:

uniapp导航菜单

<template>
  <view>
    <uni-drawer ref="drawer" mode="left">
      <view class="drawer-content">
        <!-- 菜单内容 -->
      </view>
    </uni-drawer>
    <button @click="openDrawer">打开菜单</button>
  </view>
</template>

<script>
export default {
  methods: {
    openDrawer() {
      this.$refs.drawer.open()
    }
  }
}
</script>

动态导航菜单

通过v-for循环渲染导航项:

<template>
  <view class="nav-menu">
    <view 
      v-for="(item, index) in menuList" 
      :key="index"
      @click="navigateTo(item.path)"
    >
      <image :src="item.icon"></image>
      <text>{{item.text}}</text>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      menuList: [
        {text: '首页', icon: '/static/home.png', path: '/pages/index'},
        {text: '分类', icon: '/static/category.png', path: '/pages/category'}
      ]
    }
  }
}
</script>

导航菜单样式优化

为导航菜单添加CSS样式:

.nav-menu {
  display: flex;
  justify-content: space-around;
  position: fixed;
  bottom: 0;
  width: 100%;
  background-color: #fff;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
}

.nav-menu view {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 10px 0;
}

.nav-menu image {
  width: 24px;
  height: 24px;
}

.nav-menu text {
  font-size: 12px;
  margin-top: 4px;
}

标签: 菜单uniapp
分享给朋友:

相关文章

uniapp旋转横屏

uniapp旋转横屏

实现横屏模式的方法 在UniApp中实现横屏模式,可以通过配置页面方向或使用CSS旋转实现。以下是两种常见方法: 修改manifest.json配置 在项目的manifest.json文件中,找到"…

uniapp分享到facebook

uniapp分享到facebook

使用uniapp分享到Facebook的方法 在uniapp中实现分享到Facebook功能,可以通过调用原生插件或使用第三方SDK。以下是具体实现方式: 安装Facebook SDK插件 在uni…

uniapp设置title

uniapp设置title

设置页面标题的方法 在UniApp中设置页面标题可以通过以下几种方式实现,适用于不同场景和需求。 通过pages.json配置 在pages.json文件中,可以为每个页面单独配置导航栏标题。找到对…

uniapp 目录

uniapp 目录

uniapp 目录结构 uniapp 的目录结构遵循 Vue.js 项目的规范,同时包含一些特有的文件和目录。以下是典型的 uniapp 项目目录结构及其说明: project-name/ ├──…

uniapp 壁纸

uniapp 壁纸

使用 Uniapp 开发壁纸应用的方法 实现壁纸展示与切换功能 在 Uniapp 中,可通过 swiper 组件实现壁纸轮播展示。结合 image 组件加载本地或网络壁纸资源,动态绑定 src 属性实…

uniapp 线程

uniapp 线程

uniapp 线程的概念 在 uniapp 中,线程的概念与原生应用开发有所不同。由于 uniapp 是基于 JavaScript 的运行环境,它并不直接支持多线程操作。JavaScript 本身是单…