diff --git a/content/docs/implementation-notes.md b/content/docs/implementation-notes.md index a035a5edf..608241ee2 100644 --- a/content/docs/implementation-notes.md +++ b/content/docs/implementation-notes.md @@ -1,6 +1,6 @@ --- id: implementation-notes -title: Implementation Notes +title: Notas de Implementação layout: contributing permalink: docs/implementation-notes.html prev: codebase-overview.html @@ -9,93 +9,93 @@ redirect_from: - "contributing/implementation-notes.html" --- -This section is a collection of implementation notes for the [stack reconciler](/docs/codebase-overview.html#stack-reconciler). +Esta seção é um conjunto de notas de implementação para o [reconciliador de pilha](/docs/codebase-overview.html#stack-reconciler). -It is very technical and assumes a strong understanding of React public API as well as how it's divided into core, renderers, and the reconciler. If you're not very familiar with the React codebase, read [the codebase overview](/docs/codebase-overview.html) first. +Ela é bastante técnica e assume um forte entendimento da API pública do React, assim como da sua divisão em núcleos, renderizadores e o próprio reconciliador. Se você não estiver muito familiarizado com o código do React, leia a [visão geral da base de código](/docs/codebase-overview.html) primeiro. -It also assumes an understanding of the [differences between React components, their instances, and elements](/blog/2015/12/18/react-components-elements-and-instances.html). +Também é pressuposto o entendimento da [diferença entre componentes React, suas instâncias e elementos](/blog/2015/12/18/react-components-elements-and-instances.html). -The stack reconciler was used in React 15 and earlier. It is located at [src/renderers/shared/stack/reconciler](https://github.com/facebook/react/tree/15-stable/src/renderers/shared/stack/reconciler). +O reconciliador de pilha foi usado no React 15 e em versões anteriores. Está localizado em [src/renderers/shared/stack/reconciler](https://github.com/facebook/react/tree/15-stable/src/renderers/shared/stack/reconciler). -### Video: Building React from Scratch {#video-building-react-from-scratch} +### Vídeo: Construindo React do zero {#video-building-react-from-scratch} -[Paul O'Shannessy](https://twitter.com/zpao) gave a talk about [building React from scratch](https://www.youtube.com/watch?v=_MAD4Oly9yg) that largely inspired this document. +[Paul O'Shannessy](https://twitter.com/zpao) deu uma palestra sobre [construir React do zero](https://www.youtube.com/watch?v=_MAD4Oly9yg) que muito inspirou esse documento. -Both this document and his talk are simplifications of the real codebase so you might get a better understanding by getting familiar with both of them. +Tanto este texto quanto a palestra são simplificações da real base de código, então se familiarizar com os dois pode resultar em um entendimento melhor. -### Overview {#overview} +### Visão geral {#overview} -The reconciler itself doesn't have a public API. [Renderers](/docs/codebase-overview.html#stack-renderers) like React DOM and React Native use it to efficiently update the user interface according to the React components written by the user. +O reconciliador em si não possui uma API pública. [Renderizadores](/docs/codebase-overview.html#stack-renderers) como o React DOM e React Native usam-no para atualizar a interface do usuário de acordo com os componentes React escritos pelo usuário. -### Mounting as a Recursive Process {#mounting-as-a-recursive-process} +### Montagem como um Processo Recursivo {#mounting-as-a-recursive-process} -Let's consider the first time you mount a component: +Vamos considerar a primeira vez que você monta um componente: ```js ReactDOM.render(, rootEl); ``` -React DOM will pass `` along to the reconciler. Remember that `` is a React element, that is, a description of *what* to render. You can think about it as a plain object: +O React DOM passará `` para o reconciliador. Lembre-se que `` é um elemento React, isto é, uma descrição *do quê* renderizar. Você pode pensar nele como um simples objeto: ```js console.log(); // { type: App, props: {} } ``` -The reconciler will check if `App` is a class or a function. +O reconciliador irá verificar se `App` é uma classe ou uma função. -If `App` is a function, the reconciler will call `App(props)` to get the rendered element. +Se `App` for uma função, o reconciliador chamará `App(props)` para obter o elemento renderizado. -If `App` is a class, the reconciler will instantiate an `App` with `new App(props)`, call the `componentWillMount()` lifecycle method, and then will call the `render()` method to get the rendered element. +Se `App` for uma classe, o reconciliador instanciará `App` com `new App(props)`, chamará o método de ciclo de vida `componentWillMount()`, e por fim chamando o método render()` para obter o elemento renderizado. -Either way, the reconciler will learn the element `App` "rendered to". +De qualquer forma, o reconciliador saberá em que elemento o `App` foi "renderizado". -This process is recursive. `App` may render to a ``, `Greeting` may render to a `