【新功能介绍】自定义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"
}


目录
相关文章
|
存储 开发工具 git
Git 学习----基本概念
理解这些基本概念是掌握 Git 操作的重要基础,它们为有效地管理项目的版本和开发过程提供了支持。通过不断实践和使用 Git,开发者可以更加高效地协作和管理项目的演变
|
数据采集 Java API
java接口防爬虫
8月更文挑战第9天
|
存储 Cloud Native 关系型数据库
Linux安装配置Nacos
Linux安装配置Nacos
8609 0
|
设计模式 缓存 前端开发
React中样式解决方案有哪些?
本文首发于微信公众号“前端徐徐”,探讨了React开发中的样式管理方法,包括内联样式、常规CSS、CSS-Module、CSS-in-JS及使用CSS框架等五种常见方案,分析了各自的优缺点,帮助开发者根据项目需求选择合适的样式解决方案。
468 0
|
缓存 Java Spring
Java本地高性能缓存实践问题之在Spring Boot中启用缓存支持的问题如何解决
Java本地高性能缓存实践问题之在Spring Boot中启用缓存支持的问题如何解决
218 0
|
JSON 小程序 前端开发
微信小程序框架(一)-全面详解(学习总结---从入门到深化)
微信小程序框架(一)-全面详解(学习总结---从入门到深化)
569 0
|
缓存 小程序 IDE
【每周一个小技巧】支付宝小程序自定义tabbar效果
【每周一个小技巧】支付宝小程序自定义tabbar效果
645 2
|
JavaScript
设置VSCode快捷键vue生成代码片段
设置VSCode快捷键vue生成代码片段
设置VSCode快捷键vue生成代码片段
|
安全 Ubuntu 应用服务中间件
使用mkcert工具生成受信任的SSL证书,解决局域网本地https访问问题(下)
使用mkcert工具生成受信任的SSL证书,解决局域网本地https访问问题(下)
3139 0
|
JSON 小程序 前端开发
微信小程序首页-----布局(详细教程赶快收藏吧)
微信小程序首页-----布局(详细教程赶快收藏吧)
605 0