最近在vue项目中引入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']
  ]
};

以上是官网推荐的引入方式,一步一步走就行,重点在使用的时候有个问题

<template>
    <div class="home">
        <p>{{user.nickName}}</p>
        <van-image round="round"
                   width="100"
                   height="100"
                   :src="user.photo"
        />
        <van-button type="warning">的范德萨发</van-button>
    </div>
</template>
<script>
import {Button, Image} from "vant"

export default {
    name: 'Home',
    components: {
        [Button.name]: Button,
        [Image.name]: Image
    },

}

</script>

红色部分的代码是正确的引入方式。[Button.name]: Button

vant官网引入入口

官网还有引入方式二、三,方式二大家自己进官网查看就可以,另外说的是方式一和方式三不可共存,即只能使用一种导入方式,否则会有错误提示

方式三. 导入所有组件

Vant 支持一次性导入所有组件,引入所有组件会增加代码包体积,因此不推荐这种做法

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

Vue.use(Vant);
Logo

前往低代码交流专区

更多推荐