Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reactive Elements

Convert React.js components into Web Components

Compatible with any custom elements implementation or polyfill.

Demo

UPD Convert Angular and Backbone views as well with MVC elements project

Example

Using component in HTML

<body>
	<my-react-component items="{window.someArray}"></my-react-component>
</body>

React component definition

/* @jsx React.DOM */
MyComponent = React.createClass({
  render: function() {
    console.log(this.props.items);
    console.log(this.props._content); // original tag contents in a <content>
    return <ul><li>React content</li></ul>;
  }
});

document.registerReact('my-react-component', MyComponent);

Find demo in corresponding folder.

Nesting

Original content of a custom element is injected to component as this.props._content.

<my-react-component>Hello world</my-react-component>

In this case props._content is equal to "Hello world".

Handling attributes change

You may add attributeChanged callback to component in order to handle / modify / filter incoming values.

attributeChanged: function(attributeName, oldValue, newValue) {
    console.log('Attribute ' + attributeName + ' was changed from ' + oldValue + ' to ' + newValue);
    this.props[attributeName] = parseInt(newValue);
}

NPM and Bower

  • NPM: reactive-elements
  • Bower: ReactiveElements

Dependencies

License

MIT: http://mit-license.org/

Copyright 2014 Denis Radin aka PixelsCommander

Inspired by Christopher Chedeau`s react-xtags

About

Allows to use React.js component as HTML element (web component)

Topics

Resources

Stars

695 stars

Watchers

17 watching

Forks

Releases

Packages

Used by

Contributors

Languages