使用mint-ui开发项目的一些心得(分享)


Posted in Javascript onSeptember 07, 2017

Mint-ui:

1、Cell

开发过程中,有时需要修改mt-cell自带的icon和value的标签样式,这时我们可以在<mt-cell></mt-cell>内新添如下标签进行改写:

<si-cell class="user-cell item-cell" title="当前产品" to="/selectproduct" is-link>

  <i class="siiconfont siicon-product"></i>

  <span>{{productSelected}}</span>

</si-cell>

mt-cell无法直接绑定v-click事件,修改做法可以在<mt-cell></mt-cell>外面包一层<div></div>,在div上绑定click事件,代码可参照第2点search中的代码;

2、Search

通常情况下我们的参数不会直接是一个数组,可能需要对数据进行一些自定义处理,我的写法如下:

<si-search v-model="value" :result="filterResult">

  <div v-for="item in filterResult" :key="item" @click="switchCustomer(item)">

  <si-cell :title="item"></si-cell>

  </div>

</si-search>

filterResult是计算属性,以此过滤好后台传来的数据后,再将其绑定在cell外的div层,还可以如第1点所说的绑定click事件,此处filterResult进行了中英文过滤,可以通过数据的中文名和英文名两个属性进行搜索。

filterResult() {
  var that = this;
  that.defaultResult = [];
  var re = /^[a-zA-Z]+$/;
  var data = that.result.data;
  var val = that.value;
  if (re.test(val)) {
  for (var i = 0;i < data.length;i++) {
   console.log(data[i].englishname);
   if (new RegExp(val, 'i').test(data[i].englishname)) {
   that.defaultResult.push(data[i].title);
   }
  }
  return that.defaultResult;
  }
  else {
  for (var i = 0;i < data.length;i++) {
   that.defaultResult.push(data[i].title);
  }
  return that.defaultResult.filter(value => new RegExp(val, 'i').test(value));
  }
 }

3、Tabbar

通常情况下,底部的tabbar栏是需要在多页面复用的,所以可以独立成一个组件,然后通过外部容器作为父组件进行使用,切换tab的同时,tabbar需要向父组件传递选中的一个自定义的tabchange事件

selectTab: function(id) {
 this.$emit('tabchange', id);
}

父组件接收自定义事件tabchange,触发setSelected函数进行数据更新,通过数据驱动视图更新:

<si-tabbar :Selected="selected" @tabchange="setSelected"></si-tabbar>

修改selected的值来切换tab

setSelected: function(data) {
 this.selected = data;
 this.tabToggle(data);
}

template内有关tab-container里的代码如下:

<div class="page-wrap">
 <si-tab-container class="page-tabbar-container" v-model="selected">
 <si-tab-container-item id="konwledge">
  <si-news></si-news>
 </si-tab-container-item>
 <si-tab-container-item id="dashboard">
  <si-overview></si-overview>
 </si-tab-container-item>
 <si-tab-container-item id="report">
  <si-report></si-report>
 </si-tab-container-item>
 <si-tab-container-item id="user">
  <si-user></si-user>
 </si-tab-container-item>
 </si-tab-container>
</div>

4、Header

mt-header的title因为是mint-ui框架自带生成的,所以在父组件上我们可能无法在title上绑定click事件,但功能需求中有这样的要求:

虽然应该极力避免直接操作dom,但目前我的解决方法还在页面渲染完成之后,在mounted的生命周期中用原生js绑定click事件,因为此时html元素已经生成,所以可以绑定到title的标签<h1>。

mounted () {

 // 绑定click事件到mint-ui自动生成的头部标题上

 var h1 = document.getElementsByTagName('h1');

 var that = this;

 if (that.headOptions.isTitleIcon == true) {

  h1[0].addEventListener("click",function() {

  that.$router.push({path: '/selectproduct'});

  })

 }

 },

5、datetime-picker

使用该组件一定要注意mint-ui的版本,2.2.5以上才可以,版本低会导致无法正常调用open方法显示datetime-picker。

open(picker) {
 this.$refs[picker].open();
}

以上这篇使用mint-ui开发项目的一些心得(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
Aug 07 Javascript
jquery操作select大全
Apr 25 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
悬浮广告方法日常收集整理
Mar 18 Javascript
详解JavaScript对象类型
Jun 16 Javascript
JS继承之借用构造函数继承和组合继承
Sep 07 Javascript
轻松实现js弹框显示选项
Sep 13 Javascript
详细讲解JavaScript中的this绑定
Oct 10 Javascript
基于javaScript的this指向总结
Jul 22 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
js判断鼠标移入移出方向的方法
Jun 24 Javascript
JavaScript+CSS相册特效实例代码
Sep 07 #Javascript
AngularJS 打开新的标签页实现代码
Sep 07 #Javascript
基于Cookie常用操作以及属性介绍
Sep 07 #Javascript
基于require.js的使用(实例讲解)
Sep 07 #Javascript
基于vue.js路由参数的实例讲解——简单易懂
Sep 07 #Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 #jQuery
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 #jQuery
You might like
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
Js中sort()方法的用法
2006/11/04 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
Python文件操作方法详解
2020/02/09 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
利用python绘制正态分布曲线
2021/01/04 Python
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
门卫工作岗位职责
2013/12/17 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
大学生评语大全
2014/04/18 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
Python实战之实现简易的学生选课系统
2021/05/25 Python
MySQL索引失效的典型案例
2021/06/05 MySQL
python装饰器代码解析
2022/03/23 Python