V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
ClassicOldSong
V2EX  ›  JavaScript

超轻量类 jQuery 库 Blyde 发布

  •  2
     
  •   ClassicOldSong · 2016-05-13 21:09:39 +08:00 · 5150 次点击
    这是一个创建于 2903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    GitHub repo

    目前还是 Beta 版。

    其实写了有一段时间了。。。初衷也只是打算做一个简单的操作封装,因为 jQuery 里面很多操作用到的情况不多,而为了几个简单的操作引入整个 jQuery 并不是很值得,于是就有了 Blyde 。 Blyde 并不打算兼容老旧的浏览器,使用 ES6 编写,然后使用 babel 编译成 ES5 版本。体积仅有 1.7k(babel + uglify + gzip)。

    Blyde 同样提供了插件接口, Blyde 的插件注册机制可以防止方法被覆盖或者修改,同时也保证了插件注册的方法与 Blyde 本身的方法拥有完全一致的调用方法与内部调用过程。

    欢迎各位尝试以及提建议,但是请不要和 minggejs 对比,初衷不同,用途也不相同。

    我的其他项目:

    • typinyin.js - 实现用拼音自动输入中文特效的前端 js 插件
    • bPlayer - 比原生播放器好一点点的网页音频播放器
    • Wenku8-Converter - 轻松转换 Wenku8 上下载的 zip 格式小说为 txt 并修正编码为 UTF-8
    • NZone! - 一个二次元风格的简易在线聊天室(非开源)

    本人水平有限,各位权当茶余饭后的小点心看看就好,欢迎指出错误与不足,谢谢~

    23 条回复    2016-05-15 15:53:27 +08:00
    tcdw
        1
    tcdw  
       2016-05-13 21:30:20 +08:00 via Android
    感觉很不错呢,一定要试试。
    Librazy
        2
    Librazy  
       2016-05-13 21:33:01 +08:00
    赞,正准备看一点 ES 代码入门一下,就决定是你了
    zsx
        3
    zsx  
       2016-05-13 21:34:53 +08:00
    正想吐槽 Minggejs 结果先被吐槽了(
    otakustay
        4
    otakustay  
       2016-05-13 21:49:45 +08:00 via iPad
    但是 jQuery 可以定制啊
    bdbai
        5
    bdbai  
       2016-05-13 21:56:19 +08:00 via Android
    感谢分享,已 star 。
    顺便问一下 listMethods 中遍历节点为什么要用数组下标的形式,而不是 ES6 的 of ?此处有坑吗?
    ClassicOldSong
        6
    ClassicOldSong  
    OP
       2016-05-13 21:58:15 +08:00   ❤️ 1
    @bdbai Chrome 下有坑,会多一个"length"出来
    gaojun123456
        7
    gaojun123456  
       2016-05-13 22:01:14 +08:00 via iPhone
    ggg
    echopan
        8
    echopan  
       2016-05-13 22:02:24 +08:00
    老宋竟然出来了
    wjself
        9
    wjself  
       2016-05-13 22:36:16 +08:00 via Android
    已 star ~
    g0thic
        10
    g0thic  
       2016-05-13 23:44:47 +08:00
    @DIYgod 你的 aPlayer 出现竞争对手了。
    ClassicOldSong
        11
    ClassicOldSong  
    OP
       2016-05-13 23:48:16 +08:00
    @g0thic 233333333
    DIYgod
        12
    DIYgod  
       2016-05-13 23:54:11 +08:00
    ClassicOldSong
        13
    ClassicOldSong  
    OP
       2016-05-14 00:31:07 +08:00
    @DIYgod 一个人占俩啊喂
    g0thic
        14
    g0thic  
       2016-05-14 00:31:10 +08:00
    @DIYgod 。。。年轻人真会玩
    loading
        15
    loading  
       2016-05-14 07:05:03 +08:00 via Android
    能否对比下 zepto 呢?
    ClassicOldSong
        16
    ClassicOldSong  
    OP
       2016-05-14 11:19:09 +08:00 via Android
    @loading Blyde 实在太轻量以至于没有和 Zepto 对比的必要,关于效率有兴趣的可以测试下,目前 toggleClass 方法在操作多个 class name 的时候性能相较于原生的 classList.toggle 略高
    dotnil
        17
    dotnil  
       2016-05-14 21:05:45 +08:00
    直接挂 Element.prototype 和 NodeList.prototype 呀,感觉不太合适。很多方法,比如 `Element.prototype.remove()`、`Element.prototype.append()`,本来就有; class 相关的则不如直接操作 `Element@classList`(除了 toggleClass 麻烦点)。
    ClassicOldSong
        18
    ClassicOldSong  
    OP
       2016-05-14 23:14:43 +08:00
    @dotnil 写原生的话如果涉及操作比较多或者繁琐的话还是比较蛋疼的,我只是封装一下而且可以进行链式调用,并且直接往 prototype 上放是为了避免过多的所谓"Blyde 对象"带来困扰
    dotnil
        19
    dotnil  
       2016-05-15 08:19:23 +08:00   ❤️ 1
    @ClassicOldSong 覆盖的坏处是容易在协作上产生困扰,也不方便用别人的代码(假如他们用了被 Blyde 覆盖的原生方法而 Blyde 的方法 API 与原生有出入),传统 jQuery 的做法是比较高明的,我写过文章介绍 http://cyj.me/f2e/2015/05/25/yen/
    jy00566722
        20
    jy00566722  
       2016-05-15 09:07:34 +08:00
    最后一个求开源。。。。
    貌似打字是时时显示的?
    jy00566722
        21
    jy00566722  
       2016-05-15 10:24:56 +08:00
    里面的 NPC 是人类还是真机器人?
    quericy
        22
    quericy  
       2016-05-15 11:23:37 +08:00
    已 star~~围观一下老宋和网红
    ClassicOldSong
        23
    ClassicOldSong  
    OP
       2016-05-15 15:53:27 +08:00 via Android
    @dotnil 感谢,关于这块我未来再考虑一下如何处理。不过这样做的好处是无论任何选择器选择到的元素都可以正确地使用 Blyde 与 Blyde 插件注册的方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3202 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:30 · PVG 21:30 · LAX 06:30 · JFK 09:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.