https://github.com/streammedev/react-compat
A runtime React compatibility layer
https://github.com/streammedev/react-compat
Last synced: 3 months ago
JSON representation
A runtime React compatibility layer
- Host: GitHub
- URL: https://github.com/streammedev/react-compat
- Owner: StreamMeDev
- License: other
- Created: 2017-05-17T18:09:04.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-17T18:22:30.000Z (about 9 years ago)
- Last Synced: 2025-03-21T12:15:27.689Z (over 1 year ago)
- Language: JavaScript
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# React Runtime Compatibility Layer
[](https://npmjs.org/package/@streammedev/react-compat)
[](https://npmjs.org/package/react-compat)
[](https://standardjs.com)
A module to maintain components with broad React version compatibility. This module can be
used to have React components which are compatible from versions `0.12.0` through `15.5.2`.
As new versions of react come out we will add to this as we go.
Provides compatibility for:
- Refs: Strings for pre 0.13, functions for after 0.14 and normalizes getting the dom node
- Create React Class: For after 15.5, includes the standalone module
- Prop Types: After 15.5 includes the standalone module
## Install
```
$ npm install --save @streammedev/react-compat
```
### With React `>15.5.0`
With newer React's you need to also install `prop-types` and `create-react-class`.
```
$ npm install --save prop-types create-react-class
```
## Usage
```javascript
var React = require('React')
var reactCompat = require('@streammedev/react-compat')
var MyComponent = reactCompat.createClass({
propTypes: {
foo: reactCompat.PropTypes.object
},
render: function () {
return
},
doSomething: function () {
var domNode = reactCompat.refGet(this, 'myRef')
// Do something with the dom node
}
})
```
## Development
This package follows semver. When you wish to publish a version run the proper npm command. For example, if we made a bug fix you can do this:
```
$ npm version patch
$ git push
$ npm publish
```
Here are the other types of version bumps:
- Major (`npm version major`): This is for breaking changes. Anytime a method is changed or the functionality is modified this bump should be made.
- Minor (`npm version minor`): This is for features additions. When a new method is added which doesn't affect the behavior of existing features, this bump should be made.
- Patch (`npm version patch`): This is for bug fixes. Only bump this if it is safe for production code to update wihout being QA'd. (AKA, almost never)
For each of these you can run a 'pre' version by prepending to the command, ex `npm version preminor`.
All feature development should be done on a branch off `master`. When a feature is complete and the pull request approved, publish a 'pre' version of the package for testing across environments.
To install that 'pre' version of the package do the following, where the version number contains the correct 'pre' version:
```
$ npm install --save @streammedev/react-compat@1.0.0-0
```
Running the tests:
```
$ npm install && npm test
```