微信小程序custom-tab-bar

1. 安装tdesign-miniprogram

创建package.json 创建终端执行命令 npm i tdesign-miniprogram -S --production

配置project.config.json

json 复制代码
"setting": {
 "packNpmRelationList": [
   {
     "packageJsonPath": "package.json",
     "miniprogramNpmDistDir": "./"
   }
 ],
 "packNpmManually": true,
 },

选择工具-> 构建npm

配置app.json

css 复制代码
"usingComponents": {
    "t-button": "tdesign-miniprogram/button/button"
  },

自定义主题 配置app.wxss

css 复制代码
page {
  --td-primary-color-7: rgb(12, 200, 164); /* 基础颜色 */
  --td-primary-color-8: rgb(12, 200, 164); /* 按下颜色 */
}

2. 自定义底部导航栏

文件夹custom-tab-bar

是一个组件 index.json apply-shared为了自定义css使用

json 复制代码
{
"component": true,
"styleIsolation": "apply-shared",
"usingComponents": {
  "t-tab-bar": "tdesign-miniprogram/tab-bar/tab-bar",
  "t-tab-bar-item": "tdesign-miniprogram/tab-bar-item/tab-bar-item"
}
}

index.wxml 自定义主题需要加一层view

ini 复制代码
<view class="wrapper">
<t-tab-bar t-class="t-tab-bar" value="{{value}}" bindchange="onChange" theme="tag" split="{{false}}">
<t-tab-bar-item wx:for="{{list}}" wx:key="index" value="{{item.value}}"> {{item.label}} </t-tab-bar-item>
</t-tab-bar>
</view>

index.wxss

css 复制代码
.wrapper {
--td-tab-bar-active-color: rgb(12, 200, 164);
}

index.js

javascript 复制代码
methods: {
  onChange(e) {
    wx.switchTab({
      url: `/pages/${e.detail.value}/index`,
    })
    this.setData({
      value: e.detail.value,
    });
  },
},

配置app.json pages: 里面每一个都是组件 tabBar: 配置custom和list

json 复制代码
 "pages": [
  "pages/policy/index",
  "pages/data/index",
  "pages/me/index",
  "pages/login/login"
],
"tabBar": {
  "custom": true,
  "list": [
    {
      "pagePath": "pages/policy/index",
      "text": "策略"
    },
    {
      "pagePath": "pages/data/index",
      "text": "数据"
    },
    {
      "pagePath": "pages/me/index",
      "text": "我的"
    }
  ]
},

pages/policy/index 代码 index.json

json 复制代码
{
"usingComponents": {}
}

index.js 是一个Component, 填写pageLifetimes 回调

javascript 复制代码
Component({
    pageLifetimes: {
      show() {
        if (typeof this.getTabBar === 'function' &&
          this.getTabBar()) {
          this.getTabBar().setData({
            value: 'policy'
          })
        }
      }
    },
})
相关推荐
kyriewen1 小时前
白宫直接给 OpenAI 下了限制令,GPT-5.6 不能随便放出来了
前端·javascript·面试
PedroQue992 小时前
Vite插件v0.2.6:架构优化与自动化升级
前端·vite
threerocks4 小时前
什么?我连 A2A、MCP 都没学会,现在又来了 AG-UI、A2UI.
前端·aigc·ai编程
牛奶4 小时前
如何自己写一个浏览器插件?
前端·chrome·浏览器
亿元程序员5 小时前
为什么Cocos都4.0了还有人用2.x?
前端
MomentYY5 小时前
AI 到底是“懂”,还是在“猜”?
前端·人工智能·ai编程
鹏毓网络科技5 小时前
Cursor Rules 文件配置实战:3 个隐藏参数让我每月少写 40% 样板代码
前端·github
没烦恼3015 小时前
无痕模式下 HTTP\-First 拦截引发的“页面刷新”误判
前端
文心快码BaiduComate5 小时前
从个人提效到组织提效:Comate辅助构建自我进化的AI研发系统
前端·程序员
hunterandroid6 小时前
Compose 状态管理:remember、rememberSaveable 与状态提升
前端