8. @romaintaz#DvxFrWeb2015
ECMAScript 6, les classes
class DevoxxFrance extends Conference {
constructor(name) {
this.name = name;
}
welcome() {
return "Welcome to " + this.name;
}
}
9. @romaintaz#DvxFrWeb2015
ECMAScript 6, "let" & "const"
var a = 42, b = 42;
if (true) {
var a = 0;
let b = 0; // Portée limitée au scope if {}
console.log(a); // 0
console.log(b); // 0
}
console.log(a); // 0
console.log(b); // 42
for (let i = 0; i < 10; i++) { ... }
// i undefined
const la_reponse = 42;
la_reponse = 21;
console.log(la_reponse); // retourne 42
10. @romaintaz#DvxFrWeb2015
ECMAScript 6, "String interpolation"
var answer = 42;
console.log(`La réponse est ${answer}`);
// La réponse est 42
function where() {
return "Devoxx France";
}
console.log(`Bienvenue à ${where()}!`);
// Bienvenue à Devoxx France!
11. @romaintaz#DvxFrWeb2015
ECMAScript 6, "=>"
var nombres = [1, 2, 3, 4, 5];
var pairs = nombres.filter(n => n % 2 == 0); // retourne [2, 4]
// var pairs = nombres.filter(function (n) {
// return n % 2 == 0;
// });
function compteur() {
this.valeur = 0;
setInterval(
() => { this.valeur++; } // Pas de problème avec this
, 1000);
}
21. @romaintaz#DvxFrWeb2015
Les Web Components prêts pour la prod?
• Standards encore (un peu) en évolution
• Implémentations très changeantes
• Compatibilité des navigateurs
http://jonrimmer.github.io/are-we-componentized-yet/
30. Catégorie « Pas si vieux, mais qui va faire
encore pas mal parler de lui »
React
31. @romaintaz#DvxFrWeb2015
React
• Projet par acebook
• Sorti en 2013
• S’occupe uniquement de la partie vue (MV*)
• JavaScript isomorphique (serveur & client)
• React Native pour des applications mobiles natives
32. @romaintaz#DvxFrWeb2015
React – Principaux avantages
• Dataflow uni-directionnel :
o voir React comme une fonction (état) à (DOM)
o le même état donne toujours le même rendu
• DOM « virtuel » :
o Manipulation plus rapide
o Modifications minimales
33. @romaintaz#DvxFrWeb2015
Le JSX de React
...
<div id="message"></div>
<script type="text/jsx">
React.render(
<h1>Hello Devoxx!</h1>,
document.getElementById("message")
);
</script>
...