当前位置:   article > 正文

微信小程序的自定义TabBar及Vant的使用_微信小程序 自定义tabbar "custom": true, vant store存储

微信小程序 自定义tabbar "custom": true, vant store存储

一、安装Vant

1、在 资源管理器 空白位置,点右键打开 在外部终端窗口打开

2、初始化NPM

npm init -y

3、安装命令

npm i @vant/weapp@1.3.3 -S --production

4、构建NPM包

在 工具 里选择构建NPM包

5、删除style:v2

在app.json里,删除"style":"v2"

6、按需引入

  1. // app.json
  2. "usingComponents": {
  3.      "van-button": "@vant/weapp/button/index"
  4. }

7、使用

<van-button type="primary">按钮</van-button>

二、CSS自定义样式

1、定义

  1. element {
  2. --main-bg-color: brown;
  3. }
  1. :root {
  2. --main-bg-color: brown;
  3. }

2、使用

  1. element {
  2. background-color: var(--main-bg-color: brown);
  3. }

三、自定义TabBar

1、配置

在app.json中的 tabBar 配置中加上 "custom": true, 表示要自定义,不再使用list

为了兼容低版本,list虽然作废,但是也不能删

  1. "tabBar": {
  2. "custom": true,
  3. "list": [
  4. {
  5. ....

2、新建自定义文件

在根目录下新建 custom-tab-bar文件夹,在里面新建index文件

 3、引入vant依赖

vant中的tabBar组件介绍:

Vant Weapp - 轻量、可靠的小程序 UI 组件库

 4、基础tabBar

vant中的基本tabBar代码

  1. <van-tabbar active="{{ active }}" bind:change="onChange">
  2. <van-tabbar-item icon="home-o">标签</van-tabbar-item>
  3. <van-tabbar-item icon="search">标签</van-tabbar-item>
  4. <van-tabbar-item icon="friends-o">标签</van-tabbar-item>
  5. <van-tabbar-item icon="setting-o">标签</van-tabbar-item>
  6. </van-tabbar>

配套的JS代码

  1. Page({
  2. data: {
  3. active: 0,
  4. },
  5. onChange(event) {
  6. // event.detail 的值为当前选中项的索引
  7. this.setData({ active: event.detail });
  8. },
  9. });

自定义图标的使用

icon : 表示未选中 时 显示的图标

icon-active : 表示选中 时 显示的图标

info="3" : 表示图标右上的小数字

  1. <van-tabbar active="{{ active }}" bind:change="onChange">
  2. <van-tabbar-item info="3">
  3. <image
  4. slot="icon"
  5. src="{{ icon.normal }}"
  6. mode="aspectFit"
  7. style="width: 30px; height: 18px;"
  8. />
  9. <image
  10. slot="icon-active"
  11. src="{{ icon.active }}"
  12. mode="aspectFit"
  13. style="width: 30px; height: 18px;"
  14. />
  15. 自定义
  16. </van-tabbar-item>
  17. <van-tabbar-item icon="search">标签</van-tabbar-item>
  18. <van-tabbar-item icon="setting-o">标签</van-tabbar-item>
  19. </van-tabbar>

配套的JS

  1. Page({
  2. data: {
  3. active: 0,
  4. icon: {
  5. normal: 'https://img.yzcdn.cn/vant/user-inactive.png',
  6. active: 'https://img.yzcdn.cn/vant/user-active.png',
  7. },
  8. },
  9. onChange(event) {
  10. this.setData({ active: event.detail });
  11. },
  12. });

最后,把标签的名字和图片都写在list数组里面

  1. data: {
  2. "list": [
  3. {
  4. "pagePath": "/pages/home/home",
  5. "text": "首页",
  6. "iconPath": "/images/tabs/home.png",
  7. "selectedIconPath": "/images/tabs/home-active.png"
  8. },
  9. {
  10. "pagePath": "/pages/message/message",
  11. "text": "消息",
  12. "iconPath": "/images/tabs/message.png",
  13. "selectedIconPath": "/images/tabs/message-active.png",
  14. info: 0
  15. },
  16. {
  17. "pagePath": "/pages/contact/contact",
  18. "text": "联系我们",
  19. "iconPath": "/images/tabs/contact.png",
  20. "selectedIconPath": "/images/tabs/contact-active.png"
  21. }
  22. ]
  23. }

使用时

  1. <van-tabbar active="{{active}}" bind:change="onChange" active-color="#13A7A0">
  2. <van-tabbar-item wx:for="{{list}}" wx:key="index" info="{{item.info ? item.info : ''}}">
  3. <image slot="icon" src="{{item.iconPath}}" mode="aspectFit" style="width: 25px; height: 25px;" />
  4. <image slot="icon-active" src="{{item.selectedIconPath}}" mode="aspectFit" style="width: 25px; height: 25px;" />
  5. {{item.text}}
  6. </van-tabbar-item>
  7. </van-tabbar>

在自定义组件中使用 Vant Weapp 组件时,需在 options 开启 styleIsolation: 'shared' 选项,不然修改的样式不会生效

实现跳转Tab功能

  1. onChange(event) {
  2. // event.detail 的值为当前选中项的索引
  3. // this.setData({ active: event.detail })
  4. this.updateActive(event.detail)
  5. wx.switchTab({
  6. url: this.data.list[event.detail].pagePath,
  7. })
  8. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/416302
推荐阅读
相关标签
  

闽ICP备14008679号