Dans ce j'ai repris ma formation de la spécialisation de développement Full Stack de coursera de Hong Kong University of science and technology
Tout d'abord un développeur Full Stack doit comprendre et assimiler les differente couches:
- la couche présentation(HTML, CSS, JavaScript, Angular, ReactJS, JQuery, ...) pour tout ce conserne la génération du contenu au près du client(browser ou navigateur);
- la couche logique ou métier(NodeJS, Java, PHP, Python,C#, ...) conserne la logique métier ou le traitement des données entre le client et la couche d'accès aux données.
- la couche d'accèss aux données(MYSQL, MongoDB, Cassandara, ...) conserve la persistance des données c'est leurs sauvegardes et leurs protections
- -https://www.laurencegellert.com/2012/08/what-is-a-full-stack-developer/
- - https://edward-designer.com/web/full-stack-web-developer/
- - https://www.andyshora.com/full-stack-developers.html
- - https://en.wikipedia.org/wiki/Multitier_architecture
- - http://www.tonymarston.net/php-mysql/3-tier-architecture.html
- Git et Github
- -https://git-scm.com/
- - https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
- -https://git-scm.com/docs
- - http://ndpsoftware.com/git-cheatsheet.html
- - https://www.atlassian.com/git/tutorials
- Node et NPM
- -https://nodejs.org/en/
- -https://www.npmjs.com/
- -https://nodejs.org/api/
- -https://docs.npmjs.com/
- -https://github.com/johnpapa/lite-server
- d'abord pour les manipulations complexe du DOM et la mise à jour des données dans une page HTML
- Ils nous permetent d'implementer les applications web qui respectent l'architecture MVC OU MVVM
- Ils nous facilitent la liaisions des données (data binding)
- Leurs respects de certaines patternes
- leurs comportements de réutilisabilité
- leurs modularités
- premièrement une bibliothèque JS est une collection de fonctionnalité
ou fonctions qui facilite le développement d'une application mais n'impose pas
une structure propre à l'application donc elle se bas sur l'approche imperative
c'est à dire que le développeur impose sa propre structure(comment l'app doit être executer et structruré par exemple).
Exemple: jQuery, Meteor, Polymer, knockout, Vue, Mercury...
- alors que le Framework impose une structure bien determinée et le développeur
l'adapte son bésoin en ajoutant son code et les Framework ils utilisent l'approche dite declarative avec eventuellement l'inversion de control
Exemple: Angular, React, Ember, Backbone, Aurelia, ...
Pour installer React JS Dans ce cours, on utilise deux gestionnaires de packages à savoir NPM(Node Package Manager) et yarn qui est aussi un autre Gestionnaire
- pour installer React globalement dans son, on utilise:
yarn global add create-react-app@latest
ou son équivalent NPMnpm install -g create-react-app@latest
- pour avoir une idée comment l'utiliser on tappe la commande suivante:
create-react-app --help
Pour créer un projet react JS
create-react-app nomDuProject
dans cascreate-react-app confusion
- pour demarrer je vais dans le dossier
cd confusion
et puisyarn start
ounpm start
-
Syntaxe d'extension JavaScript
-
une courte notation des functions JavaScript qui sera appelée et evaluée en objet JavaScript.
-
une separation artificielle de la logique de génération à partir d'autre logique UI (User Interface).
Ex:
const element = (
<h1> className="greeting">Hello, World</h1>
)
const element = ReactDom.render(
'h1',
{className:'greeting'},
'Hello, World'
)
const element = {
type: 'h1',
props: {
className: 'greeting',
children: 'Hello, World'
}
}
NB: les JSX comme, vous pouvez la remarqué on constate qu'il ya peu de ligne de code.
Ici nous allons utiliser bootstrap(Reactstrap)
- pour installer la dernière version de Bootstrap :
yarn add bootstrap@latest
ounpm install -g bootstrap@latest --save
- ensuit on install reactstrap
yarn add reatstrap
ounpm install -g reatstrap --save
- ensuit on install react-popper
yarn add react-popper
ounpm install -g react-popper --save
NB: ces dependances nous permettent les differentes fonctionnalités de react en bootstrap pour les utilisés, je dois importer bootstrap dans mon fichier src/index.jsimport 'bootstrap/dist/css/bootstrap.min.css'
- Voici un exemple de code, qui permet d'ajouter une barre de navigation en react
import { Navbar, NavbarBrand } from 'reactstrap';
const nav = (
<div className="App">
<Navbar dark color="primary">
<div className="container">
<NavbarBrand href="/">Ristorante Con Fusion</NavbarBrand>
</div>
</Navbar>
</div>
);
- https://reactjs.org/
- https://github.com/facebook/create-react-app
- https://reactstrap.github.io/
- https://reactstrap.github.io/components/navbar/
- https://reactstrap.github.io/components/navbar/
- https://reactjs.org/docs/introducing-jsx.html
- https://babeljs.io/repl
- https://en.wikipedia.org/wiki/Software_framework
- https://en.wikipedia.org/wiki/Inversion_of_control
- https://www.netguru.com/blog/imperative-vs-declarative
- http://latentflip.com/imperative-vs-declarative
- https://hackernoon.com/5-best-javascript-frameworks-in-2017-7a63b3870282#.tt1k09l1d
- https://medium.com/javascript-scene/top-javascript-frameworks-topics-to-learn-in-2017-700a397b711#.pe809bf0u
- https://medium.com/javascript-scene/top-javascript-frameworks-topics-to-learn-in-2017-700a397b711#.pe809bf0u
- http://codenugget.co/2015/03/05/declarative-vs-imperative-programming-web.html
- https://develoger.com/is-reactjs-library-or-a-framework-a14786f681a0
- https://www.quora.com/Is-React-a-library-or-a-framework-and-why
- https://www.upwork.com/hire/react-js-developers/
- https://www.sohamkamani.com/blog/2016/11/16/react-is-a-framework/
- https://hashnode.com/post/why-isnt-react-called-framework-what-does-it-lack-to-be-a-framework-ciwm324og010xzx53wjfq354i
Dans cette partie, vous découvrirez les components en React et comment nous construisons un component en React et concevons ses vues. À la fin de cette leçon, vous pourrez:
-
Créer un component en React
-
Construisez le code du component en React et la vue de votre component à l'aide de **JSX** et **JavaScript**
-
comprendre les **states** et **props**
- Un composant renvoie un ensemble d'éléments React qui devrait apparaître à l'écran
- Les composants vous permettent de diviser votre interface utilisateur en pièces indépendantes et réutilisables
- Les composants acceptent également les entrées
- Différents types de composants peuvent être définis dans React
- Chaque component peut stocker ses propres informations locales dans son state
- Privé et entièrement contrôlé par le component
- Peut être transmis comme props aux enfants
- Seuls les components de classe peuvent avoir un state local
Les attributs JSX sont passés dans un component comme un seul objet
- Disponible dans le component comme props
- Peut passer dans plusieurs attributs
- Impossible de modifier les props dans le component
- La gestion des événements est similaire à la façon dont vous gérez événements sur les éléments DOM:
- Utilisez camelCase pour spécifier les événements
- Fonction Pass en tant que gestionnaire d'événements
- Exemple:
<Card onClick = {() => this.onDishSelect (plat)}>
- Parfois, plusieurs components peuvent partager les mêmes données
- Les modifications des données dans un composant doivent être réfléchi vers un autre component
- Mieux vaut déplacer l’état partagé vers un commun component ancêtre
- Le component React passe par les étapes suivantes
étapes du cycle de vie:
- Mounting
- Updating
- Unmounting
- Mounting Lifecycle Methods Appelé lors de la création d'une instance d'un component et inséré dans le DOM:
constructor()
getDerivedStateFromProps()
render()
componentDidMount()
Appelé lors du rendu d'un component qui peut être causée par le chnangement du props ou state
getDerivedStateFromProps()
shouldComponentUpdate()
render()
getSnapshotBeforeUpdate()
componentDidUpdate()
- Deux méthodes désormais obsolètes:
componentWillReceiveProps ()
etcomponentWillUpdate ()
Est appelé lorsque le component est supprimé
du DOM:
componentWillUnmount ()
- Traitement des erreurs: appelé en cas d'erreur
pendant le rendu, dans une méthode de cycle de vie ou dans le
constructeur de tout component enfant
componentDidCatch ()
- https://reactjs.org/docs/components-and-props.html
- https://reactjs.org/docs/state-and-lifecycle.html
- https://reactstrap.github.io/components/media/
- https://reactjs.org/docs/react-component.html
- https://reactstrap.github.io/components/card/
- https://getbootstrap.com/docs/4.0/content/typography/#unstyled
- https://github.com/facebook/react-devtools
- https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi