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