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

发布时间 - 2026-01-11 03:08:32    点击率:

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开发项目的一些心得(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# mint  # ui使用  # vue.js中mint-ui框架的使用方法  # 绑定  # 自定义  # 给大家  # 自带  # 是一个  # 情况下  # 还可以  # 还在  # 中有  # 我们可以  # 可以通过  # 希望能  # 才可以  # 这篇  # 解决方法  # 再将  # 小编  # 无法正常  # 自动生成  # 大家多多 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: linux写shell需要注意的问题(必看)  java中使用zxing批量生成二维码立牌  Laravel观察者模式如何使用_Laravel Model Observer配置  Laravel如何配置Horizon来管理队列?(安装和使用)  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  个人摄影网站制作流程,摄影爱好者都去什么网站?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何在宝塔面板创建新站点?  Android Socket接口实现即时通讯实例代码  Laravel怎么判断请求类型_Laravel Request isMethod用法  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  微信小程序 wx.uploadFile无法上传解决办法  如何快速搭建二级域名独立网站?  活动邀请函制作网站有哪些,活动邀请函文案?  简单实现jsp分页  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  jquery插件bootstrapValidator表单验证详解  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  微信小程序 input输入框控件详解及实例(多种示例)  javascript中的try catch异常捕获机制用法分析  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  网站优化排名时,需要考虑哪些问题呢?  如何在IIS中新建站点并解决端口绑定冲突?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何快速搭建高效WAP手机网站吸引移动用户?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  如何在腾讯云服务器上快速搭建个人网站?  java ZXing生成二维码及条码实例分享  Python正则表达式进阶教程_复杂匹配与分组替换解析  如何挑选最适合建站的高性能VPS主机?  Laravel Fortify是什么,和Jetstream有什么关系  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  javascript中对象的定义、使用以及对象和原型链操作小结  详解jQuery中的事件