Wednesday, February 3, 2016

React.js



https://apps.twitter.com
<div id="app">
React.render(
  React.DOM.h1(null, "Hello world!"),
  document.getElementById("app")
);
</div>
<script src="react/build/react.js"></script>

React.DOM.h1(
  {
    id: "my-heading"
  },
  "Hello world!"
);
React.DOM.h1(
  {id: "my-heading"},
  React.DOM.span(null, "Hello"),
  " world!"
);
React.render(
  <h1 id="my-heading">
    <span><em>Hell</em>o</span> world!
  </h1>,
  document.getElementById("app")
);
You cannot use class and for because these are reserved words in JavaScript. Instead you need className and htmlFor.
React.DOM.h1(
  {
    className: "pretty",
    htmlFor: "me"
  },
  "Hello world!"
);
When it comes to the style attribute, you cannot use a string as you normally do in HTML, but you need a JavaScript object instead. Avoiding strings is always a good idea to reduce the risks of XSS (Cross-site scripting) attacks.
React.DOM.h1(
  {
    style: {
      background: "black",
      color: "white",
      fontFamily: "Verdana"
    }
  },
  "Hello world!"
);

Custom Component
var Component = React.createClass({
  render: function() {
    return React.DOM.span(null, "My name is " + this.props.name);
  }
});
Passing the property when rendering the component looks like:

React.render(
  React.createElement(Component, {
    name: "Bob"
  }),
  document.getElementById("app")
);

var ComponentFactory = React.createFactory(Component);

React.render(
  ComponentFactory(),
  document.getElementById("app")
);
you can add a property called propTypes to declare the list of properties that your component accepts and their types.
var Component = React.createClass({
  propTypes: {
    name: React.PropTypes.string.isRequired
  },
  render: function() {
    return React.DOM.span(null, "My name is " + this.props.name);
  }
});
When state changes, React rebuilds the UI without you having to do anything.

var TextAreaCounter = React.createClass({

  propTypes: {
    value: React.PropTypes.string
  },

  _textChange: function(ev) {
    this.setProps({
      value: ev.target.value
    });
  },

  render: function() {
    return React.DOM.div(null,
      React.DOM.textarea({
        value: this.props.value,
        onChange: this._textChange
      }),
      React.DOM.h3(null, this.props.value.length)
    );
  }
});


var counter = (function() {
var value = 0;
return {
 get_value: function() {
   return value;
 },
 increment_value: function() {
   value += 1;
 }
}
})();

"use strict";
ReactJS framework is intended to avoid the shared mutable state and be idempotent.
declarative programming is the programming in which you specify what needs to be accomplished without telling how it needs to be done.

The Flux Architecture

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts