diff --git a/blog/2013/06/02/jsfiddle-integration.html b/blog/2013/06/02/jsfiddle-integration.html index 28a6464a95..cf70c564ab 100644 --- a/blog/2013/06/02/jsfiddle-integration.html +++ b/blog/2013/06/02/jsfiddle-integration.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/06/05/why-react.html b/blog/2013/06/05/why-react.html index c7ef9aa0bd..ed92265615 100644 --- a/blog/2013/06/05/why-react.html +++ b/blog/2013/06/05/why-react.html @@ -16,9 +16,9 @@ - + @@ -120,8 +120,8 @@ make views easier to extend and maintain. vulnerabilities. -

We've also created JSX, an optional -syntax extension, in case you prefer the readability of HTML to raw JavaScript.

+

We've also created JSX, an optional syntax +extension, in case you prefer the readability of HTML to raw JavaScript.

Reactive updates are dead simple. #

React really shines when your data changes over time.

@@ -170,12 +170,10 @@ for SEO, performance, code sharing and overall flexibility. event delegation. -

Head on over to -facebook.github.io/react to check -out what we have built. Our documentation is geared towards building -apps with the framework, but if you are interested in the -nuts and bolts -get in touch with us!

+

Head on over to facebook.github.io/react to check out what we have +built. Our documentation is geared towards building apps with the framework, +but if you are interested in the nuts and bolts +get in touch with us!

Thanks for reading!

diff --git a/blog/2013/06/12/community-roundup.html b/blog/2013/06/12/community-roundup.html index 8bddf121be..3eeb9e0145 100644 --- a/blog/2013/06/12/community-roundup.html +++ b/blog/2013/06/12/community-roundup.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/06/19/community-roundup-2.html b/blog/2013/06/19/community-roundup-2.html index 107eaa46f5..df0b934c9f 100644 --- a/blog/2013/06/19/community-roundup-2.html +++ b/blog/2013/06/19/community-roundup-2.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/06/21/react-v0-3-3.html b/blog/2013/06/21/react-v0-3-3.html index cbc154a7b6..fe206bfc56 100644 --- a/blog/2013/06/21/react-v0-3-3.html +++ b/blog/2013/06/21/react-v0-3-3.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/06/27/community-roundup-3.html b/blog/2013/06/27/community-roundup-3.html index 42a1a3fe85..2985d849c9 100644 --- a/blog/2013/06/27/community-roundup-3.html +++ b/blog/2013/06/27/community-roundup-3.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/07/02/react-v0-4-autobind-by-default.html b/blog/2013/07/02/react-v0-4-autobind-by-default.html index 3b982cee87..6988609e90 100644 --- a/blog/2013/07/02/react-v0-4-autobind-by-default.html +++ b/blog/2013/07/02/react-v0-4-autobind-by-default.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/07/03/community-roundup-4.html b/blog/2013/07/03/community-roundup-4.html index c48d84d556..a2b7a5b65e 100644 --- a/blog/2013/07/03/community-roundup-4.html +++ b/blog/2013/07/03/community-roundup-4.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html b/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html index e5baaf4ad9..89e0277e2e 100644 --- a/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html +++ b/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/07/17/react-v0-4-0.html b/blog/2013/07/17/react-v0-4-0.html index 7f362d092b..974c5bc7f8 100644 --- a/blog/2013/07/17/react-v0-4-0.html +++ b/blog/2013/07/17/react-v0-4-0.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/07/23/community-roundup-5.html b/blog/2013/07/23/community-roundup-5.html index 8000f5bf78..27a30846c8 100644 --- a/blog/2013/07/23/community-roundup-5.html +++ b/blog/2013/07/23/community-roundup-5.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/07/26/react-v0-4-1.html b/blog/2013/07/26/react-v0-4-1.html index 4bdcfc2043..345c305f4c 100644 --- a/blog/2013/07/26/react-v0-4-1.html +++ b/blog/2013/07/26/react-v0-4-1.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails.html b/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails.html index 701e1f37af..783391a831 100644 --- a/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails.html +++ b/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/08/05/community-roundup-6.html b/blog/2013/08/05/community-roundup-6.html index 8edf1f9d7e..ce7c7bcb5f 100644 --- a/blog/2013/08/05/community-roundup-6.html +++ b/blog/2013/08/05/community-roundup-6.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/08/19/use-react-and-jsx-in-python-applications.html b/blog/2013/08/19/use-react-and-jsx-in-python-applications.html index 19ca4dbf03..8de4446fbc 100644 --- a/blog/2013/08/19/use-react-and-jsx-in-python-applications.html +++ b/blog/2013/08/19/use-react-and-jsx-in-python-applications.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/08/26/community-roundup-7.html b/blog/2013/08/26/community-roundup-7.html index fd54b915bc..ede3293e54 100644 --- a/blog/2013/08/26/community-roundup-7.html +++ b/blog/2013/08/26/community-roundup-7.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/09/24/community-roundup-8.html b/blog/2013/09/24/community-roundup-8.html index 06c57e3c5c..e1f4ffc44e 100644 --- a/blog/2013/09/24/community-roundup-8.html +++ b/blog/2013/09/24/community-roundup-8.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/10/03/community-roundup-9.html b/blog/2013/10/03/community-roundup-9.html index d3299e858b..c8e9821591 100644 --- a/blog/2013/10/03/community-roundup-9.html +++ b/blog/2013/10/03/community-roundup-9.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/10/16/react-v0.5.0.html b/blog/2013/10/16/react-v0.5.0.html index 821dacf2e8..a9b4f3bcbf 100644 --- a/blog/2013/10/16/react-v0.5.0.html +++ b/blog/2013/10/16/react-v0.5.0.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/10/29/react-v0-5-1.html b/blog/2013/10/29/react-v0-5-1.html index 55d559ed91..0e9f12912f 100644 --- a/blog/2013/10/29/react-v0-5-1.html +++ b/blog/2013/10/29/react-v0-5-1.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/11/05/thinking-in-react.html b/blog/2013/11/05/thinking-in-react.html index c010d532ea..b15e3f8bb8 100644 --- a/blog/2013/11/05/thinking-in-react.html +++ b/blog/2013/11/05/thinking-in-react.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/11/06/community-roundup-10.html b/blog/2013/11/06/community-roundup-10.html index 9661d358a0..951ed74d10 100644 --- a/blog/2013/11/06/community-roundup-10.html +++ b/blog/2013/11/06/community-roundup-10.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/11/18/community-roundup-11.html b/blog/2013/11/18/community-roundup-11.html index fe0b365152..20dfca7e13 100644 --- a/blog/2013/11/18/community-roundup-11.html +++ b/blog/2013/11/18/community-roundup-11.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/12/18/react-v0.5.2-v0.4.2.html b/blog/2013/12/18/react-v0.5.2-v0.4.2.html index 04a27d3a78..81b37864d6 100644 --- a/blog/2013/12/18/react-v0.5.2-v0.4.2.html +++ b/blog/2013/12/18/react-v0.5.2-v0.4.2.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/12/19/react-v0.8.0.html b/blog/2013/12/19/react-v0.8.0.html index c76dab899d..76e1e2770b 100644 --- a/blog/2013/12/19/react-v0.8.0.html +++ b/blog/2013/12/19/react-v0.8.0.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/12/23/community-roundup-12.html b/blog/2013/12/23/community-roundup-12.html index 052a1ded08..f552f1399e 100644 --- a/blog/2013/12/23/community-roundup-12.html +++ b/blog/2013/12/23/community-roundup-12.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2013/12/30/community-roundup-13.html b/blog/2013/12/30/community-roundup-13.html index 530cb2248a..23e36149ce 100644 --- a/blog/2013/12/30/community-roundup-13.html +++ b/blog/2013/12/30/community-roundup-13.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2014/01/02/react-chrome-developer-tools.html b/blog/2014/01/02/react-chrome-developer-tools.html index 692093a5d5..5153942da2 100644 --- a/blog/2014/01/02/react-chrome-developer-tools.html +++ b/blog/2014/01/02/react-chrome-developer-tools.html @@ -16,9 +16,9 @@ - + diff --git a/blog/2014/01/06/community-roundup-14.html b/blog/2014/01/06/community-roundup-14.html index 82c612ca15..fe511e8062 100644 --- a/blog/2014/01/06/community-roundup-14.html +++ b/blog/2014/01/06/community-roundup-14.html @@ -16,9 +16,9 @@ - + diff --git a/blog/all.html b/blog/all.html index 0c1dc79f3c..a9b99a6978 100644 --- a/blog/all.html +++ b/blog/all.html @@ -16,9 +16,9 @@ - + diff --git a/blog/index.html b/blog/index.html index 215901c6f3..331562292c 100644 --- a/blog/index.html +++ b/blog/index.html @@ -16,9 +16,9 @@ - + diff --git a/blog/page2/index.html b/blog/page2/index.html index c9b176ed34..fa2a747edb 100644 --- a/blog/page2/index.html +++ b/blog/page2/index.html @@ -16,9 +16,9 @@ - + diff --git a/blog/page3/index.html b/blog/page3/index.html index 2b9b5634e4..dc67a45987 100644 --- a/blog/page3/index.html +++ b/blog/page3/index.html @@ -16,9 +16,9 @@ - + diff --git a/blog/page4/index.html b/blog/page4/index.html index 7350ddfd88..29d07e126f 100644 --- a/blog/page4/index.html +++ b/blog/page4/index.html @@ -16,9 +16,9 @@ - + diff --git a/blog/page5/index.html b/blog/page5/index.html index a13021a812..9c092d7871 100644 --- a/blog/page5/index.html +++ b/blog/page5/index.html @@ -16,9 +16,9 @@ - + diff --git a/blog/page6/index.html b/blog/page6/index.html index b7d849c1b8..4b8f8ef88d 100644 --- a/blog/page6/index.html +++ b/blog/page6/index.html @@ -16,9 +16,9 @@ - + @@ -245,8 +245,8 @@ make views easier to extend and maintain. vulnerabilities. -

We've also created JSX, an optional -syntax extension, in case you prefer the readability of HTML to raw JavaScript.

+

We've also created JSX, an optional syntax +extension, in case you prefer the readability of HTML to raw JavaScript.

Reactive updates are dead simple. #

React really shines when your data changes over time.

@@ -295,12 +295,10 @@ for SEO, performance, code sharing and overall flexibility. event delegation. -

Head on over to -facebook.github.io/react to check -out what we have built. Our documentation is geared towards building -apps with the framework, but if you are interested in the -nuts and bolts -get in touch with us!

+

Head on over to facebook.github.io/react to check out what we have +built. Our documentation is geared towards building apps with the framework, +but if you are interested in the nuts and bolts +get in touch with us!

Thanks for reading!

diff --git a/css/react.css b/css/react.css index 776f1a24ee..e8c777066e 100644 --- a/css/react.css +++ b/css/react.css @@ -1 +1 @@ -html{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-family:proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;color:#484848;line-height:1.28}p{margin:0 0 10px}.subHeader{font-size:21px;font-weight:200;line-height:30px;margin-bottom:10px}em{font-style:italic}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#7b7b7b}h1,h2,h3{line-height:40px}h1{font-size:39px}h2{font-size:31px}h3{font-size:23px}h4{font-size:17px}h5{font-size:14px}h6{font-size:11px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:16px}h4 small{font-size:14px}ul,ol{margin:0 0 10px 25px;padding:0}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}a{color:#c05b4d;text-decoration:none}a:hover,a:focus{color:#a5473a;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.center{text-align:center}html *{color-profile:sRGB;rendering-intent:auto}.cm-s-solarized-light{background-color:#f8f5ec;color:#637c84}.cm-s-solarized-light .emphasis{font-weight:bold}.cm-s-solarized-light .dotted{border-bottom:1px dotted #cb4b16}.cm-s-solarized-light .CodeMirror-gutter{background-color:#eee8d5;border-right:3px solid #eee8d5}.cm-s-solarized-light .CodeMirror-gutter .CodeMirror-gutter-text{color:#93a1a1}.cm-s-solarized-light .CodeMirror-cursor{border-left-color:#002b36 !important}.cm-s-solarized-light .CodeMirror-matchingbracket{color:#002b36;background-color:#eee8d5;box-shadow:0 0 10px #eee8d5;font-weight:bold}.cm-s-solarized-light .CodeMirror-nonmatchingbracket{color:#002b36;background-color:#eee8d5;box-shadow:0 0 10px #eee8d5;font-weight:bold;color:#dc322f;border-bottom:1px dotted #cb4b16}.cm-s-solarized-light span.cm-keyword{color:#268bd2}.cm-s-solarized-light span.cm-atom{color:#2aa198}.cm-s-solarized-light span.cm-number{color:#586e75}.cm-s-solarized-light span.cm-def{color:#637c84}.cm-s-solarized-light span.cm-variable{color:#637c84}.cm-s-solarized-light span.cm-variable-2{color:#b58900}.cm-s-solarized-light span.cm-variable-3{color:#cb4b16}.cm-s-solarized-light span.cm-comment{color:#93a1a1}.cm-s-solarized-light span.cm-property{color:#637c84}.cm-s-solarized-light span.cm-operator{color:#657b83}.cm-s-solarized-light span.cm-string{color:#36958e}.cm-s-solarized-light span.cm-error{font-weight:bold;border-bottom:1px dotted #cb4b16}.cm-s-solarized-light span.cm-bracket{color:#cb4b16}.cm-s-solarized-light span.cm-tag{color:#657b83}.cm-s-solarized-light span.cm-attribute{color:#586e75;font-weight:bold}.cm-s-solarized-light span.cm-meta{color:#268bd2}.cm-s-solarized-dark{background-color:#002b36;color:#839496}.cm-s-solarized-dark .emphasis{font-weight:bold}.cm-s-solarized-dark .dotted{border-bottom:1px dotted #cb4b16}.cm-s-solarized-dark .CodeMirror-gutter{background-color:#073642;border-right:3px solid #073642}.cm-s-solarized-dark .CodeMirror-gutter .CodeMirror-gutter-text{color:#586e75}.cm-s-solarized-dark .CodeMirror-cursor{border-left-color:#fdf6e3 !important}.cm-s-solarized-dark .CodeMirror-matchingbracket{color:#fdf6e3;background-color:#073642;box-shadow:0 0 10px #073642;font-weight:bold}.cm-s-solarized-dark .CodeMirror-nonmatchingbracket{color:#fdf6e3;background-color:#073642;box-shadow:0 0 10px #073642;font-weight:bold;color:#dc322f;border-bottom:1px dotted #cb4b16}.cm-s-solarized-dark span.cm-keyword{color:#839496;font-weight:bold}.cm-s-solarized-dark span.cm-atom{color:#2aa198}.cm-s-solarized-dark span.cm-number{color:#93a1a1}.cm-s-solarized-dark span.cm-def{color:#268bd2}.cm-s-solarized-dark span.cm-variable{color:#cb4b16}.cm-s-solarized-dark span.cm-variable-2{color:#cb4b16}.cm-s-solarized-dark span.cm-variable-3{color:#cb4b16}.cm-s-solarized-dark span.cm-comment{color:#586e75}.cm-s-solarized-dark span.cm-property{color:#b58900}.cm-s-solarized-dark span.cm-operator{color:#839496}.cm-s-solarized-dark span.cm-string{color:#6c71c4}.cm-s-solarized-dark span.cm-error{font-weight:bold;border-bottom:1px dotted #cb4b16}.cm-s-solarized-dark span.cm-bracket{color:#cb4b16}.cm-s-solarized-dark span.cm-tag{color:#839496}.cm-s-solarized-dark span.cm-attribute{color:#93a1a1;font-weight:bold}.cm-s-solarized-dark span.cm-meta{color:#268bd2}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:none;margin:0;padding:0}html{background:#f9f9f9}.left{float:left}.right{float:right}.container{padding-top:50px;min-width:960px}.wrap{width:960px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}.skinnyWrap{width:690px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}hr{height:0;border-top:1px solid #ccc;border-bottom:1px solid #eee}ul,li{margin-left:20px}h1 .anchor,h2 .anchor,h3 .anchor,h4 .anchor,h5 .anchor,h6 .anchor{margin-top:-50px;position:absolute}h1:hover .hash-link,h2:hover .hash-link,h3:hover .hash-link,h4:hover .hash-link,h5:hover .hash-link,h6:hover .hash-link{display:inline}.hash-link{color:#aaa;display:none}.nav-main{*zoom:1;background:#222;color:#fafafa;position:fixed;top:0;height:50px;box-shadow:0 0 5px rgba(0,0,0,0.5);width:100%;z-index:100}.nav-main:before,.nav-main:after{content:" ";display:table}.nav-main:after{clear:both}.nav-main a{color:#e9e9e9;text-decoration:none}.nav-main .nav-site{float:right;margin:0}.nav-main .nav-site li{margin:0}.nav-main .nav-site a{padding:0 8px;text-transform:uppercase;letter-spacing:1px;line-height:50px;display:inline-block;height:50px;color:#aaa}.nav-main .nav-site a:hover{color:#fafafa}.nav-main .nav-site a.active{color:#fafafa;border-bottom:3px solid #cc7a6f;background:#333}.nav-main .nav-home{color:#00d8ff;font-size:24px;line-height:50px}.nav-main .nav-logo{background-image:url("../img/logo_small.png");vertical-align:middle}@media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 1.3 / 1), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx){.nav-main .nav-logo{background-image:url("../img/logo_small@2x.png");background-size:38px 38px}}.nav-main ul{display:inline}.nav-main li{display:inline}.hero{height:300px;background:#2d2d2d;padding-top:50px;color:#e9e9e9;font-weight:300}.hero .text{font-size:64px;text-align:center}.hero .minitext{font-size:16px;text-align:center;text-transform:uppercase}.hero strong{color:#61dafb;font-weight:400}.buttons-unit{margin-top:60px;text-align:center}.buttons-unit a{color:#61dafb}.buttons-unit .button{font-size:24px;background:#cc7a6f;color:#fafafa}.buttons-unit .button:active{background:#c5695c}.buttons-unit.downloads{margin:30px 0}.nav-docs{color:#2d2d2d;font-size:14px;float:left;width:210px}.nav-docs ul{list-style:none;margin:0}.nav-docs ul ul{margin-left:20px}.nav-docs li{margin:0}.nav-docs h3{text-transform:uppercase;font-size:14px}.nav-docs a{color:#666;display:block}.nav-docs a:hover{text-decoration:none;color:#cc7a6f}.nav-docs a.active{color:#cc7a6f}.nav-docs .nav-docs-section{border-bottom:1px solid #ccc;border-top:1px solid #eee;padding:12px 0}.nav-docs .nav-docs-section:first-child{padding-top:0;border-top:0}.nav-docs .nav-docs-section:last-child{padding-bottom:0;border-bottom:0}.nav-blog li{margin-bottom:5px}.home-section{margin:50px 0}.home-divider{border-top-color:#bbb;margin:0 auto;width:400px}.marketing-row{*zoom:1;margin:50px 0}.marketing-row:before,.marketing-row:after{content:" ";display:table}.marketing-row:after{clear:both}.marketing-col{float:left;margin-left:40px;width:280px}.marketing-col h3{color:#2d2d2d;font-size:24px;font-weight:normal;text-transform:uppercase}.marketing-col p{font-size:16px}.marketing-col:first-child{margin-left:0}#examples h3,.home-presentation h3{color:#2d2d2d;font-size:24px;font-weight:normal;margin-bottom:5px}#examples p{margin:0 0 25px 0;max-width:600px}#examples .example{margin-top:60px}#examples #todoExample{font-size:14px}#examples #todoExample ul{list-style-type:square;margin:0 0 10px 0}#examples #todoExample input{border:1px solid #ccc;font:14px proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;padding:3px;width:150px}#examples #todoExample button{font:14px proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;margin-left:5px;padding:4px 10px}#examples #markdownExample textarea{border:1px solid #ccc;font:14px proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;margin-bottom:10px;padding:5px}.home-bottom-section{margin-bottom:100px}.docs-nextprev{*zoom:1}.docs-nextprev:before,.docs-nextprev:after{content:" ";display:table}.docs-nextprev:after{clear:both}.docs-prev{float:left}.docs-next{float:right}footer{font-size:13px;font-weight:600;margin-top:36px;margin-bottom:18px;overflow:auto}section.black content{padding-bottom:18px}.blogContent{*zoom:1;padding-top:20px}.blogContent:before,.blogContent:after{content:" ";display:table}.blogContent:after{clear:both}.blogContent blockquote{padding:5px 15px;margin:20px 0;background-color:#f8f5ec;border-left:5px solid #f7ebc6}.documentationContent{*zoom:1;padding-top:20px}.documentationContent:before,.documentationContent:after{content:" ";display:table}.documentationContent:after{clear:both}.documentationContent .subHeader{font-size:24px}.documentationContent h2{margin-top:30px}.documentationContent blockquote{padding:15px 30px 15px 15px;margin:20px 0;background-color:rgba(204,122,111,0.1);border-left:5px solid rgba(191,87,73,0.2)}.documentationContent blockquote h4{margin-top:0}.documentationContent blockquote p{margin-bottom:0}.documentationContent blockquote p:first-child{font-weight:bold;font-size:17.5px;line-height:20px;margin-top:0;text-rendering:optimizelegibility}.docs-prevnext{padding-top:40px;padding-bottom:40px}.jsxCompiler{margin:0 auto;padding-top:20px;width:1220px}.jsxCompiler #jsxCompiler{margin-top:20px}.jsxCompiler .playgroundPreview{padding:0;width:600px}.jsxCompiler .playgroundPreview pre{font-family:'source-code-pro', Menlo, 'Courier New', Consolas, monospace;font-size:13px;line-height:20px}.jsxCompiler .playgroundError{padding:15px 20px}.button{background:-webkit-linear-gradient( #9a9a9a,#646464);background:linear-gradient( #9a9a9a,#646464);border-radius:4px;padding:8px 16px;font-size:18px;font-weight:400;margin:0 12px;display:inline-block;color:#fafafa;text-decoration:none;text-shadow:0 1px 3px rgba(0,0,0,0.3);box-shadow:0 1px 1px rgba(0,0,0,0.2);text-decoration:none}.button:hover{text-decoration:none}.button:active{box-shadow:none}.hero .button{box-shadow:1px 3px 3px rgba(0,0,0,0.3)}.button.blue{background:-webkit-linear-gradient( #77a3d2,#4783c2);background:linear-gradient( #77a3d2,#4783c2)}.row{padding-bottom:4px}.row .span4{width:33.33%;display:table-cell}.row .span8{width:66.66%;display:table-cell}.row .span6{width:50%;display:table-cell}p{margin:10px 0}.highlight{padding:10px;margin-bottom:20px}figure{text-align:center}.inner-content{float:right;width:650px}.nosidebar .inner-content{float:none;margin:0 auto}.post-list-item+.post-list-item{margin-top:60px}div.CodeMirror pre,div.CodeMirror-linenumber,code{font-family:'source-code-pro', Menlo, 'Courier New', Consolas, monospace;font-size:13px;line-height:20px}div.CodeMirror-linenumber:after{content:'.'}.CodeMirror,div.CodeMirror-gutters,div.highlight{border:none}small code,li code,p code{color:#555;background-color:rgba(0,0,0,0.04);padding:1px 3px}.cm-s-default span.cm-string-2{color:inherit}.playground{*zoom:1}.playground:before,.playground:after{content:" ";display:table}.playground:after{clear:both}.playground::before{border-bottom:none !important;border-radius:3px 3px 0 0;padding:3px 7px;font-size:12px;font-weight:bold;color:#c2c0bc;background-color:#f1ede4;content:'Live editor'}.playground::before,.playgroundCode,.playgroundPreview{border:1px solid rgba(16,16,16,0.1)}.playgroundCode{border-radius:0 3px 3px 3px;float:left;overflow:hidden;width:600px}.playgroundPreview{background-color:white;border-radius:3px;float:right;padding:15px 20px;width:280px}.playgroundError{color:#c5695c;font-size:15px}.MarkdownEditor textarea{width:100%;height:100px}.hll{background-color:#f7ebc6;border-left:5px solid #f7d87c;display:block;margin-left:-14px;margin-right:-14px;padding-left:9px}.highlight .javascript .err{background-color:transparent;color:inherit}.highlight{position:relative;margin-bottom:14px;padding:30px 14px 14px;border:none;border-radius:0;overflow:auto}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit}.highlight pre .lineno{display:inline-block;width:22px;padding-right:5px;margin-right:10px;color:#bebec5;text-align:right}.highlight:after{position:absolute;top:0;right:0;left:0;padding:3px 7px;font-size:12px;font-weight:bold;color:#c2c0bc;background-color:#f1ede4;content:"Code"}.downloadCenter{text-align:center;margin-top:20px;margin-bottom:25px}.downloadSection:hover{text-decoration:none !important}@media screen and (max-width: 960px){.nav-main{position:static}.container{padding-top:0}}.post{margin-bottom:30px}.pagination{margin-bottom:30px;width:100%;overflow:hidden}.pagination .next{float:right} +html{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-family:proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;color:#484848;line-height:1.28}p{margin:0 0 10px}.subHeader{font-size:21px;font-weight:200;line-height:30px;margin-bottom:10px}em{font-style:italic}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#7b7b7b}h1,h2,h3{line-height:40px}h1{font-size:39px}h2{font-size:31px}h3{font-size:23px}h4{font-size:17px}h5{font-size:14px}h6{font-size:11px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:16px}h4 small{font-size:14px}ul,ol{margin:0 0 10px 25px;padding:0}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}a{color:#c05b4d;text-decoration:none}a:hover,a:focus{color:#a5473a;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.center{text-align:center}html *{color-profile:sRGB;rendering-intent:auto}.cm-s-solarized-light{background-color:#f8f5ec;color:#637c84}.cm-s-solarized-light .emphasis{font-weight:bold}.cm-s-solarized-light .dotted{border-bottom:1px dotted #cb4b16}.cm-s-solarized-light .CodeMirror-gutter{background-color:#eee8d5;border-right:3px solid #eee8d5}.cm-s-solarized-light .CodeMirror-gutter .CodeMirror-gutter-text{color:#93a1a1}.cm-s-solarized-light .CodeMirror-cursor{border-left-color:#002b36 !important}.cm-s-solarized-light .CodeMirror-matchingbracket{color:#002b36;background-color:#eee8d5;box-shadow:0 0 10px #eee8d5;font-weight:bold}.cm-s-solarized-light .CodeMirror-nonmatchingbracket{color:#002b36;background-color:#eee8d5;box-shadow:0 0 10px #eee8d5;font-weight:bold;color:#dc322f;border-bottom:1px dotted #cb4b16}.cm-s-solarized-light span.cm-keyword{color:#268bd2}.cm-s-solarized-light span.cm-atom{color:#2aa198}.cm-s-solarized-light span.cm-number{color:#586e75}.cm-s-solarized-light span.cm-def{color:#637c84}.cm-s-solarized-light span.cm-variable{color:#637c84}.cm-s-solarized-light span.cm-variable-2{color:#b58900}.cm-s-solarized-light span.cm-variable-3{color:#cb4b16}.cm-s-solarized-light span.cm-comment{color:#93a1a1}.cm-s-solarized-light span.cm-property{color:#637c84}.cm-s-solarized-light span.cm-operator{color:#657b83}.cm-s-solarized-light span.cm-string{color:#36958e}.cm-s-solarized-light span.cm-error{font-weight:bold;border-bottom:1px dotted #cb4b16}.cm-s-solarized-light span.cm-bracket{color:#cb4b16}.cm-s-solarized-light span.cm-tag{color:#657b83}.cm-s-solarized-light span.cm-attribute{color:#586e75;font-weight:bold}.cm-s-solarized-light span.cm-meta{color:#268bd2}.cm-s-solarized-dark{background-color:#002b36;color:#839496}.cm-s-solarized-dark .emphasis{font-weight:bold}.cm-s-solarized-dark .dotted{border-bottom:1px dotted #cb4b16}.cm-s-solarized-dark .CodeMirror-gutter{background-color:#073642;border-right:3px solid #073642}.cm-s-solarized-dark .CodeMirror-gutter .CodeMirror-gutter-text{color:#586e75}.cm-s-solarized-dark .CodeMirror-cursor{border-left-color:#fdf6e3 !important}.cm-s-solarized-dark .CodeMirror-matchingbracket{color:#fdf6e3;background-color:#073642;box-shadow:0 0 10px #073642;font-weight:bold}.cm-s-solarized-dark .CodeMirror-nonmatchingbracket{color:#fdf6e3;background-color:#073642;box-shadow:0 0 10px #073642;font-weight:bold;color:#dc322f;border-bottom:1px dotted #cb4b16}.cm-s-solarized-dark span.cm-keyword{color:#839496;font-weight:bold}.cm-s-solarized-dark span.cm-atom{color:#2aa198}.cm-s-solarized-dark span.cm-number{color:#93a1a1}.cm-s-solarized-dark span.cm-def{color:#268bd2}.cm-s-solarized-dark span.cm-variable{color:#cb4b16}.cm-s-solarized-dark span.cm-variable-2{color:#cb4b16}.cm-s-solarized-dark span.cm-variable-3{color:#cb4b16}.cm-s-solarized-dark span.cm-comment{color:#586e75}.cm-s-solarized-dark span.cm-property{color:#b58900}.cm-s-solarized-dark span.cm-operator{color:#839496}.cm-s-solarized-dark span.cm-string{color:#6c71c4}.cm-s-solarized-dark span.cm-error{font-weight:bold;border-bottom:1px dotted #cb4b16}.cm-s-solarized-dark span.cm-bracket{color:#cb4b16}.cm-s-solarized-dark span.cm-tag{color:#839496}.cm-s-solarized-dark span.cm-attribute{color:#93a1a1;font-weight:bold}.cm-s-solarized-dark span.cm-meta{color:#268bd2}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:none;margin:0;padding:0}html{background:#f9f9f9}.left{float:left}.right{float:right}.container{padding-top:50px;min-width:960px}.wrap{width:960px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}.skinnyWrap{width:690px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}hr{height:0;border-top:1px solid #ccc;border-bottom:1px solid #eee}ul,li{margin-left:20px}h1 .anchor,h2 .anchor,h3 .anchor,h4 .anchor,h5 .anchor,h6 .anchor{margin-top:-50px;position:absolute}h1:hover .hash-link,h2:hover .hash-link,h3:hover .hash-link,h4:hover .hash-link,h5:hover .hash-link,h6:hover .hash-link{display:inline}.hash-link{color:#aaa;display:none}.nav-main{*zoom:1;background:#222;color:#fafafa;position:fixed;top:0;height:50px;box-shadow:0 0 5px rgba(0,0,0,0.5);width:100%;z-index:100}.nav-main:before,.nav-main:after{content:" ";display:table}.nav-main:after{clear:both}.nav-main a{color:#e9e9e9;text-decoration:none}.nav-main .nav-site{float:right;margin:0}.nav-main .nav-site li{margin:0}.nav-main .nav-site a{padding:0 8px;text-transform:uppercase;letter-spacing:1px;line-height:50px;display:inline-block;height:50px;color:#aaa}.nav-main .nav-site a:hover{color:#fafafa}.nav-main .nav-site a.active{color:#fafafa;border-bottom:3px solid #cc7a6f;background:#333}.nav-main .nav-home{color:#00d8ff;font-size:24px;line-height:50px}.nav-main .nav-logo{background-image:url("../img/logo_small.png");vertical-align:middle}@media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 1.3 / 1), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx){.nav-main .nav-logo{background-image:url("../img/logo_small@2x.png");background-size:38px 38px}}.nav-main ul{display:inline}.nav-main li{display:inline}.hero{height:300px;background:#2d2d2d;padding-top:50px;color:#e9e9e9;font-weight:300}.hero .text{font-size:64px;text-align:center}.hero .minitext{font-size:16px;text-align:center;text-transform:uppercase}.hero strong{color:#61dafb;font-weight:400}.buttons-unit{margin-top:60px;text-align:center}.buttons-unit a{color:#61dafb}.buttons-unit .button{font-size:24px;background:#cc7a6f;color:#fafafa}.buttons-unit .button:active{background:#c5695c}.buttons-unit.downloads{margin:30px 0}.nav-docs{color:#2d2d2d;font-size:14px;float:left;width:210px}.nav-docs ul{list-style:none;margin:0}.nav-docs ul ul{margin-left:20px}.nav-docs li{margin:0}.nav-docs h3{text-transform:uppercase;font-size:14px}.nav-docs a{color:#666;display:block}.nav-docs a:hover{text-decoration:none;color:#cc7a6f}.nav-docs a.active{color:#cc7a6f}.nav-docs .nav-docs-section{border-bottom:1px solid #ccc;border-top:1px solid #eee;padding:12px 0}.nav-docs .nav-docs-section:first-child{padding-top:0;border-top:0}.nav-docs .nav-docs-section:last-child{padding-bottom:0;border-bottom:0}.nav-blog li{margin-bottom:5px}.home-section{margin:50px 0}.home-divider{border-top-color:#bbb;margin:0 auto;width:400px}.marketing-row{*zoom:1;margin:50px 0}.marketing-row:before,.marketing-row:after{content:" ";display:table}.marketing-row:after{clear:both}.marketing-col{float:left;margin-left:40px;width:280px}.marketing-col h3{color:#2d2d2d;font-size:24px;font-weight:normal;text-transform:uppercase}.marketing-col p{font-size:16px}.marketing-col:first-child{margin-left:0}#examples h3,.home-presentation h3{color:#2d2d2d;font-size:24px;font-weight:normal;margin-bottom:5px}#examples p{margin:0 0 25px 0;max-width:600px}#examples .example{margin-top:60px}#examples #todoExample{font-size:14px}#examples #todoExample ul{list-style-type:square;margin:0 0 10px 0}#examples #todoExample input{border:1px solid #ccc;font:14px proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;padding:3px;width:150px}#examples #todoExample button{font:14px proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;margin-left:5px;padding:4px 10px}#examples #markdownExample textarea{border:1px solid #ccc;font:14px proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;margin-bottom:10px;padding:5px}.home-bottom-section{margin-bottom:100px}.docs-nextprev{*zoom:1}.docs-nextprev:before,.docs-nextprev:after{content:" ";display:table}.docs-nextprev:after{clear:both}.docs-prev{float:left}.docs-next{float:right}footer{font-size:13px;font-weight:600;margin-top:36px;margin-bottom:18px;overflow:auto}section.black content{padding-bottom:18px}.blogContent{*zoom:1;padding-top:20px}.blogContent:before,.blogContent:after{content:" ";display:table}.blogContent:after{clear:both}.blogContent blockquote{padding:5px 15px;margin:20px 0;background-color:#f8f5ec;border-left:5px solid #f7ebc6}.documentationContent{*zoom:1;padding-top:20px}.documentationContent:before,.documentationContent:after{content:" ";display:table}.documentationContent:after{clear:both}.documentationContent .subHeader{font-size:24px}.documentationContent h2{margin-top:30px}.documentationContent blockquote{padding:15px 30px 15px 15px;margin:20px 0;background-color:rgba(204,122,111,0.1);border-left:5px solid rgba(191,87,73,0.2)}.documentationContent blockquote h4{margin-top:0}.documentationContent blockquote p{margin-bottom:0}.documentationContent blockquote p:first-child{font-weight:bold;font-size:17.5px;line-height:20px;margin-top:0;text-rendering:optimizelegibility}.docs-prevnext{padding-top:40px;padding-bottom:40px}.jsxCompiler{margin:0 auto;padding-top:20px;width:1220px}.jsxCompiler #jsxCompiler{margin-top:20px}.jsxCompiler .playgroundPreview{padding:0;width:600px}.jsxCompiler .playgroundPreview pre{font-family:'source-code-pro', Menlo, 'Courier New', Consolas, monospace;font-size:13px;line-height:20px}.jsxCompiler .playgroundError{padding:15px 20px}.button{background:-webkit-linear-gradient( #9a9a9a,#646464);background:linear-gradient( #9a9a9a,#646464);border-radius:4px;padding:8px 16px;font-size:18px;font-weight:400;margin:0 12px;display:inline-block;color:#fafafa;text-decoration:none;text-shadow:0 1px 3px rgba(0,0,0,0.3);box-shadow:0 1px 1px rgba(0,0,0,0.2);text-decoration:none}.button:hover{text-decoration:none}.button:active{box-shadow:none}.hero .button{box-shadow:1px 3px 3px rgba(0,0,0,0.3)}.button.blue{background:-webkit-linear-gradient( #77a3d2,#4783c2);background:linear-gradient( #77a3d2,#4783c2)}.row{padding-bottom:4px}.row .span4{width:33.33%;display:table-cell}.row .span8{width:66.66%;display:table-cell}.row .span6{width:50%;display:table-cell}p{margin:10px 0}.highlight{padding:10px;margin-bottom:20px}figure{text-align:center}.inner-content{float:right;width:650px}.nosidebar .inner-content{float:none;margin:0 auto}.post-list-item+.post-list-item{margin-top:60px}div.CodeMirror pre,div.CodeMirror-linenumber,code{font-family:'source-code-pro', Menlo, 'Courier New', Consolas, monospace;font-size:13px;line-height:20px}div.CodeMirror-linenumber:after{content:'.'}.CodeMirror,div.CodeMirror-gutters,div.highlight{border:none}.CodeMirror-readonly div.CodeMirror-cursor{visibility:hidden}small code,li code,p code{color:#555;background-color:rgba(0,0,0,0.04);padding:1px 3px}.cm-s-default span.cm-string-2{color:inherit}.playground{*zoom:1}.playground:before,.playground:after{content:" ";display:table}.playground:after{clear:both}.playground-tab{border-bottom:none !important;border-radius:3px 3px 0 0;padding:6px 8px;font-size:12px;font-weight:bold;color:#c2c0bc;background-color:#f1ede4;display:inline-block;cursor:pointer}.playgroundCode,.playground-tab,.playgroundPreview{border:1px solid rgba(16,16,16,0.1)}.playground-tab-active{color:#222}.playgroundCode{border-radius:0 3px 3px 3px;float:left;overflow:hidden;width:600px}.playgroundPreview{background-color:white;border-radius:3px;float:right;padding:15px 20px;width:280px}.playgroundError{color:#c5695c;font-size:15px}.MarkdownEditor textarea{width:100%;height:100px}.hll{background-color:#f7ebc6;border-left:5px solid #f7d87c;display:block;margin-left:-14px;margin-right:-14px;padding-left:9px}.highlight .javascript .err{background-color:transparent;color:inherit}.highlight{position:relative;margin-bottom:14px;padding:30px 14px 14px;border:none;border-radius:0;overflow:auto}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit}.highlight pre .lineno{display:inline-block;width:22px;padding-right:5px;margin-right:10px;color:#bebec5;text-align:right}.highlight:after{position:absolute;top:0;right:0;left:0;padding:3px 7px;font-size:12px;font-weight:bold;color:#c2c0bc;background-color:#f1ede4;content:"Code"}.downloadCenter{text-align:center;margin-top:20px;margin-bottom:25px}.downloadSection:hover{text-decoration:none !important}@media screen and (max-width: 960px){.nav-main{position:static}.container{padding-top:0}}.post{margin-bottom:30px}.pagination{margin-bottom:30px;width:100%;overflow:hidden}.pagination .next{float:right} diff --git a/docs/addons.html b/docs/addons.html index 61ed0fa877..8abc265c2f 100644 --- a/docs/addons.html +++ b/docs/addons.html @@ -16,9 +16,9 @@ - + diff --git a/docs/animation.html b/docs/animation.html index 4a80c642a2..e185b311b8 100644 --- a/docs/animation.html +++ b/docs/animation.html @@ -16,9 +16,9 @@ - + @@ -377,7 +377,7 @@ render: function() { var items = this.state.items.map(function(item, i) { return ( - <div key={i} onClick={this.handleRemove.bind(this, i)}> + <div key={item} onClick={this.handleRemove.bind(this, i)}> {item} </div> ); diff --git a/docs/class-name-manipulation.html b/docs/class-name-manipulation.html index 7b8c411cf9..ca1f667659 100644 --- a/docs/class-name-manipulation.html +++ b/docs/class-name-manipulation.html @@ -16,9 +16,9 @@ - + diff --git a/docs/component-api.html b/docs/component-api.html index 6aa61c9613..14117c5f7d 100644 --- a/docs/component-api.html +++ b/docs/component-api.html @@ -16,9 +16,9 @@ - + @@ -354,7 +354,7 @@

Component API

ReactComponent #

-

Component classses created by createClass() return instances of ReactComponent when called. Most of the time when you're using React you're either creating or consuming these component objects.

+

Component classes created by createClass() return instances of ReactComponent when called. Most of the time when you're using React you're either creating or consuming these component objects.

getDOMNode #

DOMElement getDOMNode()
 

If this component has been mounted into the DOM, this returns the corresponding native browser DOM element. This method is useful for reading values out of the DOM, such as form field values and performing DOM measurements.

@@ -413,6 +413,9 @@

Calling forceUpdate() will cause render() to be called on the component and its children, but React will still only update the DOM if the markup changes.

Normally you should try to avoid all uses of forceUpdate() and only read from this.props and this.state in render(). This makes your application much simpler and more efficient.

+

isMounted() #

bool isMounted()
+
+

isMounted() returns true if the component is rendered into the DOM, false otherwise. You can use this method to guard asynchronous calls to setState() or forceUpdate().

diff --git a/docs/component-specs.html b/docs/component-specs.html index 55b3948331..5fb0f55b16 100644 --- a/docs/component-specs.html +++ b/docs/component-specs.html @@ -16,9 +16,9 @@ - + @@ -387,7 +387,7 @@

Various methods are executed at specific points in a component's lifecycle.

Mounting: componentWillMount #

componentWillMount()
 
-

Invoked immediately before rendering occurs. If you call setState within this method, render() will see the updated state and will be executed only once despite the state change.

+

Invoked once, immediately before the initial rendering occurs. If you call setState within this method, render() will see the updated state and will be executed only once despite the state change.

Mounting: componentDidMount #

componentDidMount(DOMElement rootNode)
 

Invoked immediately after rendering occurs. At this point in the lifecycle, the component has a DOM representation which you can access via the rootNode argument or by calling this.getDOMNode().

diff --git a/docs/displaying-data.html b/docs/displaying-data.html index 16a8ac61f6..330c9da857 100644 --- a/docs/displaying-data.html +++ b/docs/displaying-data.html @@ -16,9 +16,9 @@ - + diff --git a/docs/dom-differences.html b/docs/dom-differences.html index 5a98fbf94f..45d5245bc1 100644 --- a/docs/dom-differences.html +++ b/docs/dom-differences.html @@ -16,9 +16,9 @@ - + diff --git a/docs/events.html b/docs/events.html index b638301e05..77421456f6 100644 --- a/docs/events.html +++ b/docs/events.html @@ -16,9 +16,9 @@ - + diff --git a/docs/examples.html b/docs/examples.html index 0968df9045..45a5377626 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -16,9 +16,9 @@ - + @@ -363,7 +363,6 @@ @@ -371,7 +370,7 @@ diff --git a/docs/forms.html b/docs/forms.html index 419e6d5959..12ebaeab79 100644 --- a/docs/forms.html +++ b/docs/forms.html @@ -16,9 +16,9 @@ - + diff --git a/docs/getting-started.html b/docs/getting-started.html index cd249ee458..e5044a719d 100644 --- a/docs/getting-started.html +++ b/docs/getting-started.html @@ -16,9 +16,9 @@ - + @@ -416,7 +416,7 @@

Note:

-

The comment parser is very strict right now, in order for it to pick up the @jsx modifier, two conditions are required. The @jsx comment block must be the first comment on the file. The comment must start with /** (/* and // will not work). If the parser can't find the @jsx comment, it will output the file without transforming it.

+

The comment parser is very strict right now; in order for it to pick up the @jsx modifier, two conditions are required. The @jsx comment block must be the first comment on the file. The comment must start with /** (/* and // will not work). If the parser can't find the @jsx comment, it will output the file without transforming it.

Update your HTML file as below:

diff --git a/docs/interactivity-and-dynamic-uis.html b/docs/interactivity-and-dynamic-uis.html index 4f69ebb247..1ffc48ead9 100644 --- a/docs/interactivity-and-dynamic-uis.html +++ b/docs/interactivity-and-dynamic-uis.html @@ -16,9 +16,9 @@ - + diff --git a/docs/jsx-gotchas.html b/docs/jsx-gotchas.html index a6ad568761..1de97fbcff 100644 --- a/docs/jsx-gotchas.html +++ b/docs/jsx-gotchas.html @@ -16,9 +16,9 @@ - + diff --git a/docs/jsx-in-depth.html b/docs/jsx-in-depth.html index 7aa391b99f..da236bb684 100644 --- a/docs/jsx-in-depth.html +++ b/docs/jsx-in-depth.html @@ -16,9 +16,9 @@ - + diff --git a/docs/more-about-refs.html b/docs/more-about-refs.html index 42b45902db..1f1b9ba6bf 100644 --- a/docs/more-about-refs.html +++ b/docs/more-about-refs.html @@ -16,9 +16,9 @@ - + diff --git a/docs/multiple-components.html b/docs/multiple-components.html index 790c6b6b2c..6a22694499 100644 --- a/docs/multiple-components.html +++ b/docs/multiple-components.html @@ -16,9 +16,9 @@ - + diff --git a/docs/reconciliation.html b/docs/reconciliation.html index 1a1e64e3e4..51d7920b34 100644 --- a/docs/reconciliation.html +++ b/docs/reconciliation.html @@ -16,9 +16,9 @@ - + @@ -414,7 +414,7 @@ renderB: <div><span>first&l renderB: <div><span>second</span><span>first</span></div> => [replaceAttribute textContent 'second'], [insertNode <span>first</span>]
-

There are many algorithms that attempt to find the minimum sets of operations to transform a list of elements. Levenshtein distance can find the minimum using single element insertion, deletion and substitution in O(n2). Even if we were to use Levenshtein, this doesn't find when a node has moved into another position and algorithms to do that have a much worst complexity.

+

There are many algorithms that attempt to find the minimum sets of operations to transform a list of elements. Levenshtein distance can find the minimum using single element insertion, deletion and substitution in O(n2). Even if we were to use Levenshtein, this doesn't find when a node has moved into another position and algorithms to do that have much worse complexity.

Keys #

In order to solve this seemingly intractable issue, an optional attribute has been introduced. You can provide for each child a key that is going to be used to do the matching. If you specify a key, React is now able to find insertion, deletion, substitution and moves in O(n) using a hash table.

renderA: <div><span key="first">first</span></div>
diff --git a/docs/reusable-components.html b/docs/reusable-components.html
index 83ea6c829c..2a5609b580 100644
--- a/docs/reusable-components.html
+++ b/docs/reusable-components.html
@@ -16,9 +16,9 @@
   
   
 
-  
   
   
+  
 
   
   
@@ -355,7 +355,7 @@
     

When designing interfaces, break down the common design elements (buttons, form fields, layout components, etc) into reusable components with well-defined interfaces. That way, the next time you need to build some UI you can write much less code, which means faster development time, less bugs, and less bytes down the wire.

Prop Validation #

-

As your app grows it's helpful to ensure that your components are used correctly. We do this by allowing you to specify propTypes. React.PropTypes exports a range of validators that can be used to make sure the data you receive is valid. When an invalid value is provided for a prop, an error will be thrown. Here is an example documenting the different validators provided:

+

As your app grows it's helpful to ensure that your components are used correctly. We do this by allowing you to specify propTypes. React.PropTypes exports a range of validators that can be used to make sure the data you receive is valid. When an invalid value is provided for a prop, a warning will be shown in the JavaScript console. Note that for performance reasons propTypes is only checked in development mode. Here is an example documenting the different validators provided:

React.createClass({
   propTypes: {
     // You can declare that a prop is a specific JS primitive. By default, these
@@ -375,14 +375,14 @@
     // JS's instanceof operator.
     someClass: React.PropTypes.instanceOf(SomeClass),
 
-    // You can chain any of the above with isRequired to make sure an error is
-    // thrown if the prop isn't provided.
+    // You can chain any of the above with isRequired to make sure a warning is
+    // shown if the prop isn't provided.
     requiredFunc: React.PropTypes.func.isRequired
 
     // You can also specify a custom validator.
     customProp: function(props, propName, componentName) {
       if (!/matchme/.test(props[propName])) {
-        throw new Error('Validation failed!')
+        console.warn('Validation failed!');
       }
     }
   },
@@ -421,7 +421,7 @@
 

Mixins #

Components are the best way to reuse code in React, but sometimes very different components may share some common functionality. These are sometimes called cross-cutting concerns. React provides mixins to solve this problem.

-

One common use case is a component wanting to update itself on a time interval. It's easy to use setInterval(), but it's important to cancel your interval when you don't need it anymore to save memory. React provides lifecycle methods that let you know when a component is about to be created or destroyed. Let's create a simple mixin that uses these methods to provide an easy setInterval() function that will automatically get cleaned up when your component is destroyed.

+

One common use case is a component wanting to update itself on a time interval. It's easy to use setInterval(), but it's important to cancel your interval when you don't need it anymore to save memory. React provides lifecycle methods that let you know when a component is about to be created or destroyed. Let's create a simple mixin that uses these methods to provide an easy setInterval() function that will automatically get cleaned up when your component is destroyed.

/** @jsx React.DOM */
 
 var SetIntervalMixin = {
diff --git a/docs/special-non-dom-attributes.html b/docs/special-non-dom-attributes.html
index e713cfd4be..327a7a522f 100644
--- a/docs/special-non-dom-attributes.html
+++ b/docs/special-non-dom-attributes.html
@@ -16,9 +16,9 @@
   
   
 
-  
   
   
+  
 
   
   
diff --git a/docs/tags-and-attributes.html b/docs/tags-and-attributes.html
index ad0e5501ce..2211d8f270 100644
--- a/docs/tags-and-attributes.html
+++ b/docs/tags-and-attributes.html
@@ -16,9 +16,9 @@
   
   
 
-  
   
   
+  
 
   
   
diff --git a/docs/tooling-integration.html b/docs/tooling-integration.html
index 905b17bc76..04600149a9 100644
--- a/docs/tooling-integration.html
+++ b/docs/tooling-integration.html
@@ -16,9 +16,9 @@
   
   
 
-  
   
   
+  
 
   
   
@@ -390,8 +390,6 @@ that support *.tmLanguage.
 
  • Linting provides accurate line numbers after compiling without sourcemaps.
  • Elements use standard scoping so linters can find usage of out-of-scope components.
  • -

    React Page #

    -

    To get started on a new project, you can use react-page, a complete React project creator. It supports both server-side and client-side rendering, source transform and packaging JSX files using CommonJS modules, and instant reload.

    diff --git a/docs/top-level-api.html b/docs/top-level-api.html index 216c3d1c45..a3fdb6cd3a 100644 --- a/docs/top-level-api.html +++ b/docs/top-level-api.html @@ -16,9 +16,9 @@ - + @@ -371,7 +371,7 @@ [function callback] )
    -

    Render a React component into the DOM in the supplied container.

    +

    Render a React component into the DOM in the supplied container and return a reference to the component.

    If the React component was previously rendered into container, this will perform an update on it and only mutate the DOM as necessary to reflect the latest React component.

    diff --git a/docs/tutorial.html b/docs/tutorial.html index 6ccc3b8cf4..3634edbe50 100644 --- a/docs/tutorial.html +++ b/docs/tutorial.html @@ -16,9 +16,9 @@ - + diff --git a/docs/two-way-binding-helpers.html b/docs/two-way-binding-helpers.html index d2984009d1..e629daad4d 100644 --- a/docs/two-way-binding-helpers.html +++ b/docs/two-way-binding-helpers.html @@ -16,9 +16,9 @@ - + diff --git a/docs/videos.html b/docs/videos.html index e5032ab33d..554773453f 100644 --- a/docs/videos.html +++ b/docs/videos.html @@ -16,9 +16,9 @@ - + diff --git a/docs/why-react.html b/docs/why-react.html index f7f55382f1..eeb38f53af 100644 --- a/docs/why-react.html +++ b/docs/why-react.html @@ -16,9 +16,9 @@ - + diff --git a/docs/working-with-the-browser.html b/docs/working-with-the-browser.html index 653aa22afe..95b0f8e2f8 100644 --- a/docs/working-with-the-browser.html +++ b/docs/working-with-the-browser.html @@ -16,9 +16,9 @@ - + @@ -354,7 +354,7 @@

    Working With the Browser

    React provides powerful abstractions that free you from touching the DOM directly in most cases, but sometimes you simply need to access the underlying API, perhaps to work with a third-party library or existing code.

    -

    The Mock DOM #

    +

    The Virtual DOM #

    React is so fast because it never talks to the DOM directly. React maintains a fast in-memory representation of the DOM. render() methods return a description of the DOM, and React can diff this description with the in-memory representation to compute the fastest way to update the browser.

    Additionally, React implements a full synthetic event system such that all event objects are guaranteed to conform to the W3C spec despite browser quirks, and everything bubbles consistently and in a performant way cross-browser. You can even use some HTML5 events in IE8!

    diff --git a/downloads.html b/downloads.html index ba3c5a1fe6..06ec202f04 100644 --- a/downloads.html +++ b/downloads.html @@ -16,9 +16,9 @@ - + diff --git a/html-jsx.html b/html-jsx.html index f33b3d115f..165c6b844c 100644 --- a/html-jsx.html +++ b/html-jsx.html @@ -16,9 +16,9 @@ - + diff --git a/index.html b/index.html index ead711aa0b..a9c31b1abe 100644 --- a/index.html +++ b/index.html @@ -16,9 +16,9 @@ - + @@ -107,8 +107,12 @@ React components implement a render() method that takes input data and returns what to display. This example uses an XML-like syntax called JSX. Input data that is passed into the component can be accessed by - render() via this.props.
    - JSX is optional and not required to use React. + render() via this.props. +

    +

    + JSX is optional and not required to use React. Try + clicking on "Compiled JS" to see the raw JavaScript code produced by + the JSX compiler.

    @@ -118,8 +122,7 @@ In addition to taking input data (accessed via this.props), a component can maintain internal state data (accessed via this.state). When a component's state data changes, the rendered markup will be - updated by re-invoking render().
    - This example demonstrates use of React without JSX. + updated by re-invoking render().

    diff --git a/js/es5-sham.js b/js/es5-sham.js new file mode 100644 index 0000000000..20c9845975 --- /dev/null +++ b/js/es5-sham.js @@ -0,0 +1,446 @@ +// Copyright 2009-2012 by contributors, MIT License +// vim: ts=4 sts=4 sw=4 expandtab + +//Add semicolon to prevent IIFE from being passed as argument to concated code. +; +// Module systems magic dance +(function (definition) { + // RequireJS + if (typeof define == "function") { + define(definition); + // YUI3 + } else if (typeof YUI == "function") { + YUI.add("es5-sham", definition); + // CommonJS and @@ -61,7 +61,7 @@

    JSX Compiler

    This tool demonstrates how JSX syntax - is desguared into native JavaScript. + is desugared into native JavaScript.

    diff --git a/support.html b/support.html index 8aa1b2aa98..29b3174e97 100644 --- a/support.html +++ b/support.html @@ -16,9 +16,9 @@ - + diff --git a/tips/children-props-type.html b/tips/children-props-type.html index b3917309c7..337a585f13 100644 --- a/tips/children-props-type.html +++ b/tips/children-props-type.html @@ -16,9 +16,9 @@ - + diff --git a/tips/communicate-between-components.html b/tips/communicate-between-components.html index 9fe659bf37..26d5bc9ad2 100644 --- a/tips/communicate-between-components.html +++ b/tips/communicate-between-components.html @@ -16,9 +16,9 @@ - + diff --git a/tips/componentWillReceiveProps-not-triggered-after-mounting.html b/tips/componentWillReceiveProps-not-triggered-after-mounting.html index c95782b738..058d4c0ef9 100644 --- a/tips/componentWillReceiveProps-not-triggered-after-mounting.html +++ b/tips/componentWillReceiveProps-not-triggered-after-mounting.html @@ -16,9 +16,9 @@ - + diff --git a/tips/controlled-input-null-value.html b/tips/controlled-input-null-value.html index d81ea341a8..58fc8ca230 100644 --- a/tips/controlled-input-null-value.html +++ b/tips/controlled-input-null-value.html @@ -16,9 +16,9 @@ - + diff --git a/tips/dom-event-listeners.html b/tips/dom-event-listeners.html index 5daca057af..ab71870f7d 100644 --- a/tips/dom-event-listeners.html +++ b/tips/dom-event-listeners.html @@ -16,9 +16,9 @@ - + diff --git a/tips/expose-component-functions.html b/tips/expose-component-functions.html index 8880745b6e..43b315b358 100644 --- a/tips/expose-component-functions.html +++ b/tips/expose-component-functions.html @@ -16,9 +16,9 @@ - + diff --git a/tips/false-in-jsx.html b/tips/false-in-jsx.html index 7fddee2f30..6550a158b8 100644 --- a/tips/false-in-jsx.html +++ b/tips/false-in-jsx.html @@ -16,9 +16,9 @@ - + diff --git a/tips/if-else-in-JSX.html b/tips/if-else-in-JSX.html index b34d6e596f..d696bbd039 100644 --- a/tips/if-else-in-JSX.html +++ b/tips/if-else-in-JSX.html @@ -16,9 +16,9 @@ - + diff --git a/tips/initial-ajax.html b/tips/initial-ajax.html index 7ea0de1d34..657f50de9d 100644 --- a/tips/initial-ajax.html +++ b/tips/initial-ajax.html @@ -16,9 +16,9 @@ - + diff --git a/tips/inline-styles.html b/tips/inline-styles.html index e2b7aaeeb7..8ac834de1a 100644 --- a/tips/inline-styles.html +++ b/tips/inline-styles.html @@ -16,9 +16,9 @@ - + diff --git a/tips/introduction.html b/tips/introduction.html index a40a99fafc..697c4dfd17 100644 --- a/tips/introduction.html +++ b/tips/introduction.html @@ -16,9 +16,9 @@ - + diff --git a/tips/maximum-number-of-jsx-root-nodes.html b/tips/maximum-number-of-jsx-root-nodes.html index 039f8ebf24..b64750d493 100644 --- a/tips/maximum-number-of-jsx-root-nodes.html +++ b/tips/maximum-number-of-jsx-root-nodes.html @@ -16,9 +16,9 @@ - + diff --git a/tips/props-in-getInitialState-as-anti-pattern.html b/tips/props-in-getInitialState-as-anti-pattern.html index b418c51944..4c30850e5f 100644 --- a/tips/props-in-getInitialState-as-anti-pattern.html +++ b/tips/props-in-getInitialState-as-anti-pattern.html @@ -16,9 +16,9 @@ - + diff --git a/tips/references-to-components.html b/tips/references-to-components.html new file mode 100644 index 0000000000..42ae04b9a0 --- /dev/null +++ b/tips/references-to-components.html @@ -0,0 +1,415 @@ + + + + + + + React | References to Components + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + +
    +

    References to Components

    +
    +

    If you're using React components in a larger non-React application or transitioning your code to React, you may need to keep references to components. React.renderComponent returns a reference to the mounted component:

    +
    /** @jsx React.DOM */
    +
    +var myComponent = React.renderComponent(<MyComponent />, myContainer);
    +
    +

    If you pass a variable to 'React.renderComponent`, it's not guaranteed that the component passed in will be the one that's mounted. In cases where you construct a component before mounting it, be sure to reassign your variable:

    +
    /** @jsx React.DOM */
    +
    +var myComponent = <MyComponent />;
    +
    +// Some code here...
    +
    +myComponent = React.renderComponent(myComponent, myContainer);
    +
    +
    +

    Note:

    + +

    This should only ever be used at the top level. Inside components, let your props and state handle communication with child components, and only reference components via refs.

    +
    + + +
    + + ← Prev + + +
    + +
    +
    +
    + + +
    +
    A Facebook & Instagram collaboration.
    +
    © 2014 Facebook Inc.
    +
    +
    +
    + + + + diff --git a/tips/self-closing-tag.html b/tips/self-closing-tag.html index fef05c344d..9a7afb9eab 100644 --- a/tips/self-closing-tag.html +++ b/tips/self-closing-tag.html @@ -16,9 +16,9 @@ - + diff --git a/tips/style-props-value-px.html b/tips/style-props-value-px.html index ec4108fe70..2274cf4d19 100644 --- a/tips/style-props-value-px.html +++ b/tips/style-props-value-px.html @@ -16,9 +16,9 @@ - +