vue create my-project
cd my-project
npm run serve
npm run build
打包完成,空项目的情况下 vue 打包后的大小为 128KB
npm install vxe-table xe-utils
引用依赖 src/plugins/utils.js
import 'xe-utils'
引用表格 src/plugins/table.js
import Vue from 'vue'
import VXETable from 'vxe-table'
import 'vxe-table/lib/index.css'
Vue.use(VXETable)
引用 src/main.js
import './plugins/utils'
import './plugins/table'
写一个简单的表格用来测试 src/components/HelloWorld.vue
<template>
<div>
<vxe-table
border
round
highlight-hover-row
:data="tableData">
<vxe-table-column type="seq" title="Number" width="80">vxe-table-column>
<vxe-table-column field="name" title="Name" sortable>vxe-table-column>
<vxe-table-column field="sex" title="Sex" sortable>vxe-table-column>
<vxe-table-column field="address" title="Address">vxe-table-column>
vxe-table>
div>
template>
<script>
export default {
name: 'MyTable',
data () {
return {
tablePage: {
currentPage: 1,
pageSize: 15,
totalResult: 0
},
tableData: [
{
id: 10001,
name: 'Test1',
role: 'Developer',
sex: 'Man',
address: 'Address abc123'
},
{
id: 10002,
name: 'Test2',
role: 'Developer',
sex: 'Female',
address: 'Address rttry'
},
{
id: 10003,
name: 'Test3',
role: 'Developer',
sex: 'Man',
address: 'Address xxxxx'
}
]
}
}
}
script>
到此就基本完成了,大致目录结构如下:
5. 到此安装完成,打个包看看,现在打包后的大小为 538KB
6. 由于只用了表格的基本功能,不需要安装全部功能,我们可以通过按需加载的方式来减少包的体积
安装按需加载所依赖的工具 babel-plugin-import
npm install babel-plugin-import -D
修改配置文件 babel.config.js,增加 plugins 配置项
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
],
/**
* 注意:如果配置了按需导入那么就无法使用全局安装,因为全局的代码被插件拦截掉了,只保留按需的代码
* 报错:VXETable is not defined
* 解决:去掉按需插件配置即可
*/
plugins: [
[
'import',
{
libraryName: 'vxe-table',
style: true // 是否按需加载样式
}
]
]
}
修改安装文件 src/plugins/table.js
import Vue from 'vue'
import XEUtils from 'xe-utils'
import {
VXETable,
Icon,
Header,
Column,
Table
} from 'vxe-table'
import zhCN from 'vxe-table/lib/locale/lang/zh-CN'
// 导入默认的国际化(如果项目中使用多语言,则应该导入到 vue-i18n 中)
VXETable.setup({
i18n: key => XEUtils.get(zhCN, key)
})
// 先按需导入依赖的模块
Vue.use(Icon)
Vue.use(Header)
Vue.use(Column)
// 最后安装核心库
Vue.use(Table)