An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# React Runtime Compatibility Layer

[![NPM Version](https://img.shields.io/npm/v/@streammedev/react-compat.svg)](https://npmjs.org/package/@streammedev/react-compat)
[![NPM Downloads](https://img.shields.io/npm/dm/@streammedev/react-compat.svg)](https://npmjs.org/package/react-compat)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](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
```