Vue.js 的模板是基于 DOM 实现的。这意味着所有的 Vue.js 模板都是可解析的有效的 HTML,且通过一些特殊的特性做了增强。Vue 模板因而从根本上不同于基于字符串的模板,请记住这点。
插值
文本
数据绑定最基础的形式是文本插值,使用 “Mustache” 语法(双大括号):
Message: {{ msg }}
Mustache 标签会被相应数据对象的 msg 属性的值替换。每当这个属性变化时它也会更新。
你也可以只处理单次插值,今后的数据变化就不会再引起插值更新了:
This will never change: {{* msg }}
原始的 HTML
双 Mustache 标签将数据解析为纯文本而不是 HTML。为了输出真的 HTML 字符串,需要用三 Mustache 标签:
内容以 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 } } }
Bonjour !
Ici, la directive v-if sera basé sur La valeur de salutation de l'expression vraie ou fausse supprime/insère l'élémentParamètreCertaines 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éviationLe 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>
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>