@@ -94,6 +94,7 @@ const Counter = React.createClass({
9494 />
9595 return (
9696 < div id = "abc" >
97+ { Math . random ( ) > 0.5 && img }
9798 < span ref = { Math . random ( ) > 0.5 ? '' : 'test-ref' } data-test = "abaasdf" > count: { props . count } </ span >
9899 { ' ' }
99100 < button onClick = { ( ) => COUNT ( 'INCREMENT' ) } > +</ button >
@@ -114,7 +115,6 @@ const Counter = React.createClass({
114115 < button onClick = { this . getNum } > run</ button >
115116 < a href = "adbadfasdf" > test link</ a >
116117 < p dangerouslySetInnerHTML = { { __html : 'test dangerouslySetInnerHTML: ' + Math . random ( ) . toString ( 36 ) . substr ( 2 ) } } > </ p >
117- { Math . random ( ) > 0.5 && img }
118118 </ div >
119119 )
120120 }
@@ -232,7 +232,48 @@ let update = count => {
232232}
233233
234234let num = 10
235- update ( )
235+ // update()
236+
237+ var log ;
238+ var logger = function ( msg ) {
239+ return function ( ) {
240+ // return true for shouldComponentUpdate
241+ log . push ( msg ) ;
242+ return true ;
243+ } ;
244+ } ;
245+ var Outer = React . createClass ( {
246+ render : function ( ) {
247+ return < div > < Inner x = { this . props . x } /> </ div > ;
248+ } ,
249+ componentWillMount : logger ( 'outer componentWillMount' ) ,
250+ componentDidMount : logger ( 'outer componentDidMount' ) ,
251+ componentWillReceiveProps : logger ( 'outer componentWillReceiveProps' ) ,
252+ shouldComponentUpdate : logger ( 'outer shouldComponentUpdate' ) ,
253+ componentWillUpdate : logger ( 'outer componentWillUpdate' ) ,
254+ componentDidUpdate : logger ( 'outer componentDidUpdate' ) ,
255+ componentWillUnmount : logger ( 'outer componentWillUnmount' ) ,
256+ } ) ;
257+ var Inner = React . createClass ( {
258+ render : function ( ) {
259+ return < span > { this . props . x } </ span > ;
260+ } ,
261+ componentWillMount : logger ( 'inner componentWillMount' ) ,
262+ componentDidMount : logger ( 'inner componentDidMount' ) ,
263+ componentWillReceiveProps : logger ( 'inner componentWillReceiveProps' ) ,
264+ shouldComponentUpdate : logger ( 'inner shouldComponentUpdate' ) ,
265+ componentWillUpdate : logger ( 'inner componentWillUpdate' ) ,
266+ componentDidUpdate : logger ( 'inner componentDidUpdate' ) ,
267+ componentWillUnmount : logger ( 'inner componentWillUnmount' ) ,
268+ } ) ;
269+
270+
271+ var container = document . createElement ( 'root' ) ;
272+ log = [ ] ;
273+ React . render ( < Outer x = { 17 } /> , container ) ;
274+ log = [ ] ;
275+ React . unmountComponentAtNode ( container ) ;
276+ console . log ( log )
236277
237278
238279// class TestRootUpdateAtDidMount extends React.Component {
@@ -303,4 +344,39 @@ update()
303344// }
304345
305346// updateName('init')
306- // updateName('update')
347+ // updateName('update')
348+
349+
350+
351+
352+
353+ // class Test extends React.Component {
354+ // componentWillMount() {
355+ // console.log(this.props.index, 'willMount')
356+ // debugger
357+ // }
358+ // componentDidMount() {
359+ // console.log(this.props.index, 'didMount')
360+ // debugger
361+ // }
362+ // componentWillUnmount() {
363+ // console.log(this.props.index, 'willUnmount')
364+ // }
365+ // render() {
366+ // return <div>{this.props.index}</div>
367+ // }
368+ // }
369+
370+ // var root = (
371+ // <div>
372+ // <Test index={0} />
373+ // <Test index={1} />
374+ // <Test index={2} />
375+ // </div>)
376+
377+ // React.render(root, document.getElementById('container'))
378+
379+
380+
381+
382+
0 commit comments