话说mui这个框架的UI确实挺好看的(个人觉得)
所以项目使用了他,结果里面的坑太TM多,不得不说MUI做东西太不用心了,社区不活跃,提问都没人管!;

mui第一个坑:

日期选择器默认值无效:
使用代码跟踪找到里面实现的方法,里面方法确实没毛病,但是callback不会执行!
比如设置日期选择器默认值;


picker.setSelectedValue("2018-06-06")

你会惊奇的发现:只是设置了年份的默认值

代码:


changeDate: function () {
let option = {
type: "date",
beginYear:1950,
endYear:2050,
value: '2019-10',
}; let DatePicker = new mui.DtPicker(option);
DatePicker.setSelectedValue("1988-11-01",100,function () {
});
DatePicker.show(function (selectItem) {
console.log(selectItem);
});
}, 解决办法:使用定时器一个个的设置;

mui第二个坑:

picker 回调不执行!


picker.pickers[0].setSelectedIndex(index,500,function(){ alert('callback'); //不执行 });

对于这个坑我也就呵呵了,这也就是出现时间设置默认值月份设置不上的原因;
没找到解决办法,mui社区提交Bug无人问津,唉!

mui第三个坑:

setSelectedValue/setSelectedIndex设置第二个值无效,
对这个我更就无语了!
比如:


picker.pickers[0].setSelectedValue('北京市');
picker.pickers[1].setSelectedValue('海淀区'); //你会惊奇的发现 只是设置了北京市 之后变换思路 使用setSelectedIndex 结果也一样

解决办法:


var picker = new mui.PopPicker({layer: 3});
picker.setData(cityData);
let address = that.withdrawal.address.split('-');
for(var index in cityData) {
let item1 = cityData[index];
if(address[0] == item1.text) {
picker.pickers[0].setSelectedIndex(index);
for(var index2 in item1.children){
let item2 = item1.children[index2];
if(address[1] == item2.text){
pcker.pickers[1].setSelectedIndex(index2);
for(var index3 in item2.children){
let item3 = item2.children[index3];
if(address[2] == item3.text){
picker.pickers[2].setSelectedIndex(index3);
}
}
}
}
}
}

解决办法:
使用for in 遍历之后使用

mui第四个坑;

上拉加载下拉刷新无效:
不知道是我代码的问题还是什么问题,反正就是没解决,最后参考饿了么App,使用点击加载更多内容!

mui第五个坑:

轮播图无效:
当你切换路由后页面轮播图就会卡主,解决办法 在vue生命周期函数中执行

mui第六个坑:

mui('#refreshContainer').pullRefresh().endPulldown();
报错 undefined
没有解决;

mui第七个坑:


mui('.mui-scroll-wrapper').scroll().scrollToBottom(0,0,100); 居然无效 呵呵;

mui第八个坑;

<router-link></router-link> 在wap中无法跳转,
因为mui禁用了a跳转,所以在wap中无法使用,
解决办法很简单,使用js跳转,唉 心累啊 果断换框架

light7中坑比较少,

light7第一个:

页面必须有.page元素 否则报错;
解决办法:很简单,就是给每个组件添加一个div.page

light7第二个坑

如果路由模式是hash模式;
就会报错,我就给改成History,改成History之后,无法打包成APP,
解决办法:修改全区配置关闭路由


$.config = {
autoInit: true,
router:false,
}

light7第三个坑

页面中使用了panel里面如果有跳转而且跳转到的页面有上拉加载和下拉刷新的话会无法使用
解决办法:
原因就是因为你跳转之后panel并没有关闭,但是你如果使用 $.closePanel();的话是无效的;
在页面加载的一瞬间打开panel再关闭


$.openPanel("#panel");
$.closePanel();

第二个解决办法:
就是不在panel里面使用a/router-link跳转,而是给他加@click="toPage(url)"
在toPage方法中关闭panel,之后this.$router.push();
这个办法自己没试过,猜想应该是可行的!

第三个解决办法:
目前这个办法应该是最好的了,
既解决了跳转之后无法使用上拉下拉,又使用了a/router-link,就是在跳转的时候先执行一个事件,关闭panel,之后再执行跳转,完美解决!


&lt;router-link @click.native="closePanel" tag="a" to="/collection" external &gt;
&lt;li class="item-content item-link"&gt;
&lt;div class="item-media"&gt;&lt;i class="icon icon-f7"&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class="item-inner"&gt;&lt;div class="item-title"&gt;我的收藏&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/router-link&gt;

&lt;script&gt;
export default {
name:'panel',
methods:{
closePanel:function () {
console.log('asdad');
$.closePanel();
}
}
}
&lt;/script&gt;

更多坑正在挖掘中....(一起跳坑的加群: 814270669)

心累啊,好看的UI都有一堆的坑;

要是大家有好看的ios风格的ui推荐一下,多谢!

来源:https://segmentfault.com/a/1190000015889407

uve (mui/light7)写APP的使用心得(大坑);的更多相关文章

  1. 使用hubuild,mui开发微信app—首页(一)

    写在前面 本系列文章我将介绍一下从零开始利用hubuild,mui实现微信app的开发,该系列是个人学习记录,所以在每篇文章中,都是从怎么去实现开始讲解,然后再把实例中涉及知识点做一个概述. 创建一个 ...

  2. 跨平台移动APP开发进阶(二)HTML5+、mui开发移动app教程

    前端开发APP,从HBuilder开始~ 序 通过 HTML5 开发移动App 时,会发现HTML5 很多能力不具备.为弥补HTML5 能力的不足,在W3C 中国的指导下成立了www.HTML5Plu ...

  3. 如何用php写app接口[原创]

    人生就如一列永不停止的列车,no one knows when or where to stop.总有那些美好,值得永远怀念.也总有那些希望,值得你无怨无悔的付出,追逐.去年年底带着女儿一起坐火车会湖 ...

  4. winform 写App.config配置文件——IT轮子系列(八)

    前言 在winform项目中,常常需要读app.config文件.如: var version = System.Configuration.ConfigurationManager.AppSetti ...

  5. 181102 Windows下安装kivy(用python写APP)

    了解到Instgram,知乎等APP是用python写的.我也决定学习用python写APP.这里我们需要安装kivy. 环境:win7,python3.6 安装方式:DOS命令窗口 注意事项:目前不 ...

  6. 用web技术写APP

    _ 听说会写web的人也能写APP, 抱着尝试的心态踏上路体验一番 http://www.ionic.wang/start-index.html 0x00 框架环境介绍 ionic是什么? https ...

  7. 使用mui框架开发App,当input获取焦点时,键盘弹出,底部导航栏上升。

    转自 https://blog.csdn.net/elementFei/article/details/72917393 感谢 问题: 使用mui框架开发App,当input获取焦点时,键盘弹出,底部 ...

  8. 移动app的一些心得

    周末的时候闲着没事,看到了个开源的红旅动漫的APP,于是自己就拿下来写了下,整个网站作者也解析成了接口,所以就可以写成app了,作者写的是用mui开发的,可以通过hbuilder软件打开,进行查看源代 ...

  9. 关于PHP写APP接口的安全问题探讨(一)

    在探讨这个问题之前,先要确认一点的是,作为一名互联网Coder,无论你是前端或者后端你都要对http请求要有一定的了解,知道http特性,要清楚的了解http里面的Request与Response是什 ...

随机推荐

  1. 移动web开发之像素和DPR详解

    前话: 像素在web开发中几乎天天用到,但到底什么是像素,移动端和桌面端的像素有区别吗,缩放对像素有影响吗,视网膜屏幕和像素有什么关系?关于这些问题,可能就不清楚了.本文将介绍关于像素的相关知识 什么 ...

  2. 《SaltStack技术入门与实践》—— Event和Reactor系统

    Event和Reactor系统 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Event是SaltStack里面的对每个事件的一个记录,它相比job ...

  3. linux运维、架构之路-Kubernetes集群部署

    一.kubernetes介绍        Kubernetes简称K8s,它是一个全新的基于容器技术的分布式架构领先方案.Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部 ...

  4. 用idea搭建SSM框架maven项目

    打开idea,点击New - Project 找到Maven一栏,因为要搭建的SpringMvc项目,所以选择webapp模板 填写好GroupId和ArtifactId后,一步步next,最后fin ...

  5. asp.net上传超大文件

    HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...

  6. 贪心整理&一本通1431:钓鱼题解

    题目传送 (其实有一个更正经的题解) 看了许久,发现这题貌似就是一个动态规划啊,但毕竟是贪心题库里的题,还是想想用贪心解吧. 经过(借鉴大佬思路)十分复杂的思考后,终于理解出了这题的贪心思路.该题的难 ...

  7. vue.js条件渲染 v-if else-if v-for

    v-if: 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: {{#if ok}} <!-- Handlebars 模板 --> <h1>Yes</ ...

  8. 如何理解重载与重写——Overload vs Override/Overwrite

    重载: 在同一个类中,拥有类似功能的同名方法之间的关系叫做重载. 重载的条件:1.具有相同方法名和类似功能: 2.参数的类型或者个数不同: 3.与返回值无关: 重写: 在子父类的继承关系中,子类继承父 ...

  9. jsoncpp 源码编译与简单使用

    ******************************************************标准C++实现jsoncpp 源码使用编译(VC2012 MFC)(Qt5.2 Widget ...

  10. SQL ORDER BY 两个列

    ORDER BY  后可加2个字段,用英文逗号隔开. f1用升序, f2降序,sql该这样写 ORDER BY  f1, f2  DESC 也可以这样写,更清楚: ORDER BY  f1 ASC, ...