近期上手vue的移动端项目,舍弃了之前自己相对熟悉的mui框架,改为用饿了么团队为了vue量身定做的mint-ui框架。
之前开发的时候觉得mui的文档就足够坑爹了,但当我开始阅读mint-ui这个文档后才发现自己真是太年轻了...
针对一些自己遇到的问题,特此记录成文档,方便日后使用。
swipe组件
因为项目加载eslint的缘故也就没有像之前的项目一样引用swiper框架。
这个轮播图的组件文档实在是不敢恭维(尽管其他的文档也好不到哪里去),官方给出的参数真是少的可怜,一些方法也并没有提到。
官方的api如下图所示,你懂的:
仔细的看了的这个组件的example后,会找到一些常用的方法。
1、轮播默认不播放
需要将auto的值设置为0
2、轮播图的手动控制
利用vue的ref先绑定引用的swipe根标签。
<mt-swipe ref="swipe" class="swipe" :auto="0"> <mt-swipe-item v-for="img in images" :key="img.id"> <img :src="/UploadFiles/2021-04-02/img.url">然后利用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 } }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
mint-ui
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 群星《超好听流行音乐10CD》五星珍藏版[WAV+CUE][6.6G]
- 群星1990-经典金曲金中之金2CD[日本天龙版][WAV+CUE]
- 群星《2024好听新歌05》十倍音质WAV分轨
- 诹访内晶子AkikoSuwanai巴赫:小提琴协奏曲《J.S.BachViolinConcertos》(flac)
- 苏打绿《原汁原味》[320K/MP3][27.44MB]
- 苏打绿《原汁原味》[FLAC/分轨][73.86MB]
- 群星《青春重置计划9新的凡人歌》[320KMP3][89.41MB]
- 苏曼《苏曼的夜晚HQII》[低速原抓WAV+CUE]
- 【电影原声】汉斯·季默《星际穿越》2014[FLAC+CUE整轨]
- 诹访内晶子AkikoSuwanai巴赫:小提琴协奏曲《J.S.BachViolinConcertos》(flac)
- 王力宏《十八般武艺》[低速原抓WAV+CUE]
- 王力宏《十八般武艺》[低速原抓WAV+CUE]
- 【爵士乐】VA-2024-ParamountJazzLoungeChillingExperience(FLAC)
- 群星《离歌 网剧原声带》[320K/MP3][249.78MB]
- 群星《离歌 网剧原声带》[FLAC/分轨][538.53MB]