当前位置: 首页 > news >正文

Vant组件库入门知识

🙈作者简介:练习时长两年半的Java up主
🙉个人主页:程序员老茶
🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎
📚系列专栏:Java全栈,计算机系列(火速更新中)
💭 格言:种一棵树最好的时间是十年前,其次是现在
🏡动动小手,点个关注不迷路,感谢宝子们一键三连

目录

  • Vant组件库入门知识
    • 1. 为什么选择 Vant?
    • 2. Vant 组件库介绍
      • 2.1 Button(按钮)
      • 2.2 Form(表单)
      • 2.3 Carousel(轮播图)
    • 3. Vant 组件的使用
      • Cell(单元格)
      • Icon(图标)
      • Tab(标签页)
    • 自定义主题
    • 使用插件
      • Toast(轻提示)
      • Dialog(对话框)
      • Lazyload(图片懒加载)
    • 总结

Vant组件库入门知识

Vant 是一个轻量、可靠的移动端 Vue 组件库,提供了丰富的组件和解决方案,帮助开发者快速构建出优雅的移动端应用。本文将详细介绍 Vant 的基本概念、使用方法以及相关扩展,帮助你快速上手 Vant。

1. 为什么选择 Vant?

在移动端开发中,我们常常需要使用各种组件来构建界面。React Native、Weex 等跨平台框架虽然提供了丰富的组件,但它们往往需要我们自己封装大量的样式和逻辑。而 Vue、React 等原生框架虽然提供了丰富的组件库,但它们的体积较大,不易于在我们的项目中引入。Vant 正是为了解决这些问题而生,它提供了一套轻量、易用的移动端组件库,可以帮助我们快速构建出优雅的移动端应用。

Vant 的特点如下:

  • 轻量:Vant 的体积非常小,引入后不会对项目产生太大的负担。
  • 易用:Vant 提供了丰富的组件,涵盖了常用的 UI 元素,同时支持主题定制,可以快速替换为我们需要的样式。
  • 高效:Vant 的组件都是经过严格测试的,可以在各种场景下稳定运行,提高了开发效率。
  • 灵活:Vant 支持按需引入,可以根据项目需要只引入需要的组件,降低了项目的体积。

2. Vant 组件库介绍

Vant 的组件库包含了许多常用的 UI 元素,如按钮、输入框、弹窗、表格等。下面我们来看一下 Vant 的一些常用组件。

2.1 Button(按钮)

Vant 的 Button 组件是一个非常常用的按钮组件,支持不同形状和颜色的按钮,以及禁用状态。示例代码如下:

<van-button type="primary">主要按钮</van-button>
<van-button type="dashed">虚线按钮</van-button>
<van-button disabled>禁用按钮</van-button>

2.2 Form(表单)

Vant 的 Form 组件包含了常见的表单元素,如输入框、选择器、开关等。示例代码如下:

<van-field v-model="username" label="用户名" placeholder="请输入用户名"></van-field>
<van-field v-model="password" label="密码" placeholder="请输入密码"></van-field>

2.3 Carousel(轮播图)

Vant 的 Carousel 组件是一个轮播图组件,可以用于展示图片或视频。示例代码如下:

<van-carousel><van-carousel-item title="图片1">图片描述1</van-carousel-item><van-carousel-item title="图片2">图片描述2</van-carousel-item>
</van-carousel>

3. Vant 组件的使用

在使用 Vant 之前,我们需要先安装 Vant:

npm i vant -S --production

或者使用 yarn:

yarn add vant --production

安装完成后,我们可以在项目的 main.js 文件中引入并注册 Vant:

import Vue from 'vue';
import Vant from 'vant';
import 'vant/lib/index.css';Vue.use(Vant);

现在我们可以在我们的项目中使用 Vant 提供的组件了。以上面的 Carousel 组件为例,我们可以在一个 Vue 组件中使用如下代码:

<template><div><van-carousel><van-carousel-item title="图片1">图片描述1</van-carousel-item><van-carousel-item title="图片2">图片描述2</van-carousel-item></van-carousel></div>
</template>

这样我们就成功地使用了 Vant 的 Carousel 组件。需要注意的是,Vant 的所有组件都遵循 BEM(Block、Element、Modifier)命名规范,我们在编写自己的代码时也可以参考这一规范。例如,我们的 Carousel 组件可能包含一个 Block(<van-carousel>)、两个元素(<van-carousel-item>)和一个修饰符(--size),所以我们可以命名为 MyCarousel.vue。这样的好处是,当我们的项目变得越来越大时,可以通过 BEM 命名规范快速定位到相关的代码。

效果图:

Cell(单元格)

Cell 是一个常用的列表项组件,用于展示一条信息。它包含一个标题和对应的内容。

用法示例:

<template><vant-cell title="用户名" value="John Doe"></vant-cell>
</template>

效果图:

Icon(图标)

Icon 用于展示一个图标,可以是内置的图标,也可以是自定义的图标。

用法示例:

<template><vant-icon name="star"></vant-icon>
</template>

效果图:

Tab(标签页)

Tab 是一个常用的选项卡组件,用于在多个内容之间切换。

用法示例:

<template><vant-tab><vant-tab-item title="标签一">内容一</vant-tab-item><vant-tab-item title="标签二">内容二</vant-tab-item></vant-tab>
</template>

效果图:

自定义主题

Vant 支持自定义主题,可以根据项目需求修改组件的样式。可以通过以下步骤进行配置:

  1. 在项目的根目录下创建一个 vant-theme.less 文件,用于存放自定义主题的样式。

  2. vant-theme.less 文件中,使用变量覆盖的方式修改组件的样式。例如,我们要修改 Button 组件的主题颜色,可以添加以下代码:

    // vant-theme.less
    @button-primary-color: #ff0000;
    
  3. 在项目的入口文件中引入 vant-theme.less 文件,并重新编译项目的样式。

    import 'vant-theme.less';
    
  4. 现在 Button 组件的主题颜色已经被修改为红色了。

使用插件

除了常用组件外,Vant 还提供了一些实用的插件,以增强开发体验。

Toast(轻提示)

Toast 是一个简单的消息提示组件,用于显示一条短暂的消息。

用法示例:

import { Toast } from 'vant';Toast.success('操作成功');

效果图:

Dialog(对话框)

Dialog 是一个弹窗组件,用于展示一段内容或进行一些操作。

用法示例:

import { Dialog } from 'vant';Dialog.alert({message: '这是一段内容',title: '提示',
});

效果图:

Lazyload(图片懒加载)

Lazyload 是一个图片懒加载的插件,用于延迟加载页面中的图片,提高页面加载性能。

用法示例:

import { Lazyload } from 'vant';
Vue.use(Lazyload);
<template><img v-lazy="imageSrc" alt="图片">
</template>

总结

本文介绍了 Vant 组件库的入门知识,并提供了常用组件的用法示例和效果图,以及如何自定义主题和使用插件。希望通过本文的介绍,能够帮助你快速上手使用 Vant 进行移动应用的开发。

相关文章:

Vant组件库入门知识

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…...

Java字符串查找

目录 1.查找字符 &#xff08;1&#xff09;以索引查找字符 &#xff08;2&#xff09;以字符查找索引 2.查找字符串 在给定的字符串中查找需要的字符或字符串是常见的操作&#xff0c;以下是String类中常用的查找方法。 1.查找字符 查找字符分为两种情况&#xff1a;一种…...

2023年7月京东投影仪行业品牌销售排行榜(京东大数据)

鲸参谋监测的京东平台7月份投影仪行业销售数据已出炉&#xff01; 7月份&#xff0c;投影仪市场呈现增长趋势。根据鲸参谋平台的数据可知&#xff0c;7月京东平台投影仪的销量将近20万&#xff0c;同比增长约16%&#xff1b;销售额将近3.8亿&#xff0c;同比增长约4%。 ​*数据…...

设计模式-01简单工厂模式详解 详细代码对比

目录 ChatGpt问答原生代码简单工厂模式代码 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;新增boat 对比两种方法原生代码为什么使用强制转换&#xff1f;简单工厂模式 简单工厂方法总结与原生代码的区别&#xff1a;优点:缺点&#xff1a; 参考 本文将介绍什么…...

IPD-PDT-POP角色的名称、定位和职责说明书

在IPD推进中&#xff0c;有一个不是很关键但却离不开的角色叫做POP&#xff0c;POP这个角色通常是设置在PDT团队中。 那么IPD的PDT团队中的POP这个角色到底是什么意思呢&#xff1f;POP如何开展工作&#xff0c;以及POP的主要岗位职责有哪些呢&#xff1f;华研荟今天给大家分享…...

在MySQL中查看数据库和表的数据大小

在MySQL中查看数据库和表的数据大小 在管理和维护MySQL数据库时&#xff0c;了解数据库和表的数据大小是非常重要的。这可以帮助您监控数据库的增长、优化性能以及规划存储需求。本博客将介绍如何使用SQL查询来查看MySQL数据库和表的数据大小。 查看MySQL数据库的总数据大小 …...

Android前端音视频数据接入GB28181平台意义

技术背景 在华脉智联研发Android平台GB28181前端音视频接入模块之前&#xff0c;业内听到最多的是&#xff0c;如何用Android端在没有国标摄像头设备的前提下&#xff0c;模拟GB28181的信令和媒体流交互流程&#xff0c;实现GB28181整体方案的测试。 Android端真的没有必要做…...

Ubuntu 20.04上docker安装Redis

要在Ubuntu 20.04上使用Docker安装Redis&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1.更新系统包列表&#xff1a;sudo apt update2.安装Docker&#xff1a;sudo apt install docker.io3.启动Docker服务并设置其开机自启动&#xff1a;sudo systemctl start docker …...

linux 压缩webfile文件夹 webfile.tar.gz和webfile.tar的区别

linux 压缩webfile文件夹 在Linux中&#xff0c;你可以使用tar命令来压缩文件夹。以下是将文件夹压缩为名为"webfile.tar"的示例命令&#xff1a; cd到webfile所在的文件夹&#xff0c;然后执行 tar -cvf webfile.tar webfile/上述命令中&#xff0c;-c选项表示创建…...

基于SSM的农产品推广应用网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

人大金仓分析型数据库身份鉴别

目录 前言 数据库总参数 口令尝试次数 口令更换周期 明文密码替换 用户登录信息显示 前言 身份鉴别功能包含口令尝试次数限制、口令更换周期管理、明文密码替换和用户登录信息显示等几部分。 数据库总参数 identity_auth.enable 是否使用身份鉴别功能&#xff0c;布尔值…...

基于SpringBoot的在线教育平台系统

基于SpringBootVue的线教育平台系统&#xff0c;前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;管理员、学生、老师 …...

基于大规模测量和多任务深度学习的电子鼻系统目标识别、浓度预测和状态判断

Target discrimination, concentration prediction, and status judgment of electronic nose system based on large-scale measurement and multi-task deep learning 摘要 为了实现响应特征的自动提取&#xff0c;简化模型的训练和应用过程&#xff0c;设计了一种双块知识…...

Unity游戏客户端进阶路线(只针对本人)

一、初级Unity游戏开发工程师需要掌握以下内容&#xff1a; 1.掌握编程语言&#xff0c;一般都会学C#&#xff0c;需要掌握C#编程语言的基础内容以及Unity3D的引擎配置。 2.掌握Unity引擎&#xff0c;对使用的引擎有深入的了解&#xff0c;掌握它的特性以及局限性。 3.熟悉游戏…...

【C++】封装map和set(红黑树实现)

前言&#xff1a; 前面&#xff0c;我们学习了set和map的用法&#xff0c;这两个容器可以完成查找&#xff0c;排序等操作&#xff0c;后来我们在学习过二叉搜索树的基础上又学习了两种特殊的二叉搜索树——AVL树和红黑树&#xff0c;他们俩可以是效率进一步提高&#xff0c;其…...

【补】代码随想录算法训练营day38|动态规划 |509. 斐波那契数|70. 爬楼梯|746. 使用最小花费爬楼梯

动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推…...

C语言sizeof()计算空间大小为8的问题

在练习数据结构过程中&#xff0c;定义指针p&#xff0c;并且申请了10个char类型空间&#xff0c;但在计算p所指空间大小时候&#xff0c;发现了一些奇怪的现象。 #include <stdio.h> #include <stdlib.h>int main(){char s[12];printf("the size of memory …...

时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化

时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化 目录 时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 LMD局部均值分解 直接替换Excel即可运行包含频谱图相关系数图 Matlab语言 1.算法新颖…...

景区AR虚拟三维场景沉浸式体验成为新兴的营销手段

科技的迅速崛起正在改变我们的世界&#xff0c;旅游业也在这股浪潮中掀起了一场全新的变革。增强现实(AR)技术正成为旅行中的一股强大力量&#xff0c;通过增添趣味和交互性&#xff0c;为旅程注入了前所未有的活力。本文将带您深入了解AR如何为旅游带来全新的体验&#xff0c;…...

【深度学习】 Python 和 NumPy 系列教程(五):Python容器:3、集合Set详解(初始化、访问元素、常用操作、常用函数)

目录 一、前言 二、实验环境 三、Python容器&#xff08;Containers&#xff09; 0、容器介绍 1、列表&#xff08;List&#xff09; 2、元组&#xff08;Tuple&#xff09; 3、集合&#xff08;Set&#xff09; 1. 初始化 2. 访问集合元素 3. 常用操作 a. 添加单个…...

单片机C语言实例:6、定时器的应用

一、定时器0控制LED闪烁 实例程序1&#xff1a; #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c;头文件包含特殊功能寄存器的定义sbit LED P1^2; //定义LED端口/*------------------------------------------------定时器初始化子程序 …...

ChatGPT Prompting开发实战(五)

一、如何编写有效的prompt 对于大语言模型来说&#xff0c;编写出有效的prompt能够帮助模型更好地理解用户的意图(intents)&#xff0c;生成针对用户提问来说是有效的答案&#xff0c;避免用户与模型之间来来回回对话多次但是用户不能从LLM那里得到有意义的反馈。本文通过具体…...

MySQL——DQL union合并、limit限制与DDL建表和删表

一、Union 合并 union:是实现两个查询结果的合并。 例如&#xff1a;当我们查询员工名字为manager 和 salesman的员工名字和 工作&#xff1f; select e.ename,e.job from emp e where e.jobmanager or e.job salesman; select e.ename,e.job from emp e where e.job in(man…...

Java“牵手”唯品会商品列表数据,关键词搜索唯品会商品数据接口,唯品会API申请指南

唯品会商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取唯品会商品列表和商品详情页面数据&#xff0c;您可以通过开放平台的接口或者直接访问唯品会商城的网页来获取商品详情信息。以下是两种常用方法的介…...

Springboot整合JWT完成验证登录

目录 一、引入依赖二、JwtUtil 代码解读三、LoginController 代码解读四、整体代码五、结果展示 一、引入依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></depende…...

centos7 下使用docker安装常见的软件:Redis

关于docker的基础知识&#xff0c;请见《别在说自己不知道docker了&#xff0c;全文通俗易懂的给你说明白docker的基础与底层原理》 在自己学习的过程中经常会需要动手安装一下常见的工具&#xff0c;本篇就手把手带你用docker安装一遍。 jdk安装 如果先要更换之前的jdk从第…...

sql:SQL优化知识点记录(十五)

&#xff08;1&#xff09;MySQL主从复制 我们这里配置一Windows上的MySql做主机&#xff0c;Linux上的MySql做从机&#xff0c;搭建一主一从 测试以下是否能够拼通&#xff1a;从Linux上&#xff1a;167&#xff0c;连接Windows的165 从Windows的165 连接Linux上&#xff1a;…...

vue3+ts 分享海报

安装依赖1. npm install html2canvas --save<div class"flex-box"><div><div v-for"(item,index ) in from.list" :key"index" click"actvieFuntion(index)"><div>{{item}}</div><div :class"…...

Ubuntu23.10将推出全磁盘加密功能,提高系统安全性

Canonical 宣布其即将推出的 Ubuntu 23.10&#xff08;Mantic Minotaur&#xff09;将引入基于 TPM 的全磁盘加密的初步支持。这个特性将利用系统可信平台模块&#xff08;TPM&#xff09;&#xff0c;在系统级别上进行全磁盘加密&#xff0c;从而提高系统的安全性。 但需要注…...

防火墙的设置主要是为了防范什么

防火墙的设置主要是为了防范网络攻击和数据泄露。随着互联网的普及和信息化的加速&#xff0c;网络安全问题越来越受到人们的关注。其中&#xff0c;防火墙是一种常见的网络安全设备&#xff0c;其设置的重要性也日益凸显。 防火墙的设置主要是为了防范什么 防火墙的设置主要目…...

网站模板修改工具/深圳关键词优化软件

目标 期望 xx.com/userlist 改为 xx.com/hgdoor/userlist 进行访问 修改默认根目录 官方文档 不同的历史模式 前端配置 环境变量设置 VUE_APP_PUBLIC_PATH/hgdoorcli配置 // vue.config.js const vueConfig {// 添加虚拟路径publicPath: process.env.VUE_APP_PUBLIC_P…...

网站建设的作用有哪些/小红书推广引流软件

软件下载地址: 趣盘下载 软件功能&#xff1a; 专门针对Discuz! 7论坛开发的看贴工具。快速读取指定栏目下的贴子&#xff08;按指定页数读取&#xff09;&#xff0c;是一种贴子快速浏览工具。同时&#xff0c;本软件也可以下载指定的贴子&#xff0c;你完全可以把他们做为贴…...

京津冀协同发展意义/aso搜索排名优化

第1页&#xff1a;AHCI模式与Win7、SSD的不解之缘 AHCI这个注定和SATA接口结下不解之缘的接口模式&#xff0c;它担负着淘汰IDE模式的重任&#xff0c;从诞生开始就充满争议&#xff0c;它经历了整整7年时间。它伴随着SSD固态硬盘兴旺走向主流&#xff0c;同时也和微软WinXP、W…...

厦门企业网站开发/seo优化在线

Codrops 给我们分享了一组新鲜的按钮样式和效果的集合。它们中的大部分效果都使用了 CSS3 过渡和伪元素&#xff0c;他们都有一个共同点&#xff0c;那就是简单性&#xff0c;没有太多的动画&#xff0c;而是尝试添加一些通过颜色和形状的变化呈现的效果。 在线演示 源码下…...

做网站需要独立ip吗/做推广app赚钱的项目

题意&#xff1a;给你一个n*m的棋盘&#xff0c;问你最多可以放几个马&#xff0c;他们之间互不攻击。 xmin(n,m),ymax(n,m) 当x1时&#xff0c;输出y。 当x2时&#xff0c;输出我们可以放若干个田字。 当x>2时&#xff0c;我们全放在白格子或者黑格子上面。 #include &…...

哪些外国购物网站可以做/目前引流最好的平台

通过绘制一只可爱的小兔&#xff0c;来介绍CorelDRAW软件中的贝塞尔工具、椭圆工具、基本形状工具、填充工具等工具的应用&#xff0c;下面介绍其详细步骤。步骤&#xff1a;1、在CorelDRAW X3操作界面中选择“文件”→ “新建”命令&#xff0c;新建一个文档&#xff0c;将页面…...