React Base Fiddle (JSX)

State management React

by bhupendra negi

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js"></script>
<script src="https://npmcdn.com/react@latest/dist/react-with-addons.js"></script>
<script src="https://npmcdn.com/react-dom@latest/dist/react-dom.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>

<div id="container">
  <!-- This element's contents will be replaced with your component. -->
</div>

JavaScript 1.7

var LightningCounter = React.createClass({
   //before component is rendered
   getInitialState: function(){
   return {
   strikes:0
   }
   },
   // component is rendered
   render: function() {
   console.log("render called");
   console.log(this.state);
    return ( < h1 > {this.state.strikes} < /h1>);
   },
   // after component is rendered
   componentDidMount: function(){
   setInterval(this.timerTick,1000);
   },
   // set state 
   timerTick:function(){
   this.setState({
   strikes:this.state.strikes+1
   })
   
   }
   
  });



  var LightningCounterDisplay = React.createClass({
   render: function() {
    
    var divStyle = {
     width: 250,
     textAlign: "center",
     backgroundColor: "black",
     padding: 40,
     fontFamily: "sans-serif",
     color: "#999",
     borderRadius: 10
    };
    
    return (

     < div style = {divStyle} >

     < LightningCounter / >

     < /div>

    );

   }

  });

  ReactDOM.render( < LightningCounterDisplay / > ,
   document.querySelector("#container"));