WordPress es2015 Developer’s Guide (es6)
La communauté des développeurs WordPress discute actuellement du Javascript, en particulier du cadre JavaScript à utiliser dans le noyau WordPress. Quel que soit le cadre choisi, il est clair que WordPress promeut une approche plus moderne du développement d’interface utilisateur centrée sur JavaScript. Customizer, Calypso et Gutenberg en sont des exemples. Si vous vous en souvenez, Matt 2015 a dit \
Qu’est – ce qu’es2015? Et es6? Je dois avouer que ce n’est que récemment que j’ai vraiment compris ce qu’est es2015. Je sais que c’est une version \
Amélioration de la fonction de flèche du module de classe d’objet paramètres par défaut de la chaîne de modèle d’engagement amélioration de l’objet objet objet il y a quelques ajouts importants à es2015: méthode de sténographie vous pouvez déclarer une méthode d’objet en utilisant une paire de valeurs clés, où la valeur est une fonction anonyme: Var utils = {incrément: fonction (count) {renvoie count + 1;}}; Vous pouvez maintenant omettre complètement le mot – clé de fonction: var utils = {increment (count) {return count + 1;}}; C’est plus propre! Lorsque la fonction ou la fonction
Submit () {super.submit (); \/ \/ What to do after Ajax is published to the server} Notez que ce n’est que du sucre syntaxique. Les méthodes basées sur des prototypes sont encore utilisées dans les coulisses. Bien que le résultat soit le même, j’ai trouvé la classe es2015 plus lisible.
Au fur et à mesure que les projets deviennent plus complexes, les modules doivent souvent diviser le javascript en plusieurs fichiers. Nous étendons l’exemple précédent en ajoutant des dépendances à la classe form. La classe d’erreurs sera stockée dans un fichier distinct: \/ \/ form. Type В {constructeur (entrée) {this.inputs = input; this.errors = new Error ();}} Erreur. Erreur de classe JS {}; En général, pour ce faire, vous devez inclure manuellement le script dans la source de la page. Cependant, vous devez noter l’ordre dans lequel les fichiers sont téléchargés: Avec les modules, vous pouvez exporter des classes et les importer au besoin.
Tableau. JS Export default class form {Constructor (input) {this.inputs = input; this.errors = new Error ();} \/ Erreur. JS Export default class Error {}; Un module peut exporter plusieurs membres nommés, mais dans ce cas, je n’exporte qu’un seul élément. Le mot – clé par défaut est utilisé pour spécifier ce qui sera exporté si vous n’avez pas spécifiquement demandé un membre avec un nom de formulaire. En forme. Vous pouvez ensuite importer des classes d’erreurs telles que: \/ \/ form. Erreur d’importation JS de » Erreur. JS’; Exporter le formulaire de classe par défaut {constructeur (entrée) {this.inputs = input; this.errors = new Error ();}}; Il suffit maintenant d’inclure le fichier de formulaire. JS dans la source de la page:
L’écriture de petits composants réutilisables en javascript n’est pas nouvelle, mais des chargeurs de modules tels que AMD, commonjs ou UMD étaient auparavant nécessaires, tous avec une syntaxe variable. Heureusement, le module es2015 introduit une méthode standard de chargement des modules. Malheureusement, quand il s’agit de modules, il y a un \
Faites – le pendant l’opération ou en cas d’erreur. La fonction delayedtask () suivante simule une requête Ajax. Après 1 seconde, il renvoie au hasard les engagements résolus ou rejetés. Les promesses tenues sont celles qui ont été faites avec succès, tandis que les promesses rejetées sont celles qui ont échoué. Lorsqu’il s’agit d’une demande Ajax, toute demande autre que le Code de réponse 200 du serveur est généralement rejetée: fonction delayedtask () {return New promise ((resolve, Reject) = > {settimeout () = > {var rand = math.floor (math.random () * 3) + 1; \/ \/ 1 – 3 Return rand = = 2? Reject (): resolve (;}, 1000);});} Ensuite, vous pouvez utiliser les méthodes then et catch pour gérer les résultats promis: delayedtask () \/ \/ Je veux effectuer cette tâche. Puis (() = > alerte (‘look mom, I succeeded!’) \/ \/ lorsque c’est fait, faites – le. Catch (() = > alert (‘boooo! I failed!’) \/ Si vous ne pouvez pas utiliser cette chaîne de modèle dans votre programmation, vous devez généralement construire une chaîne entrelacée avec une variété de données. En PHP, vous pouvez faire glisser la variable directement dans la chaîne de guillemets: $Output = \