Skip to content

Commit bbcf20c

Browse files
authored
Merge pull request #28 from reactjs/sync-a0cacd7d
2 parents cf9a8ae + ee80030 commit bbcf20c

22 files changed

+680
-22
lines changed
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
11.7 KB
Loading
12.3 KB
Loading

src/content/community/meetups.md

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ Do you have a local React.js meetup? Add it here! (Please keep the list alphabet
4848
* [Montreal, QC - React Native](https://www.meetup.com/fr-FR/React-Native-MTL/)
4949
* [Vancouver, BC](https://www.meetup.com/ReactJS-Vancouver-Meetup/)
5050
* [Ottawa, ON](https://www.meetup.com/Ottawa-ReactJS-Meetup/)
51+
* [Saskatoon, SK](https://www.meetup.com/saskatoon-react-meetup/)
5152
* [Toronto, ON](https://www.meetup.com/Toronto-React-Native/events/)
5253

5354
## Chile {/*chile*/}

src/content/learn/describing-the-ui.md

+39
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ React je JavaScript biblioteka za prikazivanje korisničkog interfejsa (UI). UI
1010

1111
<YouWillLearn isChapter={true}>
1212

13+
<<<<<<< HEAD
1314
* [Kako da napišete svoju prvu React komponentu](/learn/your-first-component)
1415
* [Kada i kako da kreirate više komponenti u jednom fajlu](/learn/importing-and-exporting-components)
1516
* [Kako da dodate markup u JavaScript pomoću JSX](/learn/writing-markup-with-jsx)
@@ -18,6 +19,17 @@ React je JavaScript biblioteka za prikazivanje korisničkog interfejsa (UI). UI
1819
* [Kako da uslovno prikažete komponente](/learn/conditional-rendering)
1920
* [Kako da prikažete više komponenti odjednom](/learn/rendering-lists)
2021
* [Kako da izbegnete zbunjujuće greške tako što ćete komponente držati čistim](/learn/keeping-components-pure)
22+
=======
23+
* [How to write your first React component](/learn/your-first-component)
24+
* [When and how to create multi-component files](/learn/importing-and-exporting-components)
25+
* [How to add markup to JavaScript with JSX](/learn/writing-markup-with-jsx)
26+
* [How to use curly braces with JSX to access JavaScript functionality from your components](/learn/javascript-in-jsx-with-curly-braces)
27+
* [How to configure components with props](/learn/passing-props-to-a-component)
28+
* [How to conditionally render components](/learn/conditional-rendering)
29+
* [How to render multiple components at a time](/learn/rendering-lists)
30+
* [How to avoid confusing bugs by keeping components pure](/learn/keeping-components-pure)
31+
* [Why understanding your UI as trees is useful](/learn/understanding-your-ui-as-a-tree)
32+
>>>>>>> a0cacd7d3a89375e5689ccfba0461e293bfe9eeb
2133
2234
</YouWillLearn>
2335

@@ -524,7 +536,34 @@ Pročitajte **[Održavanje komponenti čistim](/learn/keeping-components-pure)**
524536

525537
</LearnMore>
526538

539+
<<<<<<< HEAD
527540
## Šta dalje? {/*whats-next*/}
541+
=======
542+
## Your UI as a tree {/*your-ui-as-a-tree*/}
543+
544+
React uses trees to model the relationships between components and modules.
545+
546+
A React render tree is a representation of the parent and child relationship between components.
547+
548+
<Diagram name="generic_render_tree" height={250} width={500} alt="A tree graph with five nodes, with each node representing a component. The root node is located at the top the tree graph and is labelled 'Root Component'. It has two arrows extending down to two nodes labelled 'Component A' and 'Component C'. Each of the arrows is labelled with 'renders'. 'Component A' has a single 'renders' arrow to a node labelled 'Component B'. 'Component C' has a single 'renders' arrow to a node labelled 'Component D'.">An example React render tree.</Diagram>
549+
550+
Components near the top of the tree, near the root component, are considered top-level components. Components with no child components are leaf components. This categorization of components is useful for understanding data flow and rendering performance.
551+
552+
Modelling the relationship between JavaScript modules is another useful way to understand your app. We refer to it as a module dependency tree.
553+
554+
<Diagram name="generic_dependency_tree" height={250} width={500} alt="A tree graph with five nodes. Each node represents a JavaScript module. The top-most node is labelled 'RootModule.js'. It has three arrows extending to the nodes: 'ModuleA.js', 'ModuleB.js', and 'ModuleC.js'. Each arrow is labelled as 'imports'. 'ModuleC.js' node has a single 'imports' arrow that points to a node labelled 'ModuleD.js'.">An example module dependency tree.</Diagram>
555+
556+
A dependency tree is often used by build tools to bundle all the relevant JavaScript code for the client to download and render. A large bundle size regresses user experience for React apps. Understanding the module dependency tree is helpful to debug such issues.
557+
558+
<LearnMore path="/learn/understanding-your-ui-as-a-tree">
559+
560+
Read **[Your UI as a Tree](/learn/understanding-your-ui-as-a-tree)** to learn how to create a render and module dependency trees for a React app and how they're useful mental models for improving user experience and performance.
561+
562+
</LearnMore>
563+
564+
565+
## What's next? {/*whats-next*/}
566+
>>>>>>> a0cacd7d3a89375e5689ccfba0461e293bfe9eeb
528567
529568
Idite do [Vaša prva komponenta](/learn/your-first-component) da biste počeli da čitate ovo poglavlje stranicu po stranicu!
530569

src/content/learn/preserving-and-resetting-state.md

+4-20
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,17 @@ State is isolated between components. React keeps track of which state belongs t
1010

1111
<YouWillLearn>
1212

13-
* How React "sees" component structures
1413
* When React chooses to preserve or reset the state
1514
* How to force React to reset component's state
1615
* How keys and types affect whether the state is preserved
1716

1817
</YouWillLearn>
1918

20-
## The UI tree {/*the-ui-tree*/}
19+
## State is tied to a position in the render tree {/*state-is-tied-to-a-position-in-the-tree*/}
2120

22-
Browsers use many tree structures to model UI. The [DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model/Introduction) represents HTML elements, the [CSSOM](https://developer.mozilla.org/docs/Web/API/CSS_Object_Model) does the same for CSS. There's even an [Accessibility tree](https://developer.mozilla.org/docs/Glossary/Accessibility_tree)!
23-
24-
React also uses tree structures to manage and model the UI you make. React makes **UI trees** from your JSX. Then React DOM updates the browser DOM elements to match that UI tree. (React Native translates these trees into elements specific to mobile platforms.)
25-
26-
<DiagramGroup>
27-
28-
<Diagram name="preserving_state_dom_tree" height={193} width={864} alt="Diagram with three sections arranged horizontally. In the first section, there are three rectangles stacked vertically, with labels 'Component A', 'Component B', and 'Component C'. Transitioning to the next pane is an arrow with the React logo on top labeled 'React'. The middle section contains a tree of components, with the root labeled 'A' and two children labeled 'B' and 'C'. The next section is again transitioned using an arrow with the React logo on top labeled 'React'. The third and final section is a wireframe of a browser, containing a tree of 8 nodes, which has only a subset highlighted (indicating the subtree from the middle section).">
29-
30-
From components, React creates a UI tree which React DOM uses to render the DOM
31-
32-
</Diagram>
33-
34-
</DiagramGroup>
35-
36-
## State is tied to a position in the tree {/*state-is-tied-to-a-position-in-the-tree*/}
37-
38-
When you give a component state, you might think the state "lives" inside the component. But the state is actually held inside React. React associates each piece of state it's holding with the correct component by where that component sits in the UI tree.
21+
React builds [render trees](learn/understanding-your-ui-as-a-tree#the-render-tree) for the component structure in your UI.
3922

23+
When you give a component state, you might think the state "lives" inside the component. But the state is actually held inside React. React associates each piece of state it's holding with the correct component by where that component sits in the render tree.
4024

4125
Here, there is only one `<Counter />` JSX tag, but it's rendered at two different positions:
4226

@@ -190,7 +174,7 @@ Updating state
190174
</DiagramGroup>
191175

192176

193-
React will keep the state around for as long as you render the same component at the same position. To see this, increment both counters, then remove the second component by unchecking "Render the second counter" checkbox, and then add it back by ticking it again:
177+
React will keep the state around for as long as you render the same component at the same position in the tree. To see this, increment both counters, then remove the second component by unchecking "Render the second counter" checkbox, and then add it back by ticking it again:
194178

195179
<Sandpack>
196180

0 commit comments

Comments
 (0)