使用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 相关文章推荐
前端开发必须知道的JS之原型和继承
Jul 06 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
Sep 21 Javascript
jQuery EasyUI Pagination实现分页的常用方法
May 21 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
Dec 13 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
js调用刷新界面的几种方式
May 03 Javascript
vue使用vue-cli快速创建工程
Jul 28 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
Oct 26 Javascript
ajax跨域访问遇到的问题及解决方案
May 23 Javascript
基于Node的Axure文件在线预览的实现代码
Aug 28 Javascript
Vue实现商品详情页的评价列表功能
Sep 04 Javascript
如何基于JavaScript判断图片是否加载完成
Dec 28 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 set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
jquery.validate使用攻略 第二部
2010/07/01 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
python中 * 的用法详解
2019/07/10 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
cf收人广告词
2014/03/14 职场文书
创业女性典型材料
2014/05/02 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
夏洛特的网观后感
2015/06/15 职场文书
医院消毒隔离制度
2015/08/05 职场文书
浅谈MySQL中的六种日志
2022/03/23 MySQL