diff --git a/content/blog/2020-08-10-react-v17-rc.md b/content/blog/2020-08-10-react-v17-rc.md index f0c72d6e4..8bfd9e1cd 100644 --- a/content/blog/2020-08-10-react-v17-rc.md +++ b/content/blog/2020-08-10-react-v17-rc.md @@ -162,17 +162,17 @@ useEffect(() => { Most effects don't need to delay screen updates, so React runs them asynchronously soon after the update has been reflected on the screen. (For the rare cases where you need an effect to block paint, e.g. to measure and position a tooltip, prefer `useLayoutEffect`.) -However, the effect *cleanup* function, when it exists, used to run synchronously in React 16. We've found that, similar to `componentWillUnmount` being synchronous in classes, this is not ideal for larger apps because it slows down large screen transitions (e.g. switching tabs). +However, when a component is unmounting, effect *cleanup* functions used to run synchronously (similar to `componentWillUnmount` being synchronous in classes). We've found that this is not ideal for larger apps because it slows down large screen transitions (e.g. switching tabs). -**In React 17, the effect cleanup function also runs asynchronously -- for example, if the component is unmounting, the cleanup will run _after_ the screen has been updated.** +**In React 17, the effect cleanup function will always runs asynchronously -- for example, if the component is unmounting, the cleanup will run _after_ the screen has been updated.** -This mirrors how the effects themselves run more closely. In the rare cases where you might want to rely on the synchronous execution, you can switch to `useLayoutEffect` instead. +This mirrors how the effects themselves run more closely. In the rare cases where you might want to rely on the synchronous execution, you can switch to `useLayoutEffect` instead. >Note > >You might be wondering whether this means that you'll now be unable to fix warnings about `setState` on unmounted components. Don't worry -- React specifically checks for this case, and does *not* fire `setState` warnings in the short gap between unmounting and the cleanup. **So code cancelling requests or intervals can almost always stay the same.** -Additionally, React 17 executes the cleanup functions in the same order as the effects, according to their position in the tree. Previously, this order was occasionally different. +Additionally, React 17 will always execute all effect cleanup functions (for all components) before it runs any new effects. React 16 only guaranteed this ordering for effects within a component. #### Potential Issues {#potential-issues} @@ -272,20 +272,20 @@ We encourage you to try React 17.0 Release Candidate soon and [raise any issues] To install React 17 RC with npm, run: ```bash -npm install react@17.0.0-rc.0 react-dom@17.0.0-rc.0 +npm install react@17.0.0-rc.1 react-dom@17.0.0-rc.1 ``` To install React 17 RC with Yarn, run: ```bash -yarn add react@17.0.0-rc.0 react-dom@17.0.0-rc.0 +yarn add react@17.0.0-rc.1 react-dom@17.0.0-rc.1 ``` We also provide UMD builds of React via a CDN: ```html - - + + ``` Refer to the documentation for [detailed installation instructions](/docs/installation.html). @@ -297,6 +297,8 @@ Refer to the documentation for [detailed installation instructions](/docs/instal * Add `react/jsx-runtime` and `react/jsx-dev-runtime` for the [new JSX transform](https://babeljs.io/blog/2020/03/16/7.9.0#a-new-jsx-transform-11154-https-githubcom-babel-babel-pull-11154). ([@lunaruan](https://github.com/lunaruan) in [#18299](https://github.com/facebook/react/pull/18299)) * Build component stacks from native error frames. ([@sebmarkbage](https://github.com/sebmarkbage) in [#18561](https://github.com/facebook/react/pull/18561)) * Allow to specify `displayName` on context for improved stacks. ([@eps1lon](https://github.com/eps1lon) in [#18224](https://github.com/facebook/react/pull/18224)) +* Prevent `'use strict'` from leaking in the UMD bundles. ([@koba04](https://github.com/koba04) in [#19614](https://github.com/facebook/react/pull/19614)) +* Stop using `fb.me` for redirects. ([@cylim](https://github.com/cylim) in [#19598](https://github.com/facebook/react/pull/19598)) ### React DOM {#react-dom} @@ -309,6 +311,7 @@ Refer to the documentation for [detailed installation instructions](/docs/instal * Throw if `forwardRef` or `memo` component returns `undefined`. ([@gaearon](https://github.com/gaearon) in [#19550](https://github.com/facebook/react/pull/19550)) * Remove event pooling. ([@trueadm](https://github.com/trueadm) in [#18969](https://github.com/facebook/react/pull/18969)) * Stop exposing internals that won’t be needed by React Native Web. ([@necolas](https://github.com/necolas) in [#18483](https://github.com/facebook/react/pull/18483)) +* Attach all known event listeners when the root mounts. ([@gaearon](https://github.com/gaearon) in [#19659](https://github.com/facebook/react/pull/19659)) * Disable `console` in the second render pass of DEV mode double render. ([@sebmarkbage](https://github.com/sebmarkbage) in [#18547](https://github.com/facebook/react/pull/18547)) * Deprecate the undocumented and misleading `ReactTestUtils.SimulateNative` API. ([@gaearon](https://github.com/gaearon) in [#13407](https://github.com/facebook/react/pull/13407)) * Rename private field names used in the internals. ([@gaearon](https://github.com/gaearon) in [#18377](https://github.com/facebook/react/pull/18377)) @@ -324,11 +327,16 @@ Refer to the documentation for [detailed installation instructions](/docs/instal * Improve the error message for invalid updates. ([@JoviDeCroock](https://github.com/JoviDeCroock) in [#18316](https://github.com/facebook/react/pull/18316)) * Exclude forwardRef and memo from stack frames. ([@sebmarkbage](https://github.com/sebmarkbage) in [#18559](https://github.com/facebook/react/pull/18559)) * Improve the error message when switching between controlled and uncontrolled inputs. ([@vcarl](https://github.com/vcarl) in [#17070](https://github.com/facebook/react/pull/17070)) +* Keep `onTouchStart`, `onTouchMove`, and `onWheel` passive. ([@gaearon](https://github.com/gaearon) in [#19654](https://github.com/facebook/react/pull/19654)) * Fix `setState` hanging in development inside a closed iframe. ([@gaearon](https://github.com/gaearon) in [#19220](https://github.com/facebook/react/pull/19220)) * Fix rendering bailout for lazy components with `defaultProps`. ([@jddxf](https://github.com/jddxf) in [#18539](https://github.com/facebook/react/pull/18539)) * Fix a false positive warning when `dangerouslySetInnerHTML` is `undefined`. ([@eps1lon](https://github.com/eps1lon) in [#18676](https://github.com/facebook/react/pull/18676)) * Fix Test Utils with non-standard `require` implementation. ([@just-boris](https://github.com/just-boris) in [#18632](https://github.com/facebook/react/pull/18632)) * Fix `onBeforeInput` reporting an incorrect `event.type`. ([@eps1lon](https://github.com/eps1lon) in [#19561](https://github.com/facebook/react/pull/19561)) +* Fix `event.relatedTarget` reported as `undefined` in Firefox. ([@claytercek](https://github.com/claytercek) in [#19607](https://github.com/facebook/react/pull/19607)) +* Fix "unspecified error" in IE11. ([@hemakshis](https://github.com/hemakshis) in [#19664](https://github.com/facebook/react/pull/19664)) +* Fix rendering into a shadow root. ([@Jack-Works](https://github.com/Jack-Works) in [#15894](https://github.com/facebook/react/pull/15894)) +* Fix `movementX/Y` polyfill with capture events. ([@gaearon](https://github.com/gaearon) in [#19672](https://github.com/facebook/react/pull/19672)) * Use delegation for `onSubmit` and `onReset` events. ([@gaearon](https://github.com/gaearon) in [#19333](https://github.com/facebook/react/pull/19333)) * Improve memory usage. ([@trueadm](https://github.com/trueadm) in [#18970](https://github.com/facebook/react/pull/18970)) @@ -346,9 +354,12 @@ Refer to the documentation for [detailed installation instructions](/docs/instal * Revamp the priority batching heuristics. ([@acdlite](https://github.com/acdlite) in [#18796](https://github.com/facebook/react/pull/18796)) * Add the `unstable_` prefix before the experimental APIs. ([@acdlite](https://github.com/acdlite) in [#18825](https://github.com/facebook/react/pull/18825)) * Remove `unstable_discreteUpdates` and `unstable_flushDiscreteUpdates`. ([@trueadm](https://github.com/trueadm) in [#18825](https://github.com/facebook/react/pull/18825)) +* Remove the `timeoutMs` argument. ([@acdlite](https://github.com/acdlite) in [#19703](https://github.com/facebook/react/pull/19703)) * Disable `
` prerendering in favor of a different future API. ([@acdlite](https://github.com/acdlite) in [#18917](https://github.com/facebook/react/pull/18917)) * Add an experimental `unstable_useOpaqueIdentifier` Hook. ([@lunaruan](https://github.com/lunaruan) in [#17322](https://github.com/facebook/react/pull/17322)) +* Add an experimental `unstable_startTransition` API. ([@rickhanlonii](https://github.com/rickhanlonii) in [#19696](https://github.com/facebook/react/pull/19696)) * Using `act` in the test renderer no longer flushes Suspense fallbacks. ([@acdlite](https://github.com/acdlite) in [#18596](https://github.com/facebook/react/pull/18596)) +* Use global render timeout for CPU Suspense. ([@sebmarkbage](https://github.com/sebmarkbage) in [#19643](https://github.com/facebook/react/pull/19643)) * Clear the existing root content before mounting. ([@bvaughn](https://github.com/bvaughn) in [#18730](https://github.com/facebook/react/pull/18730)) * Fix a bug with error boundaries. ([@acdlite](https://github.com/acdlite) in [#18265](https://github.com/facebook/react/pull/18265)) * Fix a bug causing dropped updates in a suspended tree. ([@acdlite](https://github.com/acdlite) in [#18384](https://github.com/facebook/react/pull/18384) and [#18457](https://github.com/facebook/react/pull/18457)) diff --git a/content/community/conferences.md b/content/community/conferences.md index 6ed44063e..6c1e672c9 100644 --- a/content/community/conferences.md +++ b/content/community/conferences.md @@ -12,96 +12,31 @@ Do you know of a local React.js conference? Add it here! (Please keep the list c ## Upcoming Conferences {#upcoming-conferences} -### Reactathon 2020 {#reactathon-2020} -March 30 - 31, 2020 in San Francisco, CA - -[Website](https://www.reactathon.com) - [Twitter](https://twitter.com/reactathon) - [Facebook](https://www.facebook.com/events/575942819854160/) - -### React Summit - Remote Edition 2020 {#react-summit-remote-2020} -3pm CEST time, April 17, 2020 - remote event - -[Website](https://remote.reactsummit.com) - [Twitter](https://twitter.com/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) - -### React Day Bangalore 2020 {#react-day-bangalore-2020} -April 25, 2020 in Bangalore, India - -[Website](https://reactday.in) - [Twitter](https://twitter.com/ReactDayIn) - [LinkedIn](https://www.linkedin.com/company/react-day/) - -### Byteconf React 2020 {#byteconf-react-2020} -May 1, 2020. Streamed online on YouTube. - -[Website](https://www.bytesized.xyz) - [Twitter](https://twitter.com/bytesizedcode) - [YouTube](https://www.youtube.com/channel/UC046lFvJZhiwSRWsoH8SFjg) - -### ReactEurope 2020 {#reacteurope-2020} -May 14-15, 2020 in Paris, France - -[Website](https://www.react-europe.org) - [Twitter](https://twitter.com/ReactEurope) - [Facebook](https://www.facebook.com/ReactEurope) - [Videos](https://www.youtube.com/c/ReacteuropeOrgConf) - -### React Finland 2020 {#react-finland-2020} -May 26-29 in Helsinki, Finland - -[Website](https://react-finland.fi/) - [Twitter](https://twitter.com/ReactFinland) - -### React Next 2020 {#react-next-2020} -June 15, 2020. Tel Aviv, Israel. - -[Website](https://react-next.com/) - [Twitter](https://twitter.com/reactnext) - [Facebook](https://www.facebook.com/ReactNext2016/) - -### React Loop 2020 {#react-loop-2020} -June 19, 2020. Chicago, Illinois, USA. - -[Website](https://reactloop.com) - [Twitter](https://twitter.com/ReactLoop) - -### React Week NY 2020 {#react-week-ny-2020} -July 17, 2020. New York City, USA. - -[Website](https://reactweek.nyc/) - [Twitter](https://twitter.com/reactweek) - [Facebook](https://www.facebook.com/reactweek) - -### React La Conferencia 2020 {#react-la-conferencia-2020} -July 18, 2020. Medellín, Colombia. - -[Website](https://reactlaconf.co/) - [Twitter](https://twitter.com/reactlaconf) - -### Chain React 2020 {#chain-react-2020} -July 29-30, 2020. Portland, Oregon, USA. - -[Website](https://infinite.red/ChainReactConf) - [Twitter](https://twitter.com/ChainReactConf) - -### render(ATL) 2020 {#render-atlanta-2020} -August 24-26, 2020. Atlanta, GA, USA. - -[Website](https://renderatl.com) - [Twitter](https://twitter.com/renderATL) - [Instagram](https://www.instagram.com/renderatl/) - [Facebook](https://www.facebook.com/renderatl/) - [LinkedIn](https://www.linkedin.com/company/renderatl) - -### ComponentsConf 2020 {#components20} -September 1, 2020 in Melbourne, Australia - -[Website](https://www.componentsconf.com.au/) - [Twitter](https://twitter.com/ComponentsConf) - [Facebook](https://www.facebook.com/ComponentsConf/) - [LinkedIn](https://www.linkedin.com/company/componentsconf/) - [YouTube](https://www.youtube.com/ComponentsConf) - ### React Native EU 2020 {#react-native-eu-2020} -September 5-6, 2020 in Wrocław, Poland +September 3-4, 2020 - remote event [Website](https://www.react-native.eu/) - [Twitter](https://twitter.com/react_native_eu) - [Facebook](https://www.facebook.com/reactnativeeu/) - [YouTube](https://www.youtube.com/watch?v=m0GfmlGFh3E&list=PLZ3MwD-soTTHy9_88QPLF8DEJkvoB5Tl-) - [Instagram](https://www.instagram.com/reactnative_eu/) -### React Summit Amsterdam 2020 {#react-summit-2020} -September 8-11, 2020 in Amsterdam, The Netherlands - -[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) - -### React Advanced 2020 {#react-advanced-2020} -October 21-23, 2020 in London, UK +### render(ATL) 2020 {#render-atlanta-2020} +September 13-15, 2020. Atlanta, GA, USA. -[Website](https://reactadvanced.com) - [Twitter](http://twitter.com/reactadvanced) - [Facebook](https://www.facebook.com/ReactAdvanced) - [Videos](https://youtube.com/c/ReactConferences) +[Website](https://renderatl.com) - [Twitter](https://twitter.com/renderATL) - [Instagram](https://www.instagram.com/renderatl/) - [Facebook](https://www.facebook.com/renderatl/) - [LinkedIn](https://www.linkedin.com/company/renderatl) -### React India 2020 {#react-india-2020} -November 6, 2020 in Mumbai, India +### React Summit 2020 {#react-summit-2020} +7am PST / 1pm EST / 4pm CEST October 15-16, 2020 - remote event -[Website](https://www.reactindia.io) - [Twitter](https://twitter.com/react_india) - [Facebook](https://www.facebook.com/ReactJSIndia/) - [LinkedIn](https://www.linkedin.com/showcase/14545585) - [YouTube](https://www.youtube.com/channel/UCaFbHCBkPvVv1bWs_jwYt3w/videos) +[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactsummit) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) ### React Day Berlin 2020 {#react-day-berlin-2020} November 25-27, 2020 in Berlin, Germany [Website](https://reactday.berlin) - [Twitter](https://twitter.com/reactdayberlin) - [Facebook](https://www.facebook.com/reactdayberlin/) - [Videos](https://www.youtube.com/reactdayberlin) +### React Next 2020 {#react-next-2020} +December 1, 2020. Tel Aviv, Israel. + +[Website](https://react-next.com/) - [Twitter](https://twitter.com/reactnext) - [Facebook](https://www.facebook.com/ReactNext2016/) + ## Past Conferences {#past-conferences} ### React.js Conf 2015 {#reactjs-conf-2015} @@ -129,7 +64,7 @@ February 22 & 23 in San Francisco, CA ### React Amsterdam 2016 {#react-amsterdam-2016} April 16 in Amsterdam, The Netherlands -[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) +[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactsummit) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) ### ReactEurope 2016 {#reacteurope-2016} June 2 & 3 in Paris, France @@ -179,7 +114,7 @@ March 28th at the [QEII Centre, London](http://qeiicentre.london/) ### React Amsterdam 2017 {#react-amsterdam-2017} April 21st in Amsterdam, The Netherlands -[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) +[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactsummit) - [Videos](https://youtube.com/c/ReactConferences) ### ReactEurope 2017 {#reacteurope-2017} May 18th & 19th in Paris, France @@ -284,7 +219,7 @@ March 31 in Kiev, Ukraine ### React Amsterdam 2018 {#react-amsterdam-2018} April 13 in Amsterdam, The Netherlands -[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) +[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactsummit) - [Facebook](https://www.facebook.com/reactamsterdam) ### React Finland 2018 {#react-finland-2018} April 24-26 in Helsinki, Finland @@ -389,7 +324,7 @@ April 4-5, 2019 in Kraków, Poland ### React Amsterdam 2019 {#react-amsterdam-2019} April 12, 2019 in Amsterdam, The Netherlands -[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) +[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactsummit) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) ### React Finland 2019 {#react-finland-2019} April 24-26 in Helsinki, Finland @@ -515,3 +450,23 @@ February 1-2, 2020 in Cologne, Germany February 27 & 28, 2020 in Sydney, Australia [Website](https://reactconfau.com/) - [Twitter](https://twitter.com/reactconfau) - [Facebook](https://www.facebook.com/reactconfau) - [Instagram](https://www.instagram.com/reactconfau/) + +### Reactathon 2020 {#reactathon-2020} +March 30 - 31, 2020 in San Francisco, CA + +[Website](https://www.reactathon.com) - [Twitter](https://twitter.com/reactathon) - [Facebook](https://www.facebook.com/events/575942819854160/) + +### React Summit - Remote Edition 2020 {#react-summit-remote-2020} +3pm CEST time, April 17, 2020 - remote event + +[Website](https://remote.reactsummit.com) - [Twitter](https://twitter.com/reactsummit) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) + +### Byteconf React 2020 {#byteconf-react-2020} +May 1, 2020. Streamed online on YouTube. + +[Website](https://www.bytesized.xyz) - [Twitter](https://twitter.com/bytesizedcode) - [YouTube](https://www.youtube.com/channel/UC046lFvJZhiwSRWsoH8SFjg) + +### ReactEurope 2020 {#reacteurope-2020} +May 14-15, 2020 in Paris, France + +[Website](https://www.react-europe.org) - [Twitter](https://twitter.com/ReactEurope) - [Facebook](https://www.facebook.com/ReactEurope) - [Videos](https://www.youtube.com/c/ReacteuropeOrgConf) diff --git a/content/community/courses.md b/content/community/courses.md index 86e2d83b0..ae325eb10 100644 --- a/content/community/courses.md +++ b/content/community/courses.md @@ -8,7 +8,7 @@ permalink: community/courses.html ## Free Courses {#free-courses} -- [Glitch: React Starter Kit](https://glitch.com/glimmer/post/react-starter-kit/) - A free, 5-part video course with interactive code examples that will help you learn React. +- [Glitch: React Starter Kit](https://glitch.com/glimmer/post/react-starter-kit) - A free, 5-part video course with interactive code examples that will help you learn React. - [Codecademy: React 101](https://www.codecademy.com/learn/react-101) - Codecademy's introductory course for React. @@ -48,4 +48,6 @@ permalink: community/courses.html - [Mastering React](https://codewithmosh.com/p/mastering-react/) - Build professional interactive apps with React. +- [React Tutorial](https://react-tutorial.app) - Learn React step by step in an interactive environment with flashcards. + - [Road to React](https://www.roadtoreact.com/) - Your journey to master React in JavaScript. diff --git a/content/community/team.md b/content/community/team.md index 4ff9e367f..096341d1b 100644 --- a/content/community/team.md +++ b/content/community/team.md @@ -74,6 +74,8 @@ Sebastian majored in psychology. He's usually quiet. Even when he says something  +[@sethwebster on GitHub](https://github.com/sethwebster) · [@sethwebster on Twitter](https://twitter.com/sethwebster) + Seth started programming as a kid growing up in Tucson, AZ. After school, he was bitten by the music bug and was a touring musician for about 10 years before returning to *work*, starting with Intuit. In his spare time, he loves [taking pictures](https://www.sethwebster.com) and flying for animal rescues in the northeastern United States. ## Acknowledgements {#acknowledgements} diff --git a/content/community/videos.md b/content/community/videos.md index 01e54f753..a99dc80c7 100644 --- a/content/community/videos.md +++ b/content/community/videos.md @@ -10,6 +10,16 @@ redirect_from: Videos dedicated to the discussion of React and the React ecosystem. +### React Conf 2019 {#react-conf-2019} + +A playlist of videos from React Conf 2019. + + +### React Conf 2018 {#react-conf-2018} + +A playlist of videos from React Conf 2018. + + ### React.js Conf 2017 {#reactjs-conf-2017} A playlist of videos from React.js Conf 2017. diff --git a/content/docs/concurrent-mode-adoption.md b/content/docs/concurrent-mode-adoption.md index 347a7a110..720c34c17 100644 --- a/content/docs/concurrent-mode-adoption.md +++ b/content/docs/concurrent-mode-adoption.md @@ -71,7 +71,7 @@ import ReactDOM from 'react-dom'; // // You can opt into Concurrent Mode by writing: -ReactDOM.createRoot( +ReactDOM.unstable_createRoot( document.getElementById('root') ).render(
-Якщо ви не користуєтесь Create React App, то ви можете додати вручну [цей плагін для трансформації коду](https://www.npmjs.com/package/babel-plugin-transform-react-jsx-source) до вашої конфігурації Babel. Зверніть увагу, що він призначений лише для режиму розробки і **повинен бути відключений в продакшн**.
+Якщо ви не користуєтесь Create React App, то ви можете додати вручну [цей плагін для трансформації коду](https://www.npmjs.com/package/@babel/plugin-transform-react-jsx-source) до вашої конфігурації Babel. Зверніть увагу, що він призначений лише для режиму розробки і **повинен бути відключений в продакшн**.
> Примітка
>
diff --git a/content/docs/faq-styling.md b/content/docs/faq-styling.md
index 1008b5888..79882a43f 100644
--- a/content/docs/faq-styling.md
+++ b/content/docs/faq-styling.md
@@ -44,7 +44,6 @@ render() {
### Що таке CSS-in-JS? {#what-is-css-in-js}
"CSS-in-JS" відносяться до патерну, де CSS описується з використанням JavaScript замість описування у зовнішніх файлах.
-Ви можете ознайомитись з бібліотеками CSS-in-JS [тут](https://github.com/MicheleBertoli/css-in-js).
_Зауважте, що цей функціонал не є частиною React, але надається сторонніми бібліотеками._ React не має чіткої точки зору стосовно визначення стилів; якщо ви маєте сумнів, гарним початком може бути визначення ваших стилів в окремому `*.css` файлі з посиланням на них використовуючи [`className`](/docs/dom-elements.html#classname).
diff --git a/content/docs/forms.md b/content/docs/forms.md
index 44a6aeb06..e0ac073a0 100644
--- a/content/docs/forms.md
+++ b/content/docs/forms.md
@@ -214,7 +214,7 @@ class Reservation extends React.Component {
handleInputChange(event) {
const target = event.target;
- const value = target.name === 'isGoing' ? target.checked : target.value;
+ const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
diff --git a/content/docs/handling-events.md b/content/docs/handling-events.md
index a0b42547f..18bcca7b7 100644
--- a/content/docs/handling-events.md
+++ b/content/docs/handling-events.md
@@ -53,7 +53,7 @@ function ActionLink() {
}
```
-Тут `e` - це синтетична подія. React визначає ці синтетичні події відповідно до [специфікації W3C](https://www.w3.org/TR/DOM-Level-3-Events/), тому вам не потрібно турбуватися про сумісніть між браузерами. Перегляньте довідник по [`SyntheticEvent`](/docs/events.html), щоб дізнатися більше.
+Тут `e` - це синтетична подія. React визначає ці синтетичні події відповідно до [специфікації W3C](https://www.w3.org/TR/DOM-Level-3-Events/), тому вам не потрібно турбуватися про сумісніть між браузерами. React-події працюють інакше, ніж нативні події. Перегляньте довідник по [`SyntheticEvent`](/docs/events.html), щоб дізнатися більше.
Зазвичай, коли ви використовуєте React, вам не потрібно викликати `addEventListener`, щоб додати обробник до DOM-елементу після його створення. Натомість, просто вкажіть обробник, коли елемент вперше відрендерився.
diff --git a/content/docs/hooks-faq.md b/content/docs/hooks-faq.md
index 4612e2647..9a4e591c1 100644
--- a/content/docs/hooks-faq.md
+++ b/content/docs/hooks-faq.md
@@ -580,7 +580,7 @@ useEffect(() => {
Давайте глянемо, чому це важливо.
-Якщо ви вкажете [список залежностей](/docs/hooks-reference.html#conditionally-firing-an-effect) в якості останнього аргумента `useEffect`, `useMemo`, `useCallback` чи `useImperativeHandle`, він має містити всі значення, що використовуються у тілі функції зворотнього виклику та беруть участь у потоці даних React, включно з пропсами, станом і їх похідними.
+Якщо ви вкажете [список залежностей](/docs/hooks-reference.html#conditionally-firing-an-effect) в якості останнього аргумента `useEffect`, `useLayoutEffect`, `useMemo`, `useCallback` чи `useImperativeHandle`, він має містити всі значення, що використовуються у тілі функції зворотнього виклику та беруть участь у потоці даних React, включно з пропсами, станом і їх похідними.
Можна безпечно пропустити функцію з списку залежностей **лише** тоді, коли вона (чи функції, які вона викликає) не посилається на пропси, стан чи їх похідні. У цьому прикладі є помилка:
diff --git a/content/docs/reference-dom-elements.md b/content/docs/reference-dom-elements.md
index 65e57c5c4..fee34469b 100644
--- a/content/docs/reference-dom-elements.md
+++ b/content/docs/reference-dom-elements.md
@@ -56,7 +56,8 @@ function MyComponent() {
### selected {#selected}
-Атрибут `selected` підтримується компонентами `