vite+vant4+vue3搭建一个移动端h5项目并进行rem适配

使用vite新建vue项目

sql 复制代码
npm create vite@latest

通过 npm 安装 vant

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

css 复制代码
# Vue 3 项目,安装最新版 Vant
npm i vant

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

常规用法

1、引入vant

javascript 复制代码
import { createApp } from 'vue';
// 1. 引入你需要的组件
import { Button } from 'vant';
// 2. 引入组件样式
import 'vant/lib/index.css';

const app = createApp();

// 3. 注册你需要的组件
app.use(Button);

2、使用vant组件和 API

完成以上步骤,就可以直接在模板中使用 Vant 组件了

xml 复制代码
<template>
  <van-button type="primary" />
</template>

不同手机机型的适配

这里我们采用 "Rem布局适配"

官方文档:vant-contrib.gitee.io/vant/#/zh-C...

如果需要使用 rem 单位进行适配,推荐使用以下两个工具:

css 复制代码
npm install postcss postcss-pxtorem --save-dev
css 复制代码
npm i -S amfe-flexible

PostCSS 示例配置(在项目根目录下新建一个postcss.config.cjs)

下面提供了一份基本的 PostCSS 示例配置,可以在此配置的基础上根据项目需求进行修改。

java 复制代码
// postcss.config.cjs
module.exports = {
  plugins: {
    'postcss-pxtorem': {
      rootValue: 37.5,
      propList: ['*'],
    },
  },
};

Tips: 在配置 postcss-pxtorem 时,同样应避免 ignore node_modules 目录,否则会导致 Vant 样式无法被编译。

其他设计稿尺寸

如果设计稿的尺寸不是 375,而是 750 或其他大小,可以将 rootValue 配置调整为:

javascript 复制代码
// postcss.config.cjs
module.exports = {
  plugins: {
    // postcss-pxtorem 插件的版本需要 >= 5.0.0
    'postcss-pxtorem': {
      rootValue({ file }) {
        return file.indexOf('vant') !== -1 ? 37.5 : 75;
      },
      propList: ['*'],
    },
  },
};

main.js中引入amfe-flexible

arduino 复制代码
import 'amfe-flexible'

在index.html中加上视口标签

ini 复制代码
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover" />
相关推荐
ZC跨境爬虫6 小时前
跟着 MDN 学CSS day_29:(掌握文本与字体样式的核心艺术)
前端·css·ui·html·tensorflow
李子琪。7 小时前
网络空间安全深度实战:CSRF 漏洞原理剖析与基于 Token 的纵深防御体系构建(全栈实验报告)
前端·安全·csrf
冰暮流星7 小时前
javascript之history对象介绍
前端·笔记
IT_陈寒8 小时前
Vite热更新失灵?你可能漏了这个配置
前端·人工智能·后端
丷丩8 小时前
MapLibre GL JS第19课:实时更新要素
前端·javascript·gis·map·mapbox·maplibre gl js
Mr.Daozhi8 小时前
RAG 进阶实战:跑通 Demo 后我连续翻了 6 次车,逐一修复才真正可用(含 Gradio Web 版)
前端·数据库·langchain·大模型·gradio·rag·科研工具
哆来A梦没有口袋8 小时前
干货精讲 | 初级CSS面试高频考题
前端·css·面试
掘金019 小时前
EmbedPDF Vue 版 完整正文文档 全网首发
前端
OpenTiny社区9 小时前
操作ArkTS页面跳转及路由相关心得
前端·typescript·web·opentiny
xiaohua0708day9 小时前
Lodash库
前端·javascript·vue.js