Dans mon dernier article pour Torque, j’ai montré comment utiliser le cadre JavaScript vuejs avec l’api WordPress rest. Dans avez appris comment combiner l’api WordPress rest avec vuejs et jquery ajax pour afficher et modifier les messages individuels. Il décrit également le constructeur vue et la syntaxe du modèle. Cette semaine, jrsquoaimerais présenter les composants et quelques propriétés de données supplémentaires. Les composants peuvent mieux réutiliser le Code tout au long de lrsquoapplication. À titre drsquoexemple pratique, cet article montrera comment créer une liste de messages et un composant de messages.
Comme il srsquoagit de vuejs, le code sera relativement simple, mais il exploitera toutes les fonctionnalités du cadre de réponse. Pour j’ai créé un thème WordPress très simple et je l’ai publié sur github. Bien sûr, pouvez créer votre propre thème à partir de zéro, mais si nécessaire, pouvez utiliser le modèle que jrsquoai créé. Je commence par la tête. Php, pied de page. PHP et index. Php a supprimé la plupart des PHP, y compris les boucles, à partir de 2015. La seule chose importante que je fais est de mettre en file drsquoattente vuejs et jquery dans mes fonctions. Php. Faites le avant de créer un thème simple sans boucle en utilisant votre cadre préféré ou de mon thème.
Jrsquoai également utilisé cette fonction pour ajouter une variable appelée config au Dom via le script WP _ localize qui contient lrsquoURL de lrsquoAPI et la nonce de lrsquoAPI rest. Le premier composant qui crée un composant vue JS est très similaire à la création drsquoune instance vue. Nous créerons un composant de liste de postes à utiliser dans lrsquoInstance vue. Comme le composant est indépendant de lrsquoInstance vue, nous pouvons le réutiliser. La composante vue a été créée en utilisant vue. Component (). Le résultat de la création du composant est que nous avons un élément HTML qui fonctionnera comme une mini application. Voici les balises HTML que nous utiliserons:
Crsquoest tout. Nous devons fournir un modèle et écrire des composants et des exemples de vue principa
Afficher dynamiquement le contenu drsquoun message en cachant des extraits drsquoautres messages. Il est beaucoup plus facile de modifier les balises et le code JavaScript que drsquoutiliser jquery pour des opérations similaires. La magie vient de lrsquoattribut V if. Lorsqursquoil est appliqué à un élément, cet attribut détermine si lrsquoélément est affiché ou caché en fonction de la valeur qui lui est transmise. Nous pouvons utiliser une partie du modèle actuel ou des fonctions définies dans la méthode des composants.
Pour faciliter lrsquoutilisation, nous nous baserons sur deux nouveaux attributs de données de composants: la liste et lrsquoaffichage. La liste sera une valeur booléenne commençant par True, indiquant que nous sommes en mode liste. Show sera un entier représentant lrsquoID du message affiché et commencera par 0 Parce que nous commençons par ne pas afficher. Avant de faire cela, modifions le modèle onclick Manager en ligne, comme je lrsquoai montré la semaine dernière, pour gérer les événements cachés et affichés:
{titre de lrsquoarticle. Présentation}
Coupez.
En savoir plus
Maintenant, nous avons lrsquoextraction de post qui montre si lrsquoattribut de données est vrai, et le contenu de post qui montre que lrsquoid de post est égal à lrsquoattribut affiché. De plus, nous avons ajouté un bouton « lire plus » et un bouton « fermer » qui utilisent la même logique conditionnelle.
Notez que les boutons lire plus et fermer utilisent le gestionnaire de clic en ligne. Ceux ci devraient être définis dans le sujet de la méthode des composants. Notez également comment la fonction Read () remplit le post. ID, crsquoest bien parce qursquoon en a besoin pour définir la valeur de chaque programme. Voici le composant mis à jour qui contient les deux fonctions, qui nrsquoont que deux lignes: (fonction ($)
Var vue
$. Lorsque ($. Get (config.api.posts). Puis (fonction d)
Vue. Composites
Net (lsquoliste des entréesrsquo {net)
Modèle:
Données: fonction () {
Retour à {
Liste: vrai,
Affichage: 0,
Projet: D
}
},
Méthode:
Lire: fonction (ID) {
Voilà. Liste = false
Voilà. Afficher = ID
},
Fermeture: fonctions () {
Voilà. Liste = vrai
Celui là. Affichage = 0
}
}
})
Vue = nouvelle vue ({0}
El:
Données: {}
})
})
}) (jquery) Lorsque cliquez sur lire, définissez la valeur drsquoaffichage à lrsquoID du message à partir duquel cliquez et la valeur de liste à False. Il suffit de cacher tous les extraits et de ne montrer que le message. Lorsque cliquez sur close (), show est défini à 0, la liste est définie à true et tout le contenu est retourné comme auparavant.
Composant drsquoun seul article maintenant, nous créons un deuxième composant pour un seul article. Nous allons maintenant utiliser un seul fichier. Thème WordPress pour PHP. La semaine prochaine, nous ajouterons un routeur pour basculer dynamiquement entre les vues. Avant de commencer, jrsquoaimerais confirmer ce célibataire. Php gère une variété de messages publics, pas seulement des messages et des pages, donc je les ajoute à mes fonctions. PHP:
Public WP _ post types [$post type] gt afficher dans rest {
$wp u post u types [$post U type] gt show _ in rest = true
(NULL ($wp u post u types [$post U type] gt rest u base)) {
$wp u post u types [$post U type] gt rest u base = $wp u post u types [$post U type] gt name
}
}
}
}, 40 000) Maintenant, dans mon seul PHP, jrsquoai créé une version simplifiée du balisage HTML pour mes applications et modèles:
{titre de lrsquoarticle. Présentation}
Nous devons maintenant créer un nouveau composant, ce qui sera beaucoup plus facile que la dernière fois. Jrsquoai tout fait quand jrsquoétais célibataire. Php, avec les résultats suivants:
{titre de lrsquoarticle. Présentation}
(fonction ($)
Configuration des variables = {
API: {
Position:
},
Pour le moment:
}
Var vue
$. Quand ($. Get (config.api.posts +
Var post = vue. Component (lsquoafterrsquo {
Modèle:
Données: fonction () {
Retour à {
Projet: D
}
}
})
Vue = nouvelle vue ({0}
El:
Données: {}
})
})
}) (jquery)
Crsquoest très similaire à la dernière fois, mais sans boucle, et crsquoest un composant séparé. Jusqursquoà présent, par souci de simplicité, jrsquoai créé ces composants dans les composants jquery. Get (). Nous obtenons des messages ou des messages et les utilisons pour créer des composants. Cela fonctionne, mais il rend nos composants étroitement liés aux exigences http et difficiles à réutiliser. Jrsquoaimerais donc parler du premier cycle de vie drsquoun composant et de la façon de déplacer Ajax à lrsquointérieur du composant. Cela ralentira le chargement des composants et les permettra
Peut être réutilisé dans le routeur, qui est la prochaine partie de cette série. Lorsqursquoun composant est chargé, il est appelé srsquoil a une méthode appelée mounted. C’est la méthode que nous pouvons utiliser pour appeler des fonctions dans la propriété Component Method ou pour obtenir des données de l’api WordPress rest. Voici notre nouveau composant de liste de diffusion: vue. Component (lsquoafter Listrsquo {after List)
Modèle:
Données: fonction () {
Retour à {
Liste: vrai,
Affichage: 0,
Message: []
}
},
Monté: fonction () {
Voilà. Getposts ()
},
Méthode:
Getpost: fonction () {
Var Self = this
$. Get (config.api.posts, Function {
Self $ Set (from,
})
},
Lire: fonction (ID) {
Voilà. Liste = false
Voilà. Afficher = ID
},
Fermeture: fonctions () {
Voilà. Liste = vrai
Celui là. Affichage = 0
}
}
}) Notez qursquoil y a toujours une valeur dans nos données de Post, mais elle est vide. nous ne le faisons pas, il ne sera pas considéré comme un attribut réactif du composant et nous ne pourrons pas le mettre à jour plus tard. Une autre chose importante à noter est que nous avons utilisé ce dollar Set () met à jour sa valeur lorsque $est rappelé avec succès. Get (). Où est la prochaine étape? Crsquoest ainsi que nous créons des composants réutilisables en utilisant vuejs. Maintenant nous avons une vue de liste et une vue. Comme elles ne sont pas fortement associées à une requête API, nous pouvons les utiliser pour différents types de messages, ou nous pouvons fournir des données sans utiliser Ajax, du moins lorsque chargez une seule page. Nous sommes très proches de tout ce dont avez besoin pour les thèmes Web de la page d’accueil WordPress d’une page. La semaine prochaine, nous allons creuser dans le routeur vuejs afin que puissiez changer lrsquoétat entre les routes sans charger de nouvelles pages, et les choses vont commencer à devenir plus compliquées