@kirick/man

2.0.0-beta.7 • Public • Published

$man

$man is jQuery-like library, but without any shit.

Why?

I want to eliminate jQuery from my projects, but I still need to perform simple DOM queries and bind event handlers in a simple way. Writing document.querySelectorAll every time and iterate collections to make packet changes/binds is painful, so I grab some ideas and code from http://youmightnotneedjquery.com and wrote that light & simple library.

How it works?

$man is doing (probably) bad thing: it is extending NodeList and Element prototypes with jQuery-like functions.

Unlike jQuery, the main function ($man('div.class')) is just an alias to document.querySelectorAll and returning NodeList instance, so $man is making queries as fast as it can. Oh yes, almost all of $man functions are just lightweight wrappers over the native DOM functions.

Almost all of $man functions are sharing the same names and logic with jQuery functions, e.g. jQuery('article').find('div.element') can be written as $man('article').$find('div.element') with $man.

Important: $man was created to make only DOM traversal and event binding, so it does not contain AJAX (use fetch or axios), animations (use CSS trantisions instead) or functions like $.extend, $.type and $.proxy.

You can read $man's documentation here.

Can I just replace jQuery with $man?

The answer is no. $man is not fully compatible with jQuery and does not follow jQuery specifications strictly. You can't make find-and-replace operations in your jQuery code to migrate to $man. For example, some functions like filter and nextUntil do not accept function as an argument; $man does not support Sizzle selectors like :visible; functions like each will be never included to $man because you can iterate collections with for..of or Array.prototype.forEach.

Unlike jQuery, $man is standing away from adding a custom functionality or supporting old browsers with hacks: it's just making vanilla functions and methods ease to use. If you need to support IE8, you should make it yourself.

Package Sidebar

Install

npm i @kirick/man

Weekly Downloads

1

Version

2.0.0-beta.7

License

MIT

Unpacked Size

98.7 kB

Total Files

9

Last publish

Collaborators

  • kirick