小程序 心得 & 坑(包含ECharts 和 Wux-Weapp的一些使用经验)

写小程序有一个多月了,有一些感想,有一些心得,也有一些吐槽。

思维比较发散,想到哪写到哪。

选择 mpvue,uniapp,taro,还是用原生?

如果只是因为开发人员更熟悉 vue/React 的语法,而去选择mpvue或者taro,我认为是没有必要的。小程序原生语法吸收了现代框架的特点,上手很快。小程序的文档里,语法是最不重要的部分,而需要花时间阅读的是api,登录流程、原生组件、wxml节点信息获取等等等等。也就是说,即使用了轮子,还是要花时间阅读小程序文档。

如果是看中第三方框架解决了原生语法的一些问题,比如数据流管理、渲染速度(据说uniapptaro比原生更快)等,可以考虑用轮子。

但是第三方轮子最终毕竟还是会转译成原生语法,小程序不支持的东西第三方框架肯定也不支持,还可能会有新的坑,可能会出现既要读第三方框架的文档,还需要读小程序文档的情况,技术选型时应考虑清楚。

UI 组件库选择

  • WeUI ---------->和微信保持分风格一致
  • Vant Weapp------------>电商类支持完整
  • colorUI ----------> 颜色丰富
  • iview Weapp -------------> 风格清新,组件兼容性好
  • Wux Weapp ------------> 个人开发者出品,组件异常丰富,让人垂涎。但是偶尔会遇到 bug,入坑需谨慎
  • taroUI ---------->和taro绑定(应该是吧?),风格偏硬朗,适合工具类小程序

不用**,臣妾做不到啊

小程序一些不太给力的地方都能忍一忍,比如一个组件4个文件,npm半残 等等等等,但是有些东西真心没法忍:

  1. wx.request(),对于习惯了promise的同学来说,没法忍。有时间的朋友可以自己封装,也可以用 mp-req,封装了自动wx.login()、拦截器、请求缓存等。
  2. 路由半残,小程序路由仿照get请求的形式,传任何类型的参数,都会变成 String。怎么讲,也不是不能用。不能忍的同学可以用 mp-router
  3. 没有 类似 cookie 这种可以缓存数据且会过期的 cache 可用,setStorageSync()存的数据不会过期。解决方案的话可以用setStorageSync() 加过期时间封装一个。

我遇到的 Wux weapp 组件库的 bug

用了 Wux 大概4、5个组件,遇到一些疑似bug。

  • DatePickerView 日期选择器 maxDateminDate传入 yyyyMMdd HH:mm:ss格式的时间字符串时,在 iOS 下年份的 pickview 会消失。
  • Picker 选择器 optionsvalueNumber时,组件无法正确初始化到选定的value

是否如微信官方所说,小程序能保证多端一致性?

很遗憾,没有。wxss 在三端(模拟器/iOS/Android)依然会有不一致的情况,模拟器看到的页面无法保证在 iOS/Android 可以保持一致; 甚至 Components内一些生命周期函数在模拟器上都有些意料之外的情况。

当然这些问题微信官方早晚会解决 :) 。

列表渲染 Components 时遇到的小问题

有些朋友可能会在Component()之外var/let一些全局变量。需要注意的是,在列表渲染该组件时,该变量的作用域在 page 内所有的该组件,某个子组件内改变该变量的值,会影响其他子组件。

ECharts 在小程序中的一些问题

  • ECharts 在 iOS 和 Android 下,默认的 font-size不同。
  • 在小程序中,ECharts 的 tooltip 默认不展示 X 轴的值。
  • y轴数据为 null 时,tooltip 处理略有不同,浏览器端展示-,小程序中展示null,且触发 tooltip 时 小程序端 canvas 图表会消失。
  • 在同一 ec-canvas(ECharts 的包装) 下多次 chart.setOption(option)时,建议 chart.setOption(option, true)刷新,否则可能会有图表重叠的问题。
  • canvas 在小程序中是最高层级,z-index设得再高都无法被遮盖。小程序官方提供了cover-view,但是兼容性不太好。目前没有太好的解决办法,一般是在需要遮罩时将ec-canvashidden="true"

那些文档里没有写(或者我木有看到)的事

  • Component()中可以使用observers取代properties中的observer,性能更好,支持同时监控多个data字段。注意:只有this.setData()能触发observersthis.data.x = x无法触发。
  • this.setData({x:x}) 包括两个操作:1) this.data.x = x,这个操作是同步的;2) 把data更新到view,这个操作是异步的。
  • 切换 tab 时无法触发任何文档中的生命周期事件,包括onHide()onSHow(),只有一个未完全支持的事件onTabItemTap()可用。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • 1. 前言 从16年微信小程序内测的时候到如今,微信小程序用时间与实践证明了自己的变革与价值,微信小程序的规则也在...
    cbw100阅读 11,060评论 1 37
  • 1. 前言 从16年微信小程序内测的时候到如今,微信小程序用时间与实践证明了自己的变革与价值,微信小程序的规则也在...
    keyuan0214阅读 67,067评论 4 26
  • 小程序多端框架到底应该选哪个? 最近前端届多端框架频出,相信很多有代码多端运行需求的开发者都会产生一些疑惑:这些框...
    架构师Javaspring阅读 3,534评论 0 6
  • 1 小谢离开那日,晴好的天气突然下起大雨,雨滴打在廊檐,噼噼啪啪,好像为他送行,我望着他远去的背影,直到视线模糊。...
    宋染青阅读 687评论 4 10
  • 刚刚出生的嘟,只有5斤7两。头发稀疏,没有眉毛,全身通红,皮肤褶皱较多,能明显看到胎皮,只能微睁一只眼,小小的手握...
    繁姐的自白屋阅读 420评论 3 4