Shallow Equal for React's props. Help to implement shouldComponentUpdate.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
test
.gitignore
.travis.yml
LICENSE
README.md
package.json
tsconfig.json
yarn.lock

README.md

shallow-equal-props Build Status

Shallow Equal for React's props.

It is a customize version of shallow-equal-object.

Features

  • Shallow equal for objects
  • Support React.Element
    • Check equality React.Element if props include React.Element like children,

Install

Install with npm:

npm install shallow-equal-props

Usage

Shallow equal for props.

import { shallowEqualProps } from "shallow-equal-props";
import * as React from "react";
class MyComponent extends React.Component {
    shouldComponentUpdate(nextProps){
        return !shallowEqualProps(this.props, nextProps);
    }
}

Support React.Element

// equal to React.Element
// Check: key and type
const elementA = React.createElement("div", { key: "a" });
const elementB = React.createElement("div", { key: "a" });
assert.equal(shallowEqualProps({
    child: elementA
}, {
    child: elementB
}), true, "should be equal");
// Not equal: type
const elementA = React.createElement("div", { key: "a" });
const elementB = React.createElement("span", { key: "a" });
assert.equal(shallowEqualProps({
    child: elementA
}, {
    child: elementB
}), false, "element is not same type");
// Not equal: key
const elementA = React.createElement("div", { key: "a" });
const elementB = React.createElement("div", { key: "b" });
assert.equal(shallowEqualProps({
    child: elementA
}, {
    child: elementB
}), false, "elementA is not equal elementB");

Changelog

See Releases page.

Running tests

Install devDependencies and Run npm test:

npm i -d && npm test

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

MIT © azu