今天终于解决了前端使用vue开发中遇到的路由,状态管理以及多模块跨域的问题。根据需求,项目中将用到很多的表格,基础表格(如基础数据展示等)以及树形表格(如导航数据展示等)。由于刚开始使用vue对其不是特别的熟悉,同时也是为了提高开发进度,所以选择了使用现有的插件,众多比对后选择了vxe-table插件。
选择vxe-table的优势:
- 可以自定义选择引入的模块,减少项目体积;
- 多主题,多图标;
- 表格种类繁多;
- 扩展插件库;
使用示例
进入项目根目录
cd ming-vue-table
安装vxe-table
npm install xe-utils vxe-table
在main.js中引入vxe-table
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import 'xe-utils';
import VXETable from 'vxe-table';
import 'vxe-table/lib/index.css';
Vue.use(VXETable);
Vue.config.productionTip = false;
new Vue({
router,
store,
render: h => h(App)
}).$mount("#app");
因为是全局全量引入,所以可以直接在页面调用
<template>
<div>
<vxe-table border="inner" :data="tableData">
<vxe-table-column type="seq" width="60" title="序号"></vxe-table-column>
<vxe-table-column field="name" title="姓名"></vxe-table-column>
<vxe-table-column field="sex" title="性别"></vxe-table-column>
<vxe-table-column field="address" title="籍贯"></vxe-table-column>
</vxe-table>
</div>
</template>
<script>
export default {
name: "Home",
data() {
return {
tableData: [
{
id: 10001,
name: "张三",
sex: "男",
address: "上海市"
},
{
id: 10002,
name: "李四",
sex: "女",
address: "北京市"
},
{
id: 10003,
name: "王五",
sex: "男",
address: "天津市"
}
]
};
}
};
</script>
运行效果
npm run serve
树形数据表
<template>
<div>
<vxe-table
border
row-id="id"
:data="tableData"
:tree-config="{ children: 'children', expandAll: true }"
>
<vxe-table-column
type="seq"
width="180"
title="序号"
tree-node
></vxe-table-column>
<vxe-table-column field="name" title="导航名称"></vxe-table-column>
<vxe-table-column field="url" title="URL"></vxe-table-column>
</vxe-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{
seq: 1,
name: "系统管理",
url: "",
children: [
{
seq: 10,
name: "用户管理",
url: "sys/user"
},
{
seq: 11,
name: "权限管理",
url: "sys/right"
},
{
seq: 12,
name: "角色管理",
url: "sys/role"
}
]
},
{
seq: 2,
name: "报表管理",
url: "report"
}
]
};
}
};
</script>
效果如下
暂时先将项目中需要用到的基础数据表和树形数据表做简单的总结,后续将对其所有的数据表进行详细的介绍,抽时间再研究研究其源码就更OK了!