knockout.js Tutoriel
Démarrer avec knockout.js
Recherche…
Remarques
Cette section fournit une vue d'ensemble de ce que knockout.js est et pourquoi un développeur peut vouloir l'utiliser.
Il devrait également mentionner tous les grands sujets dans knockout.js, et établir un lien avec les sujets connexes. Comme la documentation de knockout.js est nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.
Versions
Version | Remarques | Date de sortie |
---|---|---|
3.4.2 | Corrections de bugs | 2017-03-06 |
3.4.1 | Corrections de bugs | 2016-11-08 |
3.4.0 | 2015-11-17 | |
3.3.0 | 2015-02-18 | |
3.2.0 | Liaison de component introduite | 2014-08-12 |
3.1.0 | 2014-05-14 | |
3.0.0 | Voir aussi: mise à niveau (à partir de 2.x) notes | 2013-10-25 |
2.3.0 | Dernière version 2.x | 2013-07-08 |
2.0.0 | 2011-12-21 | |
1.2.1 | Dernière version 1.x | 2011-05-22 |
1.0.0 | 2010-07-05 |
Installation ou configuration
Knockout est disponible sur la plupart des plates-formes JavaScript ou en tant que script autonome.
Inclure comme script
Vous pouvez télécharger le script depuis sa page de téléchargement , puis l'inclure dans votre page avec une script tag
standard
<script type='text/javascript' src='knockout-3.4.0.js'></script>
Utiliser un CDN
Vous pouvez également inclure des knock-out du CDN Microsoft ou CDNJS
<script type='text/javascript' src='//ajax.aspnetcdn.com/ajax/knockout/knockout-3.4.0.js'></script>
OU
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js'></script>
Installer à partir de npm
npm install knockout
facultativement, vous pouvez ajouter le paramètre --save
pour le conserver dans votre fichier package.json
Installer à partir de bower
bower install knockout
facultativement, vous pouvez ajouter le paramètre --save
pour le conserver dans votre fichier bower.json
Installer depuis NuGet
Install-Package knockoutjs
Pour commencer: Bonjour tout le monde!
Créer un document HTML et activer knockout.js
Créez un fichier HTML et incluez knockout.js
via une <script>
.
<!DOCTYPE html>
<html>
<head>
<title>Hello world! (knockout.js)</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-debug.js"></script>
</body>
</html>
Ajoutez une seconde <script>
sous le script knockout. Dans cette balise de script, nous allons initialiser un modèle de vue et appliquer des données liées à notre document.
<script>
var ViewModel = function() {
this.greeting = ko.observable("Hello");
this.name = ko.observable("World");
this.appHeading = ko.pureComputed(function() {
return this.greeting() + ", " + this.name() + "!";
}, this);
};
var appVM = new ViewModel();
ko.applyBindings(appVM);
</script>
Maintenant, continuez à créer une vue en ajoutant du HTML au corps:
<section>
<h1 data-bind="text: appHeading"></h1>
<p>Greeting: <input data-bind="textInput: greeting" /></p>
<p>Name: <input data-bind="textInput: name" /></p>
</section>
Lorsque le document HTML est ouvert et que les scripts sont exécutés, vous verrez une page indiquant Bonjour, Monde! . Lorsque vous modifiez les mots dans les éléments <input>
, le texte <h1>
est automatiquement mis à jour.
Comment le fichier créé fonctionne
- Une version de débogage de knockout est chargée depuis une source externe (cdnjs)
Code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-debug.js"></script>
- Une instance viewmodel est créée et possède des propriétés observables . Cela signifie que KO peut détecter les modifications et mettre à jour l'interface utilisateur en conséquence.
Code:
var appVM = new ViewModel();
- Knockout vérifie les attributs de
data-bind
dedata-bind
du DOM et met à jour l'interface utilisateur à l'aide du modèle de vue fourni.
Code:
ko.applyBindings(appVM);
- Lorsqu'il rencontre une liaison de
text
, le masquage utilise la valeur de la propriété telle qu'elle est définie dans le modèle de vue lié pour injecter un nœud de texte:
Code:
<h1 data-bind="text: appHeading"></h1>
Observables Calculés
Les observables calculés sont des fonctions qui peuvent "regarder" ou "réagir" à d'autres observables du modèle de vue. L'exemple suivant montre comment afficher le nombre total d'utilisateurs et l'âge moyen.
Remarque: L'exemple ci-dessous peut également utiliser pureComputed () (introduit dans la version 3.2.0) car la fonction calcule simplement quelque chose en fonction d'autres propriétés du modèle de vue et renvoie une valeur.
<div>
Total Users: <span data-bind="text: TotalUsers">2</span><br>
Average Age: <span data-bind="text: UsersAverageAge">32</span>
</div>
var viewModel = function() {
var self = this;
this.Users = ko.observableArray([
{ Name: "John Doe", Age: 30 },
{ Name: "Jane Doe", Age: 34 }
]);
this.TotalUsers = ko.computed(function() {
return self.Users().length;
});
this.UsersAverageAge = ko.computed(function() {
var totalAge = 0;
self.Users().forEach(function(user) {
totalAge += user.Age;
});
return totalAge / self.TotalUsers();
});
};
ko.applyBindings(viewModel);