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 相关文章推荐
javascript之函数直接量(function(){})()
Jun 29 Javascript
THREE.JS入门教程(2)着色器-上
Jan 24 Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
Nov 10 Javascript
30分钟快速掌握Bootstrap框架
May 24 Javascript
怎么引入(调用)一个JS文件
May 26 Javascript
jQuery实现导航回弹效果
Feb 27 Javascript
elementUI Tree 树形控件的官方使用文档
Apr 25 Javascript
微信小程序获取地理位置及经纬度授权代码实例
Sep 18 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 Javascript
JavaScript字符和ASCII实现互相转换
Jun 03 Javascript
JavaScript canvas实现文字时钟
Jan 10 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
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
python 定时修改数据库的示例代码
2018/04/08 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
Python实战之疫苗研发情况可视化
2021/05/18 Python