使用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 相关文章推荐
MooTools 1.2中的Drag.Move来实现拖放
Sep 15 Javascript
JavaScript之HTMLCollection接口代码
Apr 27 Javascript
JQuery入门——事件切换之hover()方法应用介绍
Feb 05 Javascript
js获取本机的外网/广域网ip地址完整源码
Aug 12 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
Aug 19 Javascript
JS控制伪元素的方法汇总
Apr 06 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
vue.js做一个简单的编辑菜谱功能
May 08 Javascript
vue 解决IOS10低版本白屏的问题
Nov 17 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
django实现用户注册实例讲解
2019/10/30 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
django 实现简单的插入视频
2020/04/07 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
大专毕业生简历的自我评价
2013/10/20 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
员工培训邀请函
2014/02/02 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
爱国演讲稿400字
2014/05/07 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
关于python类SortedList详解
2021/09/04 Python