diff --git a/README.md b/README.md index f2eb9f887..e88229b01 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ The documentation is divided into several sections with a different tone and pur ## Translation -If you are interested in translating `reactjs.org`, please see the current translation efforts at [isreacttranslatedyet.com](https://www.isreacttranslatedyet.com/). +If you are interested in translating `reactjs.org`, please see the current translation efforts at [translations.reactjs.org](https://translations.reactjs.org/). If your language does not have a translation and you would like to create one, please follow the instructions at [reactjs.org Translations](https://github.com/reactjs/reactjs.org-translation#translating-reactjsorg). diff --git a/content/community/conferences.md b/content/community/conferences.md index 7004a5b65..db2b3eafa 100644 --- a/content/community/conferences.md +++ b/content/community/conferences.md @@ -17,22 +17,32 @@ September 13-15, 2021. 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) -### React Conference Live 2021 {#react-conference-live-2021} -October 7-8, 2021. In-person in Amsterdam, Netherlands + remote (hybrid event) - -[Website](https://www.reactlive.nl/) - [Twitter](https://twitter.com/reactlivenl) - [LinkedIn](https://www.linkedin.com/company/frontendlove/) - - ### React Brussels 2021 {#react-brussels-2021} October 15, 2021 - remote event [Website](https://www.react.brussels/) - [Twitter](https://twitter.com/BrusselsReact) - [LinkedIn](https://www.linkedin.com/events/6805708233819336704/) + +### React Conf Brasil 2021 {#react-conf-brasil-2021} +October 16, 2021 - remote event + +[Website](http://reactconf.com.br) - [Twitter](https://twitter.com/reactconfbr) - [Slack](https://react.now.sh) - [Facebook](https://facebook.com/reactconf) - [Instagram](https://instagram.com/reactconfbr) - [YouTube](https://www.youtube.com/channel/UCJL5eorStQfC0x1iiWhvqPA/videos) + ### React Advanced 2021 {#react-advanced-2021} October 22-23, 2021. In-person in London, UK + remote (hybrid event) [Website](https://reactadvanced.com) - [Twitter](https://twitter.com/reactadvanced) - [Facebook](https://www.facebook.com/ReactAdvanced) - [Videos](https://youtube.com/c/ReactConferences) +### < React Global > by Geekle {#react-global-2021} +November 3-4, 2021 - remote event + +[Website](https://geekle.us/react) - [LinkedIn](https://www.linkedin.com/events/javascriptglobalsummit6721691514176720896/) + +## React Advanced London 2021 {#react-advanced-2021} +October 20-22, 2021. London, UK & remote + +[Website](https://reactadvanced.com) - [Twitter](https://twitter.com/reactadvanced) + ### React India 2021 {#react-india-2021} November 12-14, 2021 - remote event @@ -40,6 +50,16 @@ November 12-14, 2021 - remote event ## Past Conferences {#past-conferences} +### React Native EU 2021 {#react-native-eu-2021} +September 1-2, 2021 - remote event + +[Website](https://www.react-native.eu/) - [Twitter](https://twitter.com/react_native_eu) - [Facebook](https://www.facebook.com/reactnativeeu/) - [Instagram](https://www.instagram.com/reactnative_eu/) + +### React Finland 2021 {#react-finland-2021} +August 30 - September 3, 2021 - remote event + +[Website](https://react-finland.fi/) - [Twitter](https://twitter.com/ReactFinland) - [LinkedIn](https://www.linkedin.com/company/react-finland/) + ### React Case Study Festival 2021 {#react-case-study-festival-2021} April 27-28, 2021 - remote event diff --git a/content/community/courses.md b/content/community/courses.md index 1a9e66e5a..9884bfe78 100644 --- a/content/community/courses.md +++ b/content/community/courses.md @@ -24,6 +24,9 @@ permalink: community/courses.html - [Scrimba: Learn React for free](https://scrimba.com/g/glearnreact) - 48 hands-on video tutorials building react apps. +- [University of Helsinki: Full Stack Open MOOC](https://fullstackopen.com/en/) - Learn to build web applications with React. Available in English, Spanish, Chinese and Finnish. + + ## Paid Courses {#paid-courses} - [Egghead.io](https://egghead.io/browse/frameworks/react) - Short instructional videos on React and many other topics. diff --git a/content/community/meetups.md b/content/community/meetups.md index 5d65b33ce..ce24128e3 100644 --- a/content/community/meetups.md +++ b/content/community/meetups.md @@ -68,6 +68,7 @@ Bạn đã có React.js meetup tại quốc gia của bạn chưa? Thêm nó và ## Anh (Vương Quốc Anh) {#england-uk} * [Manchester](https://www.meetup.com/Manchester-React-User-Group/) * [React.JS Girls London](https://www.meetup.com/ReactJS-Girls-London/) +* [React London : Bring Your Own Project](https://www.meetup.com/React-London-Bring-Your-Own-Project/) ## Pháp {#france} * [Nantes](https://www.meetup.com/React-Nantes/) @@ -181,6 +182,7 @@ Bạn đã có React.js meetup tại quốc gia của bạn chưa? Thêm nó và * [Dallas, TX - ReactJS](https://www.meetup.com/ReactDallas/) * [Dallas, TX - [Remote] React JS](https://www.meetup.com/React-JS-Group/) * [Detroit, MI - Detroit React User Group](https://www.meetup.com/Detroit-React-User-Group/) +* [Indianapolis, IN - React.Indy](https://www.meetup.com/React-Indy) * [Irvine, CA - ReactJS](https://www.meetup.com/ReactJS-OC/) * [Kansas City, MO - ReactJS](https://www.meetup.com/Kansas-City-React-Meetup/) * [Las Vegas, NV - ReactJS](https://www.meetup.com/ReactVegas/) @@ -193,6 +195,7 @@ Bạn đã có React.js meetup tại quốc gia của bạn chưa? Thêm nó và * [New York, NY - React Ladies](https://www.meetup.com/React-Ladies/) * [New York, NY - React Native](https://www.meetup.com/React-Native-NYC/) * [New York, NY - useReactNYC](https://www.meetup.com/useReactNYC/) +* [Omaha, NE - ReactJS/React Native](https://www.meetup.com/omaha-react-meetup-group/) * [Palo Alto, CA - React Native](https://www.meetup.com/React-Native-Silicon-Valley/) * [Philadelphia, PA - ReactJS](https://www.meetup.com/Reactadelphia/) * [Phoenix, AZ - ReactJS](https://www.meetup.com/ReactJS-Phoenix/) diff --git a/content/docs/addons-test-utils.md b/content/docs/addons-test-utils.md index ea92f3eb9..08f9a5f09 100644 --- a/content/docs/addons-test-utils.md +++ b/content/docs/addons-test-utils.md @@ -143,7 +143,7 @@ Pass a mocked component module to this method to augment it with useful methods > Note: > -> `mockComponent()` is a legacy API. We recommend using [`jest.mock()`](https://facebook.github.io/jest/docs/en/tutorial-react-native.html#mock-native-modules-using-jestmock) instead. +> `mockComponent()` is a legacy API. We recommend using [`jest.mock()`](https://jestjs.io/docs/tutorial-react-native#mock-native-modules-using-jestmock) instead. * * * diff --git a/content/docs/codebase-overview.md b/content/docs/codebase-overview.md index 291826aab..5203c47e7 100644 --- a/content/docs/codebase-overview.md +++ b/content/docs/codebase-overview.md @@ -98,7 +98,7 @@ React is a [monorepo](https://danluu.com/monorepo/). Its repository contains mul ### React Core {#react-core} -The "core" of React includes all the [top-level `React` APIs](/docs/top-level-api.html#react), for example: +The "core" of React includes all the [top-level `React` APIs](/docs/react-api.html#react), for example: * `React.createElement()` * `React.Component` diff --git a/content/docs/concurrent-mode-suspense.md b/content/docs/concurrent-mode-suspense.md index 4e1e8c538..dc231d19f 100644 --- a/content/docs/concurrent-mode-suspense.md +++ b/content/docs/concurrent-mode-suspense.md @@ -100,7 +100,7 @@ function ProfileTimeline() { This demo is a teaser. Don't worry if it doesn't quite make sense yet. We'll talk more about how it works below. Keep in mind that Suspense is more of a *mechanism*, and particular APIs like `fetchProfileData()` or `resource.posts.read()` in the above example are not very important. If you're curious, you can find their definitions right in the [demo sandbox](https://codesandbox.io/s/frosty-hermann-bztrp). -Suspense is not a data fetching library. It's a **mechanism for data fetching libraries** to communicate to React that *the data a component is reading is not ready yet*. React can then wait for it to be ready and update the UI. At Facebook, we use Relay and its [new Suspense integration](https://relay.dev/docs/en/experimental/step-by-step). We expect that other libraries like Apollo can provide similar integrations. +Suspense is not a data fetching library. It's a **mechanism for data fetching libraries** to communicate to React that *the data a component is reading is not ready yet*. React can then wait for it to be ready and update the UI. At Facebook, we use Relay and its [new Suspense integration](docs/getting-started/step-by-step-guide/). We expect that other libraries like Apollo can provide similar integrations. In the long term, we intend Suspense to become the primary way to read asynchronous data from components -- no matter where that data is coming from. @@ -110,7 +110,7 @@ Suspense is significantly different from existing approaches to these problems, * **It is not a data fetching implementation.** It does not assume that you use GraphQL, REST, or any other particular data format, library, transport, or protocol. - * **It is not a ready-to-use client.** You can't "replace" `fetch` or Relay with Suspense. But you can use a library that's integrated with Suspense (for example, [new Relay APIs](https://relay.dev/docs/en/experimental/api-reference)). + * **It is not a ready-to-use client.** You can't "replace" `fetch` or Relay with Suspense. But you can use a library that's integrated with Suspense (for example, [new Relay APIs](https://relay.dev/docs/api-reference/relay-environment-provider/)). * **It does not couple data fetching to the view layer.** It helps orchestrate displaying the loading states in your UI, but it doesn't tie your network logic to React components. @@ -126,7 +126,7 @@ So what's the point of Suspense? There are a few ways we can answer this: ## Using Suspense in Practice {#using-suspense-in-practice} -At Facebook, so far we have only used the Relay integration with Suspense in production. **If you're looking for a practical guide to get started today, [check out the Relay Guide](https://relay.dev/docs/en/experimental/step-by-step)!** It demonstrates patterns that have already worked well for us in production. +At Facebook, so far we have only used the Relay integration with Suspense in production. **If you're looking for a practical guide to get started today, [check out the Relay Guide](https://relay.dev/docs/getting-started/step-by-step-guide/)!** It demonstrates patterns that have already worked well for us in production. **The code demos on this page use a "fake" API implementation rather than Relay.** This makes them easier to understand if you're not familiar with GraphQL, but they won't tell you the "right way" to build an app with Suspense. This page is more conceptual and is intended to help you see *why* Suspense works in a certain way, and which problems it solves. @@ -144,7 +144,7 @@ We expect to see a lot of experimentation in the community with other libraries. Although it's technically doable, Suspense is **not** currently intended as a way to start fetching data when a component renders. Rather, it lets components express that they're "waiting" for data that is *already being fetched*. **[Building Great User Experiences with Concurrent Mode and Suspense](/blog/2019/11/06/building-great-user-experiences-with-concurrent-mode-and-suspense.html) describes why this matters and how to implement this pattern in practice.** -Unless you have a solution that helps prevent waterfalls, we suggest to prefer APIs that favor or enforce fetching before render. For a concrete example, you can look at how [Relay Suspense API](https://relay.dev/docs/en/experimental/api-reference#usepreloadedquery) enforces preloading. Our messaging about this hasn't been very consistent in the past. Suspense for Data Fetching is still experimental, so you can expect our recommendations to change over time as we learn more from production usage and understand the problem space better. +Unless you have a solution that helps prevent waterfalls, we suggest to prefer APIs that favor or enforce fetching before render. For a concrete example, you can look at how [Relay Suspense API](https://relay.dev/docs/api-reference/use-preloaded-query/) enforces preloading. Our messaging about this hasn't been very consistent in the past. Suspense for Data Fetching is still experimental, so you can expect our recommendations to change over time as we learn more from production usage and understand the problem space better. ## Traditional Approaches vs Suspense {#traditional-approaches-vs-suspense} diff --git a/content/docs/reference-react-dom.md b/content/docs/reference-react-dom.md index f440ef7ed..c5ab1d7ff 100644 --- a/content/docs/reference-react-dom.md +++ b/content/docs/reference-react-dom.md @@ -50,7 +50,7 @@ If the optional callback is provided, it will be executed after the component is > > `ReactDOM.render()` currently returns a reference to the root `ReactComponent` instance. However, using this return value is legacy > and should be avoided because future versions of React may render components asynchronously in some cases. If you need a reference to the root `ReactComponent` instance, the preferred solution is to attach a -> [callback ref](/docs/more-about-refs.html#the-ref-callback-attribute) to the root element. +> [callback ref](/docs/refs-and-the-dom.html#callback-refs) to the root element. > > Using `ReactDOM.render()` to hydrate a server-rendered container is deprecated and will be removed in React 17. Use [`hydrate()`](#hydrate) instead.