5.7vバインド

vバインド

財団

以前に学習した命令の主な機能は、テンプレートのコンテンツに値を挿入することです。

   

ただし、コンテンツを動的に決定する必要があるだけでなく、特定のプロパティを動的にバインドする必要もあります。

   

たとえば、要素のhref属性を動的にバインドします

たとえば、img要素のsrc属性を動的にバインドします

現時点では、v-bindコマンドを使用できます。

目的:プロパティを動的にバインドする

略語::

预期:任意(引数付き)| オブジェクト(引数なし)

パラメーター:attrOrProp(オプション)

   

v-bindは、1つ以上のプロパティ値をバインドするか、props値を別のコンポーネントに渡すために使用されます(これは、コンポーネントについて学ぶときに紹介されます)

   

開発中、動的にバインドする必要がある属性は何ですか?

   

画像リンクsrc、ウェブサイトリンクhref、一部のクラス、スタイルなどを動的にバインドするなど、まだ多くあります。

たとえば、要素のsrcとhrefはVueインスタンスのデータを介してバインドされ、コードは次のようになります。

   

   

   

vバインド構文糖

v-bindには対応する構文糖があります。

開発では、より簡潔であるため、通常は構文糖という形式を使用します。

省略形は次のとおりです。

   

   

vバインドバインディングクラス

多くの場合、次のようにクラスを動的に切り替えます。

データが特定の状態にある場合、フォントは赤で表示されます。

データが別の状態の場合、フォントは黒で表示されます。

クラスをバインドする方法は2つあります。

オブジェクト構文

配列構文

(1)バインド方法:オブジェクト構文

   

オブジェクト構文の意味は次のとおりです。クラスの後にオブジェクトが続きます。

オブジェクト構文には次の使用法があります。

   

使用法1:{}を介してクラスを直接バインドする

<h2:class = "{'active':isActive}"> Hello World </ h2>

   

使用法2:判断によって複数の値を渡すこともできます

<h2:class = "{'active':isActive、 'line':isLine}"> Hello World </ h2>

   

使用法3:通常のクラスと競合せずに共存する

注:isActiveとisLineの両方がtrueの場合、title / active / lineという3つのクラスがあります。

<h2 class = "title":class = "{'active':isActive、 'line':isLine}"> Hello World </ h2>

   

使用方法4:複雑すぎる場合は、メソッドに配置するか計算することができます

注:クラスは計算された属性です

<h2 class = "title":class = "classes"> Hello World </ h2>

   

   

(2)バインド方法:配列構文

   

配列構文の意味は次のとおりです。配列の後にクラスが続きます。

配列構文には次の使用法があります。

   

使用法1:{}を介してクラスを直接バインドする

<h2:class = "['active']"> Hello World </ h2>

   

使用法2:複数の値を渡すこともできます

<h2:class = "['active'、 'line']"> Hello World </ h2>

   

使用法3:通常のクラスと競合せずに共存する

注:タイトル/アクティブ/ラインの3つのカテゴリがあります

<h2 class = "title":class = "['active'、 'line']"> Hello World </ h2>

   

使用方法4:複雑すぎる場合は、メソッドに配置するか計算することができます

注:クラスは計算された属性です

<h2 class = "title":class = "classes"> Hello World </ h2>

   

   

   

ケース:vue v-forから出てくるリストで、現在をクリックすると、現在のクリックのフォントの色が変わります

   

<!DOCTYPE html >

< html lang = "en" >

   

< >

< メタ文字セット= "UTF-8" >

< メタ名= "viewport" content = "width = device-width、initial-scale = 1.0" >

< meta http - equiv = "X-UA-Compatible" content = "ie = edge" >

< タイトル> ドキュメント</ タイトル>

< スタイル>

アクティブ{

;

}

</ スタイル>

< スクリプトsrc = "../../js / vue.js" > </ スクリプト>

</ >

   

< ボディ>

< div id = "アプリ" >

< ul >

< li v - for = "(m、item)in movies" >

<a @click="btnClick(item)" :key="item" :class="{active:i===item}">{{item}}--{{m}}</a></li>

</ul>

</div>

   

<script>

//创建Vue实例,得到 ViewModel

var vm = new Vue({

el: '#app',

data: {

movies: ['海王', '星际穿越', '大话西游', '少年派', '盗梦空间'],

i: 0,

},

methods: {

btnClick: function (index) {

this.i = index;

},

}

});

</script>

</body>

   

</html>

v-bind 动态绑定style

我们可以利用v-bind:style来绑定一些CSS内联样式.

   

在写CSS属性名的时候, 比如font-size

   

我们可以使用驼峰式 (camelCase) fontSize

或短横线分隔 (kebab-case, 记得用单引号括起来) 'font-size'

绑定class有两种方式:

   

对象语法

数组语法

(1)绑定方式一: 对象语法

   

:style="{color: currentColor, fontSize: fontSize + 'px'}"

   

style后面跟的是一个对象类型

   

对象的key是CSS属性名称

对象的value是具体赋的值, 值可以来自于data中的属性

(2)绑定方式二: 数组语法

   

<div v-bind:style="[baseStyles, overridingStyles]"></div>

   

style后面跟的是一个数组类型

   

多个值以","分割即可

おすすめ

転載: www.cnblogs.com/edfg/p/12708273.html