Heim > Web-Frontend > js-Tutorial > Hauptteil

Analyse von Anwendungsfällen der V-Bind-Direktive in VueJs

php中世界最好的语言
Freigeben: 2018-06-01 11:44:07
Original
1770 Leute haben es durchsucht

Dieses Mal werde ich die Anwendungsfälle der V-Bind-Anweisung in VueJs analysieren. Was sind die Vorsichtsmaßnahmen bei der Verwendung der V-Bind-Anweisung in VueJs? , lass uns einen Blick darauf werfen.

Einführung

Vue bietet offiziell eine Abkürzung: bind, zum Beispiel:

<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>
Nach dem Login kopieren

1. Übersicht

v-bind wird hauptsächlich für die Attributbindung verwendet, z. B. Ihr Klassenattribut, Stilattribut, Wertattribut, href-Attribut usw . Usw., solange es sich um ein Attribut handelt, kann es mit der v-bind-Direktive gebunden werden.

Beispiel:

<!-- 绑定一个属性 -->
<img v-bind:src="imageSrc">
<!-- 缩写 -->
<img :src="imageSrc">
<!-- 内联字符串拼接 -->
<img :src="&#39;/path/to/images/&#39; + fileName">
<!-- class 绑定 -->
<p :class="{ red: isRed }"></p>
<p :class="[classA, classB]"></p>
<p :class="[classA, { classB: isB, classC: isC }]">
<!-- style 绑定 -->
<p :style="{ fontSize: size + &#39;px&#39; }"></p>
<p :style="[styleObjectA, styleObjectB]"></p>
<!-- 绑定一个有属性的对象 -->
<p v-bind="{ id: someProp, &#39;other-attr&#39;: otherProp }"></p>
<!-- 通过 prop 修饰符绑定 DOM 属性 -->
<p v-bind:text-content.prop="text"></p>
<!-- prop 绑定。“prop”必须在 my-component 中声明。-->
<my-component :prop="someThing"></my-component>
<!-- 通过 $props 将父组件的 props 一起传给子组件 -->
<child-component v-bind="$props"></child-component>
<!-- XLink -->
<svg><a :xlink:special="foo"></a></svg>
Nach dem Login kopieren

2. Bindungs-HTML-Klasse

Objektsyntax

Wir können Give übergeben v-bind:class ein Objekt zum dynamischen Wechseln der Klasse

<p v-bind:class="{ active: isActive }"></p>
Nach dem Login kopieren

Die obige Syntax zeigt an, ob diese Klasse aktiv ist oder nicht, hängt von der Wahrheit des Datenattributs isActive

Sie können in der Objekt Übergeben Sie weitere Attribute, um dynamisch zwischen mehreren Klassen zu wechseln. Darüber hinaus kann die Direktive v-bind:class auch mit dem normalen Klassenattribut koexistieren. Wenn die folgende Vorlage vorhanden ist:

<p class="static"
  v-bind:class="{ active: isActive, &#39;text-danger&#39;: hasError }">
</p>
  和如下 data
data: {
 isActive: true,
 hasError: false
}
Nach dem Login kopieren

Das Ergebnis wird wie folgt gerendert:

<p class="static active"></p>
Nach dem Login kopieren

Wenn sich isActive oder hasError ändert, wird die Klassenliste entsprechend aktualisiert. Wenn beispielsweise der Wert von hasError true ist, wird die Klassenliste zu „static active text-danger“

Das gebundene Datenobjekt muss nicht inline in der Vorlage definiert werden

<p v-bind:class="classObject"></p>
data: {
 classObject: {
 active: true,
 'text-danger': false
 }
}
Nach dem Login kopieren

Das gerenderte Ergebnis und dasselbe wie oben. Wir können hier auch eine berechnete Eigenschaft des zurückgegebenen Objekts binden. Dies ist ein häufiges und leistungsstarkes Muster:

<p v-bind:class="classObject"></p>
data: {
 isActive: true,
 error: null
},
computed: {
 classObject: function () {
 return {
  active: this.isActive && !this.error,
  'text-danger': this.error && this.error.type === 'fatal'
 }
 }
}
Nach dem Login kopieren

Array-Syntax

Wir können ein Array an v-bind:class übergeben, um eine Klasse anzuwenden Listen Sie

<p v-bind:class="[activeClass, errorClass]"></p>
data: {
 activeClass: 'active',
 errorClass: 'text-danger'
}
Nach dem Login kopieren

auf und rendern Sie es als:

<p class="active text-danger"></p>
Nach dem Login kopieren

Wenn Sie die Klassen in der Liste auch basierend auf Bedingungen wechseln möchten, können Sie den ternären -Ausdruck

verwenden
<p v-bind:class="[isActive ? activeClass : &#39;&#39;, errorClass]"></p>
Nach dem Login kopieren

Wenn Sie so schreiben, wird immer errorClass hinzugefügt, aber nur activeClass, wenn isActive wahr ist.

Allerdings ist es etwas umständlich, so zu schreiben, wenn mehrere bedingte Klassen vorhanden sind. Daher kann die Objektsyntax auch in der Array-Syntax verwendet werden

<p v-bind:class="[{ active: isActive }, errorClass]"></p>
Nach dem Login kopieren

3. Wird für Komponenten verwendet

Bei Verwendung in einer benutzerdefinierten -Komponente Wenn Sie das Klassenattribut für verwenden, werden diese Klassen dem Stammelement der Komponente hinzugefügt. Klassen, die bereits auf diesem Element vorhanden sind, werden nicht überschrieben.

Wenn Sie beispielsweise diese Komponente deklarieren:

Vue.component('my-component', {
 template: '<p class="foo bar">Hi</p>'
})
Nach dem Login kopieren

und dann bei der Verwendung eine Klasse

<my-component class="baz boo"></my-component>
Nach dem Login kopieren

hinzufügen, wird der HTML-Code wie folgt gerendert:

<p class="foo bar baz boo">Hi</p>
Nach dem Login kopieren

Das Gleiche gilt für die Datenbindung-Klasse

<my-component v-bind:class="{ active: isActive }"></my-component>
Nach dem Login kopieren

Wenn isActive true ist, wird HTML als

<p class="foo bar active">Hi</p>
Nach dem Login kopieren

gerendert. 4. Bindung inline definieren style

Objektsyntax

Die Objektsyntax von v-bind:style ist sehr intuitiv – sie sieht sehr nach CSS aus, ist aber eigentlich ein JavaScript--Objekt . CSS-Eigenschaftsnamen können mit „camelCase“ oder „kebab-case“ benannt werden (denken Sie daran, sie in einfache Anführungszeichen zu setzen):

<p v-bind:style="{ color: activeColor, fontSize: fontSize + &#39;px&#39; }"></p>
data: {
 activeColor: 'red',
 fontSize: 30
}
Nach dem Login kopieren
Normalerweise ist es besser, direkt an ein Stilobjekt zu binden, was die Vorlage klarer macht

<p v-bind:style="styleObject"></p>
data: {
 styleObject: {
 color: 'red',
 fontSize: '13px'
 }
}
Nach dem Login kopieren
Ebenso wird die Objektsyntax häufig in Verbindung mit den berechneten Eigenschaften des zurückgegebenen Objekts verwendet

Array-Syntax

   v-bind:style 的数组语法可以将多个样式对象应用到同一个元素上

<p v-bind:style="[baseStyles, overridingStyles]"></p>
Nach dem Login kopieren

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

使用JS判断字符串中包含内容方法总结

JS+HTML5实绑定鼠标事件的粒子动画

Das obige ist der detaillierte Inhalt vonAnalyse von Anwendungsfällen der V-Bind-Direktive in VueJs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage