V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
nzbin
V2EX  ›  分享创造

匆匆忙忙写了一个模块化的 DOM 库

  •  1
     
  •   nzbin ·
    nzbin · 2019-01-06 18:57:35 +08:00 · 1659 次点击
    这是一个创建于 2146 天前的主题,其中的信息可能已经有所发展或是发生改变。

    仓库: https://github.com/nzbin/domq

    首先声明,这不是完全原创的项目,而是在 Zepto 的基础上改造的,可以说是一个迷你版的 jQuery。相比 Zepto,这个 DOM 库更纯粹,只有和 DOM 操作有关的 API,修复了 Zepto 的一些方法,而且支持模块化加载,非常适合搭配现有流行框架使用,目前该项目已经在图片查看器 https://github.com/nzbin/photoviewer 中使用。

    说一些题外话吧,很多人都说 jQuery 过时了,但是在短平快的小项目中,jQuery 依然是不二的选择。其次根据个人经验,在使用框架的时候,复杂的 DOM 操作操作依然很繁琐,几年前 GitHub 上就出现了类似 YouMightNotNeedjQuery 这一类的项目,但是通过对比也会发现,还是 jQuery 的 API 更加灵活。

    令人惊喜的是,Zepto 就是在通过原生 JS 实现了 jQuery 的一套 API,可以说是 YouMightNotNeedjQuery 的最佳实践。但是 Zepto 不支持模块化加载,很多方法用不到,而且目前维护有些停滞。所以本人最终还是根据自己的需求对 Zepto 进行了改造。欢迎各位批评指正。

    2 条回复    2019-01-07 09:14:01 +08:00
    marcong95
        1
    marcong95  
       2019-01-07 01:19:42 +08:00 via Android
    You might not need jQuery 的最佳实践是引入一个实现了 jQuery API 的 Zepto,怎么感觉好像哪里不对?
    nzbin
        2
    nzbin  
    OP
       2019-01-07 09:14:01 +08:00
    @marcong95 jQuery 的核心是自己实现了 CSS 选择器引擎,并且写了大量的浏览器兼容代码,但是 Zepto 基本就是原生实现,和用原生操作 DOM 几乎没有区别,甚至有更多的性能优化,缺点就是按需加载方法,并且很多模块已经用不到了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2562 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.