微信小程序的Vant Weapp组件库(WeUI组件库)

一、定义:

是一套开源的微信小程序UI组件库。提供了一整套UI基础组件和业务组件,能够快速地搭配出一套风格统一的页面

二、使用:

(1)(找到.eslintrc.js 右键,在内件终端打开)打开命令提示符后,输入npm init -y命令,生成package.json文件

 

(2)在内件终端继续输入npm install @vant/weapp@1.10.4 -s -y 命令安装Vant Weapp包,

生成node_modules文件夹和package-lock.json文件

(3)修改app.json全局配置文件,将里面的”style“:“v2”配置项删除。因为小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱

(4)在菜单栏执行工具-》构建npm命令。构建npm

此时会多出一个文件夹 ,这里面就是vant-weapp组件库

 

三、测试vant是否装好:

(1)在app.json文件或页面的json文件中的usingComponents配置项中引用button组件

(2) 在index.wxml里写自定义按钮

<Van-button type="primary">我是vant组件库的按钮</Van-button>

四、vant  weapp组件库的自定义tabbar组件的使用:

注意:Tabbar组件,也可以用来作为小程序的自定义Tabbar使用

(1)理论知识:

微信小程序自定义tabbar的配置信息 

  • 在 app.json 中的 tabBar 项指定 custom 字段,同时其余 tabBar 相关配置也补充完整。
  • 对于custom字段,它用于指定是否启用自定义tabBar。当custom字段设置为true时,小程序将不会自动使用默认的tabBar,而是会尝试读取项目根目录下的custom-tab-bar文件夹中的index组件,并将其作为自定义的tabBar进行渲染。
  • 所有 tab 页的 json 里需声明 usingComponents 项,也可以在 app.json 全局开启。

(2)在app.json文件或页面的json文件中的usingComponents配置项中引用自定义tabbar组件 

 

"usingComponents": {
    "van-tabbar":"@vant/weapp/tabbar/index",
    "van-tabbar-item":"@vant/weapp/tabbar-item/index"
  },

(3)在app.json文件或页面的json文件中建立三个页面文件,以便于等下tabbar组件的切换

"pages": [
        "pages/home/home",
        "pages/message/message",
        "pages/contact/contact"
      ],

并且在每个文件的wxml页面写上对应的内容

(4)在app.json文件或页面的json文件中写好tabbar的属性配置:

"tabBar": {
    "custom": true,
    "list": [
        {
            "pagePath": "pages/home/home",
            "text": "首页",
            "iconPath": "/images/tabs/home.png",
            "selectedIconPath": "/images/tabs/home-active.png"
        },
        {
          "pagePath": "pages/message/message",
          "text": "消息",
          "iconPath": "/images/tabs/message.png",
          "selectedIconPath": "/images/tabs/message-active.png"
      },
      {
          "pagePath": "pages/contact/contact",
          "text": "联系我们",
          "iconPath": "/images/tabs/contact.png",
          "selectedIconPath": "/images/tabs/contact-active.png"
      }
    ]
},

(5)在pages下的是三个页面:contact、home、message页面的js文件下配置active选中状态

*通过onShow() 来更新 tabBar 的状态,进而来通知它哪个 tab 是当前活动的。*this.getTabBar() 是尝试获取 tabBar 的实例,然后使用 setData 方法来更新它的数据。

*对于自定义的 tabBaractive是自定义组件内部使用的一个数据属性,用来控制哪个 tab 应该显示为选中状态。

在pages下面的contact文件夹下的js文件里:

onshow是生命周期函数--用来监听页面显示

(7)结果显示:

点击不同的tabbar显示不同的页面

五、微信小程序中,自定义tabBar和默认的tabBar属性的区别

在微信小程序中,这二者有显著的区别,这不仅体现在配置方式和使用场景上,还体现在其功能和灵活性上。下面是对两者属性和操作的详细比较:

(1)自定义tabBar属性及操作

属性

  • custom:设置为true时启用自定义tabBar

操作

  1. 配置custom字段:在app.jsonapp.config.json文件中,将custom字段设置为true

    "tabBar": {
    "custom": true
    }
  2. 编写样式和逻辑:在自定义组件中编写tabBar的样式、图标和逻辑,如页面跳转、选中状态等。

  3. 页面间交互:如果需要在页面间与自定义tabBar进行交互(例如获取当前选中项或触发tabBar更新),可以通过全局状态管理或事件总线等方式实现。

(2)默认tabBar属性及操作

属性

  • color:未选中时的文字颜色。
  • selectedColor:选中时的文字颜色。
  • backgroundColor:背景色。
  • borderStyle:边框样式。
  • listtab项的列表。

操作

  1. 配置tabBar属性:在app.jsonapp.config.json文件的tabBar对象中设置上述属性。

    {
    "tabBar": {
    "color": "#999",
    "selectedColor": "#007AFF",
    "backgroundColor": "#FFFFFF",
    "borderStyle": "black",
    "list": [
    {
    "pagePath": "pages/index/index",
    "text": "首页",
    "iconPath": "images/home.png",
    "selectedIconPath": "images/home_selected.png"
    },
    // ... 其他tab项
    ]
    }
    }
  2. 无需创建组件:使用默认tabBar时,无需创建额外的组件文件,所有配置均在app.jsonapp.config.json中完成。

(3)区别与注意事项

  • 灵活性:自定义tabBar提供了更高的灵活性,可以自定义样式、图标、动画等,但开发成本也相应增加。默认tabBar则较为简单,适用于基本的页面导航。

  • 开发成本:使用默认tabBar配置简单,几乎无需额外开发;而自定义tabBar则需要编写组件代码,并进行页面间的交互逻辑处理。

  • 兼容性:自定义tabBar需要确保在不同设备和微信版本上的兼容性;默认tabBar则具有更好的兼容性保障。

  • 更新与维护:自定义tabBar的样式和功能更新需要修改组件代码,而默认tabBar则可以通过修改配置快速更新。

(4)总结

在选择使用自定义tabBar还是默认tabBar时,应根据项目需求、开发资源和时间成本进行综合考量。对于需要高度个性化或复杂交互的场景,可以选择自定义tabBar;对于基本的页面导航和快速开发需求,使用默认tabBar更为合适。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/618579.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

|Python新手小白中级教程|第二十八章:面向对象编程(类定义语法私有属性类的继承与多态)(4)

文章目录 前言一、类定义语法二、私有方法和私有属性1.私有属性2.私有方法 三、类“继承”1.初识继承2.使用super函数调用父类中构造的东西 四、类“多态”1.多态基础2.子类不同形态3.使用isinstance函数与多态结合判断类型 总结 前言 大家好&#xff0c;我是BoBo仔吖&#xf…

RocketMQ学习笔记(一)

一、基本概念 生产者&#xff08;Producer&#xff09;&#xff1a;也称为消息发布者&#xff0c;是RocketMQ中用来构建并传输消息到服务端的运行实体&#xff0c;举例&#xff1a;发信者主题&#xff08;Topic&#xff09;&#xff1a;Topic是RocketMQ中消息传输和存储的顶层…

【全开源】Java知识付费教育付费资源付费平台公众号小程序源码

特色功能&#xff1a; 多样化的内容呈现&#xff1a;资源付费平台小程序支持图文、音视频、直播等多种形式的内容呈现&#xff0c;为用户提供了丰富的学习体验。直播课程&#xff1a;专家或讲师可以通过小程序进行在线授课&#xff0c;与用户实时互动&#xff0c;增强了学习的…

再有人说数字孪生大屏没有用,用这8条怼回去。

数字孪生大屏之所以受到欢迎&#xff0c;主要有以下几个原因&#xff1a; 实时数据可视化 数字孪生大屏可以将实时数据以直观的可视化形式展示出来&#xff0c;让用户能够一目了然地了解数据的状态和趋势。这样可以帮助用户更好地理解和分析数据&#xff0c;及时做出决策和调…

动态规划算法练习——计数问题

题目描述 给定两个整数 a 和 b&#xff0c;求 a 和 b 之间的所有数字中 0∼9 的出现次数。 例如&#xff0c;a1024&#xff0c;b1032&#xff0c;则 a 和 b 之间共有 9 个数如下&#xff1a; 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出现 10 次&#xff0c;1 出现…

蓝桥杯-网络安全比赛(7)基础知识 HTTP、TTL、IP数据包、MSS、MTU、ARP、LLMNR、MDNS、NBNS。

1. IP中TTL值能够给我提供什么信息&#xff1f;2. IP头部中标志、13位偏移、32位源IP地址、目标IP、IP数据包格式&#xff0c;有多少字节3. IP头部中的16位标识是什么&#xff1f;4. MSS 和MTU分别有多大&#xff1f;5. 怎么获取路由IP信息&#xff1f;PING、NSLOOKUP、TRACERT…

day6Qt作业

人脸识别系统 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> #include<opencv2/face.hpp> #include <vector> #include <map> #include <QMessag…

创建一个react项目(router,store,axios,antd)最后有项目地址

第一步&#xff1a;使用cra脚手架 创建项目 文档地址&#xff1a;Create React App 中文文档 npx create-react-app 你的项目名称 第二步&#xff1a;整理项目结构和删除多余代码 目标效果图&#xff1a; 在src目录下分别新建apis,assets,components,pages,router,store,ut…

重学JavaScript核心知识点(二)—— 详解Js中的模块化

详解Js中的模块化 1. 模块化的背景2. 来看一个例子3. 优雅的做法 —— 创建模块对象4. 模块与类&#xff08;class&#xff09;5. 合并模块6. 动态加载模块 1. 模块化的背景 JavaScript 在诞生之初是体积很小的&#xff0c;早期&#xff0c;它们大多被用来执行独立的脚本任务&…

C++初学者,使用命令行编绎C文件

今天在家里&#xff0c;闲来无事。又开始学习制作Helloworld! VStudio 版本众多&#xff0c;用哪个好呢&#xff0c;真是不好选择。今天就使用网上的大神&#xff1a;theoractice&#xff0c;制造的版本来学习C&#xff0c;我喜欢2013这个版本&#xff0c;真是太好用了。不但C…

Qt自定义控件--提升为

为什么要自定义控件 1&#xff0c;有复合小控件需要组合为一个整体控件时&#xff1b; 2&#xff0c;一个复合控件需要重复使用时&#xff1b; 实现 自定义控件文件 新增三个文件 关联不同组的控件 关联之前的准备工作 1&#xff0c;在主控件选择和子控件所有控件所在控件…

【一键录音,轻松转换:用Python打造个性化音频记录工具】

在数字化时代,音频记录已成为日常学习、工作和娱乐不可或缺的一部分。想象一下,只需简单按下几个键,即可随时随地捕捉灵感,记录会议要点,或是珍藏孩子的童言稚语。本文将引领您步入Python编程的奇妙世界,展示如何借助几个强大的库,构建一个既简单又实用的音频录制及转换…

第十二届蓝桥杯省赛真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 相乘试题 B: 直线试题 C : \mathrm{C}: C: 货物摆放试题 D: 路径试题 E: 回路计数试题 F : \mathrm{F}: F: 最少砝码试题 G: 左孩子右兄弟试题 H : \mathrm{H}: H: 异或数列试题 I \mathbf{I} I 双向排序试题 J : \mathrm{J}: J: 分…

如何快速展示专业:掌握类的基本概念-类/方法/关键字/变量/数据类型/注释

在李笑来的《财富自由之路》中提到一种初学者快速入门的学习方法&#xff1a;快速掌握最小必要知识。 关于Java的类&#xff0c;最少必要知识就是本文提到的基本概念&#xff0c;掌握了这些基本概念&#xff0c;就对类有了基本的了解&#xff0c;为后续的深入学习和沟通奠定了基…

Go编程语言的调试器Delve | Goland远程连接Linux开发调试(go远程开发)

文章目录 Go编程语言的调试器一、什么是Delve二、delve 安装安装报错cgo: C compiler "gcc" not found: exec: "gcc": executable file not found in $PATH解决 三、delve命令行使用delve 常见的调试模式常用调试方法todo调试程序代码与动态库加载程序运行…

真要这么卷?某国产大模型定价下调90%,百万 tokens 只需 1 元!

就在刚刚&#xff0c;国内明星AI公司——智谱AI官宣重磅炸弹&#xff1a; 将能力对标GPT3.5-Turbo的GLM-3的大模型API调用价格最高下调90%&#xff0c;价格仅为原来的十分之一&#xff01; 废话不多说&#xff0c;直接上图&#xff1a; 官网地址&#xff1a;https://open.big…

【SRC实战】前端脱敏信息泄露

挖个洞先 https://mp.weixin.qq.com/s/xnCQQCAneT21vYH8Q3OCpw “ 以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合 ” 01 — 漏洞证明 一、前端脱敏&#xff0c;请求包泄露明文 “ 前端脱敏处理&#xff0c;请求包是否存在泄露&#xff1f; ” 1、获取验…

公有云Linux模拟UDP端口并抓包

目录 写在前面操作步骤服务端开启UDP端口并监听客户端连接Wireshark抓包查看 写在前面 关于具体的操作&#xff0c;请参考我的上一篇文章 公有云Linux模拟TCP三次挥手与四次握手&#xff08;Wireshark抓包验证版&#xff09; 在本文&#xff0c;仅介绍与上一篇不同的地方。 操…

STL中的优先级队列

目录 1.引言 2.简介 3.基本操作 4.实现原理 5.自定义优先级比较 6.相关题目 7.能特点 8.总结 1.引言 在C标准库中&#xff0c;优先级队列是一种非常有用的数据结构&#xff0c;它允许我们根据元素的优先级来对其进行排序和访问。这种数据结构在多种应用场景中都发挥着重…

Linux提权--第三方软件MYSQL数据库提权(WEB+本地)

免责声明:本文仅做技术交流与学习,非法搞事后果自负... 目录 靶场镜像: 过程: 手工: 下载mysql udf poc 进行编译. 进入数据库进行UDF导出 下载(上传) 创建do_system函数调用 探针(./LinEnum.sh),查找suid权限. 配合使用find调用执行 工具: 过程: 外连不上? 隧道出…