vue 手机端项目中使用Vant


Vant是一款轻量级可靠的移动端组件库,本次主要介绍此框架的安装流程:

一:Vant (手机端前端框架)安装

npm i vant -S

二:main.js组件引入

导入所有组件:

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

Vue.use(Vant);

三:自动按需引入

自动按需引入组件 
babel-plugin-import 是一款 babel 插件,它会在编译过程中将 import 的写法自动转换为按需引入的方式

npm i babel-plugin-import -D

// 在.babelrc 中添加配置
// 注意:webpack 1 无需设置 libraryDirectory
{
  "plugins": [
    ["import", {
      "libraryName": "vant",
      "libraryDirectory": "es",
      "style": true
    }]
  ]
}

// 对于使用 babel7 的用户,可以在 babel.config.js 中配置
module.exports = {
  plugins: [
    ['import', {
      libraryName: 'vant',
      libraryDirectory: 'es',
      style: true
    }, 'vant']
  ]
};

// 接着你可以在代码中直接引入 Vant 组件
// 插件会自动将代码转化为方式二中的按需引入形式
import { Button } from 'vant';

四:手动引入

手动引入vant:

//在不使用插件的情况下,可以手动引入需要的组件

import Button from 'vant/lib/button';
import 'vant/lib/button/style';

五:Rem 适配

//Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具:

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

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

module.exports = {
  plugins: {
    'autoprefixer': {
      browsers: ['Android >= 4.0', 'iOS >= 7']
    },
    'postcss-pxtorem': {
      rootValue: 37.5,
      propList: ['*']
    }
  }
}
//注意:在配置 postcss-loader 时,应避免 ignore node_modules 目录,这会导致 Vant 的样式无法被编译

六:底部安全区适配

<!-- iPhone X 等机型底部存在底部指示条,指示条的操作区域与页面底部存在重合,容易导致用户误操作,因此我们需要针对这些机型进行底部安全区适配。Vant 中部分组件提供了safe-area-inset-bottom属性,设置该属性后,即可在对应的机型上开启适配,如下示例: -->

<!-- 在 head 标签中添加 meta 标签,并设置 viewport-fit=cover 值 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover">

<!-- 开启 safe-area-inset-bottom 属性 -->
<van-number-keyboard safe-area-inset-bottom />

七:在桌面端使用 

Vant 组件默认只适配了移动端设备,如果你需要在桌面端使用 vant,可以引入我们提供的 @vant/touch-emulator.
//安装模块
npm i @vant/touch-emulator -S
// 引入模块后自动生效
import '@vant/touch-emulator';

致此,Vant的几种使用就这些了。

备注:Vant官网地址: https://youzan.github.io/vant/#/zh-CN/quickstart


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM