From 0cbc8bc98b4208c26924e754abbc3f4835f9886e Mon Sep 17 00:00:00 2001 From: Rokibul Islam Date: Mon, 7 Oct 2019 23:39:56 +0530 Subject: [PATCH 01/18] Updated some broken links in conferences (#2407) Updated the broken links of React.js Conf 2016 (February 22 & 23 in San Francisco, CA) --- content/community/conferences.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/community/conferences.md b/content/community/conferences.md index cef7ba01b..0e129a5b2 100644 --- a/content/community/conferences.md +++ b/content/community/conferences.md @@ -85,7 +85,7 @@ November 2-4 in Bratislava, Slovakia ### React.js Conf 2016 {#reactjs-conf-2016} February 22 & 23 in San Francisco, CA -[Website](http://conf.reactjs.com/) - [Schedule](http://conf.reactjs.com/schedule.html) - [Videos](https://www.youtube.com/playlist?list=PLb0IAmt7-GS0M8Q95RIc2lOM6nc77q1IY) +[Website](http://conf2016.reactjs.org/) - [Schedule](http://conf2016.reactjs.org/schedule.html) - [Videos](https://www.youtube.com/playlist?list=PLb0IAmt7-GS0M8Q95RIc2lOM6nc77q1IY) ### React Amsterdam 2016 {#react-amsterdam-2016} April 16 in Amsterdam, The Netherlands From c505057312c29b8571c35de62d45057e342af3d3 Mon Sep 17 00:00:00 2001 From: James Baskerville Date: Tue, 8 Oct 2019 04:42:43 -0700 Subject: [PATCH 02/18] Update react-devtools URL (#2408) --- content/docs/lifting-state-up.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/lifting-state-up.md b/content/docs/lifting-state-up.md index 449330cfd..c01c5eab2 100644 --- a/content/docs/lifting-state-up.md +++ b/content/docs/lifting-state-up.md @@ -324,7 +324,7 @@ Lifting state involves writing more "boilerplate" code than two-way binding appr If something can be derived from either props or state, it probably shouldn't be in the state. For example, instead of storing both `celsiusValue` and `fahrenheitValue`, we store just the last edited `temperature` and its `scale`. The value of the other input can always be calculated from them in the `render()` method. This lets us clear or apply rounding to the other field without losing any precision in the user input. -When you see something wrong in the UI, you can use [React Developer Tools](https://github.com/facebook/react-devtools) to inspect the props and move up the tree until you find the component responsible for updating the state. This lets you trace the bugs to their source: +When you see something wrong in the UI, you can use [React Developer Tools](https://github.com/facebook/react/tree/master/packages/react-devtools) to inspect the props and move up the tree until you find the component responsible for updating the state. This lets you trace the bugs to their source: Monitoring State in React DevTools From 8798808afd3208844c27fa53c112758e936bf44e Mon Sep 17 00:00:00 2001 From: "Franrey Anthony S. Saycon" Date: Wed, 9 Oct 2019 08:32:38 +0800 Subject: [PATCH 03/18] Adding ReactJS PH (#2413) We have recently formalized a group here in the Philippines with the aim to have monthly meetups, study jams, and eventually(hopefully) a conference. We are on our 5th meetup for the year now! ever since we started the core team 5-6 months ago. I think the other meetup group is inactive as well as the owner left the group to a company. --- content/community/meetups.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/community/meetups.md b/content/community/meetups.md index 6a58b58ca..074440cff 100644 --- a/content/community/meetups.md +++ b/content/community/meetups.md @@ -102,6 +102,7 @@ Do you have a local React.js meetup? Add it here! (Please keep the list alphabet ## Philippines {#philippines} * [Manila](https://www.meetup.com/reactjs-developers-manila/) +* [Manila - ReactJS PH](https://www.meetup.com/ReactJS-Philippines/) ## Poland {#poland} * [Warsaw](https://www.meetup.com/React-js-Warsaw/) From 0a7beebf2be734f8b65f004b896417c6830e583a Mon Sep 17 00:00:00 2001 From: Bob Ziroll Date: Tue, 8 Oct 2019 20:55:41 -0600 Subject: [PATCH 04/18] Fix typo in the React API Reference `React.Suspense` section (#2412) Alternatively, "`React.Suspense` allows you to specify..." --- content/docs/reference-react.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/reference-react.md b/content/docs/reference-react.md index 0861b58d9..cdb782dee 100644 --- a/content/docs/reference-react.md +++ b/content/docs/reference-react.md @@ -333,7 +333,7 @@ Note that rendering `lazy` components requires that there's a `` ### `React.Suspense` {#reactsuspense} -`React.Suspense` let you specify the loading indicator in case some components in the tree below it are not yet ready to render. Today, lazy loading components is the **only** use case supported by ``: +`React.Suspense` lets you specify the loading indicator in case some components in the tree below it are not yet ready to render. Today, lazy loading components is the **only** use case supported by ``: ```js // This component is loaded dynamically From 0726327dbbf90ec37a5eec9d309882a183fcdfd8 Mon Sep 17 00:00:00 2001 From: Saurabh Daware Date: Wed, 9 Oct 2019 21:35:28 +0530 Subject: [PATCH 05/18] WebApp manifest added to allow users "Add to Homescreen" documentations (#2377) * manifest config added and src/images/react_logo.png added for icon * inverted commas fix as per linter * added legacy:true option for ios * legacy:true lint fix * added meta tags for ios and moved logo from src to static --- gatsby-config.js | 13 +++++++++++++ src/html.js | 5 +++++ static/logo-180x180.png | Bin 0 -> 9656 bytes static/logo-512x512.png | Bin 0 -> 42417 bytes 4 files changed, 18 insertions(+) create mode 100644 static/logo-180x180.png create mode 100644 static/logo-512x512.png diff --git a/gatsby-config.js b/gatsby-config.js index 957c39145..15ef0a53b 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -159,5 +159,18 @@ module.exports = { }, 'gatsby-plugin-react-helmet', 'gatsby-plugin-catch-links', + { + resolve: `gatsby-plugin-manifest`, + options: { + name: 'React Docs', + short_name: 'React', + start_url: '/', + background_color: '#20232a', + theme_color: '#20232a', + display: 'standalone', + icon: 'static/logo-512x512.png', + legacy: true, + }, + }, ], }; diff --git a/src/html.js b/src/html.js index e0e2757e8..b41c3d2ab 100644 --- a/src/html.js +++ b/src/html.js @@ -19,6 +19,11 @@ export default class HTML extends React.Component { content="width=device-width, initial-scale=1.0" /> + + + + + {this.props.headComponents} diff --git a/static/logo-180x180.png b/static/logo-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..4c1c84d84686255bd401d92a3c26b12b8277e487 GIT binary patch literal 9656 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 literal 0 HcmV?d00001 From 454f44e7c00594fe45475536455bfaab184d8feb Mon Sep 17 00:00:00 2001 From: Jimmy Cleveland Date: Wed, 9 Oct 2019 22:25:15 -0600 Subject: [PATCH 06/18] Add usage example for useContext. (#2414) * Add usage example for useContext. The intent is to show where the hook fits in to the usual Context usage. * Remove unnecessary comment in code block. --- content/docs/hooks-reference.md | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/content/docs/hooks-reference.md b/content/docs/hooks-reference.md index 41464b47d..852ae4833 100644 --- a/content/docs/hooks-reference.md +++ b/content/docs/hooks-reference.md @@ -196,6 +196,50 @@ A component calling `useContext` will always re-render when the context value ch > >`useContext(MyContext)` only lets you *read* the context and subscribe to its changes. You still need a `` above in the tree to *provide* the value for this context. +**Putting it together with Context.Provider** +```js{31-36} +const themes = { + light: { + foreground: "#000000", + background: "#eeeeee" + }, + dark: { + foreground: "#ffffff", + background: "#222222" + } +}; + +const ThemeContext = React.createContext(themes.light); + +function App() { + return ( + + + + ); +} + +function Toolbar(props) { + return ( +
+ +
+ ); +} + +function ThemedButton() { + const theme = useContext(ThemeContext); + + return ( + + ); +} +``` +This example is modified for hooks from a previous example in the [Context Advanced Guide](/docs/context.html), where you can find more information about when and how to use Context. + + ## Additional Hooks {#additional-hooks} The following Hooks are either variants of the basic ones from the previous section, or only needed for specific edge cases. Don't stress about learning them up front. From 566a36e2c40eff68235501a358a596b60f857458 Mon Sep 17 00:00:00 2001 From: Phil Marshall <35127144+flurmbo@users.noreply.github.com> Date: Thu, 10 Oct 2019 09:52:44 -0500 Subject: [PATCH 07/18] media query to hide header on print (#2409) * media query to hide header on print * add media query to hide footer on print --- src/components/LayoutFooter/Footer.js | 3 +++ src/components/LayoutHeader/Header.js | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/components/LayoutFooter/Footer.js b/src/components/LayoutFooter/Footer.js index a87d33ce8..bc347861f 100644 --- a/src/components/LayoutFooter/Footer.js +++ b/src/components/LayoutFooter/Footer.js @@ -31,6 +31,9 @@ const Footer = ({layoutHasSidebar = false}: {layoutHasSidebar: boolean}) => ( [media.size('sidebarFixed')]: { paddingTop: 40, }, + '@media print': { + display: 'none', + }, }}>
( width: '100%', top: 0, left: 0, + '@media print': { + display: 'none', + }, }}>
Date: Thu, 10 Oct 2019 11:46:36 -0700 Subject: [PATCH 08/18] Added temporary /your-story redirect (#2421) --- static/_redirects | 1 + 1 file changed, 1 insertion(+) diff --git a/static/_redirects b/static/_redirects index 247baaba4..77b358127 100644 --- a/static/_redirects +++ b/static/_redirects @@ -2,3 +2,4 @@ /tips/controlled-input-null-value.html /docs/forms.html#controlled-input-null-value /hooks /docs/hooks-intro.html /tutorial /tutorial/tutorial.html +/your-story https://www.surveymonkey.co.uk/r/MVQV2R9 301 \ No newline at end of file From 41757f144daef5feb22687f33ec0b9ab250d0259 Mon Sep 17 00:00:00 2001 From: Ravi Prakash Date: Fri, 11 Oct 2019 02:40:18 +0530 Subject: [PATCH 09/18] Added a new resource (#2419) --- content/community/articles.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/community/articles.md b/content/community/articles.md index ae79e6b72..6424b3b22 100644 --- a/content/community/articles.md +++ b/content/community/articles.md @@ -16,3 +16,4 @@ permalink: community/articles.html - [The Hands-On Guide to Learning React Hooks](https://www.telerik.com/kendo-react-ui/react-hooks-guide/) - Eric Bishard's step-by-step guide to learning React Hooks. - [How to Use the React Profiler Component to Measure Render Performance](https://medium.com/@adamhenson/how-to-use-the-react-profiler-component-to-measure-performance-improvements-from-hooks-d43b7092d7a8) - Adam Henson's article exemplifying a use case for ``. - [Thinking in React Hooks](https://wattenberger.com/blog/react-hooks) - Amelia Wattenberger's provides visualizations and highlighting the mindset change needed switching from classes to functional components + hooks. +- [React/Redux Links](https://github.com/markerikson/react-redux-links) - Curated tutorial and resource links by Mark Erikson collected on React, Redux, ES6, and more. Very helpful for all kind of developers because of it's categorised content. From 81124465ac68335b2e3fdf21952a51265de6877f Mon Sep 17 00:00:00 2001 From: Thalyta Fabrine Date: Thu, 10 Oct 2019 18:10:55 -0300 Subject: [PATCH 10/18] Fix broken link for suspense demo (#2418) --- content/blog/2018-11-27-react-16-roadmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2018-11-27-react-16-roadmap.md b/content/blog/2018-11-27-react-16-roadmap.md index 56fb8e87e..4fa4e5336 100644 --- a/content/blog/2018-11-27-react-16-roadmap.md +++ b/content/blog/2018-11-27-react-16-roadmap.md @@ -175,7 +175,7 @@ function App() { // provide Suspense integrations with similar APIs. ``` -There is no official documentation for how to fetch data with Suspense yet, but you can find some early information in [this talk](https://youtu.be/ByBPyMBTzM0?t=1312) and [this small demo](https://github.com/facebook/react/tree/master/fixtures/unstable-async/suspense). We'll write documentation for React Cache (and how to write your own Suspense-compatible library) closer to this React release, but if you're curious, you can find its very early source code [here](https://github.com/facebook/react/blob/master/packages/react-cache/src/ReactCache.js). +There is no official documentation for how to fetch data with Suspense yet, but you can find some early information in [this talk](https://youtu.be/ByBPyMBTzM0?t=1312) and [this small demo](https://github.com/facebook/react/blob/master/packages/react-devtools/CHANGELOG.md#suspense-toggle). We'll write documentation for React Cache (and how to write your own Suspense-compatible library) closer to this React release, but if you're curious, you can find its very early source code [here](https://github.com/facebook/react/blob/master/packages/react-cache/src/ReactCache.js). The low-level Suspense mechanism (suspending rendering and showing a fallback) is expected to be stable even in React 16.6. We've used it for code splitting in production for months. However, the higher-level APIs for data fetching are very unstable. React Cache is rapidly changing, and will change at least a few more times. There are some low-level APIs that are [missing](https://github.com/reactjs/rfcs/pull/89) for a good higher-level API to be possible. We don't recommend using React Cache anywhere except very early experiments. Note that React Cache itself isn't strictly tied to React releases, but the current alphas lack basic features as cache invalidation, and you'll run into a wall very soon. We expect to have something usable with this React release. From 4853622a359d1abafb82f37635dd6deb3d5f8287 Mon Sep 17 00:00:00 2001 From: Robert Haritonov Date: Mon, 14 Oct 2019 22:11:50 +0100 Subject: [PATCH 11/18] Add React Summit Amsterdam 2020, and update conf domain (#2423) --- content/community/conferences.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/content/community/conferences.md b/content/community/conferences.md index 0e129a5b2..a18c66ad1 100644 --- a/content/community/conferences.md +++ b/content/community/conferences.md @@ -37,6 +37,11 @@ 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/) +### React Summit Amsterdam 2020 {#react-summit-2020} +April 15-17, 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) + ### Render-Atlanta 2020 {#render-atlanta-2020} May 4-6, 2020. Atlanta, GA, USA. @@ -90,7 +95,7 @@ February 22 & 23 in San Francisco, CA ### React Amsterdam 2016 {#react-amsterdam-2016} April 16 in Amsterdam, The Netherlands -[Website](https://react.amsterdam) - [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/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) ### ReactEurope 2016 {#reacteurope-2016} June 2 & 3 in Paris, France @@ -140,7 +145,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://react.amsterdam) - [Twitter](https://twitter.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) +[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) ### ReactEurope 2017 {#reacteurope-2017} May 18th & 19th in Paris, France @@ -245,7 +250,7 @@ March 31 in Kiev, Ukraine ### React Amsterdam 2018 {#react-amsterdam-2018} April 13 in Amsterdam, The Netherlands -[Website](https://react.amsterdam) - [Twitter](https://twitter.com/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) +[Website](https://reactsummit.com) - [Twitter](https://twitter.com/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) ### React Finland 2018 {#react-finland-2018} April 24-26 in Helsinki, Finland @@ -350,7 +355,7 @@ April 4-5, 2019 in Kraków, Poland ### React Amsterdam 2019 {#react-amsterdam-2019} April 12, 2019 in Amsterdam, The Netherlands -[Website](https://react.amsterdam) - [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/reactamsterdam) - [Facebook](https://www.facebook.com/reactamsterdam) - [Videos](https://youtube.com/c/ReactConferences) ### React Finland 2019 {#react-finland-2019} April 24-26 in Helsinki, Finland From 378afa448af80a675fc6c8d764c07d34a26b28b0 Mon Sep 17 00:00:00 2001 From: Tom Beckenhauer Date: Wed, 16 Oct 2019 03:51:26 -0400 Subject: [PATCH 12/18] Update meetups.md (#2439) --- content/community/meetups.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/community/meetups.md b/content/community/meetups.md index 074440cff..78bcf1dd6 100644 --- a/content/community/meetups.md +++ b/content/community/meetups.md @@ -131,6 +131,8 @@ Do you have a local React.js meetup? Add it here! (Please keep the list alphabet * [Austin, TX - ReactJS](https://www.meetup.com/ReactJS-Austin-Meetup/) * [Boston, MA - ReactJS](https://www.meetup.com/ReactJS-Boston/) * [Boston, MA - React Native](https://www.meetup.com/Boston-React-Native-Meetup/) +* [Charlotte, NC - ReactJS](https://www.meetup.com/ReactJS-Charlotte/) +* [Charlotte, NC - React Native](https://www.meetup.com/cltreactnative/) * [Chicago, IL - ReactJS](https://www.meetup.com/React-Chicago/) * [Columbus, OH - ReactJS](https://www.meetup.com/ReactJS-Columbus-meetup/) * [Dallas, TX - ReactJS](https://www.meetup.com/ReactDallas/) From d303b08c19bc7a01055c0cf30055329ab1645644 Mon Sep 17 00:00:00 2001 From: Adebayo Ilerioluwa <46798106+adebayoileri@users.noreply.github.com> Date: Thu, 17 Oct 2019 19:20:58 +0100 Subject: [PATCH 13/18] Update conferences.md (#2445) Added reactsummit from nigeria --- content/community/conferences.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/content/community/conferences.md b/content/community/conferences.md index a18c66ad1..77ccf89d2 100644 --- a/content/community/conferences.md +++ b/content/community/conferences.md @@ -12,6 +12,11 @@ Do you know of a local React.js conference? Add it here! (Please keep the list c ## Upcoming Conferences {#upcoming-conferences} +### React Summit 2019 {#reactsummit2019} +November 30, 2019 in Lagos, Nigeria + +[Website](https://reactsummit2019.splashthat.com) -[Twitter](https://twitter.com/react_summit) + ### React Conf 2019 {#react-conf-2019} October 24-25, 2019 in Henderson, Nevada USA From c26e34d68927e18a46447eb0f56b678c6d2958f9 Mon Sep 17 00:00:00 2001 From: mvikrammenon Date: Thu, 17 Oct 2019 16:25:55 -0700 Subject: [PATCH 14/18] Updated URL with page section (#2446) --- content/docs/uncontrolled-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/uncontrolled-components.md b/content/docs/uncontrolled-components.md index 10b6eab28..54b729e96 100644 --- a/content/docs/uncontrolled-components.md +++ b/content/docs/uncontrolled-components.md @@ -4,7 +4,7 @@ title: Uncontrolled Components permalink: docs/uncontrolled-components.html --- -In most cases, we recommend using [controlled components](/docs/forms.html) to implement forms. In a controlled component, form data is handled by a React component. The alternative is uncontrolled components, where form data is handled by the DOM itself. +In most cases, we recommend using [controlled components](/docs/forms.html#controlled-components) to implement forms. In a controlled component, form data is handled by a React component. The alternative is uncontrolled components, where form data is handled by the DOM itself. To write an uncontrolled component, instead of writing an event handler for every state update, you can [use a ref](/docs/refs-and-the-dom.html) to get form values from the DOM. From 1e44de0ef05fac41d60f0716323a1e95a9703af4 Mon Sep 17 00:00:00 2001 From: Eugene Stepnov Date: Sat, 19 Oct 2019 11:23:41 +0300 Subject: [PATCH 15/18] Update tool-ui-component.md (#2447) Add a link to Flatlogic React admin templates. --- content/community/tools-ui-components.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/community/tools-ui-components.md b/content/community/tools-ui-components.md index fe3d4953d..7b0e59ce9 100644 --- a/content/community/tools-ui-components.md +++ b/content/community/tools-ui-components.md @@ -82,3 +82,4 @@ permalink: community/ui-components.html * **[KendoReact](https://www.telerik.com/kendo-react-ui/)**: UI for React Developers. * **[Mobiscroll React UI Components](https://mobiscroll.com/react)** Mobile UI Controls for the Productive React Developer. * **[React UI Toolkit](https://react-ui-tools.com/)**: 115+ professionally maintainted UI components ranging from a robust grid to charts and more. Try for FREE and build React apps faster. +* **[Flatlogic React Admin Templates](https://flatlogic.com/templates/react)** 5+ Paid and Free React Admin templates with a lot of components to speed up web development. No jQuery. From b18fc408802b0896e090bb464c711b96b1223422 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Sun, 20 Oct 2019 01:38:56 +0300 Subject: [PATCH 16/18] Specify lang option for gatsby-plugin-manifest --- gatsby-config.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gatsby-config.js b/gatsby-config.js index 15ef0a53b..2637eac97 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -163,7 +163,9 @@ module.exports = { resolve: `gatsby-plugin-manifest`, options: { name: 'React Docs', - short_name: 'React', + short_name: 'React', // eg. React [%LANG_CODE%] + // Translators: please change this and two above options (see https://www.gatsbyjs.org/packages/gatsby-plugin-manifest/#feature-configuration---optional) + lang: 'en', start_url: '/', background_color: '#20232a', theme_color: '#20232a', From d2ade76cce133af47ab198188fa2de03fa51834b Mon Sep 17 00:00:00 2001 From: Arshita Kakkar Date: Mon, 21 Oct 2019 17:23:45 +0530 Subject: [PATCH 17/18] Documentation (#2449) * Update getting-started.md Line 41 - When starting a React project, [a simple HTML page with script tags](/docs/add-react-to-a-website.html) might still be the best option. It only takes a minute to set up! Removed the hyperlink from "a" as we're focusing on simple HTML page so a shouldn't be hyperlinked. * Update getting-started.md Closes #2450 Co-authored-by: Alexey Pyltsyn --- content/docs/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/docs/getting-started.md b/content/docs/getting-started.md index 6277444c1..27eb26026 100644 --- a/content/docs/getting-started.md +++ b/content/docs/getting-started.md @@ -46,7 +46,7 @@ You can [add React to an HTML page in one minute](/docs/add-react-to-a-website.h ### Create a New React App {#create-a-new-react-app} -When starting a React project, [a simple HTML page with script tags](/docs/add-react-to-a-website.html) might still be the best option. It only takes a minute to set up! +When starting a React project, a [simple HTML page with script tags](/docs/add-react-to-a-website.html) might still be the best option. It only takes a minute to set up! As your application grows, you might want to consider a more integrated setup. There are [several JavaScript toolchains](/docs/create-a-new-react-app.html) we recommend for larger applications. Each of them can work with little to no configuration and lets you take full advantage of the rich React ecosystem. @@ -115,7 +115,7 @@ The [React blog](/blog/) is the official source for the updates from the React t You can also follow the [@reactjs account](https://twitter.com/reactjs) on Twitter, but you won't miss anything essential if you only read the blog. -Not every React release deserves its own blog post, but you can find a detailed changelog for every release [in the `CHANGELOG.md` file in the React repository](https://github.com/facebook/react/blob/master/CHANGELOG.md), as well as on the [Releases](https://github.com/facebook/react/releases) page. +Not every React release deserves its own blog post, but you can find a detailed changelog for every release in the [`CHANGELOG.md` file in the React repository](https://github.com/facebook/react/blob/master/CHANGELOG.md), as well as on the [Releases](https://github.com/facebook/react/releases) page. ## Versioned Documentation {#versioned-documentation} From 5ce17f3c286a2dcdefe35762e4f8e573030ee0dd Mon Sep 17 00:00:00 2001 From: Soichiro Miki Date: Thu, 24 Oct 2019 11:58:00 +0900 Subject: [PATCH 18/18] Resolve conflicts --- content/docs/getting-started.md | 8 -------- content/docs/hooks-reference.md | 10 ++-------- content/docs/lifting-state-up.md | 6 +----- content/docs/reference-react.md | 4 ---- content/docs/uncontrolled-components.md | 6 +----- 5 files changed, 4 insertions(+), 30 deletions(-) diff --git a/content/docs/getting-started.md b/content/docs/getting-started.md index b38de6b6b..12bdaffe9 100644 --- a/content/docs/getting-started.md +++ b/content/docs/getting-started.md @@ -46,11 +46,7 @@ React をちょっと試してみたい場合、Web 上のコードエディタ ### 新規 React アプリの作成 {#create-a-new-react-app} -<<<<<<< HEAD 新しく React のプロジェクトを始めたい場合でも、まずは[シンプルな HTML ページに script タグを追加](/docs/add-react-to-a-website.html)するのがおすすめです。数分でセットアップできます! -======= -When starting a React project, a [simple HTML page with script tags](/docs/add-react-to-a-website.html) might still be the best option. It only takes a minute to set up! ->>>>>>> d2ade76cce133af47ab198188fa2de03fa51834b アプリが成長するにつれて、より統合されたセットアップを行うことを考慮していきましょう。大きいアプリの場合におすすめの[様々な JavaScript を用いたツールチェイン](/docs/create-a-new-react-app.html)が存在します。それぞれわずかな設定、もしくは設定要らずでリッチな React のエコシステムをフル活用できます。 @@ -119,11 +115,7 @@ React の[基本コンセプト](/docs/hello-world.html)について慣れてき 他にも [@reactjs](https://twitter.com/reactjs) のツイッターアカウントをフォローすることもできますが、公式ブログを追っていれば大事なことを見落とすことはないでしょう。 -<<<<<<< HEAD 全ての React のリリースにブログ記事があるわけではありませんが、リリースごとに詳細に書かれた changelog が [React リポジトリの `CHANGELOG.md`](https://github.com/facebook/react/blob/master/CHANGELOG.md)、および [Releases ページ](https://github.com/facebook/react/releases)に記載されています。 -======= -Not every React release deserves its own blog post, but you can find a detailed changelog for every release in the [`CHANGELOG.md` file in the React repository](https://github.com/facebook/react/blob/master/CHANGELOG.md), as well as on the [Releases](https://github.com/facebook/react/releases) page. ->>>>>>> d2ade76cce133af47ab198188fa2de03fa51834b ## バージョン管理されたドキュメント {#versioned-documentation} diff --git a/content/docs/hooks-reference.md b/content/docs/hooks-reference.md index 1d810e9a4..aa14b1728 100644 --- a/content/docs/hooks-reference.md +++ b/content/docs/hooks-reference.md @@ -197,9 +197,7 @@ const value = useContext(MyContext); > > `useContext(MyContext)` は現在のコンテクストの値を**読み取り**、その変化を購読することしかできません。コンテクストの値を**設定**するために、今後もツリーの上の階層で `` が必要です。 -<<<<<<< HEAD -======= -**Putting it together with Context.Provider** +**Context.Provider と組み合わせて使用する方法** ```js{31-36} const themes = { light: { @@ -240,11 +238,7 @@ function ThemedButton() { ); } ``` -This example is modified for hooks from a previous example in the [Context Advanced Guide](/docs/context.html), where you can find more information about when and how to use Context. - - -## Additional Hooks {#additional-hooks} ->>>>>>> d2ade76cce133af47ab198188fa2de03fa51834b +この例は[コンテクストのガイド](/docs/context.html)をフック用に変更したものです。コンテクストをいつどのように使うべきかについては同記事を参照してください。 ## 追加のフック {#additional-hooks} diff --git a/content/docs/lifting-state-up.md b/content/docs/lifting-state-up.md index 260705a7f..c9423536b 100644 --- a/content/docs/lifting-state-up.md +++ b/content/docs/lifting-state-up.md @@ -324,11 +324,7 @@ state のリフトアップは双方向のバインディング (two-way binding props もしくは state から作りだす事のできるデータについては、おそらく state に保持すべきではないでしょう。例えば、今回は `celsiusValue` と `fahrenheitValue` の両方を保存する代わりに、最後に変更された `temperature` と、その値の `scale` のみを保存しています。もう一方の入力の値は常に `render()` メソッド内で計算することができます。これにより元のユーザ入力の精度を全く損なうことなくもう一方の入力フィールドに丸めを適用したり、もう一方の入力フィールドをクリアしたりできます。 -<<<<<<< HEAD -UI で何かおかしな箇所があれば、[React Developer Tools](https://github.com/facebook/react-devtools) を使用して props を調査したり state の更新について責任を持っているコンポーネントに辿り着くまでツリーをさかのぼることができます。これによりバグをその原因まで追いかけることができます。 -======= -When you see something wrong in the UI, you can use [React Developer Tools](https://github.com/facebook/react/tree/master/packages/react-devtools) to inspect the props and move up the tree until you find the component responsible for updating the state. This lets you trace the bugs to their source: ->>>>>>> d2ade76cce133af47ab198188fa2de03fa51834b +UI で何かおかしな箇所があれば、[React Developer Tools](https://github.com/facebook/react/tree/master/packages/react-devtools) を使用して props を調査したり state の更新について責任を持っているコンポーネントに辿り着くまでツリーをさかのぼることができます。これによりバグをその原因まで追いかけることができます。 Monitoring State in React DevTools diff --git a/content/docs/reference-react.md b/content/docs/reference-react.md index 462a45068..6e6d19332 100644 --- a/content/docs/reference-react.md +++ b/content/docs/reference-react.md @@ -333,11 +333,7 @@ const SomeComponent = React.lazy(() => import('./SomeComponent')); ### `React.Suspense` {#reactsuspense} -<<<<<<< HEAD `React.Suspense` を使用することで、その配下にレンダーする準備ができていないコンポーネントがあるときにローディングインジケータを指定できます。現在、遅延読み込みコンポーネントは `` のみによってサポートされています。 -======= -`React.Suspense` lets you specify the loading indicator in case some components in the tree below it are not yet ready to render. Today, lazy loading components is the **only** use case supported by ``: ->>>>>>> d2ade76cce133af47ab198188fa2de03fa51834b ```js // This component is loaded dynamically diff --git a/content/docs/uncontrolled-components.md b/content/docs/uncontrolled-components.md index 897f3ceab..eaf7bd642 100644 --- a/content/docs/uncontrolled-components.md +++ b/content/docs/uncontrolled-components.md @@ -4,11 +4,7 @@ title: 非制御コンポーネント permalink: docs/uncontrolled-components.html --- -<<<<<<< HEAD -ほとんどの場合では、フォームの実装には[制御されたコンポーネント](/docs/forms.html)を使用することをお勧めしています。制御されたコンポーネントでは、フォームのデータは React コンポーネントが扱います。非制御コンポーネントはその代替となるものであり、フォームデータを DOM 自身が扱います。 -======= -In most cases, we recommend using [controlled components](/docs/forms.html#controlled-components) to implement forms. In a controlled component, form data is handled by a React component. The alternative is uncontrolled components, where form data is handled by the DOM itself. ->>>>>>> d2ade76cce133af47ab198188fa2de03fa51834b +ほとんどの場合では、フォームの実装には[制御されたコンポーネント](/docs/forms.html#controlled-components)を使用することをお勧めしています。制御されたコンポーネントでは、フォームのデータは React コンポーネントが扱います。非制御コンポーネントはその代替となるものであり、フォームデータを DOM 自身が扱います。 非制御コンポーネントを記述するには、各 state の更新に対してイベントハンドラを書く代わりに、[ref を使用](/docs/refs-and-the-dom.html)して DOM からフォームの値を取得します。