• Stars
    star
    117
  • Rank 301,732 (Top 6 %)
  • Language
    JavaScript
  • Created about 8 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🎈 Neat是一个追求极致优雅,高效,简洁,只为现代浏览器的,jQuery兼容的JavaScript库,只有3.7K(gzip)!

Neat项目说明

Neat npm插件已发布,commonJs下可以安装使用:npm install neat-js

Neat 简介

Neat用jQuery 10%的代码量实现了其80%的功能,它是一个小巧的,兼容大多数jQuery Api的javascript库。

Neat 官网地址:Neat.js官网

如何使用

您有两种方式可以使用neat

  1. CDN引入

    <script src="https://unpkg.com/neat-js/dist/neat.min.js"></script>
  2. node环境下使用方式如下:

    1. 安装neat
    npm install neat-js 
    1. 使用
    var $= require("neat-js")
    $(function(){
        console.log($("li"))
    })

Neat主要特点

  1. 小:不到4k(min+gzip)。
  2. 全:支持: Dom操作、Touch event、Ajax、动画、Promise/Deferred。 兼容大多数jQuery api
  3. 专:只为现代浏览器设计,移动端优先,更轻量。
  4. 雅:实现上追求极致优雅,采用众多“黑科技”。
  5. 活:支持插件;可以与众多框架融合。

注:

  • Neat是继承自数组,所以neat对象可以使用所有原生数组的属性及方法,您完全可以把neat对象当成数组传递给其它函数
  • Neat 在gzip后仅3.7k。正是由于这一点,您再也不用纠结到项目到底是使用mvc还是dom操作框架了,有了neat之后,答案是:鱼于熊掌可以兼得.推荐使用neat+vue组合.Bug report

和jQuery对比

Neat借鉴了很多jQuery优秀的思想,为了使jQuery 使用者平滑过渡到neat,并同时向jQuery致敬,Neat大多数接口兼容jQuery,包括我们习惯并喜欢的$符。但是,Neat本身的定位并不是做移动端的jQuery,事实上,jQuery 3.0也是专门针对现代浏览器的,Neat和jQuery的区别主要有以下几点:

  1. Neat的dom操作和选择器是jQuery的一个子集,包括了核心的api. 去除了很多不常用的api。
  2. Neat支持touch事件。
  3. Neat底层实现更高效,优雅; 一来是neat没有兼容性包袱,二来是neat实现上使用了一些“黑科技”,使得代码实现极其巧妙简洁。
  4. Neat支持es5的浏览器,这在移动端没什么问题,如果您要开发pc端网站,并且要支持ie9以下的浏览器,Neat并不合适。

更详细的对比

和zepto对比

  • 更轻:本人曾经也是使用zepto,但踩的坑的太多,一气之下,索性自己写个。这也是neat的缘起。zepto对jquery的兼容还是比较多的(有些本人觉得完全没必要),当然这也是zepto起初的定位--移动端的jQuery。由于neat非常小而且效率高,所以可以完全不用但心它的对网站带来的效率变慢和流量过大的问题。当然,neat最大的特点是:简洁、优雅、高效。虽然zepto已经很小(最新版本1.2也要29k),但neat追求的是极致,并且做到了!
  • Neat ajax支持加载进度、链式调用、统一的异常捕获。
  • Neat实现了一个完整的promise/deffered,您可以方便的执行各种异步任务。

和React、angular相比

这个问题可以参见jQuery与两者的对比,详情可以谷歌。简单来说,React只是一个view层,引入虚拟dom的概念,而neat是直接对dom进行操作,优点是灵活,但缺点是性能,neat同时包含了数据层(ajax),并支持promise,当然,react可以服务端渲染,也有很多配套的数据组件。angular 是一个mvvc框架,数据驱动,本身比较重,如果用了angular就尽量遵守它那一套吧。

和vue

vue核心也是一个view层,不包括数据获取和touch事件,neat正好弥补了这两个,当然,vue2.0也引入了虚拟dom的概念,所以neat在配合vue使用时不建议过多的使用dom操作,getter方法却十分有用,比如text(),attr(),vue实例中有一个dom的引用$el,有些时候你可以通过neat实现一些vue实现起来比较麻烦的事,比如动态获取html属性、实现事件代理等。

您可以在github上创建一个issue,或者直接email: [email protected], Thanks!

More Repositories

1

fly

🚀 Supporting request forwarding and Promise based HTTP client for all JavaScript runtimes.
JavaScript
3,896
star
2

DSBridge-Android

🌎 A modern cross-platform JavaScript bridge, through which you can invoke each other's functions synchronously or asynchronously between JavaScript and native.
Java
3,755
star
3

ajax-hook

Intercepting browser's http requests which made by XMLHttpRequest.
JavaScript
2,572
star
4

DSBridge-IOS

🌏 A modern cross-platform JavaScript bridge, through which you can invoke each other's functions synchronously or asynchronously between JavaScript and native.
Objective-C
1,950
star
5

flutter_in_action_source_code

《Flutter实战》随书源码
Dart
795
star
6

grace

一个精巧、易用的微信小程序开发辅助库
JavaScript
407
star
7

WebViewJavascriptBridge

An Android bridge for sending messages between Java and JavaScript in WebView. and this is also a mirror of https://github.com/marcuswestin/WebViewJavascriptBridge which supports IOS platforms.
Java
328
star
8

flutter_in_action_2

Flutter实战第二版随书源码
Dart
181
star
9

DSpiderDemo-Android

客户端爬虫安卓端demo
Java
43
star
10

DSpiderDemo-ios

客户端爬虫ios端demo
Objective-C
36
star
11

gitme

Good stuff is worth waiting for.
23
star
12

keep-loader

一个用于在不同的打包环境下生成不同的代码的Webpack loader,就像C/C++中的宏特性一样。提供了一种在源码中控制打包阶段生成不同代码的能力。
JavaScript
18
star
13

es6-promise-always

Extend method always for es6 Promise object
JavaScript
12
star
14

flutter-comment

Flutter中文网评论
10
star
15

style-selector-jQuery-plugin

Custom jQuery selector, through which we can choose the specified CSS style characteristics of the DOM elements.
HTML
7
star
16

wendux.github.io

博客
Vue
6
star
17

comment-test

2
star
18

neat-official-website

The official website source code of Neat.js
JavaScript
1
star
19

Android-WaveProgressBar

Android波浪进度条,支持圆形、矩形,支持背景色圆形。
Java
1
star
20

MPA-Boilerplate

多页面web应用脚手架
JavaScript
1
star
21

node-http-static-server

Node http server for static files.
JavaScript
1
star