diff --git a/content/docs/implementation-notes.md b/content/docs/implementation-notes.md index a035a5edf..056b482d3 100644 --- a/content/docs/implementation-notes.md +++ b/content/docs/implementation-notes.md @@ -1,6 +1,6 @@ --- id: implementation-notes -title: Implementation Notes +title: Notes d’implémentation 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). +Cette section fournit un ensemble de notes relatives à l’implémentation du [réconciliateur *“stack”*](/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. +C'est très technique et suppose une solide compréhension de l’API publique de React ainsi que de sa structure divisée en noyau, moteurs de rendu et réconciliateur. Si vous ne connaissez pas bien la base de code React, lisez d'abord l'[aperçu du code source](/docs/codebase-overview.html). -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). +Ça suppose également de comprendre les [différences entre les composants React, leurs instances et leurs éléments](/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). +Le réconciliateur *“stack”* était utilisé jusqu’à React 15 inclus. Il se trouve dans [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} +### Vidéo : construire React à partir de zéro {#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) a donné une conférence (en anglais) sur la [construction de React à partir de zéro](https://www.youtube.com/watch?v=_MAD4Oly9yg) qui a largement inspiré ce document. -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. +Ce document et sa conférence sont des simplifications de la véritable base de code : en vous familiarisant avec ces deux sources, vous devriez mieux comprendre. -### Overview {#overview} +### Aperçu {#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. +Le réconciliateur lui-même n’a pas d’API publique. Les [moteurs de rendu](/docs/codebase-overview.html#stack-renderers) comme React DOM et React Native l'utilisent pour mettre à jour efficacement l'interface utilisateur en fonction des composants React écrits par l'utilisateur. -### Mounting as a Recursive Process {#mounting-as-a-recursive-process} +### Le montage, un processus récursif {#mounting-as-a-recursive-process} -Let's consider the first time you mount a component: +Intéressons-nous à la première fois que vous montez un composant : ```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: +React DOM passera `` au réconciliateur. Rappelez-vous que `` est un élément React, c’est-à-dire une description de *quoi* afficher. Vous pouvez le considérer comme un simple objet : ```js console.log(); // { type: App, props: {} } ``` -The reconciler will check if `App` is a class or a function. +Le réconciliateur vérifiera si `App` est une classe ou une fonction. -If `App` is a function, the reconciler will call `App(props)` to get the rendered element. +Si `App` est une fonction, le réconciliateur appellera `App(props)` pour obtenir le rendu de l’élément associé. -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. +Si `App` est une classe, le réconciliateur instanciera une `App` avec `new App(props)`, appellera la méthode de cycle de vie `componentWillMount()`, puis appellera la méthode `render()` pour obtenir le rendu de l’élément. -Either way, the reconciler will learn the element `App` "rendered to". +Dans les deux cas, le réconciliateur saura quel élément « a été produit par le rendu » de `App`. -This process is recursive. `App` may render to a ``, `Greeting` may render to a `