On Github get-focus / formation-react
Team Focus, le 21/10/2016
http://bit.ly/1MjtHDX
ReactJS, c'est un framework JS, pour bâtir des interfaces cools et modulaires.
Pour ceux qui connaissent AngularJS, EmberJS, c'est le même but, mais en fait c'est mieux.
La grande force de React, c'est le DOM virtuel.
React maintient en permanence une copie rapide du DOM, fait toutes ses mises à jour en fond, et ne met à jour le DOM qu'au besoin.
L'intérêt ? Un gain en performance, et surtout un découplage de la logique composants du DOM, ce qui pousse à des trucs coolos genre React Native <3
ReactJS a une approche composant. Un composant, c'est une pièce du puzzle qui crée l'interface utilisateur.
Faire du React, c'est faire des composants, qu'on interconnecte entre eux.
Un peu comme faire un programme en Java, tu écris des classes qui fonctionnent ensemble.
Un composant React, c'est :
Le JSX, c'est un mélange de JS et de HTML. C'est employé par React pour écrire le rendu HTML des composants.
const name = 'Lopez Joe'; return (
donnera
<Parent> <ListeDeTrucs /> <ChampDeSaisie /> <CentreDeNotifs /> </Parent>
Un composant React, ça ressemble à ça :
const MyComponent = React.createClass({ mixins: [firstMixin, secondMixin], _privateMethod() { // Some fancy stuff }, publicMethod() { // Even fancier stuff }, render() { const {name} = this.props; return (
My content
My name is {name}
Que nenni ! Un mixin, c'est un bout de composant partagé entre plusieurs.
C'est juste un objet JS, dont le composant va hériter pour l'intégrer à son prototype.
Une arborescence de composants pour une meilleure flexibilité
Avec les props !
const Parent = React.createClass({ render() { return <Child myProp='coucou'/>; } }); const Child = React.createClass({ render() { return
Cool n'est-ce pas ?
Pour les valeurs que l'on veut faire varier, on utilise le state !
const Counter = React.createClass({ getInitialState() { return {count: 0}; }, componentDidMount() { setInterval(() => { const {count} = this.state; this.setState({count: count + 1}); }, 1000); }, render() { return ( <div> The count is now {this.state.count}. </div> ); } });
Excellente question, j'attendais qu'on me la pose.
Le danger du state, c'est qu'on peut le changer à tout moment. Même quand on veut pas. Surtout quand on veut pas.
C'est très simple ! (en vrai pas tant.)
Pour les mixins !!!
const Hello = React.createClass({ mixins: [firstMixin, secondMixin], getInitialState() { return { hello: "world" }; }, componentWillReceiveProps(nextProps){ console.log(this.props); console.log(nextProps); }, handleInputChange({target: {value}) { this.setState({ hello: value }); }, render() { const {hello} = this.state; return ( <div> <input value={hello} onChange={this.handleInputChange} /> <div>hello {hello}</div> </div> ); } });
extends Component (voir le PureComponent)
class TodoItem extends Component { constructor(props, context) { super(props, context); this.state = { editing: false }; } handleDoubleClick() { this.setState({ editing: true }); } render (){ const {editing} = this.state; return ( <div>Ouuuuuuuah un composant qui a un état : {editing}</div> ) } }
Avec eux, il ne faut pas hésiter !
const Personne = () => { return ( <Profile nom={'Silvio'} bio={'BlaBlaBlaBlaBlaBlaBla'}/> ) }; const Profile = ({nom, bio}) => { return ( <div> {nom}
Des liens utiles
C'est tipar !
Vla l'appli de ouf, j'en peux plus d'attendre de savoir comment la faire, c'est trop utile en plus, purée ils sont trop forts j'adore ces gens.
Nous aussi on vous adore
Du calme mes doux agneaux, tout va bien se passer.