antd 与 element-ui如何按需引入,以及二者的不同

antd与element-ui作为两个用途广泛的ui框架,均提供了按需引入,毕竟全量引入会导致包体积太大。尤其是当我们只想使用其中几个组件的时候,按需引入就变得更有必要了。

我特意数了一下,二者均提供了共计63个组件,这是不是有什么特殊意义…
在这里插入图片描述
当然这么多组件更进一步证明了按需引入的必要性。

其实官方均已经提供了按需引入的方式:

antd
# 安装 babel-plugin-import
$ npm install babel-plugin-import -D
# 在babel.config.js,或者.babelrc中添加如下配置
{
	"plugins": [
    ["import", { "libraryName": "ant-design-vue", "libraryDirectory": "es", "style": "css" }]
  ]
}

# 无需再全局引入样式
# babel-plugin-import 会帮助你加载 JS 和 CSS
import { DatePicker } from 'ant-design-vue'
Vue.use(DatePicker)
Vue
# 安装插件
npm install babel-plugin-component -D
# babel.config.js 或者 .babelrc文件中添加
"plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
]

# 使用,当然也不用引入全局样式
import { Button, Select } from 'element-ui';
Vue.use(Button)
Vue.use(Select)

按照上述的方法,的确是可行的,但这不是本文的重点,本文希望通过实践来区分二者的不同:

Antd

按以上方式引入一个DatePicker, 并配置好了babel

import Vue from 'vue'
import App from './App.vue'

import {DatePicker} from 'ant-design-vue';
Vue.use(DatePicker);

看一下打包结果
在这里插入图片描述
看到这个体积,我一直以为我配置错了,但我接着多引入了几个组件,发现体积的确变大了。也就是按需引入是成功的。

import {DatePicker, Pagination, Table} from 'ant-design-vue';
Vue.use(DatePicker);
Vue.use(Pagination);
Vue.use(Table);

在这里插入图片描述
以上,后来我想antd作为一个中后台应用,这个体积感觉还好。

直到我又尝试了element-ui…

element-ui
import {DatePicker} from 'element-ui'
Vue.use(DatePicker)

在这里插入图片描述
竟然如此优秀,那我不妨再加几个看看

import {Pagination, DatePicker, Input} from 'element-ui'

Vue.use(Pagination)
Vue.use(DatePicker)
Vue.use(Input)

在这里插入图片描述
体积也没有加大多少,我觉得这个体积完全可以用在前台,而不仅仅是中后台,毕竟这个vendor里面还包含了vue以及core-js,我尝试在把element组件单独打包一个vendor
在这里插入图片描述
果然,gzip的体积相比之前缩小了近一倍。

总结

感觉以后前台页面想使用各种组件,也完全可以按需引入element的组件库来实现,毕竟element成熟可靠。

最后感谢您的阅读,如果错误还请指正。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现 antd-vue 的按引入,首先要在项目中安装 babel-plugin-import 插件。您可以使用以下命令进行安装: ``` npm install babel-plugin-import --save-dev ``` 安装完成后,在项目的 .babelrc 文件中添加以下配置: ``` { "plugins": [ ["import", { "libraryName": "ant-design-vue", "libraryDirectory": "es", "style": "css" }] ] } ``` 接下来,在 main.js 文件中引入要使用的组件。您可以使用 import 语句将所的组件引入,并将其注册为全局组件。例如,如果您想引入 Button 组件,可以这样做: ``` import Vue from 'vue'; import { Button } from 'ant-design-vue'; import App from './App.vue'; Vue.component(Button.name, Button); new Vue({ render: h => h(App), }).$mount('#app'); ``` 最后,在要使用组件的地方,您可以直接在模板中使用该组件。例如,在 App.vue 文件的模板中使用 Button 组件可以这样做: ``` <template> <div id="app"> <img alt="Vue logo" src="./assets/logo.png"> <a-button type="primary">Button</a-button> <HelloWorld msg="Welcome to Your Vue.js App"/> </div> </template> ``` 这样就可以按引入并使用 antd-vue 的组件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue-cli4.0下antd(ant-design-vue)按引入(附带完整过程)](https://blog.csdn.net/weixin_43641850/article/details/108296677)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值