Vue入門:(v-show v-if v-bind)

v-show

式の値の真偽に応じて、要素の表示と非表示を切り替えます(操作は表示スタイル)

<img v-show="表达式" />

如果表达式为true,图片img显示
如果表达式为false,图片img隐藏

v-if

式の値の真偽に応じて、要素の表示と非表示を切り替えます(操作は判定素子)

<img v-if="表达式" />

如果表达式为true,图片img显示
如果表达式为false,图片img隐藏

それでは、2つの違いをテストする簡単なプログラムを書いてみましょう。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<div id="app">
			<button type="button" v-show="isshow">show</button>
			<button type="button" v-if="isshow">if</button>
			<button @click="change" ></button>
		</div>
	
		<script>
			var app =new Vue({
     
     
				el:"#app",
				data:{
     
     
					isshow:true
				},
				methods:{
     
     
					change:function(){
     
     
						this.isshow=!this.isshow;
					}
				}
			})
		</script>
	</body>
</html>

実行図を以下に示します。
ここに画像の説明を挿入
このとき、2つのボタンのプロパティは次のとおりです。
ここに画像の説明を挿入

「変更」の値でボタンをクリックすると、「表示」ボタンと「if」ボタンのデフォルトの属性値がv-showとv-ifの値に対応します。
このとき、両方ボタンが消え、属性は次のとおりです
ここに画像の説明を挿入

表示ボタンの表示属性がnoneに変更され
、ifボタンが直接破棄されていることがわかります。


vバインド

要素の属性を設定します(などsrc、title、class
基本的な使用法
v-bind:属性名=式

<img v-bind:src="imgsrc" >

v-bindは、記号「:」と省略できます。

<img :src="imgsrc" >

テストコード

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<div id="app">
			
		<!-- 	<img v-bind:src="imgsrc" > -->
			<img :src="imgsrc" :title="imgtitle" :class="imgclass">
		</div>
		
		
		<script>
			var app =new Vue({
     
     
				el:"#app",
				data:{
     
     
					imgsrc:"img/0.jpg",
					imgtitle:"学习风景",
					imgclass:"imgclass"
				}
			})
		</script>
	</body>
</html>

src、title、class属性をそれぞれ定義します

データで属性を宣言する必要があることに注意してください。v-bind属性に結果値を直接書き込むことはできません。書き込まれた値は属性名と見なされるため、属性名が見つかりませんというエラーが報告されます。


例:単純な画像切り替え

機能:2つのボタンを使用して、左と右の画像を切り替えます。最初の画像の場合は右にのみ切り替えることができ、最後の画像の場合は左にのみ切り替えることができます。つまり、ボタンはこの時点で非表示になっています。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body style="text-align: center;">
		<div id="app">
			<button type="button" @click="left" v-show="leftshow"><</button>
			<img :src="imgs[index]" style="width: 200px; ">
			<button type="button" @click="right" v-show="rightshow">></button>
		
			
		</div>
		<!-- 对于制作原型或学习,你可以这样使用最新版本: -->	
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<script>
			var app=new Vue({
     
     
				el:"#app",
				data:{
     
     
					imgs:[
					    //图片路径
						"./img/0.jpg",
						"./img/1.jpg",
						"./img/2.jpg",
						"./img/3.jpg",
						"./img/4.jpg",
						"./img/5.jpg",
					],
					index:0,
					leftshow:false,
					rightshow:true
				},
				methods:{
     
     
					left:function(){
     
     
						
					    this.index--;
						if(this.index==0)
						this.leftshow=false;
						
						if(this.index>=0&&this.index<5){
     
     
						this.rightshow=true;
						
						}
						
						
						
					},
					right:function(){
     
     
						
						this.index++;
						if(this.index>=0&&this.index<5){
     
     
					    this.rightshow=true;
						}
						else if(this.index==5)
						this.rightshow=false;
						
						if(this.index>0)
						this.leftshow=true;
					}
				}
			})
		</script>
	</body>
</html>

おすすめ

転載: blog.csdn.net/qq_43522998/article/details/109609656