Maison > interface Web > js tutoriel > le corps du texte

Vue.js doit apprendre chaque jour la liaison de données bidirectionnelle

高洛峰
Libérer: 2017-01-12 11:45:20
original
1294 Les gens l'ont consulté

Vue.js 的模板是基于 DOM 实现的。这意味着所有的 Vue.js 模板都是可解析的有效的 HTML,且通过一些特殊的特性做了增强。Vue 模板因而从根本上不同于基于字符串的模板,请记住这点。

插值

文本

数据绑定最基础的形式是文本插值,使用 “Mustache” 语法(双大括号):

Message: {{ msg }}

Mustache 标签会被相应数据对象的 msg 属性的值替换。每当这个属性变化时它也会更新。

你也可以只处理单次插值,今后的数据变化就不会再引起插值更新了:

This will never change: {{* msg }}

原始的 HTML

双 Mustache 标签将数据解析为纯文本而不是 HTML。为了输出真的 HTML 字符串,需要用三 Mustache 标签:

{{{ raw_html }}}

内容以 HTML 字符串插入——数据绑定将被忽略。如果需要复用模板片断,应当使用 partials。

在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 [XSS 攻击](https://en.wikipedia.org/wiki/Cross-site_scripting)。记住,只对可信内容使用 HTML 插值,**永不**用于用户提交的内容。

HTML 特性

Mustache 标签也可以用在 HTML 特性 (Attributes) 内:

Notez que l'interpolation ne peut pas être utilisée dans les directives et fonctionnalités spéciales de Vue.js. Ne vous inquiétez pas, Vue.js vous avertira si la balise Moustache est utilisée au mauvais endroit.

Expression de liaison

Le texte placé à l'intérieur de la balise Moustache est appelé une expression de liaison. Dans Vue.js, une expression de liaison consiste en une simple expression JavaScript et éventuellement un ou plusieurs filtres.

Expressions JavaScript

Jusqu'à présent, nos modèles n'étaient liés qu'à de simples clés de propriété. Cependant, Vue.js prend en charge les expressions JavaScript complètes dans la liaison de données :

{{ number 1 }}

{{ ok ?

{{ message.split('').reverse().join('') }}

Ces expressions seront évaluées dans le cadre de l'instance Vue à laquelle elles appartiennent. Une limitation est que chaque liaison ne peut contenir qu'une seule expression, donc l'instruction suivante n'est pas valide :

{{ var a = 1 }}

{{ if (ok) { return message } } }

Filtre

Vue.js permet d'ajouter un "Filtre" facultatif après l'expression, indiqué par le "caractère barre verticale" :

{{ message | >Ici, nous "dirigons" la valeur du message d'expression vers le filtre de capitalisation intégré. Ce filtre est en fait juste une fonction JavaScript qui renvoie la valeur en majuscule. Vue.js fournit plusieurs filtres intégrés, et nous expliquerons plus tard comment développer vos propres filtres.

Notez que la syntaxe des tubes n'est pas la syntaxe JavaScript, les filtres ne peuvent donc pas être utilisés dans les expressions, mais ne peuvent être ajoutés qu'après l'expression.

Les filtres peuvent être concaténés :

{{ message | filterA | filterB }>

Les filtres peuvent également accepter des paramètres :

{{ message | filterA ' arg1' arg2 }}

Les fonctions de filtre prennent toujours la valeur d'une expression comme premier argument. Les paramètres entre guillemets sont traités comme des chaînes, tandis que les paramètres sans guillemets sont évalués comme des expressions. Ici, la chaîne « arg1 » est transmise au filtre comme deuxième argument et la valeur de l'expression arg2 est évaluée comme troisième argument.

Directives

Les directives sont des fonctionnalités spéciales préfixées par v-. La valeur de la directive est limitée à une expression de liaison, donc les règles d'expression JavaScript et de filtre mentionnées ci-dessus s'appliquent également ici. La responsabilité d'une directive est d'appliquer un comportement spécial au DOM lorsque la valeur de son expression change. Reprenons l'exemple dans "Aperçu" :

Bonjour !

Ici, la directive v-if sera basé sur La valeur de salutation de l'expression vraie ou fausse supprime/insère l'élément

Paramètre

Certaines commandes peuvent avoir un "argument" après leur nom, séparé par deux points. Par exemple, la directive v-bind est utilisée pour mettre à jour les fonctionnalités HTML de manière réactive :

Ici href est le paramètre, il indique à la directive v-bind de lier l'attribut href de l'élément à la valeur de l'url de l'expression. Vous avez peut-être remarqué que vous pouvez obtenir le même résultat avec l'interpolation de fonctionnalités {% raw %}href="{{url}}"{% endraw %} : c'est correct, et en fait, l'interpolation de fonctionnalités en interne est convertie en liaison v-bind .

Un autre exemple est la directive v-on, qui est utilisée pour écouter les événements DOM :

Ce paramètre est le nom de l'événement surveillé. Nous expliquerons également la liaison d'événements en détail.

Modificateurs

Les Modificateurs (Modificateurs) sont des suffixes spéciaux commençant par un point demi-largeur., utilisés pour indiquer que les instructions doivent être liées d'une manière spéciale. Par exemple, le modificateur .literal indique à la directive d'analyser sa valeur comme une chaîne littérale plutôt que comme une expression :

Bien sûr, cela ne semble pas avoir de sens, puisqu'il suffit d'utiliser href="/a/b/c" au lieu d'utiliser une directive. Cet exemple sert simplement à démontrer la syntaxe. Nous verrons plus tard des utilisations plus pratiques des modificateurs.

Abréviation

Le préfixe v- est un repère visuel qui identifie une fonctionnalité Vue spécifique dans le modèle. Ces préfixes peuvent faire la différence lorsque vous devez ajouter un comportement dynamique à du code HTML existant. Mais lorsque vous utilisez des instructions courantes, vous aurez l’impression qu’écrire ainsi est vraiment verbeux. Et lors de la création d'une application monopage (SPA), Vue.js gérera tous les modèles, et le préfixe v- n'est pas si important pour le moment. Par conséquent, Vue.js fournit des abréviations spéciales pour les deux instructions les plus couramment utilisées, v-bind et v-on :

abréviation v-bind

abréviation v-on

<!-- 完整语法 -->
<a v-bind:href="url"></a>
 
<!-- 缩写 -->
<a :href="url"></a>
 
<!-- 完整语法 -->
<button v-bind:disabled="someDynamicCondition">Button</button>
 
<!-- 缩写 -->
<button :disabled="someDynamicCondition">Button</button>
Copier après la connexion

Ils sont un peu différents du HTML "légal", mais ils sont analysés correctement dans tous les navigateurs pris en charge par Vue.js et n'apparaissent pas dans le balisage final rendu. La syntaxe des abréviations est totalement facultative, mais au fur et à mesure que vous apprendrez étape par étape, vous serez heureux de les avoir.

<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
 
<!-- 缩写 -->
<a @click="doSomething"></a>
Copier après la connexion
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.

Pour plus d'articles liés à la liaison de données bidirectionnelle que Vue.js doit apprendre chaque jour, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal