No one gets to tell us how to deal with the end of the world.
— Aeryn Michelle Williams, Luther Hargreeves, Tom Hopper, imdb.com
No one gets to tell us how to deal with the end of the world.
— Aeryn Michelle Williams, Luther Hargreeves, Tom Hopper, imdb.com
People have to be angry at someone. But as leader, one cannot simply react to everything.
— Peter Morgan, Sir Winston Churchill, John Lithgow, imdb.com
Things that are traditionally sync don’t have to “feel” sync. Things that are traditionally async don’t have to “feel” async. Be intentional and bridge the gap when you need.
Removing client-side React.js (but keeping it on the server) resulted in a 50% performance improvement on our landing page
Interesting thing about React 16 SSR that is easy to miss. No more checksums means it can boot up from HTML that wasn’t generated by React.
The most important of which is the introduction of the pure render function that returns the representation of the UI based on the available data at that point in time.
React tests have much less ceremony and are a bit easier to wrap your head around. And Test-Driven Development (TDD) with React captures the quick, fast iterations that make testing fun.
We frequently ship new features and run hundreds of experiments every day, so we couldn’t freeze product development in order to rebuild our whole website in React. While it’s relatively easy to build a new web app in React, migrating a service that’s constantly changing and used by millions of peop…
Fiber is reimplementation of the stack, specialized for React components. You can think of a single fiber as a virtual stack frame.
When dealing with UIs, the problem is that if too much work is executed all at once, it can cause animations to drop frames and look choppy. What's more, some of that work may be unnecessary if it's superseded by a more recent update. This is where the comparison between UI components and function b…
Now when you run your dev server, you basically work at NASA
The solution to caching GraphQL is to normalize the hierarchical response into a flat collection of records. Relay implements this cache as a map from IDs to records. Each record is a map from field names to field values. Records may also link to other records (allowing it to describe a cyclic graph…
The snapshot artifact should be committed alongside code changes. We use pretty-format to make snapshots human-readable during code review. On subsequent test runs Jest will simply compare the rendered output with the previous snapshot. If they match, the test will pass. If they don't match, either…
We use React.js and standard Flux for our application rendering and state handling, though a few teams have been experimenting with Redux as our future state container. We are also migrating our existing OOCSS/BEM-style CSS toolkit, called Superfine, into a set of CSS-encapsulated React.js UI compon…
If you’re writing React, you have access to a more powerful styling construct than CSS class names. You have components.
We value API stability because at Facebook we have more than 20 thousand components using React. This means that we are reluctant to change public APIs or behavior because teams depend on it both externally and internally.
Components written by different people should work well together. It is important to us that you can add functionality to a component without causing rippling changes throughout the codebase.
Testing React components seems simple at first. Then you need to test something that isn't a pure interaction and things seem to break down.
Think of containers as structural components: they are fundamental for your code, but they don’t mean anything visually — they just define what data will be presented by the presentational components, and how they should behave.
Building a better developer experience has been one of the things that React deeply cares about, and a crucial part of it is to detect anti-patterns/potential errors early and provide helpful error messages when things (may) go wrong.
K WWW K K&MMWWMMWWWWWWWWWWWWWWWWWWWWWWWWM&&K K && && K KKKKKKK WW
KK WWW & &MWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWMM&&KKK K& KKKKK KKKKK KK K
KK WWW K &MWWWWWWWWWWWWWWWWWWWWWWWWMM&&&&K KK K&K KKK&&&&KKK KKKKKKKKKK K
KK MWWK KKMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWM&&&& MKK KKKKKK&KKKK&&&KKKKKKK&&&KK WW
KKKK WWK &M& MWWMM&MWWWWWWWWWWMWWWWWWWWMWM&KK K K &K KK KK KKK&&&&KK KKK&&KKK KM
KKKK KM &WM& K&MWWWWWWWWWWWWWWWWWWWWWWWWWWMM&K & KKKK K KKK&&K& KK&&KK MW
KK K K&&MMWWWWWWWWWWWWWWWWWWWWWWWWWWMK &KK K K&&&&K KKKKK&&K&&KK KKK
K KK&K&&MMWWWWWWWWWWWWWWWWWWWWM&&M&&&&&& &K K&&&&&K KKKK&&&&&KK WW
K KKK& K&&&K&MMWWMWWWWWWWWMMWWWWWWWW&&&&KKK&K K& K&&&&K KKKKK&&&&&KKK WM
KKKKKK KKKK &MWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMM&& & K&&KKK KKKK&&&&&&&&&KKK KKKK WM KK
KKKKKKKKK K KK &&MWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWM&&&& & KKK KK K&MM&&&&&&KKKKKKKKK K WM KK
K KK K K &&WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW&KWM& WWWWM &K K KK K&&&&&KKKKKKK KKKKK KK
K KK K &MWMMWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWW& KK MWW MKKKK KK&&KK KKKK KKKKKK KKKKK
KKKKK K KMWWWWWWWWWWWWWWWWWWWMMWWWWWWWWWW KWMWWM& W KKKKKKK&&&&KK K K KKKK KKKK K
K KK&KK K MWWWWWWWWWWWWWWW&WWWWWWM K& WMWWWWW W &&&&KKK&&K&KKK&&KKKK KKK K
KKKK&&K K&WWWWWWWMWWM &WWWWMK WWWWWW&WK&&&KK K
KK&&&&&K KMMW K &MWWWW&& &WWWWW&W& &KK K
KK&&MMMMK WWWWW MMWM &WWWWWK M WWWWW W &&K
KK&MMWMK M&W W &WWWWWKKW & &M& WWWW&WW &&&K
KK&&K&M&K WM K WW KW KWWWWW&&MWM &WWWW& & K&&& &WW WWK&&&
KKKK KK WWW KWWWWWWW&MWWW MWWWW&M&KMKK KMMMMMWMM &WW W K&&K
K&K K WW MM KMWWWW&KK&M&WWWWWWMWWWWWWWWWW&K WW&W K&&K
KKKKKK W &WWW MMWWMMK KKMWWWWMKK K&WWWWMM&&WWWWWWWWWWWWWWWWWWWW& WWMW &&&
KKKK W M KWWWWWM M&WWWWWMWWWWMM& K WWWWWWMM&WWWWWWWWWWWWWWWWWWW& WWMWW &&&K
KK&K K W MWWWWWWWWWWWWWWWWWWWW& K&WWWWWWMMMMWWWWWWWWWWWWWWWWWW& MWWWWK&MM&
K&&KK WW KWWWWWWWWWWWWWWWWWWWW &MWWWWWWM&&MWWWWWWWWWWWWWWMWWMK &WWWM&MWW&
KK W WWWWWWWWWWWWWWWWWWWM KMWWWWWWM&&M&WWWWWWWWWWWWWWM&& KW W&MWWM
WMMMWWWWWWWWWWWWWW KMWWWWWWM&&&MMWWWWWWWWWWWWW&K && W&WWMK
K&WWWWWWWWWWWWWW K KMWWWWWWM&MWMWM&MWWWWWWWWMM KM MWW&
KKKKKKK KKWWWWWWWWWWWWM MMK &WWWWWWWWWWWM&WW MWWWMMMM &&KMWWWM
KKKKK MWWWWWWWWWWMW& K&M&&WWWWWWWWW&K WWWW& &MM&&K W&MWWW&
KKK KK MMWWWWWWWMMWWM K&MW&&&K WWWWWWWW M&MWWM
K&&&&&&&&K MWWWWWK WWWWW WWWW& MWMWWM
KK&&&&&&&&K MMM& KW&MWMK & WWWW&
&&&MMMMMM&&& && M M K&WM & &KWWWM
K&&M&&&MMMM&K &M M KMMW K& WMMM& KW K MWW& .: ,., .: . ,
. .::,., ,
, ::,., :
: ,:, , . . :
: ,,. , , ,.
: ... , , :, :
,: .. , , : : :: :,
:: . , .,.: , .
::, : , : ...:,:::: .,
:::: , ..., , .,:,., :
:::,: , ...: ... , :
::::: :. ..., : .. ,.. .,,: :
:::::: :. ..., .. ,. .,:: : : , :
:::::: :. ..., . .,,,,: : , ,. , :
::::::: :. ..., .. ..,,::: :: . , :
::::::: :. ...: ,,:,:::,: : ,. , : :.:
::::::: : , , . .,,,:::::, .,,:,., : , : :, :
:::,::: , . .,:::,, ::. .. , : ,,: . ,
:::::: , . , , ,,: :, ,,,. . . :,,:
::::::: , ,: ,...,: : , , : , :::
::::::: : . : ,,,:.,,.,: ,, : ,: ::::::: :
:::::: : , : , , ,,: ,: :,. ...,:
:::::: , : , : .. .,, ,. .,:
::::::: :, , . : : ,....., , .,::
:::::: :. , : ,....,,: :. ...,,:
:::::: :. , , :. : ,, , ....,::
:::::: :. , : ,. : .. .., ., , : :. ..,.,::
::::: :. ,: : , .,.: ..: :: :: , ,,,,::
:::: : :. ,: : . . . .: . , .,,,:
:::: :. .: : ,.,, .: . ,,,,
:::: : :. .: : , ,:, ,:: . .: :. : : ,::,:
: :::: :. .: :.,. . ,., . . . .:::
:::: :. .: ,::. .,:,: : . : .: .
: ::: :. ,: ,,: .,:, :. , . : : . .: :
: :: :. ,: :,,, ..,::, ,: : ::,: . :
:: :. ,: .,,... ,,:, . :. . : , : .*<* }}}}}}*<~~~<<~* * ~ ~<* *
}*} }}}}}}}*<<<***<< ~<} ~} } <
*} }}}}}}*******<< ~<} ~<} * }* ~
}} }}*******~} ~<}} ~}*<** } } *
<} }}}******<~* ~< ~ ~*<~~~} }* < *
<} } }*****}*~< ~ ~<}~ <*~~ } *
<} }***}}*<~* ~ ~<}~ ~ ~ < *< }} * * }
~* }}*}**<* ~ ~<}* <<~~ ~*} *~ }
~* }}*****}}* ~<} ~~~}}} }} }
~} }}***~ ~<*}} ~<*} *}***}} }*
< }**~ ~<*} ~~ <<**<* ** *
~} }< ~<**} <}*}}}} }} *< <
* }< ~<**}} ~}}*~*} ~ }}*<}
<} *< ~<*** }* *} ~ <*}}
* }*~ ~<*** ~ * < *~~*} < ~~~ ~*}}}
< }*~ ~<***} ~< ~ < } } * * *<
< }*~ }} ~ < * < <~} } }}< }}}}}}}
~} }*~ ~}}~~} ~ ~ ~ } ~ < ~< *< }*<<<***}*}***}}}
~~* }*<~ }~ } ~~<~ *~ ~~ } ~~ < ~ *< < ~<} *<* }**<~~~~<<<*******}
~* }*<~ }~~<~ *}< <* ~}* *< }* ~< *< * *<<<~ ~~<<*****}} }
~* }*<~ } * ~<}<~** ~<~*< ~} *~ <<} *<~ *<<<~~ ~ ~~~<* }}}}}
~~* }*<~ } < <* } }}} } }<<< ~** < }<~<<<~~ <**} }}}}}
~~* }*<~ * } ~<* <~* *<} *<**<<<~ ~<} }}}}}
~* }< * } < ~} *<< ~ }<****<<~ ~<}
~ ~* }< ~ *~ }} * * }*<* }* }*<****<~ ~~<}
~~* *< ~} }* <~ ~} }}<< ~ *<<****<~ ~~<
~<} }*< ~** < ~ < }<~ < } }<<<***<< ~~~*} }
~~< }*< <}*~ } } } * } <* ~ <~<*<<<<~ ~~~<* }}}
~ ~* }*< <}}} < < < ~ <} < *} }*< <~<*****<~ ~~~~~~* }}}
~~~* *< <*}}< <~}< <<} ~} * } }< *~<**}}}*<~ ~~<<~~~*
~ < }< <}}*}< ~<*~ ~} * ** < <<<*}}}}*< <<<~~~~* *
~ * *< <****} *~~~ ~*} ~ ~ ~ < } *<*~~ *~**}} }< ~~<<<~~~~* }~
~ ~} *~ <****}}}}}**~ < } < ~}<*~ }*} *<<*}} }< ~~~<<<<~~~<<} } }<
~ < *~ <******}**}}} ~<} }} ~~ ~ << ~}~< ~< ~} ~ *}<*} <<*}} }*~ <<<****<<~~<<} }}} *
~ ~} }*~ <***********} ~} * } ~ <~ ~<} *<*}<}< * * <<< *<*}} }~ *******<~<~~<<} } }~
~ ~* }*< <***********}* ~} }~} }< < ~~} * <~ } * *<} < ***}}}**<~<<~~<} }< joVUU Vjjj U o jV UojjVjUU U U UVUo VVVVVVVVoooojjoojjooVUVUVUUVVVVVVUU U UVVj oVo
joVU Uoj V j o jo joo jUU UojoV UVVVoVVoVVooooVooVVU UVUVoooUU U UUVoVj VVoo
jooVU UVoo j V j jo jjVjoV o UUVUUj V UVVoVVoVVVVooVVUU UUUV UVooVoV oVo
jooVoUU UVojjjj jVo j jj UUVo jVj UVoooVVoooooVU UVVVVo oVo
jjoVVU Uoojj U j joVVj o VoojU UV UVVVooVVVVVVUUUU U U U UVVVVVo oVo
jjVVU Vojjj j j U jjVo ojj VoUoVjoo V VoVoVVVVU UUUUUUUU U UoVU VoVoooVo joj
ooUUU VVVoooooj o V j Vj o UVUUU jVo j oVoooVVU UVVUU VUVV VVoVooooojoj jj
joVUU UUUVVVVUUUoj joj o UVoVUUoj VUVoooooV UoVoVV UVUUVVVUVVoooooVo oo
oVUUUUVU UU UVj j ojoV j V o UVVVVooVU UUVooVU UVUVUUUVVoVoVVj oVV
VVU U UVojjjj jV UUUoV Vo UooVUUUU UUVooVoUU U UUUUUo V
jVV U VVoooVooj j oUVo U ooUj Uj VU U UUVVVVVVVVVVUU U UU V U
VUU U UUU UUVooooVVVoj UU o VU ojj V V U VUUUU UVUVVUUU U UUUUVU V
V U UUU UUUVojoooVVUoj VVVU V U o UV UUUVVVVU UUUU UU VUUUUU
VVUVU VVjjjjooVVVj o V UV U j U UUU U UUVVUVU UUU U UUUVUUV
jVV U UVojjjooooo j joj V U j Uo o V UUVVUU UUUVUUUU UUUUVUVV
jVU UUVooojoooj o j Uj j jj j UUUVVooVVVUU UUUVVVVVVVVoooVVVUUUUUUUUVoV
jVVU UVooVVooj j Vo oU V jU o o U o U UUVVoj joojojjjjjjojjoVoVUUUUU UVoojo
ooV VVooVojj j o o V j U V U VVVjj jjjjooooVUVUUUUUUVVooo
ooUU UVooVoj o U j o V Vj U Vj joVVojooVVoVVVVVVoojjo
VVV ooooooj j j Uj j Uoo UUo oU V j Uoj jooooooooVVVoVooj jjjo
ooU U UVoooojjj jV j U j U V U U Vj jVVojoooooVVVooj j
oVV U UUUoojjjjjj V UV jUUVj oVo j Vo j V j ojj o o oojoooooVVVoj j
oVU UVoojjjjjj V oj U U oj j UV Vj ooVVVooVVoo jj
ooVU UUUVojjjoooj j Uj U V j U j o V o ojoVoooVVoojjjjjjj
ooU U UUVojjjoUVj U Uj o j V jjoooVoVoojjjjoooo
ojV UUUVoojoVVVo o U U j o jjjooooooojjjjjoojj
VoUU UUVUUUVojooVo U o U U jjoooooojjj jjoooj
jVoUVVVVVVVUVVoooooo o j V V j j j jjjooooojj jooooo
oVVUUUUUUUUUVojoooVo j o jV Uo j U UjU o jjjooooo jjoooooo
VVUU UVojjooVoj j o U V U Uj V jjjoVVojjjjjooooooj
jVoUUU UUVoojooVoj o o V j jjjVooojjjjooooooj
oUUU U UVUojoojoVoj j U UUV o jjj jojooojjjjjoVVooj
Uo VoojjoVVoj o U V jU j jUj V jjj oooojj jjjoooVoo
jUU UooooVVoj V jo oVV j V o j jjo ojoj jjoooVVoj
VV UVVooooo Uj UV o j o jo jooj o o jooo jjjj jjooVVVVVo
oU UVVooooj o V j VU U U U jj j V j j o jjoVUVj ojojjjooVUVVVo W K&&MWMWWWWMM&K &
W &&MWMWWWWMM& K
& &MWWWWWWMM&K K K K
K &&MMMWMM&&M&K K KK &
KMWWWWWWWWWWWW&KK KK
K&MWWWWW&MWW W& KK
KK &W& WWM
K& K WW WMM
W K&KMK WM KKKKKM&M MKK
K &WWMMWMW& MW&&WWWWWMWK WM K
M WWWWWWWW MM&KMWWWWM& M&M
KMWWWW MWW&&&KWWM& MK
&WWWM &M& WM &M
KK & MM KW
KKK& K MM&&K K M
KKKK&K W KWW KK KK &&
K WW KWW& K KK &W
WWWMMWWWWM & &&
M& W& KWWWWMW& K WWW&
M& &WWM K &&&MM KK WWWW
WWWWM WWWWWW
WWWMWW WWWWWWWWK
MMWWWWW&W& W&WWWWWWWWW&
WWMW&&&MMM& W WKMWMMM&WWW&&WM
WW MK&& KKKK& KW M K&KKKK& & MWK
&
&WMW K K && W WWW M K W
W WWWWWWWMW MWWWWWKW W&WWWWWWMWWWW W WWWWWWWWW WW
W WW MW W WW WW W WK WW M W WWW W M & K&W : ,
. , ,
, : :
: . ,, :
:: . . ,
:: : ,, :: :
::: : ,:,,,,. , : .
::: .. . : :, , .
::: , :..,:
::: :, .: .
::: :, . : ..:
:: : . : . ::
:: : ., : . ::
: : . :: . , .
: : ,. :: , , .
: ., , , , .
, : .
. ., . .. , . . .
, :::, :. .. ,, :::: : ,
: :,., , . . , : .,,:::::: .: :
. , ,. : , : : : : ., . ...,, ::::
. .. : :,. :,. :
. : .,: ,. : :..
,,::, ,: ::, :::,:,::,, ..,,
,,,. ,: ::.. .,,.. . .
.. , . ....
,. ,, . , : : :
. , . :
:: :.: ::,: . . . : . . ,,,::: :,* }}*<*~ ~ *
}}**< ~< *< *
~ ***< <~ < * * }
< }}*} ~ <~}
} * ~ ~}} *
~ * }< *< ~ <}<
< ~ ~<*}}
} }< ~ ~ ~ * ~< < ~ *~~*}*}
} }< < <} * }}* ~} ~ <<~ } *}
} ~ < < * }**< ~}
~ ~< } * * <**~ ~}
~ ~ ~}** < * <*** <~ }
< ~ }}<< } * *} < < }<} * <<~ }
~ } }~ ***}} <}} <~< < <} ***<< }
< }~ ****} <~<< }< * } <} }}}<<< <
~ } ~**<*} ~~ }< * << * < *}}<<<< *
* ~<<<<* ~}~~** *<* ~ * ~} }<~<<< } *
}< ~~~<~~< ~~ } * * * }*~~<~~< < }
< ~~ < *} <*~ ~~~ < } }
}}} }} *< ~ } }<
}}}}}}<~ <}*< **< ~ ** ~ }* **
****}}* * ~< <}}*<
~~~~<~ } <~ ~*<*<< <
< ~~~ ~ <
* ~ *
* ~ }}}} * }*} } *
< ~~ ~ *} <~ ~ * ~ * < < ~ } *} }* }
< <**~~ } ~ <<****<~~
~ ~ * * ~ }~ < ~ jVVj U o UojV UUUV VooojjjoUUVooVUUUVjUj
joVVVj j oooV UVVVj UUoooooUUUUUUVUUUVoo j
joVVjjj jUVV VoVo oooUUVVVVU UoVUVjoj
oVVVV V j jjV UUVo UooU UojoUU UVVVojo o
VUUVVooVo j VoU o UUVUVoVVVVV UUUUUVVUV
oVVUVjjVo Uo U oUUU UUUUVVUVVUVVVV
jVU ojoj VVV V j UUVojjjVoojoooVVVVj
oU Voo o o V V V j o jj UUj joooooojj
VUVUojj j j U U U V oooooj
oUVVojoj o V V V jooojjj
joUVVojVj V U U joojjoo
oVVVVojVj j U UV UV jooo joo
VVUUVojVj j o VV j j joojjoV
VU UooV U jj U o j U jj jj joVV
U UVoo V o V o o U VU jjjVUU
V ooV U jj jo o jjU
joVVUV UoVV V jo V oo U j jV
oVVoooVVVU o o j jj V o
VVoooooU o V o Uj j
jjjj U j jU V o jj j
jV j
o U
o UU o VV U joU
o V VVj jjojjUU UUj jjj jjVo oVVoVUV
jj V UV j U U VU U jjj j
o
U U