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

2019-01-06 18:57:35 +08:00
 nzbin

仓库: 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 进行了改造。欢迎各位批评指正。

1569 次点击
所在节点    分享创造
2 条回复
marcong95
2019-01-07 01:19:42 +08:00
You might not need jQuery 的最佳实践是引入一个实现了 jQuery API 的 Zepto,怎么感觉好像哪里不对?
nzbin
2019-01-07 09:14:01 +08:00
@marcong95 jQuery 的核心是自己实现了 CSS 选择器引擎,并且写了大量的浏览器兼容代码,但是 Zepto 基本就是原生实现,和用原生操作 DOM 几乎没有区别,甚至有更多的性能优化,缺点就是按需加载方法,并且很多模块已经用不到了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/524417

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX