vue中mint-ui的使用方法


Posted in Javascript onApril 04, 2018

mint-ui在vue中的使用,供大家参考,具体内容如下

首先放上mint-ui中文文档

近来在使用mint-ui,发现部分插件在讲解上并不是很详细,部分实例找不到使用的代码。github上面的分享,里面都是markdown文件,内容就是网上的文档
刚好自己在用,网上能找到的资料也不是很详细,自己写写咯。持续更新...emmmmm,应该可以吧,我这么懒。希望能给别人带来帮助。

介绍一下mint-ui的特性

特性介绍

  • Mint UI 包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要。通过它,可以快速构建出风格统一的页面,提升开发效率。
  • 真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件,无需再纠结文件体积过大。
  • 考虑到移动端的性能门槛,Mint UI 采用 CSS3 处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。
  • 依托 Vue.js 高效的组件化方案,Mint UI 做到了轻量化。即使全部引入,压缩后的文件体积也仅有 ~30kb (JS + CSS) gzip。

这个组件库,适合于基于vue的手机页面开发。

1.cell的使用

先丢个图↓

vue中mint-ui的使用方法

在做switch的时候,想做成文字和switch在列表的两侧。效果出不来,发现有很多人跟我一样死命的钻switch的文档,以及找switch的相关资料。然后实际上,应该用cell才对。

<mt-cell title="开关状态">
 <mt-switch v-model="openValue" @change="changeStatus"></mt-switch>
</mt-cell>

利用cell的布局,和switch相结合。产生下面的结果。

vue中mint-ui的使用方法

2.Infinite scroll 和 Navbar结合使用

Navbar 是这样的↓

vue中mint-ui的使用方法

Infinite scroll 是这样的↓

vue中mint-ui的使用方法

两个结合起来,就是把Infinite scroll嵌套在 <mt-tab-container-item id="1"></mt-tab-container-item>里面,然后效果就出来了。

简单的就是酱紫的。

<mt-navbar v-model="selected" >
 <mt-tab-item id="1">选项一</mt-tab-item>
 <mt-tab-item id="2">选项二</mt-tab-item>
</mt-navbar>
<mt-tab-container v-model="selected">
 <mt-tab-container-item id="1">
 <div v-infinite-scroll="loadMore"
  infinite-scroll-disabled="loading"
  infinite-scroll-distance="10"
  class="content"
 >
 </div>
 </mt-tab-container-item>
 <mt-tab-container-item id="2">
 <div v-infinite-scroll="loadMoreReceive"
  infinite-scroll-disabled="loadingReceive"
  infinite-scroll-distance="10"
  class="content"
 >
 </div>
 </mt-tab-container-item>
</mt-tab-container>

这样基本页面就出来了。

vue中mint-ui的使用方法

有个小问题就是,这是一个页面,滚动条是共用的。也就是说,你在选项卡一拉出来好几页数据之后,再到选项卡二,滚动条的位置是不会变的,你的选项卡二的内容,会被拉出来好多页的数据。如果某个选项卡的数据比较少,会影响到其他选项卡的数据加载。

这个问题,找了半天,最后发现一个和简单的办法。在Infinite-Scroll里面,添加一个v-if=selected == id,把Infinite-scroll和选项卡的id、selected相结合,选中的selected与id对应的时候,才进行对应的Infinite-Scroll。

Infinite-Scroll的代码如下:

<div v-infinite-scroll="loadMore"
 infinite-scroll-disabled="loading"
 infinite-scroll-distance="10"
 class="content"
 v-if="selected == 1"
>

根据需要,v-if的条件进行修改。

v-infinite-scroll 所绑定的方法,会在vue的mounted之后,before之前第一次执行,不需要另外调用。

3.Picker,地址三级联动

这里有个很简洁的三级联动,之前要用的时候没找到。自己写的一个,好麻烦。先放图

vue中mint-ui的使用方法

首先获取地址

getRegion(){
 var root=this;
 <!-- 通过/region 接口获取三级地址,然后存入regionArr -->
 http.get("/region").then(function (data) {
 root.regionArr=data.data.data;
 <!-- 存放省 -->
 for(var i=0;i<root.regionArr.length;i++){
  root.region_province[i]=root.regionArr[i].value;
 }
 <!-- 存放市 -->
 for(var i=0;i<root.regionArr[0].children.length;i++){
  root.region_city[i]=root.regionArr[0].children[i].value;
 }
 <!-- 存放区 -->
 for(var i=0;i<root.regionArr[0].children[0].children.length;i++){
  root.region_zone[i]=root.regionArr[0].children[0].children[i].value;
 }
 root.region=[
  {
  flex: 1,
  values: root.region_province,
  textAlign: 'left',
  className:'picker_Slot'

  },
  {
  divider: true,
  content: '-',
  className: 'slot2'
  },
  {
  flex: 1,
  values: root.region_city,
  textAlign: 'center',
  className:'picker_Slot'
  },
  {
  divider: true,
  content: '-',
  className: 'slot2'
  },
  {
  flex: 1,
  values: root.region_zone,
  textAlign: 'right',
  className:'picker_Slot'
  }
 ]

 });

},

然后设置三级地址

onValuesChange(picker, values) {
 var root=this;
 var str_1=[];
 var str_2=[];
 for(var i in root.regionArr){
 // 获取省,并重置市级名称
 if(root.regionArr[i].value == values[0]){
  for(var j in root.regionArr[i].children){
  str_1.push(root.regionArr[i].children[j].value);
  // 获取市级,并重置区级的名称
  if(root.regionArr[i].children[j].value == values[1]){
   // 当市级下不存在区名市,置空。
   if(root.regionArr[i].children[j].children != null){
   for(var k in root.regionArr[i].children[j].children){
    str_2.push(root.regionArr[i].children[j].children[k].value);
   }
   }else{
   str_2.push(" ");
   }
  }
  }
  picker.setSlotValues(1, str_1);
  picker.setSlotValues(2, str_2);
 }
 }

 // 赋值,初始时置为上一页返回的值
 root.$set(root.printerMessage,'province',values[0] == null ? root.printerMessage.province : values[0]);
 root.$set(root.printerMessage,'city',values[1] == null ? root.printerMessage.city : values[1]);
 root.$set(root.printerMessage,'area',values[2] == null ? root.printerMessage.area : values[2]);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。 

Javascript 相关文章推荐
javascript实现div的显示和隐藏的小例子
Jun 25 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 Javascript
js随机生成网页背景颜色的方法
Feb 26 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 Javascript
vue.js实现含搜索的多种复选框(附源码)
Mar 23 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
Apr 10 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 Javascript
JS将时间秒转换成天小时分钟秒的字符串
Jul 10 Javascript
微信小程序后端(java)开发流程的详细步骤
Nov 13 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
May 13 Javascript
如何使用Javascript中的this关键字
May 28 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 #Javascript
JS实现DOM删除节点操作示例
Apr 04 #Javascript
JS实现的DOM插入节点操作示例
Apr 04 #Javascript
AngularJS 应用模块化的使用
Apr 04 #Javascript
vue todo-list组件发布到npm上的方法
Apr 04 #Javascript
D3.js实现简洁实用的动态仪表盘的示例
Apr 04 #Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
Apr 04 #Javascript
You might like
PHP 开源框架22个简单简介
2009/08/24 PHP
关于页面优化和伪静态
2009/10/11 PHP
php生成静态页面的简单示例
2014/04/17 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
php取出数组单个值的方法
2018/03/12 PHP
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
Python自动扫雷实现方法
2015/07/25 Python
Python元字符的用法实例解析
2018/01/17 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
Python如何将模块打包并发布
2020/08/30 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
高校学生干部的自我评价分享
2013/11/04 职场文书
公司财务工作总结的自我评价
2013/11/23 职场文书
经典促销广告词大全
2014/03/19 职场文书
鸿星尔克广告词
2014/03/21 职场文书
村抢险救灾方案
2014/05/09 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
接收函格式
2015/01/30 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL