Skip to content

Instantly share code, notes, and snippets.

@vagusX
Last active May 28, 2017 12:54
Show Gist options
  • Save vagusX/f25a586df2c442c051f30bb1dbf5ba16 to your computer and use it in GitHub Desktop.
Save vagusX/f25a586df2c442c051f30bb1dbf5ba16 to your computer and use it in GitHub Desktop.
React Life Cycle// source http://jsbin.com/zukeyof
'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);
<!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