Last active
May 28, 2017 12:54
-
-
Save vagusX/f25a586df2c442c051f30bb1dbf5ba16 to your computer and use it in GitHub Desktop.
React Life Cycle// source http://jsbin.com/zukeyof
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); | |
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; | |
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } | |
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | |
var Outer = (function (_React$Component) { | |
_inherits(Outer, _React$Component); | |
function Outer() { | |
_classCallCheck(this, Outer); | |
_get(Object.getPrototypeOf(Outer.prototype), 'constructor', this).apply(this, arguments); | |
this.componentWillMount = logger('outer componentWillMount'); | |
this.componentDidMount = logger('outer componentDidMount'); | |
this.componentWillReceiveProps = logger('outer componentWillReceiveProps'); | |
this.shouldComponentUpdate = logger('outer shouldComponentUpdate'); | |
this.componentWillUpdate = logger('outer componentWillUpdate'); | |
this.componentDidUpdate = logger('outer componentDidUpdate'); | |
this.componentWillUnmount = logger('outer componentWillUnmount'); | |
} | |
_createClass(Outer, [{ | |
key: 'render', | |
value: function render() { | |
logger('outter render')(); | |
return React.createElement( | |
'div', | |
null, | |
React.createElement(Inner, { x: this.props.x }) | |
); | |
} | |
}]); | |
return Outer; | |
})(React.Component); | |
var Inner = (function (_React$Component2) { | |
_inherits(Inner, _React$Component2); | |
function Inner() { | |
_classCallCheck(this, Inner); | |
_get(Object.getPrototypeOf(Inner.prototype), 'constructor', this).apply(this, arguments); | |
this.componentWillMount = logger('inner componentWillMount'); | |
this.componentDidMount = logger('inner componentDidMount'); | |
this.componentWillReceiveProps = logger('inner componentWillReceiveProps'); | |
this.shouldComponentUpdate = logger('inner shouldComponentUpdate'); | |
this.componentWillUpdate = logger('inner componentWillUpdate'); | |
this.componentDidUpdate = logger('inner componentDidUpdate'); | |
this.componentWillUnmount = logger('inner componentWillUnmount'); | |
} | |
_createClass(Inner, [{ | |
key: 'render', | |
value: function render() { | |
logger('inner render')(); | |
return React.createElement( | |
'span', | |
null, | |
this.props.x | |
); | |
} | |
}]); | |
return Inner; | |
})(React.Component); | |
var logger = function logger(text) { | |
return function () { | |
console.log(text); | |
return true; | |
}; | |
}; | |
var App = (function (_React$Component3) { | |
_inherits(App, _React$Component3); | |
function App() { | |
_classCallCheck(this, App); | |
_get(Object.getPrototypeOf(App.prototype), 'constructor', this).apply(this, arguments); | |
this.state = { | |
x: 1 | |
}; | |
} | |
_createClass(App, [{ | |
key: 'componentDidMount', | |
value: function componentDidMount() { | |
var _this = this; | |
setTimeout(function () { | |
_this.setState({ x: 20 }); | |
}, 1000); | |
} | |
}, { | |
key: 'render', | |
value: function render() { | |
return React.createElement(Outer, { x: this.state.x }); | |
} | |
}]); | |
return App; | |
})(React.Component); | |
var container = document.querySelector('#root'); | |
ReactDOM.render(React.createElement(App, null), container); | |
setTimeout(function () { | |
ReactDOM.unmountComponentAtNode(container); | |
}, 2000); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<script src="http://fb.me/react-0.13.1.js"></script> | |
<meta charset="utf-8"> | |
<title>React Life Cycle</title> | |
</head> | |
<body> | |
<script src="https://fb.me/react-15.1.0.js"></script> | |
<script src="https://fb.me/react-dom-15.1.0.js"></script> | |
<div id="root"></div> | |
<script id="jsbin-javascript"> | |
'use strict'; | |
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); | |
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; | |
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } | |
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | |
var Outer = (function (_React$Component) { | |
_inherits(Outer, _React$Component); | |
function Outer() { | |
_classCallCheck(this, Outer); | |
_get(Object.getPrototypeOf(Outer.prototype), 'constructor', this).apply(this, arguments); | |
this.componentWillMount = logger('outer componentWillMount'); | |
this.componentDidMount = logger('outer componentDidMount'); | |
this.componentWillReceiveProps = logger('outer componentWillReceiveProps'); | |
this.shouldComponentUpdate = logger('outer shouldComponentUpdate'); | |
this.componentWillUpdate = logger('outer componentWillUpdate'); | |
this.componentDidUpdate = logger('outer componentDidUpdate'); | |
this.componentWillUnmount = logger('outer componentWillUnmount'); | |
} | |
_createClass(Outer, [{ | |
key: 'render', | |
value: function render() { | |
logger('outter render')(); | |
return React.createElement( | |
'div', | |
null, | |
React.createElement(Inner, { x: this.props.x }) | |
); | |
} | |
}]); | |
return Outer; | |
})(React.Component); | |
var Inner = (function (_React$Component2) { | |
_inherits(Inner, _React$Component2); | |
function Inner() { | |
_classCallCheck(this, Inner); | |
_get(Object.getPrototypeOf(Inner.prototype), 'constructor', this).apply(this, arguments); | |
this.componentWillMount = logger('inner componentWillMount'); | |
this.componentDidMount = logger('inner componentDidMount'); | |
this.componentWillReceiveProps = logger('inner componentWillReceiveProps'); | |
this.shouldComponentUpdate = logger('inner shouldComponentUpdate'); | |
this.componentWillUpdate = logger('inner componentWillUpdate'); | |
this.componentDidUpdate = logger('inner componentDidUpdate'); | |
this.componentWillUnmount = logger('inner componentWillUnmount'); | |
} | |
_createClass(Inner, [{ | |
key: 'render', | |
value: function render() { | |
logger('inner render')(); | |
return React.createElement( | |
'span', | |
null, | |
this.props.x | |
); | |
} | |
}]); | |
return Inner; | |
})(React.Component); | |
var logger = function logger(text) { | |
return function () { | |
console.log(text); | |
return true; | |
}; | |
}; | |
var App = (function (_React$Component3) { | |
_inherits(App, _React$Component3); | |
function App() { | |
_classCallCheck(this, App); | |
_get(Object.getPrototypeOf(App.prototype), 'constructor', this).apply(this, arguments); | |
this.state = { | |
x: 1 | |
}; | |
} | |
_createClass(App, [{ | |
key: 'componentDidMount', | |
value: function componentDidMount() { | |
var _this = this; | |
setTimeout(function () { | |
_this.setState({ x: 20 }); | |
}, 1000); | |
} | |
}, { | |
key: 'render', | |
value: function render() { | |
return React.createElement(Outer, { x: this.state.x }); | |
} | |
}]); | |
return App; | |
})(React.Component); | |
var container = document.querySelector('#root'); | |
ReactDOM.render(React.createElement(App, null), container); | |
setTimeout(function () { | |
ReactDOM.unmountComponentAtNode(container); | |
}, 2000); | |
</script> | |
<script id="jsbin-source-html" type="text/html"><!DOCTYPE html> | |
<html> | |
<head> | |
<script src="//fb.me/react-0.13.1.js"><\/script> | |
<meta charset="utf-8"> | |
<title>React Life Cycle</title> | |
</head> | |
<body> | |
<script src="https://fb.me/react-15.1.0.js"><\/script> | |
<script src="https://fb.me/react-dom-15.1.0.js"><\/script> | |
<div id="root"></div> | |
</body> | |
</html></script> | |
<script id="jsbin-source-javascript" type="text/javascript"> class Outer extends React.Component { | |
componentWillMount = logger('outer componentWillMount'); | |
componentDidMount = logger('outer componentDidMount'); | |
componentWillReceiveProps = logger('outer componentWillReceiveProps'); | |
shouldComponentUpdate = logger('outer shouldComponentUpdate'); | |
componentWillUpdate = logger('outer componentWillUpdate'); | |
componentDidUpdate = logger('outer componentDidUpdate'); | |
componentWillUnmount = logger('outer componentWillUnmount'); | |
render() { | |
logger('outter render')() | |
return <div><Inner x={this.props.x} /></div>; | |
} | |
} | |
class Inner extends React.Component { | |
componentWillMount = logger('inner componentWillMount'); | |
componentDidMount = logger('inner componentDidMount'); | |
componentWillReceiveProps = logger('inner componentWillReceiveProps'); | |
shouldComponentUpdate = logger('inner shouldComponentUpdate'); | |
componentWillUpdate = logger('inner componentWillUpdate'); | |
componentDidUpdate = logger('inner componentDidUpdate'); | |
componentWillUnmount = logger('inner componentWillUnmount'); | |
render() { | |
logger('inner render')() | |
return <span>{this.props.x}</span>; | |
} | |
} | |
const logger = text => () => { | |
console.log(text) | |
return true | |
} | |
class App extends React.Component { | |
state = { | |
x: 1 | |
} | |
componentDidMount () { | |
setTimeout(() => { | |
this.setState({x: 20}) | |
}, 1000) | |
} | |
render () { | |
return <Outer x={this.state.x} /> | |
} | |
} | |
const container = document.querySelector('#root') | |
ReactDOM.render(<App />, container) | |
setTimeout(() => { | |
ReactDOM.unmountComponentAtNode(container) | |
}, 2000) | |
</script></body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment