react-lite is an implementation of React that optimizes for small script size.
Note: react-lite dose not support React v16.x now.
Framework | Version | Minified Size |
---|---|---|
Ember | 2.2.0 | 446kb |
Polymer | 1.0.6 | 183kb |
Angular | 1.4.8 | 148kb |
React | 0.14.3 | 136kb |
Web Components Polyfill | 0.7.19 | 118kb |
Riot | 2.3.11 | 20kb |
React-lite | 0.15.6 | 25kb |
preact + preact-compat | 8.2.1 | 5kb |
React-lite supports the core APIs of React, such as Virtual DOM, intended as a drop-in
replacement for React, when you don't need server-side rendering in browser(no ReactDOM.renderToString
& ReactDOM.renderToStaticMarkup
).
If you are using webpack, it's so easy to use react-lite, just config alias in webpack.config.js:
// webpack.config.js
{
resolve: {
alias: {
'react': 'react-lite',
'react-dom': 'react-lite'
}
}
}
Note: feel free to try react-lite, if something happen and we can't fix it in time, then use regular react instead.
You can install react-lite from npm:
npm install react-lite --save
supports IE9+ / ES5 enviroment
learn react-lite from React official documentation
just the same as what react does, see some demos below(I just add the alias to webpack.config.js, no need to do anything else):
via react-lite:
script|head|link
tag in client sideevent
object in react-lite is always persistent, and event.persist
is set as no-op to avoid throwing error.react-tap-event-plugin
, please use fastclick
instead. or add alias 'react-tap-event-plugin': 'react-lite/lib/react-tap-event-plugin'
, just like heretransform-react-inline-elements
, you will get a bundle include both react
and react-lite
.react-lite
just follow the best practice of React
.react-lite reuses react's unitest(170), you can see them in __test__
, and run the tests with:
npm test
License: MIT (See LICENSE file for details)