微信小程序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'
          })
        }
      }
    },
})
相关推荐
漂流瓶jz6 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫6 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
修己xj7 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
袋鼠云数栈8 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries8 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment8 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
qcx238 小时前
【系统学AI】25 论文导读 ①:两篇改变 AI 的开山之作——Attention Is All You Need & ReAct
前端·人工智能·react.js·transformer
kyriewen9 小时前
大文件上传最全指南:分片、断点续传、秒传,一篇就够了
前端·javascript·面试
郑洁文10 小时前
基于Python的Web命令执行漏洞自动化检测系统
前端·python·网络安全·自动化
新酱爱学习10 小时前
手搓 10 个 Skill 后,我把重复劳动收敛成了一套零依赖 CLI 工具
前端·javascript·人工智能