Utiliser vuejs et es6 en 39 Gestion WordPress

Une bonne occasion d’utiliser l’interface javascript avec l’api WordPress rest est d’améliorer les écrans et les paramètres de gestion WordPress. Jrsquoa i récemment écrit un billet pour Torque sur la création drsquoécrans de configuration en utilisant lrsquoAPI rest et jquery. Crsquoest une bonne introduction, mais drsquohabitude jrsquoutilise vuejs. À lrsquoavenir, jrsquoaborderai plus en détail la façon drsquoutiliser vuejs, mais jrsquoaimerais aborder deux inconvénients importants en expliquant que crsquoest mon approche idéale: la compilation drsquoes6 et la création de modèles.
Je suis un grand fan de vuejs pour plusieurs raisons. Crsquoest facile à démarrer et nrsquoavez pas besoin drsquooutils imaginatifs ou es6 pour lrsquoutiliser. Cela dit, es6 est une amélioration significative du langage Javascript, de sorte que lrsquoécriture avec es6 peut améliorer lrsquoutilisation de vuejs ou de nrsquoimporte quel JavaScript. En appliquant les connaissances d’es6 à l’environnement WordPress, j’ai trouvé un peu difficile que toutes les connaissances que j’ai apprises sur la façon de configurer les outils soient basées sur des projets html + JavaScript traditionnels. C’est bien pour quelque chose qui est complètement découplé de WordPress, mais je veux le faire directement dans la gestion de WordPress.
Après quelques expériences, j’ai ajusté le flux de travail gulp et je l’ai utilisé pour minimiser les fichiers JavaScript dans le plug in wordpress pour compiler es6 en es5 sécurisé par le navigateur en utilisant Babel. Il ne permettra pas drsquoapprouver JS hipster, mais il fonctionne. Je veux montrer comment cela fonctionne et discuter drsquoautres défis liés à lrsquoutilisation de vuejs dans WP admin, comme la création de HTML. Compiler es6 es6 est vraiment génial et jrsquoaime lrsquoutiliser, mais il nrsquoest toujours pas sûr de lrsquoutiliser dans tous les navigateurs. À lrsquoheure actuelle, Babel est lrsquooutil le plus fiable que jrsquoutilise pour créer du Code es5 sécurisé pour mon navigateur. Cela pourrait bientôt changer, mais pour le moment, parce qursquoInternet Explorer est toujours une chose, que
Crsquoest un problème.
Jrsquoai utilisé gulp pour minimiser et combiner les fichiers Javascript, donc je veux continuer à utiliser gulp, mais aussi Babel, parce que je sais que tôt ou tard je vais supprimer Babel. Lrsquoutilisation de Babel en association avec gulp srsquoest avérée relativement simple. Drsquoabord, jrsquoai mis une grande bouche de Babel dans mon paquet. Json: NPM install gulp Babel – êtes intéressé par la devdependency complète de toutes les bibliothèques gulp requises par cet exemple, sauvegardez Dev, qui est:

} avec cela, je peux ajouter la compilation Babel à mon processus de compilation JavaScript Standard:
Const gulp = required (
Const Watch = required (
Const minify = required (
Const sourcemaps = require (lsquogulp sourcemapsrsquo)
Const Babel = required (
Const concat = required (
Avaler Tâche (lsquoadminjsrsquo, fonction () {
Une petite gorgée.
SRC (lsquo assets js admin *.Jsrsquo)
Oui. Pipe (sourcemaps.init ())
Oui. Pipeline (tour de Babel
Par défaut: [lsquoENVrsquo]
}))
Oui. Pipe (concat (lsquo assets js admin.jsrsquo)
Oui. Pipe (sourcemaps.write (lsquo))
Oui. Tuyauterie (rétrécie
Extérieur: lsquo. Minimum JSrsquo,
Aucune source: false,
Boiteux: Oui,
Compression: vrai
}))
Oui. Tuyauterie (Grande destination (lsquo)
})
Avaler Tâche (lsquoWatchrsquo, fonction () {
Avaler Surveillance (lsquo assets js admin *.Jsrsquo, [lsquo adminjsrsquo])
})
Avaler Tâches (lsquodefaultrsquo, [lsquoadminjsrsquo) Utilisez un modèle HTML lors de la configuration drsquoun modèle vuejs, comme Angular. je n’avais pas utilisé vue dans le contexte WordPress, j’aurais utilisé un fichier ou un fichier HTML. Vue adaptée à mon modèle. Mais dans WordPress, je pense qu’il est préférable d’utiliser des fichiers PHP. Pourquoi? Il y a deux raisons: traduire et définir les valeurs par défaut.
Jrsquoai écrit sur différentes façons drsquoinclure des chaînes traduisables dans les applications anglaises
Pour les messages WordPress, Gutenberg utilise l’api WordPress rest pour obtenir les données des messages existants dans la variable Windows Scope, sans avoir besoin de requêtes http supplémentaires, et peut ensuite être utilisé pour définir l’état initial à réagir. Voici un exemple de fonction basée sur le Code Gutenberg pour joindre un fichier javascript et entrer les données dans le post Save dans la fenêtre des objets JavaScript Exemple drsquoéditeur:
Type de poste)
(Current _ user can (lsquoEdit postrsquo, $post gt ID)) {
$request = new WP _ rest request (lsquogetrsquo, sprintf (lsquo WP v2 % S % drsquo,! Empty ($post type Object gt rest base) $ Post _ type Object gt rest base: $post type Object gt name, $post gt ID)
$request gt SET Parameters (lsquoContextrsquo, lsquoEditrsquo)
$Response = rest U Do u request ($Request)
($reply gt is _ Error ()) {
Reviens!
}
WP _ enqueue script (lsquoyour Handlersquo, lsquo Pathrsquo)
WP _ add inline script (lsquoyour Handlersquo, lsquowindow. exampleditor =rsquo. WP json encode ($Response gt get Data ()).
}
} avec cela, je peux configurer les composants vuejs pour utiliser le modèle montré ci dessus.
Nouvelle vue ({0}
El:
Données: fonction () {
Retour à {
Poste: fenêtre Exemple drsquoéditeur
}
}
}) Parfois, un peu de PHP peut grandement améliorer lrsquointerface JavaScript. Jusqursquoà présent, jrsquoai créé des plug ins qui utilisent vuejs dans lrsquoécran drsquoadministration. Le plug in client Caldera forms pro est le seul qui utilise es6. Je encourage à consulter le code source à cet égard sur github. Pour un exemple drsquoutilisation de React, devriez lire le plug in WP Notebook de kadam White ou Gutenberg. Crsquoest ton tour. Trouvez votre plug in, votre sujet ou une partie de votre administrateur de site que pouvez améliorer en utilisant vuejs, ou utiliser comme un moyen drsquoapprentissage. Ensuite, commencez à utiliser ces compétences à lrsquoavant pour améliorer progressivement votre site.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins