Il semble y avoir une nouvelle récolte de bibliothèques JavaScript spéciales chaque semaine. Il semble que le temps de n'utiliser qu'une bibliothèque par projet soit révolu. Aujourd'hui, je vais vous présenter une bibliothèque de composants très cool, AmplifyJS, qui ne propose que quelques composants très spécialisés..
Selon le site:
AmplifyJS est un ensemble de composants conçus pour résoudre les problèmes courants d'applications Web..
Cela a l'air prestigieux, mais qu'est-ce qui se trouve dans cette bibliothèque??
AmplifyJS a trois pièces principales:
Rejoignez-moi maintenant pour une visite de l'incroyable bibliothèque AmplifyJS! Nous allons créer un système de suivi des employés extrêmement simple. vraiment, c’est juste une table avec quelques fonctionnalités d’application, grâce (en partie) à AmplifyJS.
Nous n'avons pas vraiment besoin de nous préoccuper des problèmes de style et de mise en page aujourd'hui, donc je vais utiliser la bibliothèque Twitter Bootstrap. C'est incroyablement simple: il suffit d'inclure le lien
au fichier CSS -qu’ils vous ont laissé le lien direct de Github-et vous êtes en affaires.
Alors, faites-vous un répertoire de projet. Commencez avec le index.html
fichier, et un js
dossier. Maintenant, rendez-vous sur le site Web AmplifyJS et cliquez sur cet énorme fichier rouge? Télécharger? bouton. Une fois, vous avez le zip de la bibliothèque, extrayez-le et déplacez-le dans le dossier js
dossier. Nous allons aussi avoir besoin de quelques autres choses:
bootstrap-modal.js
: La bibliothèque Twitter Bootstrap comprend quelques scripts pour rendre tout interactif. Et nous allons en utiliser un: le plugin jQuery de la fenêtre modale. Téléchargez-le et ajoutez-le à cela js
dossier.Ensuite, commencez notre index.html
fichier comme ceci:
AmplifyJS Les commandes
Employés
Si vous ne maîtrisez pas l'utilisation de Twitter Bootstrap, vous constaterez qu'il n'est pas facile de l'utiliser. Nous avons un récipient
c'est 940px large. Ensuite, nous avons deux rangée
s. Le premier a une colonne, qui couvre les 16 colonnes. L’autre a deux colonnes: l’une est large de 4 colonnes et l’autre est large de 12 colonnes.
Une dernière chose, avant d’en arriver à un vrai codage: nous allons faire apparaître une fenêtre modale qui permet de saisir les employés. Sous le D'accord, nous sommes prêts à partir! Codons. Ouvrir un Nous utilisons le plugin Bootstrap modal ici; cela juste? instancie? la fenêtre modale. Maintenant, nous voulons que la fenêtre apparaisse lorsque nous cliquons sur? Ajouter un employé? bouton. Bien sûr, nous devrons ajouter le bouton en premier: mettez ceci dans le Cette Ainsi, l'utilisateur devra remplir le formulaire, cliquez sur le bouton? Ajouter? bouton qui a un identifiant de Nous obtenons le formulaire, puis masquons la fenêtre modale. Ensuite, nous allons appeler un Mais attendez, vous dites, c'est quoi Vous voudrez jeter une balise de script pour cela avec les autres. Assez simple, non? Nous venons de créer un littéral d'objet avec nos paramètres et d'ajouter un Cette méthode n'a pas besoin de savoir si une autre partie de notre code veut faire quelque chose avec chaque nouvel employé que nous créons. Notre? Ajouter? le gestionnaire d'événement de bouton n'a pas à s'en inquiéter. Nous allons simplement le publier en tant que? Créé par un employé? événement pour toute partie qui est intéressé à prendre. Nous transmettons notre nouvel objet employé sous forme de données à toute personne intéressée. Ensuite, nous retournons l'objet employé (même si nous n'en gardons pas trace dans notre gestionnaire d'événements).. Alors, est toute autre partie de notre application intéressée par le? employé-créé ??? Oui, en fait. Nous voulons faire deux choses. Tout d’abord, ajoutez cet employé à un tableau de notre page. Deuxièmement, nous voulons stocker l'employé dans le stockage local. Voici la première partie de cela: Pour vous abonner à un événement, nous appelons Quoi de neuf avec ça Maintenant, nous devons capturer ce tableau comme une variable dans notre Et C'est un peu compliqué, mais vous ne devriez pas avoir de problème à le faire. Nous avons un Cette micro-API nous permet de travailler facilement avec notre table. Vous devriez être capable de voir comment passer un tableau à la Oh, alors il y a le '+ message +' Comme vous pouvez le constater, ceci ajoute simplement un Mais ce n'est pas la seule pensée que nous voulons faire quand le? Employé-créé? événement se produit: En haut, avec nos deux autres variables, faisons la troisième et dernière: Nous utilisons maintenant le composant de stockage de AmplifyJS. Cela ne pourrait vraiment pas être plus simple: stocker une valeur, passer Donc, ici, nous ajoutons un nouvel employé au tableau et stockons le tableau dans le fichier? Employés? clé. Je dois noter que puisque nous stockons un tableau, AmplifyJS utilise la sérialisation JSON pour convertir ce tableau en chaîne. Par conséquent, si vous essayez de prendre en charge les navigateurs sans support JSON natif (IE 5 et ultérieur, Firefox 3 et inférieur), vous souhaiterez inclure la bibliothèque json2.js.. Dans notre petit exemple d'application, nous disons que par défaut, les données que vous avez insérées dans l'application ne sont conservées que sur votre ordinateur (dans ce navigateur). Cependant, si l'utilisateur le souhaite, nous lui permettons de l'afficher sur le serveur (hypothétiquement, il s'agit d'informations confidentielles qu'il ne souhaite peut-être pas partager. Toutefois, s'il souhaite y accéder à partir d'autres périphériques, il pourrait le faire. ). Nous allons commencer par ajouter un bouton pour télécharger les données. Maintenant, bien sûr, vos brillants esprits ont déjà compris que nous utiliserions le composant AJAX d’AmplifyJS. Faire AJAX avec AmplifyJS est un peu différent des autres bibliothèques: l’idée est d’abord de définir une connexion au serveur; vous pouvez ensuite utiliser cette connexion autant de fois que vous le souhaitez. Commençons par définir une connexion, appelée? Ressource? par AmplifyJS: Le premier paramètre est ici Enfin, nous avons un objet options. Selon la documentation, vos options de configuration correspondent à tout ce que vous souhaitez définir dans Bien sûr, nous aurons besoin de quelques PHP simples sur le back-end; assurez-vous que le Maintenant, pourquoi ne pas utiliser la connexion, la ressource, que nous avons définie? Eh bien, faisons cela dans un gestionnaire de clic pour cela Lors de l'utilisation de la ressource, le premier paramètre est l'ID de la ressource. c'est le même identifiant de ressource que celui que nous avons défini, donc AmplifyJS sait lequel utiliser. Deuxièmement, nous passons le hachage de données. Dans ce cas, nous transmettons le contenu dans notre magasin, sous la clé "employés". Le dernier paramètre est une fonction appelée lorsque nous obtenons une réponse. Une fois que nous aurons une réponse, nous publierons le? Data-push? un événement. Ensuite, nous avertirons simplement l'utilisateur que cela a fonctionné: Eh bien, c'est notre petit exemple d'application. Nous avons examiné l'utilisation des trois composants AmplifyJS: Alors, quelles sont vos pensées sur AmplifyJS? J'aime ça? Trouvez-vous trop redondant? Écoutons cela dans les commentaires!Ajouter un employé
Étape 2: Câblage de la fenêtre modale
scénario
étiquette au bas de index.html
(Je fais juste cela en ligne, mais je me sens obligé de le mettre dans un nouveau fichier JS). commencez de cette façon: (function () var employeeModal = $ ('# add-employee-modal'). modal (toile de fond: 'statique'); ());
.
data-controls-modal = 'add-employee-modal'
attribut affichera le modal avec ledit ID lorsque le bouton sera cliqué.créer-employé
. Alors connectons un gestionnaire d’événements click pour le bouton:$ ('# create-employee'). click (function () var form = $ ('# employee-form'); employeeModal.modal ('hide'); EMPLOYEE.create (form.find ('[name = prenom] '). val (), form.find (' [nom = nom] '). val (), form.find (' [nom = rôle] '). val ()); form.find (' entrée ') .val ("););
EMPLOYEE.create
méthode, en passant le prénom, le nom et le rôle en tant que les trois paramètres. Enfin, nous effaçons le formulaire.amplifier.publier
EMPLOYEE.create
? Eh bien, c'est une classe micro? que j'ai mis en js / employee.js
. Vérifiez-le:var EMPLOYEE = create: function (prénom, nom, rôle) var employé = prénom: prénom, nom: dernier nom, rôle: rôle, dateEmployé: nouveau Date (); amplify.publish ('créé par l'employé', employé); retour employé ;
Date employée
propriété. Mais, alors et enfin!, Nous avons la première entrée du framework AmplifyJS. Ici, nous utilisons le composant pub / sub events. C'est idéal pour effectuer un couplage lâche entre des parties de votre application..
Étape 3: Réagir avec
amplify.subscribe
amplify.subscribe ('employee-created', fonction (employee) employeeTable.add ([employee.firstName, employee.lastName, employee.role, employee.dateEmployed]); newAlert ('success', 'New Employee Added') ;);
amplify.subscribe
. Nous voulons nous abonner à la? Employé-créé ?; quand cela se produit, nous voulons l'ajouter à la employeeTable
; remarquez qu'au lieu de simplement passer le employé
objet, nous? convertissons? à un tableau; En effet, nous devons nous assurer que les éléments seront dans le bon ordre. Ensuite, nous souhaitons afficher un message pour informer notre utilisateur que l’employé a été ajouté avec succès..employeeTable
variable? Eh bien, premièrement, nous devons ajouter le à notre document. Donc, sous nos? Employés?
, Ajoute ça:
Prénom Nom de famille Rôle Date employée var
déclaration en haut:employeeTable = TABLE.create ($ ('# employee-table')),
TABLE
? C'est la dernière pièce de JS pour ce puzzle. Mettez ceci dans js / table.js
et n'oubliez pas le tag script:var TABLE = proto: init: function (el) this.element = $ (el) .find ('tbody'); , ajouter: function (arr) var row = $ ('
') .html (function () return $ .map (arr, fonction (valeur) return' '+ valeur +' '; ). join (");); this.element.append (ligne);, load: function (lignes, ordre) pour (var i = 0; lignes [i]; i ++) this.add ( lignes [i]); var champs = []; pour (var j = 0; ordre [j]; j ++) champs.push (lignes [i] [ordre [j]]); ceci.add (champs );, clear: function () this.element.empty ();, create: function (el) var table = Objet.create (this.proto); table.init (el); table retour; ; proto
propriété qui est le prototype de nos instances de table. Puis, quand on appelle créer
, nous utilisons Object.create
pour créer un objet qui hérite de this.proto
. Après cela, nous appelons le init
méthode pour définir les propriétés. Enfin, nous retournons l'instance de table. ajouter
La méthode ajoutera une ligne à notre table. Notez également que nous pouvons passer un tableau de lignes à charge
et remplissez la table; nous l'utilisons bientôt.nouveauAlert
méthode que nous avons appelée:function newAlert (type, message) $ ('# zone d'alerte'). append ($ ('
div
à l'envers div
tire parti du style d'alerte de Twitter Bootstrap; après deux secondes, nous effaçons l'alerte et la retirons. amplify.store
employeeStore = amplify.store ('employee') || [];
employeeStore
. Si amplify.store ('employés')
renvoie quelque chose, nous l'utilisons; sinon, nous utiliserons un tableau vide.amplify.subscribe ('créé par l'employé', fonction (employé) employéStore.push (employé); amplify.store ('employés', employéStore););
amplify.store
une clé et la valeur. Pour récupérer la valeur, remettez-lui la clé. En dessous, AmplifyJS stocke cette clé et cette valeur dans le type de stockage disponible sur ce navigateur..
Étape 4: Enregistrement sur le serveur (avec
amplifier.request
)
amplifier.request
est une API incroyablement flexible, et nous ne regarderons pas tout ce qu’elle peut faire. Cependant, vous aurez une bonne idée de la façon dont cela fonctionne ici.amplify.request.define ('pushData', 'ajax', url: 'data.php', tapez: 'POST');
resourceId
, que nous définissons comme? pushData ?; c'est ainsi que nous nous référerons à notre connexion lorsque nous l'utilisons. Le deuxième paramètre est le type de demande. dans ce cas, "ajax". C'est le seul type de requête intégré à AmplifyJS; vous pouvez ajouter les vôtres, mais cela convient aujourd'hui à nos besoins.jQuery.ajax
, aussi bien que cache
(qui vous permet de configurer un cache de mémoire personnalisé) et décodeur
(pour analyser la réponse AJAX). Dans notre cas, seules deux options sont nécessaires: la url
, et le type
de demande que nous faisons.Les données
le dossier est accessible en écriture.data.php
:
$ ('# push-data'). click (function () amplify.request ('pushData', employés: amplify.store ('employés'), fonction (données) amplify.publish ('données poussées ', Les données); ); );
amplify.subscribe ('data-push', function () newAlert ('success', 'Les données ont été envoyées avec succès au serveur'););
Aller plus loin
amplify.publish / amplify.subscribe
, amplify.store
, et amplifier.request
. Nous avons couvert à peu près tout ce qu'il y a à savoir sur le pub et les pièces de magasin (il est un peu plus!), mais il y a un lot plus vous pouvez faire avec l'API de demande. Alors, allez sur le site pour en savoir plus!