Skip to content

Commit 6f280cf

Browse files
committed
Translation in french part7c
1 parent 4e044c1 commit 6f280cf

File tree

1 file changed

+170
-0
lines changed

1 file changed

+170
-0
lines changed

src/content/7/fr/part7c.md

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,4 +471,174 @@ Au lieu d'utiliser la bibliothèque [React Bootstrap](https://react-bootstrap.gi
471471
</Table>
472472
```
473473

474+
Nous aurions pu utiliser une <i>table</i> HTML régulière et ajouter la classe CSS requise:
475+
476+
```js
477+
<table className="table striped">
478+
// ...
479+
</table>
480+
```
481+
482+
L'avantage d'utiliser la bibliothèque React Bootstrap n'est pas évident à partir de cet exemple.
483+
484+
En plus de rendre le code frontend plus compact et lisible, un autre avantage d'utiliser les bibliothèques de frameworks UI React est qu'elles incluent le JavaScript nécessaire pour faire fonctionner certains composants. Certains composants Bootstrap nécessitent quelques [dépendances JavaScript](https://getbootstrap.com/docs/4.1/getting-started/introduction/#js) désagréables que nous préférerions ne pas inclure dans nos applications React.
485+
486+
Certains inconvénients potentiels de l'utilisation de frameworks UI via des bibliothèques d'intégration au lieu de les utiliser "directement" sont que les bibliothèques d'intégration peuvent avoir des API instables et une documentation pauvre. La situation avec [Semantic UI React](https://react.semantic-ui.com) est beaucoup mieux que celle de nombreux autres frameworks UI, car il s'agit d'une bibliothèque d'intégration React officielle.
487+
488+
Il y a aussi la question de savoir si les bibliothèques de frameworks UI devraient être utilisées en premier lieu. C'est à chacun de se forger sa propre opinion, mais pour les personnes manquant de connaissances en CSS et en design web, elles sont des outils très utiles.
489+
490+
### Autres frameworks UI
491+
492+
Voici quelques autres frameworks UI pour votre considération. Si vous ne voyez pas votre framework UI préféré dans la liste, veuillez faire une demande de modification (pull request) au matériel du cours.
493+
494+
<https://bulma.io/>
495+
<https://ant.design/>
496+
<https://get.foundation/>
497+
<https://chakra-ui.com/>
498+
<https://tailwindcss.com/>
499+
<https://semantic-ui.com/>
500+
<https://mantine.dev/>
501+
<https://react.fluentui.dev/>
502+
<https://storybook.js.org>
503+
<https://www.primefaces.org/primereact/>
504+
<https://v2.grommet.io>
505+
<https://blueprintjs.com>
506+
<https://evergreen.segment.com>
507+
<https://www.radix-ui.com/>
508+
<https://react-spectrum.adobe.com/react-aria/index.html>
509+
<https://master.co/>
510+
<https://www.radix-ui.com/>
511+
<https://nextui.org/>
512+
<https://daisyui.com/>
513+
<https://ui.shadcn.com/>
514+
<https://www.tremor.so/>
515+
<https://headlessui.com/>
516+
517+
### Composants stylisés
518+
519+
Il existe également [d'autres manières](https://blog.bitsrc.io/5-ways-to-style-react-components-in-2019-30f1ccc2b5b) de styliser les applications React que nous n'avons pas encore examinées.
520+
521+
La bibliothèque [styled components](https://www.styled-components.com/) propose une approche intéressante pour définir des styles en utilisant des [littéraux de template étiquetés](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates), introduits dans ES6.
522+
523+
Faisons quelques changements aux styles de notre application avec l'aide de styled components. Tout d'abord, installez le paquet avec la commande:
524+
525+
```bash
526+
npm install styled-components
527+
```
528+
529+
Ensuite, définissons deux composants avec des styles:
530+
531+
```js
532+
import styled from 'styled-components'
533+
534+
const Button = styled.button`
535+
background: Bisque;
536+
font-size: 1em;
537+
margin: 1em;
538+
padding: 0.25em 1em;
539+
border: 2px solid Chocolate;
540+
border-radius: 3px;
541+
`
542+
543+
const Input = styled.input`
544+
margin: 0.25em;
545+
`
546+
```
547+
548+
Le code ci-dessus crée des versions stylisées des éléments HTML <i>button</i> et <i>input</i>, puis les assigne aux variables <i>Button</i> et <i>Input</i>.
549+
550+
La syntaxe pour définir les styles est assez intéressante, car les règles CSS sont définies à l'intérieur des accents graves (backticks).
551+
552+
Les composants stylisés que nous avons définis fonctionnent exactement comme les éléments <i>button</i> et <i>input</i> habituels, et ils peuvent être utilisés de la même manière:
553+
554+
```js
555+
const Login = (props) => {
556+
// ...
557+
return (
558+
<div>
559+
<h2>login</h2>
560+
<form onSubmit={onSubmit}>
561+
<div>
562+
username:
563+
<Input /> // highlight-line
564+
</div>
565+
<div>
566+
password:
567+
<Input type='password' /> // highlight-line
568+
</div>
569+
<Button type="submit" primary=''>login</Button> // highlight-line
570+
</form>
571+
</div>
572+
)
573+
}
574+
```
575+
576+
Créons quelques composants supplémentaires pour styliser cette application, qui seront des versions stylisées d'éléments <i>div</i>:
577+
578+
```js
579+
const Page = styled.div`
580+
padding: 1em;
581+
background: papayawhip;
582+
`
583+
584+
const Navigation = styled.div`
585+
background: BurlyWood;
586+
padding: 1em;
587+
`
588+
589+
const Footer = styled.div`
590+
background: Chocolate;
591+
padding: 1em;
592+
margin-top: 1em;
593+
`
594+
```
595+
596+
Utilisons les composants dans notre application:
597+
598+
```js
599+
const App = () => {
600+
// ...
601+
602+
return (
603+
<Page> // highlight-line
604+
<Navigation> // highlight-line
605+
<Link style={padding} to="/">home</Link>
606+
<Link style={padding} to="/notes">notes</Link>
607+
<Link style={padding} to="/users">users</Link>
608+
{user
609+
? <em>{user} logged in</em>
610+
: <Link style={padding} to="/login">login</Link>
611+
}
612+
</Navigation> // highlight-line
613+
614+
<Routes>
615+
<Route path="/notes/:id" element={<Note note={note} />} />
616+
<Route path="/notes" element={<Notes notes={notes} />} />
617+
<Route path="/users" element={user ? <Users /> : <Navigate replace to="/login" />} />
618+
<Route path="/login" element={<Login onLogin={login} />} />
619+
<Route path="/" element={<Home />} />
620+
</Routes>
621+
622+
<Footer> // highlight-line
623+
<em>Note app, Department of Computer Science 2022</em>
624+
</Footer> // highlight-line
625+
</Page> // highlight-line
626+
)
627+
}
628+
```
629+
630+
L'apparence de l'application résultante est illustrée ci-dessous:
631+
632+
![application de notes dans le navigateur avec composants stylisés](../../images/7/18ea.png)
633+
634+
Les composants stylisés ont connu une croissance constante en popularité récemment, et un assez grand nombre de personnes les considèrent comme la meilleure manière de définir des styles dans les applications React.
635+
636+
</div>
637+
638+
<div class="tasks">
639+
640+
### Exercices
641+
642+
Les exercices liés aux sujets présentés ici se trouvent à la fin de cette section du matériel de cours, dans l'ensemble d'exercices [pour étendre l'application de liste de blogs](/en/part7/exercises_extending_the_bloglist).
643+
474644
</div>

0 commit comments

Comments
 (0)