mint-ui在vue中的使用示例


Posted in Javascript onApril 05, 2018

本文介绍了mint-ui在vue中的使用示例,分享给大家,具体如下:

首先放上 mint-ui中文文档

近来在使用mint-ui,发现部分插件在讲解上并不是很详细,部分实例找不到使用的代码。github上面的分享,里面都是markdown文件,内容就是网上的文档

刚好自己在用,网上能找到的资料也不是很详细,自己写写咯。持续更新...emmmmm,应该可以吧,我这么懒。希望能给别人带来帮助。

介绍一下mint-ui的特性

特性介绍

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

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

1.cell的使用

先丢个图↓

mint-ui在vue中的使用示例

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

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

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

mint-ui在vue中的使用示例 

2.Infinite scroll 和 Navbar结合使用。

Navbar 是这样的↓

mint-ui在vue中的使用示例

Infinite scroll 是这样的↓

mint-ui在vue中的使用示例

两个结合起来,就是把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>

这样基本页面就出来了。

mint-ui在vue中的使用示例

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

这个问题,找了半天,最后发现一个和简单的办法。在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,地址三级联动

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

mint-ui在vue中的使用示例

首先获取地址

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 相关文章推荐
可输入的下拉框
Jun 19 Javascript
javascript Window及document对象详细整理
Jan 12 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
容易造成JavaScript内存泄露几个方面
Sep 04 Javascript
JavaScript各类型的关系图解
Oct 16 Javascript
jQuery+ajax读取并解析XML文件的方法
Sep 09 Javascript
省市区三级联动jquery实现代码
Apr 15 Javascript
js转换对象为xml
Feb 17 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
Jan 13 Javascript
webstorm添加*.vue文件支持
May 08 Javascript
详解React中合并单元格的正确写法
Jan 08 Javascript
原生JS实现随机点名项目的实例代码
Apr 30 Javascript
webpack热模块替换(HMR)/热更新的方法
Apr 05 #Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
Apr 05 #Javascript
express默认日志组件morgan的方法
Apr 05 #Javascript
React Native悬浮按钮组件的示例代码
Apr 05 #Javascript
关于Google发布的JavaScript代码规范你要知道哪些
Apr 04 #Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 #Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
Apr 04 #Javascript
You might like
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
[JS]点出统计器
2020/10/11 Javascript
document对象execCommand的command参数介绍
2006/08/01 Javascript
显示js对象所有属性和方法的函数
2009/10/16 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
2018/08/22 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
python字典基本操作实例分析
2015/07/11 Python
python 获取网页编码方式实现代码
2017/03/11 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
降低python版本的操作方法
2020/09/11 Python
北美最大的手工艺品零售商之一:Michaels Stores
2019/02/27 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
传播学专业毕业生自荐信
2013/11/04 职场文书
酒吧总经理岗位职责
2013/12/10 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
Vue h函数的使用详解
2022/02/18 Vue.js