当前位置: 首页 > news >正文

mint-ui 填坑之路

swipe组件

因为项目加载eslint的缘故也就没有像之前的项目一样引用swiper框架。
这个轮播图的组件文档实在是不敢恭维(尽管其他的文档也好不到哪里去),官方给出的参数真是少的可怜,一些方法也并没有提到。
官方的api如下图所示,你懂的:

仔细的看了的这个组件的example后,会找到一些常用的方法。

  1. 轮播默认不播放
    需要将auto的值设置为0

  2. 轮播图的手动控制
    利用vueref先绑定引用的swipe根标签。

<mt-swipe ref="swipe" class="swipe" :auto="0"> <mt-swipe-item v-for="img in images" :key="img.id"> <img :src="img.url"/> </mt-swipe-item> </mt-swipe> 

然后利用ref绑定的swipe组件,我们就可以调用到其内部的一些控制方法:

this.$refs.swipe.next() // 转到下一张轮播图
this.$refs.swipe.prev() // 转到前一张轮播图 

接下来恐怕就是我找到的最重要的方法:

监控当前轮播图激活的索引值

swipe组件的当前索引值被保存在了index之中
我们就可以利用刚才的方法,先在vue每次更新dom的时候将当前激活的索引值保存起来:

beforeUpdate () {
  this.activeIndex = this.$refs.swipe.index
}

然后利用watch方法监控当前swipe的激活索引值就可以进行进行后续的处理了。

watch: {
  activeIndex: function (val, oldVal) {
    console.log('newIndex: %s, oldIndex: %s', val, oldVal) // TODO } }

这样swipe组件的一些基本操作总算是填坑完毕了。

picker组件

picker组件也是有很多问题。话不多话,先上官方api:

继续针对slots对象数组的字段说明:

在使用过程之中我们会发现如果直接初始化级联picker中的二级初始值会有问题。
因为按照其demo之中的初始化数据方法,必须使用数组中的索引值做初始化处理。针对一级菜单做defaultIndex处理是没有问题,但是二级的话我们还需要将values值指向当前二级数组之中去。

addressSlots: [
  {
    flex: 1,
    values: Object.keys(address),
    className: 'slot1', textAlign: 'center' }, { divider: true, content: '-', className: 'slot2' }, { flex: 1, values: ['北京'], className: 'slot3', textAlign: 'center' } ]

避免在created之中单独为addressSlots做数据处理,我们可以统一将一级和二级都指向默认的第一个参数,然后利用下面的方法做初始化处理:

 mounted () {
  this.$nextTick(() => {
    setTimeout(() => {
      // 利用索引初始化默认选中的省份和城市
      this.areaSlots[0].defaultIndex = provinceIndex // Number类型 this.areaSlots[2].defaultIndex = cityIndex }, 20) }) }

bug处理

Infinite scroll组件的加载多次问题

官方例子的方法在一次滚动后并不止加载一次,应该在loading之中屏蔽新的加载处理:

loadMore () {
  this.loading = true
  setTimeout(() => {
    // TODO this.loading = false }, 2500) }

进行改进:

loadMore () {
  // 防止多次加载
  if (this.loading) {
    return false } this.loading = true setTimeout(() => { // TODO this.loading = false }, 2500) }

tabContainer和loadMore的滑动冲突处理

虽然这两个滑动一起使用的效果很蛋疼,但是如果
tabContainer的高度值不能撑满整个屏幕的话,是无法在上下拉刷新的同时左右滑动的
需要使用css进行高度处理才可以进行左右滑动:

.mint-tab-container-wrap{
  min-height: 617px; // 需要设置最小高度
}

Datetime picker不能正常弹出的问题

不知道是不是只有我才遇到了这个问题,死活不发通过官方的方法显示出来。
无奈之下查看源码,发现只好手动控制picker的显示了。
我们需要添加一个popup包裹起来要用的datetime picker,然后利用computed属性通过popup的激活来为当前日期时间控件改变display属性
这样就基本达到了想要的效果,实现代码如下:
html部分:

<mt-popup v-model="activePicker" position="bottom"> <mt-datetime-picker :style="{ display: showOrHide }" ref="picker" type="date" v-model="date" :start-date="new Date('2010-01-01')" @cancel="cancelPicker" @confirm="cancelPicker"></mt-datetime-picker> </mt-popup>

js部分:

 
computed: {
   showOrHide: function () {
     if (this.activePicker) {
       return 'block'
     } else { return 'none' } } }, methods: { cancelPicker () { this.activePicker = false } }

原文链接:https://segmentfault.com/a/1190000009753447

转载于:https://www.cnblogs.com/karila/p/8128178.html

相关文章:

  • 秒懂Vuejs、Angular、React原理和前端发展历史
  • Java定时器应用
  • 模型分离(选做)
  • 游戏全区全服和分区分服 QQ斗地主的设计
  • 【习题 7-7 UVA-12558】Egyptian Fractions (HARD version)
  • 仿腾讯固定导航栏
  • window进行缩放时左侧菜单高度随之变化
  • 如何将pdf文件的英文翻译成中文
  • mac用BootCamp装windows装完之后驱动问题
  • Jquery命名冲突解决的五种方案
  • 【margin与padding的区别与用法】
  • MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
  • 十三、视图
  • POJ3415 Common Substrings
  • Mysql-where子句与having子句的区别
  • 深入了解以太坊
  • 345-反转字符串中的元音字母
  • Brief introduction of how to 'Call, Apply and Bind'
  • C语言笔记(第一章:C语言编程)
  • Django 博客开发教程 8 - 博客文章详情页
  • linux学习笔记
  • SpringBoot 实战 (三) | 配置文件详解
  • unity如何实现一个固定宽度的orthagraphic相机
  • Vue.js-Day01
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端性能优化--懒加载和预加载
  • 前端之Sass/Scss实战笔记
  • 用Visual Studio开发以太坊智能合约
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​水经微图Web1.5.0版即将上线
  • ​一些不规范的GTID使用场景
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $NOIp2018$劝退记
  • $refs 、$nextTic、动态组件、name的使用
  • (02)vite环境变量配置
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (3)选择元素——(17)练习(Exercises)
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Forward) Music Player: From UI Proposal to Code
  • (MATLAB)第五章-矩阵运算
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)linux使用docker容器运行mysql
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (六)c52学习之旅-独立按键
  • (七)Java对象在Hibernate持久化层的状态
  • (转)Oracle存储过程编写经验和优化措施
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)视频码率,帧率和分辨率的联系与区别
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复