当前位置:   article > 正文

在vue中如何使用umy-ui

umy-ui

本篇文章给大家详细介绍一下在vue中使用umy-ui的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

1.下载umy-ui      http://www.umyui.com/

npm install  umy-ui    ||    yarn add umy-ui

   2.创建存放umy-ui的文件    umy-ui.js

  1. //完整引入
  2. import Vue from 'vue';
  3. import UmyUi from 'umy-ui'
  4. import 'umy-ui/lib/theme-chalk/index.css';// 引入样式
  5. Vue.use(UmyUi);

最好使用按需引入,借助 babel-plugin-component,以达到减小项目体积的目的。

npm install babel-plugin-component

3.在babel.config.js中进行设置

  1. module.exports = {
  2.   presets: [
  3.     '@vue/app'
  4.   ],
  5.   plugins: [
  6.     ["component", {
  7.       'libraryName'"umy-ui",
  8.       "styleLibraryName""theme-chalk"
  9.     }, "umy-ui"]
  10.   ]
  11. }

 按需引入

  1. import Vue from 'vue';
  2. import {
  3.   UTableColumn,
  4.   UTable,
  5.   UxGrid,
  6.   UxTableColumn
  7. from 'umy-ui';
  8. Vue.use(UTableColumn);
  9. Vue.use(UTable);
  10. Vue.use(UxGrid);
  11. Vue.use(UxTableColumn);

在main.js中导入一下文件即可,当然以上代码也可以直接写道main.js中,但是代码就没有那么优雅了

4.最大的好处是使用虚拟表格,当数据非常之庞大的时候,用虚拟表格不会显得卡顿

HTML代码

  1. <template>
  2.   <p class="about-layout">
  3.     <!-- 
  4.       ref :                     可以用来绑定数据,做虚拟表格
  5.       height:                   绑定高度,若不绑定,自适应高度
  6.       show-header-overflow      标题过长,是否显示省略号
  7.       show-overflow             内容过长时显示为省略号    
  8.       border                    显示纵向边框 
  9.      -->
  10.     <ux-grid
  11.       ref="plxTable"
  12.       :height="$store.state.plxTableHeightOne"
  13.       :show-header-overflow="true"
  14.       :show-overflow="true"
  15.       border>
  16.       <!-- 
  17.         tableHead:              表格标题的数据列表
  18.         resizable:              列是否允许拖动列宽调整大小
  19.         title:                  设置表格的标题
  20.         field:                  设置表格的显示内容
  21.         sortable:               是否允许列排序
  22.        -->
  23.       <!-- 
  24.          使用插槽,可以对数据进行过滤
  25.          相当于覆盖了field的值
  26.         -->
  27.       <ux-table-column
  28.         v-for="(item, index) in tableHead"
  29.         min-width="120"
  30.         :resizable="true"
  31.         :key="index"
  32.         :title="item.label"
  33.         :field="item.prop"
  34.         :sortable="item.sortable">
  35.         <template slot-scope="scope">
  36.           {{
  37.             tableFiilter(
  38.               scope.column.property,
  39.               scope.row[scope.column.property]
  40.             )
  41.           }}
  42.         </template>
  43.       </ux-table-column>
  44.     </ux-grid>
  45.   </p>
  46. </template>

JS代码

  1. export default {
  2.   data() {
  3.     return {
  4.       // 标题列表数据
  5.       tableHead: [
  6.         {
  7.           label"吃",
  8.           prop"eat"//需要对应数据中的字段名,否则无效
  9.         },
  10.         {
  11.           label"喝",
  12.           prop"drink"//需要对应数据中的字段名,否则无效
  13.         },
  14.         {
  15.           label"玩",
  16.           prop"play"//需要对应数据中的字段名,否则无效
  17.         },
  18.       ],
  19.       // 过滤吃的数据
  20.       eatObj: {
  21.         D"饭",
  22.         Y"包子",
  23.         R"馒头",
  24.         S"辣条",
  25.       },
  26.       tabData:[]
  27.     };
  28.   },
  29.   props: {},
  30.   methods: {
  31.     //过滤表格    value === D   Y  R  S    过滤一下
  32.     //prop   字段名             value   字段值
  33.     tableFiilter(prop, value) {
  34.       if (prop === "eat") {
  35.         return this.eatObj[value];
  36.       }
  37.     },
  38.     // 获取数据
  39.     getTableData(){
  40.       let params = {
  41.         page:1,
  42.         pageSize:10
  43.       }
  44.       getTableData(params).then(res => {
  45.         if(res.code !== 200){
  46.           return this.$Message('请求发生错误')
  47.         }
  48.         this.tabData = res.data
  49.         // 调用虚拟表格reloadData方法     实现虚拟表格
  50.         this.$refs.plxTable.reloadData(this.tabData);
  51.       })
  52.     }
  53.   },
  54.   created() {
  55.     this.getTableData()
  56.   },
  57. };

推荐学习:vue.js教程

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/115416
推荐阅读
相关标签
  

闽ICP备14008679号