vue cli4 + antd2按需引入

项目的创建和antd的安装就不写了,按照官网来

在项目下安装babel-plugin-import,用来做按需引入,安装完毕,打开babel.config.js,添加代码

// 请确保你的项目里有less和less-loader
module.exports = {
  plugins: [
    [
      "import",
      { libraryName: "ant-design-vue", libraryDirectory: "es", style: "css" }, 
    ],
  ],
};

接下来你可以在src目录下components下建一个js文件用来做antd的组件处理

// ant.js
import { Button, Layout, Menu } from "ant-design-vue";
const ant = {
  install(Vue) {
    Vue.component(Button.name, Button);
    Vue.component(Layout.name, Layout);
    Vue.component(Layout.Header.name, Layout.Header);
    Vue.component(Layout.Content.name, Layout.Content);
    // Vue.component(Layout.Footer.name, Layout.Footer);
    Vue.component(Layout.Sider.name, Layout.Sider);
    Vue.component(Menu.name, Menu);
    Vue.component(Menu.SubMenu.name, Menu.SubMenu);
    Vue.component(Menu.Item.name, Menu.Item);
  },
};
export default ant;

以上是我的文件里要注册的组件,像button的这类简单组件注册一次就可以使用,Layout这类复杂组件则需要将他内部嵌套的组件也一并注册,我第一次使用时只注册了Layout组件导致页面的显示出现了问题

最后一步则是main.js内引用注册了

import { createApp } from "vue";
import App from "./App.vue";
import Antd from "@/components/com/ant.js"; // 引入ant.js
import "ant-design-vue/dist/antd.css";

const app = createApp(App);
app.config.productionTip = false;

app.use(Antd).mount("#app");

注意:
如果你从一开始就使用了以上按需引入写法,后期改变主意想要引入完整antd,如:

import { createApp } from "vue";
import App from "./App.vue";
import Antd from "ant-design-vue";  // 完整引入
import "ant-design-vue/dist/antd.css";

const app = createApp(App);
app.config.productionTip = false;

app.use(Antd).mount("#app");

请记得一定要注释掉babel.config.jsbabel-plugin-import的配置,否则会报出以下错误
在这里插入图片描述
end !

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值