【新功能介绍】自定义tabBar功能来了!

简介: 【新功能介绍】自定义tabBar功能来了!

常有开发者在社区提问,何时支持底部tabBar自定义编写,而非简单的修改样式。现在,自定义tabBar功能它来了!本期我们邀请到来自支付宝小程序框架团队的元凛,由他来介绍小程序自定义tabBar功能,以及与该功能一起在IDE 3.1.2 beta版上线的两个新配置项:app.usingComponents,entryPagePath。

怎么使用自定义tabBar

元凛:原始的tabBar比较直观、朴素和易用,但不支持位置、样式的调整,只能更换颜色和icon,没办法体现小程序自己的设计理念和特殊应用场景。
过去有开发者会单独起一个首页,然后把tabBar的页面抽成组件在首页里引入,变相实现了自定义tabBar功能。现在,在IDE 3.1.2 beta版,我们开始支持自定义tabBar能力,接入也很简单,一共需要3步:

Step1: 在现有 tabBar 配置基础上新增customize字段。


Step2:约定在代码根目录下添加 tabBar 入口文件。


Step3:编写对应的tabBar 代码,编码规范可查看 自定义组件。该自定义组件将完全接管 tabBar 的渲染及交互,同时,新增 getTabBar 接口可获取自定义 tabBar 组件实例。
customize-tab-bar/index.axml
ustomize-tab-bar/index.js

Component({
  data: {
    selected: 0,
    textColor: "#7A7E83",
    selectedColor: "#2f54eb",
    list: [
      {
        pagePath: "/pages/index/index",
        name: "customize1",
      },
      {
        pagePath: "/pages/index2/index",
        name: "customize2",
      },
    ],
  },
  methods: {
    tap(e) {
      const data = e.target.dataset;
      my.switchTab({
        url: data.value.pagePath,
      });
    },
  },
})

pages/index/index.js

Page({
  onShow() {
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 0,
      });
    }
  },
})


这样,就能实现小程序tabBar的自定义,像导航栏中间按钮突出这一类常见的产品需求,也能得到满足。注意,自定义tabBar的使用要求是:
• 基础库 2.7.20 及以上版本。
• 支付宝客户端 10.2.63 及以上版本。
• 小程序开发者工具 3.1.2 及以上版本。
若你的开发版本较低,则显示原始 tabBar样式。

从声明一百次到一次

此外,在IDE3.1.2 Beta版,我们还新增了 app.usingComponents的页面配置。之前,如果小程序使用了自定义组件,那么就需要在页面上定义一下,当小程序页面过多,超过100个,就需要定义100次,比较繁琐。

现在,我们支持了app.usingComponents,在app.json中生命的自定义组件会被认为是全局自定义组件,哪怕你有上百个页面,也只在要在app.json中写一次即可。但要注意该功能声明的组件将要被所有页面和组件依赖,可能会影响性能,且会占用主包大小,建议开启 app.lazyCodeLoading,即代码懒加载模式。

app.json

{
  "usingComponents": {
    "com1": "/components/com1/index",
    "com2": "./components/com2/index"
  }
}


指定默认启动首页

一般情况下,我们会在app.json中的pages里定义好所有页面,并且默认把数组中的第一项代表小程序的初始页面,也就是首页。但在某些场景中,我们需要手动指定某个页面为启动首页。

这时候entryPagePath就派上了用场,通过在app.json里添加entryPagePath,就可以指定默认启动首页。需要注意的是,此特性从基础库 2.7.20,IDE 3.1.2 开始支持。若强依赖此特性,建议设置最低基础库版本号为2.7.20。否则,在低版本的基础库,会因为无法识别正确的首页而导致渲染异常。

{
  "entryPagePath": "pages/index/index"
}


目录
相关文章
|
11月前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
1881 1
|
10月前
|
存储 开发工具 git
Git 学习----基本概念
理解这些基本概念是掌握 Git 操作的重要基础,它们为有效地管理项目的版本和开发过程提供了支持。通过不断实践和使用 Git,开发者可以更加高效地协作和管理项目的演变
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【2月更文挑战第20天】 在数据科学与人工智能的领域中,支持向量机(SVM)是一种强大的监督学习算法,它基于统计学习理论中的VC维理论和结构风险最小化原理。本文将深入探讨SVM的核心概念、工作原理以及实际应用案例。我们将透过算法的数学原理,揭示如何利用SVM进行有效的数据分类与回归分析,并讨论其在处理非线性问题时的优势。通过本文,读者将对SVM有更深层次的理解,并能够在实践中应用这一算法解决复杂的数据问题。
247 0
|
数据采集 Java API
java接口防爬虫
8月更文挑战第9天
|
缓存 小程序 IDE
【每周一个小技巧】支付宝小程序自定义tabbar效果
【每周一个小技巧】支付宝小程序自定义tabbar效果
406 2
|
JSON 小程序 前端开发
微信小程序框架(一)-全面详解(学习总结---从入门到深化)
微信小程序框架(一)-全面详解(学习总结---从入门到深化)
435 0
|
安全 C语言
指针与字符串:C语言中的深入探索
指针与字符串:C语言中的深入探索
301 0
|
人工智能 前端开发 UED
如何丝滑实现 ChatGPT 打字机流式回复?Server-Sent Events!
如何丝滑实现 ChatGPT 打字机流式回复?Server-Sent Events!
1477 0
|
JavaScript
设置VSCode快捷键vue生成代码片段
设置VSCode快捷键vue生成代码片段
设置VSCode快捷键vue生成代码片段
|
JSON 小程序 前端开发
微信小程序首页-----布局(详细教程赶快收藏吧)
微信小程序首页-----布局(详细教程赶快收藏吧)
426 0

热门文章

最新文章