【记账本实战】03 集成 Vant UI 组件库

这篇具有很好参考价值的文章主要介绍了【记账本实战】03 集成 Vant UI 组件库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

集成 Vant UI 组件库

Vant 介绍

Vant 是一个轻量、可定制的移动端组件库,于 2017 年开源。

目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。

特性

  • 🚀 性能极佳,组件平均体积小于 1KB(min+gzip)
  • 🚀 80+ 个高质量组件,覆盖移动端主流场景
  • 🚀 零外部依赖,不依赖三方 npm 包
  • 💪 使用 TypeScript 编写,提供完整的类型定义
  • 💪 单元测试覆盖率超过 90%,提供稳定性保障
  • 📖 提供丰富的中英文文档和组件示例
  • 📖 提供 Sketch 和 Axure 设计资源
  • 🍭 支持 Vue 2、Vue 3 和微信小程序
  • 🍭 支持 Nuxt 2、Nuxt 3,提供 Nuxt 的 Vant Module
  • 🍭 支持主题定制,内置 700+ 个主题变量
  • 🍭 支持按需引入和 Tree Shaking
  • 🍭 支持无障碍访问(持续改进中)
  • 🍭 支持深色模式
  • 🍭 支持服务器端渲染
  • 🌍 支持国际化,内置 30+ 种语言包

集成 Vant UI 组件库

我们按照官方的教程(Vant 4 快速上手)来安装 Vant

通过 npm 安装 Vant UI

在现有项目中使用 Vant 时,可以通过 npm 进行安装:

# Vue 3 项目,安装最新版 Vant
npm i vant

# Vue 2 项目,安装 Vant 2
npm i vant@latest-v2

当然,你也可以通过 yarnpnpmbun 进行安装:

# 通过 yarn 安装
yarn add vant

# 通过 pnpm 安装
pnpm add vant

# 通过 Bun 安装
bun add vant

因为我们创建的是一个 Vue3 的项目,所以我们在终端中输入 npm i vant 来安装最新版的 Vant UI组件库

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

按需引入组件

Vant 官方文档提供了两种引入组件的方式,一种是常规方式,相当于引入全部组件,这种方式推荐在学习的时候使用,不建议在生产环境中使用常规方式引入,要不然这会使得项目变得臃肿,另一种方式是按需引入组件样式,本项目中将使用这种引入方式,相比于常规用法,这种方式可以按需引入组件的 CSS 样式,从而减少一部分代码体积,但使用起来会变得繁琐一些。

在基于 vitewebpackvue-cli 的项目中使用 Vant 时,可以使用 unplugin-vue-components 插件,它可以自动引入组件。

Vant 官方基于 unplugin-vue-components 提供了自动导入样式的解析器 @vant/auto-import-resolver,两者可以配合使用。

1. 安装插件
# 通过 npm 安装
npm i @vant/auto-import-resolver unplugin-vue-components -D

# 通过 yarn 安装
yarn add @vant/auto-import-resolver unplugin-vue-components -D

# 通过 pnpm 安装
pnpm add @vant/auto-import-resolver unplugin-vue-components -D

# 通过 bun 安装
bun add @vant/auto-import-resolver unplugin-vue-components -D
2. 配置插件

如果是基于 vite 的项目,在 vite.config.js 文件中配置插件:

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import Components from "unplugin-vue-components/vite";
import { VantResolver } from "@vant/auto-import-resolver";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    Components({
      resolvers: [VantResolver()],
    }),
  ],
});
3. 使用组件

完成以上两步,就可以直接在模板中使用 Vant 组件了,unplugin-vue-components 会解析模板并自动注册对应的组件, @vant/auto-import-resolver 会自动引入对应的组件样式。

我们在 src/views/Home.vue 添加 Button 按钮组件,代码如下:

<template>
  <div>
    首页
    <van-row gutter="10">
      <van-col span="5">
        <van-button type="primary">主要按钮</van-button>
      </van-col>
      <van-col span="5">
        <van-button type="success">成功按钮</van-button>
      </van-col>
      <van-col span="4">
        <van-button type="default">默认按钮</van-button>
      </van-col>
      <van-col span="5">
        <van-button type="warning">警告按钮</van-button>
      </van-col>
      <van-col span="5">
        <van-button type="danger">危险按钮</van-button>
      </van-col>
    </van-row>
  </div>
</template>

<script>
export default {
  name: "HomeViews",
};
</script>

启动项目,然后在浏览器访问,效果如下图所示:

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

适配移动端 rem 单位

如果我们开发的是桌面端的网页,则无需做 rem 适配。但是做 H5 开发,你将面对的是成千上百款千奇百怪的机型,单纯的使用 px 作为 CSS 样式单位的话是很难满足的,所以我们需要引入 rem 做适配。Vant 中的样式默认使用 px 作为单位,如果需要使用 rem 单位,推荐使用以下两个工具:

  • postcss-pxtorem 是一款 PostCSS 插件,用于将 px 单位转化为 rem 单位
  • lib-flexible 用于设置 rem 基准值

咱们就按照官方为我们提供的方案进行适配,首先安装它们:

npm install lib-flexible -S
npm install postcss-pxtorem -D

这里 lib-flexible 是网页做 html 的 font-size 适配用的,所以需要安装到 dependencies。而 postcss-pxtorem 是在编译的时候对 px 单位转换为 rem 单位时使用,所以安装到 devDependencies 便可。

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

安装好后,我们需要在 main.js 引入 lib-flexible,新增如下代码:

import { createApp } from "vue";
import "lib-flexible/flexible"; // 引入 lib-flexible
import App from "./App.vue";
import router from "./router"; // 1. 导入路由实例

const app = createApp(App); // 2. 创建 Vue 实例

app.use(router); // 3. 将导入的路由实例 router 注入到 Vue 实例 app 中

app.mount("#app"); // 4. 挂载 Vue 实例

接着我们需要为 px 单位转 rem 单位做配置,我们按照官网教程在项目根目录下新建 postcss.config.js,文件(这里有一个坑,后面会解释),配置内容如下:

module.exports = {
  plugins: {
    "postcss-pxtorem": {
      rootValue: 37.5, // Vant 官方根字体大小是 37.5
      propList: ["*"],
      selectorBlackList: [".norem"], // 过滤掉.norem-开头的 class,不进行 rem 转换
    },
  },
};

接着检查一下 rem 适配是否成功,我们给 src/views/Home.vue 文件里的 div 标签一个样式:

<template>
  <div>
    <div class="box">首页</div>
    <!-- 下面的内容省略 -->
</template>

// 省略 ......

<style scoped>
.box {
  width: 100px;
  height: 100px;
  background-color: aquamarine;
}
</style>

接着我们启动项目,这里我在启动项目的时候出错了,如下图所示:

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

这里就是我上面提到的坑,根据报错信息的提示,意思是 postcss.config.js 文件被视为 ES 模块,因为它具有 .js 扩展名,然而在 package.json 中包含 "type":"module",要将其视为 CommonJS 脚本,请将其重命名为使用 .cjs 为扩展名的文件。

我们按照报错提示进行修改,将 postcss.config.js 文件重名为 postcss.config.cjs,之后再次启动项目,就不报错了,然后打开浏览器访问项目,如若是下图所示,说明配置已经生效了。

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

这里还有一个需要注意的小知识点:不需要 px 转 rem 的情况,可以使用大写的 PX 作为单位。

编译时不会将其转化为 rem 单位,也可以通过 selectorBlackList 属性声明的 .norem 前缀的 class 类名,同样也不会被转化。

添加 iconfont 文字图标库

一个完整的项目,总是会需要一些图标进行标识,这样有助于提高项目体验,帮助用户更好的理解功能点的作用及使用方法。

在实际开发中常用的字体图标库便是阿里巴巴推出的 iconfont,它是目前市面上字体图标数量最多最全的网站,我们平时开发项目也都是用它作为项目的图标插件。下面我们来学习如何引入到咱们的项目中来。

首先你需要注册一个 iconfont 的账户,这里不进行赘述。然后按照如下所示:

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

点击创建项目之后,会出现一个弹窗,填写如下:

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

点击新建生成后,随便添加一个图标进入购物车,然后在购物车内添加至上面新建的项目内:

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

添加完之后,点击下图所示第三个红框 查看在线链接,就会重新生成一串新的 hash 码,内部包含最新的字体图标,我们将其添加至项目的 index.html 文件,如下所示:

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <!-- 引入 阿里巴巴图标库 -->
    <link rel="stylesheet" href="填入上面复制的链接" />
    <title>Vite + Vue</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

这里注意,每次新增图标后,都要重新生成新的 css 静态资源,需要在这里替换最新的路径。

然后在 src/views/Home.vue 文件内,添加我们刚才添加的字体图标,看浏览器是否显示:

<template>
  <div>
    <div class="box">首页</div>
    <i class="iconfont icon-wode"></i>
    <van-row gutter="10">
		......
    </van-row>
  </div>
</template>

// 省略其他代码 ......

复制图标类名,只需要点击相应图标的“复制代码”便可。

我们打开浏览器查看效果:

【记账本实战】03 集成 Vant UI 组件库,人人都能做的 Vue 3 记账本实战,vue.js,前端,javascript

好啦~ 现在你已经学会了如何使用 iconfont 图标,是不是很简单呢。文章来源地址https://www.toymoban.com/news/detail-793197.html

到了这里,关于【记账本实战】03 集成 Vant UI 组件库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 聊聊Python都能做些什么

    Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。它最初由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python的设计哲学强调代码的可读性,允许开发者用少量代码表达想法,同时支持多种编程范式,包括面向过程、面向对象和函数式编程。

    2024年03月21日
    浏览(49)
  • Go 语言 context 都能做什么?

    原文链接: Go 语言 context 都能做什么? 很多 Go 项目的源码,在读的过程中会发现一个很常见的参数 ctx ,而且基本都是作为函数的第一个参数。 为什么要这么写呢?这个参数到底有什么用呢?带着这样的疑问,我研究了这个参数背后的故事。 开局一张图: 核心是 Context 接

    2024年02月11日
    浏览(42)
  • Go 语言 select 都能做什么?

    原文链接: Go 语言 select 都能做什么? 在 Go 语言中, select 是一个,用于监听和 channel 有关的 IO 操作。 通过 select 语句,我们可以同时监听多个 channel ,并在其中任意一个 channel 就绪时进行相应的处理。 本文将总结一下 select 语句的常见用法,以及在使用过程中的注

    2024年02月15日
    浏览(33)
  • Vant 移动端UI 组件自动引入

    # Vue 3 项目,安装最新版 Vant npm i vant Vant按需引入 - - -安装: unplugin-vue-components 插件 unplugin-vue-components 插件可以在Vue文件中自动引入组件(包括项目自身的组件和各种组件库中的组件) 使用此插件后,不需要手动编写  import { Button } from \\\'ant-design-vue\\\' 这样的代码了,插件会自

    2024年02月05日
    浏览(46)
  • vant ui progress进度条组件样式调整

    原官方progress组件效果: 希望实现ui效果: 效果1. 效果2. 效果一html结构 组件api: pivot-text- 进度文字内容 string 百分比 这里把pivot-text的值设置为空 效果一样式代码: 效果二是文字在进度条内部 区分效果一没有用flex布局, 用了定位样式 效果二html结构 效果二样式代码:

    2024年02月13日
    浏览(48)
  • 51单片机基础篇系列-人人都能学会单片机

     🌈个人主页: 会编程的果子君 💫个人格言:“成为自己未来的主人~”      在一片集成电路芯片上集成计算机所有基 本部分(中央处理器CPU、存储器RAM、ROM、 定时计数器T/C,输入输出接口IO、中断系 统)都集成在一个芯片上,从而构成了单 芯 片微型计算机,即单片机,

    2024年03月15日
    浏览(64)
  • 帮助中心管理系统,人人都能用的知识管理平台

    帮助中心管理系统是一种知识管理平台,旨在帮助企业有效组织和管理知识资源,使其能够为客户和员工提供快速、准确的帮助和支持。 知识库管理: 帮助中心管理系统允许企业将知识组织和分类,建立一个完整的知识库。这包括常见问题解答(FAQs)、操作指南、故障排除

    2024年02月09日
    浏览(39)
  • 【自制键盘01】CH9329代码两则,让任何单片机都能做键盘

    CH9329是一款由WCH(Nanjing QinHeng Electronics Co. Ltd.)生产的USB转串口芯片,可以方便地将USB接口转换为串口接口,它在键盘设计这块可以实现作为MCU和电脑设备的“中间人”,把串口信号转换为按键。 来自官网页面: 串口转HID键盘鼠标芯片 CH9329 - 南京沁恒微电子股份有限公司

    2024年02月09日
    浏览(38)
  • 人人都能升薪?深扒Android开发中的通天神器Framework

    近年来,客户端领域的竞争日益激烈,很多安卓开发者抱怨内卷现象普遍存在。在这种背景下,开发者们面对的压力越来越大,很难掌握足够的技能去顺利发展。解决内卷,突破迷茫,是许多开发者面临的挑战。小米的高管在脉脉上提供了一条不错的建议,即如下: 但对于大

    2024年02月02日
    浏览(42)
  • Vant UI的Sidebar侧边导航组件单独设置滚动条

    在Vue项目中使用Vant UI框架时,遇到Sidebar侧边导航组件的滚动条在整个屏幕的右侧:  需要实现的效果是:左侧导航栏有单独的滚动条,右侧主体内容也有单独的滚动条,互不干涉。  (效果是左侧和右侧都是有一个滚动条的) html部分: 重点是css部分:左侧和右侧的盒子需要

    2024年02月16日
    浏览(165)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包