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
$ npm install --save @streammedev/react-compat
With newer React's you need to also install prop-types
and create-react-class
.
$ npm install --save prop-types create-react-class
var React = require('React')
var reactCompat = require('@streammedev/react-compat')
var MyComponent = reactCompat.createClass({
propTypes: {
foo: reactCompat.PropTypes.object
},
render: function () {
return <div ref={reactCompat.refSet(this, 'myRef')} onClick={this.doSomething} />
},
doSomething: function () {
var domNode = reactCompat.refGet(this, 'myRef')
// Do something with the dom node
}
})
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/[email protected]
Running the tests:
$ npm install && npm test