- Notifications
You must be signed in to change notification settings - Fork98
An implementation of React v15.x that optimizes for small script size
License
Lucifier129/react-lite
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
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-inreplacement for React, when you don't need server-side rendering in browser(noReactDOM.renderToString &ReactDOM.renderToStaticMarkup).
If you are using webpack, it's so easy to use react-lite, justconfig 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 useregular react instead.
You can install react-lite from npm:
npm install react-lite --save
supports IE9+ / ES5 enviroment
learn react-lite fromReact 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):
- works with material-ui:docs demo
- works with react-bootstrap:docs demo
- works with ant-design:demo
- works with react-router:examples
- works with redux:
- works with react-motion:demos
- works with react-d3-components:demos
- works with react-d3:demos
- react-litevdom-benchmark
- js-repaint-perf:
via react-lite:
- all of React.PropTypes method is no-op(empty function)
- use React in server side rendering, and use React-lite in browser
- react-lite will replace the dom tree with new dom tree
- you had better avoid
script|head|linktag in client side
- can not use react-dev-tool inspect react-lite, should switch to regular react for debugging
- react-lite only works with a JSX toolchain(issue)
- unlike react,
eventobject in react-lite is always persistent, andevent.persistis set as no-op to avoid throwing error. - react-lite can't work with
react-tap-event-plugin, please usefastclickinstead. or add alias'react-tap-event-plugin': 'react-lite/lib/react-tap-event-plugin', just likehere - can't work with
transform-react-inline-elements, you will get a bundle include bothreactandreact-lite. react-litejust follow the best practice ofReact.
react-lite reuses react's unitest(170), you can see them in__test__, and run the tests with:
npmtestLicense: MIT (See LICENSE file for details)
About
An implementation of React v15.x that optimizes for small script size
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.