yss
yss
  • 发布:2015-01-07 12:51
  • 更新:2015-10-19 13:50
  • 阅读:8037

【吐槽】mui一大败笔之DOM操作

分类:MUI
mui

说明一点,我不是说他DOM操作写得不好之类的。
他的整体封装还是蛮不错的。快速上手,快速运行。做内部系统之类或者界面要求不高的,非常合适。

我指出两点:

  1. DOM操作不全,比起jQuery来说,有很多方法没有。
  2. jQuery的海量第三方库没法兼容,相当于把自己排除在社区之外。

特别希望mui能改进这点。做自己最擅长的事情(我认为是UI框架及中间件)。

最后,其实第一眼看到mui,其实我就想到了:http://onsen.io/

好久没来这里了,看到底下评论。其实我想说的是,mui自己封装了很多的DOM及BOM操作,在我看来是不必要的,因为,这些操作增加了mui的大小,另外对于开发者来说使用意义不大。

某些说不用jQuery或者说zepto之类的,这是你的选择,但你的选择意味着你需要自己额外再封装一些必要的操作或者说方法,比如说ajax方法。

2015-01-07 12:51 2 条评论 负责人:无 分享
已邀请:

最佳回复

DCloud_heavensoft

DCloud_heavensoft

不是你理解的。
mui,恰恰是永远都不会封装dom操作的。
因为mui的定位就是最高性能、最接近原生体验的移动UI框架。

  1. 与ui无关的它不做,你愿意用jq或zepto就自己用,并不冲突。
  2. 我们并不建议在移动App里引入jq或zepto这些框架,原因如下:
    • 为了性能,层层封装的框架,尤其是遍历循环dom时,影响效率,尤其在低端Android手机上,我们费死劲了才把性能以毫秒为单位一点点提升,搞这个的dom框架进来就让很多努力又付诸东流。
    • 原生JS挺简单,为毛用jq?
      jq的出现当时是因为ie6、7、8、9、10、chrome、ff这些浏览器不兼容,搞死了人,而且pc上浏览器性能好,跨平台兼容也不影响性能。但jq根本就不是为手机设计的。
      手机上只有webkit浏览器(忽略wp,反正mui不支持wp),根本就不需要jq这种封装框架来操作dom。
      而且HBuilder提供了代码块来简化开发,敲dg、dq,直接生成document.getElementById("")、document.querySelectorAll(""),非常快捷方便,而且执行性能非常高,而且没有浏览器兼容问题。

所以,mui与jq无关,想用你也可以用jq,但我们并不推荐用jq,没意义又降性能。

  • yss (作者)


    1. 我不反对使用原生去操作DOM,但是直接写原生的过于费劲,影响开发效率。而且某些操作,比如list中append一堆数据

    2. 本身mui其实是封装了很多的dom操作的。

    2015-01-08 15:48

  • Xero

    回复 yss:我现在敲习惯原生JS了,真心没觉得开发慢

    2015-11-07 09:08

  • Yizhiyu

    熟悉哪种用哪种呗,数据量不大的时候用jq还可以吧

    2018-05-15 09:33

qq123zhz

qq123zhz

可以前端使用ionic,后台服务连接5+平台

keller

keller

谁还用jq 这些低性能框架啊...js完全够了...jq 简直就是鸡肋 你要用你就用..别污染了mui

  • tigermo

    我不太理解大家的评论,

    首先mui很不错,我也在用。

    我觉得jq也很不错,低性能是什么意思?

    jq min 才93k。 比mui.min.js还小。

    而且mui没有

    append() - 在被选元素的结尾插入内容

    prepend() - 在被选元素的开头插入内容

    after() - 在被选元素之后插入内容

    before() - 在被选元素之前插入内容


    这类的操作,确实很麻烦。

    用原生js得理这些操作,只能像写xml一样,一个元素一个属性的拼加。非常不便

    2015-10-09 11:55

  • tigermo

    大家可以看看这个例子, http://www.w3school.com.cn/tiy/t.asp?f=jsref_node_appendchild

    如果用jq 会方便很多。

    2015-10-09 12:00

  • keller

    回复 tigermo:原生也有 appenChild

    2016-08-12 15:45

hilongjw

hilongjw - cov

原来移动端真的有人用Jquery

  • 朋也

    为啥不能用,我就用过

    2015-08-19 10:01

  • hilongjw

    原生的完全可以实现,何必还去用笨重的$

    2015-08-19 19:33

炸鸡排超人

炸鸡排超人

jQuery我觉得不合适 我就选择放弃 有什么错么
是很多优秀插件
我直接集成到我angular指令里了 不好么

该问题目前已经被锁定, 无法添加新回复