主頁 > 企業開發 > Vue入門常用指令

Vue入門常用指令

2020-12-03 06:57:15 企業開發

一.Vue 介紹

? Vue (讀音 /vju?/,類似于 view) 是一套用于構建用戶界面的漸進式框架,與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用,Vue 的核心庫只關注視圖層,不僅易于上手,還便于與第三方庫或既有專案整合, 另一方面,當與現代化的工具鏈以及各種支持類別庫結合使用時,Vue 也完全能夠為復雜的單頁應用提供驅動,

二.使用方法

下載到本地參考:

? 開發版: https://cn.vuejs.org/js/vue.js

? 生產版:https://cn.vuejs.org/js/vue.min.js

在線參考:

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  

npm安裝:

// 最新穩定版
npm install vue
// 安裝vue-cli腳手架構建工具
npm install --global vue-cli

官網:https://cn.vuejs.org/

三.vue入門指令

vue實體創建

<body>
		<!--  定義id為app作為 錨點 -->
		<p id="app">
			<!-- vue 運算式{{}} 兩個花括號 ,里面是資料名-->
			{{msg}}
		</p>
		<!-- 引入 vue.js -->
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			// 創建 vue 實體
			new Vue({
				// el 代表的是 頁面中的 id值
				el: '#app',
				// data 是資料 ,與json資料一樣
				data: {
					msg: "hello vue",
				}
			})
			// 在頁面就會顯示 hello vue
		</script>
</body>

注意:vue 運算式語法是兩個花括號{{msg}} 里面寫實體中對應的資料名,資料名必須在對應的vue實體之下,

在寫實體vue時 要注意 屬性和 屬性名之間的空格

  • 指令
    1. 本質就是自定義屬性
    2. Vue中指令都是以 v- 開頭

v-text指令

	<body>
		<div id="app">
			<!-- 在使用 v-text標簽時就不需要{{}} 效果等同于{{msg}} -->
			<p v-text="msg"></p>
			<p>{{msg}}</p>
		</div>
		<!-- 匯入vue.js -->
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			// 在寫實體vue時 要注意 屬性和 屬性名之間的空格
			new Vue({
				el: '#app',
				data: {
					msg: "v-text 測驗"
				}
			})
		</script>
	    <!-- 頁面效果 列印了兩個 v-text 測驗-->
	</body>

v-html指令

  • 用法和v-text 相似 但是他可以將HTML片段填充到標簽中

  • 可能有安全問題, 一般只在可信任內容上使用 v-html永不用在用戶提交的內容上

  • 它與v-text區別在于v-text輸出的是純文本,瀏覽器不會對其再進行html決議,但v-html會將其當html標簽決議后輸出,

<body>
	<div id="app">
		<!-- v-html 指令會將標簽渲染決議 -->
		<p v-html="html"></p>
		<!-- 輸出:<span>html標簽在渲染的時候被原始碼輸出</span> -->
		<p v-text="text"></p>
		<!-- msg 普通語法 -->
		<p>{{msg}}</p>
	</div>
	<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		let app = new Vue({
			el: "#app",
			data: {
				msg: "<span >普通雙標簽不會決議span標簽</span>",
				html: "<span>v-html指令可以渲染決議標簽</span>",
				text: "<span>v-text 不會決議 標簽 跟雙花括號一樣</span>"
			}
		})
	</script>
</body>

v-text 和 v-html相當于原生js中的 .text 和 .html 相同 是一樣的性質

v-pre指令

  • 顯示原始資訊跳過編譯程序
  • 跳過這個元素和它的子元素的編譯程序,
  • 一些靜態的內容不需要編譯加這個指令可以加快渲染
<body>
	<div id="app">
		<!-- 
			使用v-pre 指令 會跳過vue的編譯程序 
			所以p標簽中的{{msg}} 不會被vue識別編譯
			則頁面會直接顯示 {{msg}}
		 -->
		<p v-pre>{{msg}}</p>
	</div>
	<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		new Vue({
			el: "#app",
			data: {
				msg: "v-pre 指令會使該語法運算式不會被識別"
			}
		})
	</script>
</body>

v-model指令

  • v-model是一個指令,限制在 <input>、<select>、<textarea>、components中使用

  • v-model是一個雙向資料系結指令

雙向資料系結
  • 當資料發生變化的時候,視圖也就發生變化
  • 當視圖發生變化的時候,資料也會跟著同步變化
<body>
	<div id="app">
		<span>{{msg}}</span>
		<br>
		<!-- 
			在頁面測驗時 當修改 input 內容,vue實體中的msg值會跟著改變
			上面的span標簽中的值 也會跟隨 vue實體中資料改變,v-model 雙向
			系結的好處已經很明顯了
		 -->
		<input type="text" name="" id="" v-model="msg" />
	</div>
	<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		let app = new Vue({
			el: "#app",
			data: {
				msg: "v-model指令測驗"
			}
		})
	</script>
</body>

v-once指令

<body>
		<div id="app">
			<!-- 
				使用v-pre 指令 會跳過vue的編譯程序 
				所以p標簽中的{{msg}} 不會被vue識別編譯
				則頁面會直接顯示 {{msg}}
			 -->
			<p v-pre>{{msg}}</p>
		</div>
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {
					msg: "v-pre 指令會使該語法運算式不會被識別"
				}
			})
		</script>
	</body>

mvvm概念

  • MVC 是后端的分層開發概念; MVVM是前端視圖層的概念,主要關注于 視圖層分離,也就是說:MVVM把前端的視圖層,分為了 三部分 Model, View , VM ViewModel
  • m model
    • 資料層 Vue 中 資料層 都放在 data 里面
  • v view 視圖
    • Vue 中 view 即 我們的HTML頁面
  • vm (view-model) 控制器 將資料和視圖層建立聯系
    • vm 即 Vue 的實體 就是 vm

v-on指令

<body>
		<div id="app">
			<p>{{num}}</p>
			<!-- 系結點擊事件 每點擊一下,num值++一下 一般不推薦這樣操作-->
			<button type="button" v-on:click="num++">普通點擊</button>
			<button type="button" v-on:click="handlel($event)" name="event測驗">點擊</button>
			<button type="button" v-on:click="handlel2(123,222,$event)">帶參點擊</button>
		</div>
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {
					num: 0
				},
				methods: { // methods 存放呼叫的方法
					handlel: function(event) {
						console.log(event.target.innerHTML)
						console.log(event.target.name)
					},
					handlel2: function(p, p1, event) {
						console.log(p, p1)
						console.log(event.target.innerHTML)
						// this的指向為當前vue實體 this.num++ 就是將num的值++
						this.num++;
					}
				}
			})
		</script>
	</body>

拓展:$event 經過對引數的對比,發現 該event傳入的是當前標簽的物件,我們可以使用該物件獲取引數類如獲取文本內容 event.target.innerHTML 或者event.target.name

按鍵修飾符

? 在做專案中有時會用到鍵盤事件,在監聽鍵盤事件時,我們經常需要檢查詳細的按鍵,Vue 允許為 v-on 在監聽鍵盤事件時添加按鍵修飾符

	<body>
		<div id="app">
			<!-- 當鍵盤每點擊一次時觸發事件呼叫submit方法-->
			<input v-on:keyup="submit($event)" value="https://www.cnblogs.com/2979100039-qq-con/p/鍵盤點擊" />
			<!-- 指定特定的鍵盤鍵值 來呼叫 只有當點擊小寫a時才會觸發 -->
			<input v-on:keyup.65="submit($event)" type="button" value="https://www.cnblogs.com/2979100039-qq-con/p/65" />
			<!-- 當滑鼠鍵抬起時觸發事件 呼叫 mouseup 方法 -->
			<input v-on:mouseup="mouseup($event)" type="button" value="https://www.cnblogs.com/2979100039-qq-con/p/滑鼠點擊" />
			<!-- 
					以上 是鍵盤滑鼠事件的演示 ,還可以拓展其他的類似的操作、
					常用的按鍵修飾符
					.enter =>    enter鍵
					.tab => tab鍵
					.delete (捕獲“洗掉”和“退格”按鍵) =>  洗掉鍵
					.esc => 取消鍵
					.space =>  空格鍵
					.up =>  上
					.down =>  下
					.left =>  左
					.right =>  右
			-->

		</div>

		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {

				},
				methods: {
					submit: function(event) {
						console.log(event.target.value);
					},
					mouseup: function(event) {
						console.log(event.target.value);
					}
				}
			})
		</script>
	</body>

自定義按鍵別名

  • 在Vue中可以通過config.keyCodes自定義按鍵修飾符別名
<body>
		<div id="app">
			<button type="button" v-on:keydown.fn="prompt($event)" value="https://www.cnblogs.com/2979100039-qq-con/p/我是自定義按鍵">我是自定義按鍵</button>
		</div>
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			// 將 a 的 鍵值自定義成fn ,然后在控制元件中直接使用fn  一般情況下不會這樣使用
			Vue.config.keyCodes.fn = 65;
			new Vue({
				el: "#app",
				methods: {
					prompt: function(event) {
						alert(event.target.value);
					}
				}
			})
		</script>
	</body>

keyCode值一覽表

虛擬鍵 十六進制值 十進制值 相應鍵盤或滑鼠鍵
VK_LBUTTON 01 1 滑鼠左鍵
VK_RBUTTON 02 2 滑鼠右鍵
VK_CANCEL 03 3 Ctrl-Break鍵
VK_MBUTTON 04 4 滑鼠中鍵
VK_BACK 08 8 Backspace鍵
VK_TAB 09 9 Tab鍵
VK_CLEAR 0C 12 Clear鍵
VK_RETURN 0D 13 Enter鍵
VK_SHIFT 10 16 Shift鍵
VK_CONTROL 11 17 Ctrl鍵
VK_MENU 12 18 Alt鍵
VK_PAUSE 13 19 Pause鍵
VK_CAPITAL 14 20 Caps Lock鍵
VK_ESCAPE 1B 27 Esc鍵
VK_SPACE 20 32 Space鍵
VK_PRIOR 21 33 Page Up鍵
VK_NEXT 22 34 Page Down鍵
VK_END 23 35 End鍵
VK_HOME 24 36 Home鍵
VK_LEFT 25 37 ←鍵
VK_UP 26 38 ↑鍵
VK_RIGHT 27 39 →鍵
VK_DOWN 28 40 ↓鍵
VK_SELECT 29 41 Select鍵
VK_PRINT 2A 42 Print鍵
VK_EXECUTE 2B 43 Execute鍵
VK_SNAPSHOT 2C 44 Print Screen鍵
VK_INSERT 2D 45 Ins鍵
VK_DELETE 2E 46 Del鍵
VK_HELP 2F 47 Help鍵
VK_0 0x30 48 0鍵
VK_1 0x 31 49 1鍵
VK_2 0x 32 50 2鍵
VK_3 0x 33 51 3鍵
VK_4 0x 34 52 4鍵
VK_5 0x 35 53 5鍵
VK_6 0x 36 54 6鍵
VK_7 0x 37 55 7鍵
VK_8 0x 38 56 8鍵
VK_9 0x 39 57 9鍵
VK_A 41 65 A鍵
VK_B 42 66 B鍵
VK_C 43 67 C鍵
VK_D 44 68 D鍵
VK_E 45 69 E鍵
VK_F 46 70 F鍵
VK_G 47 71 G鍵
VK_H 48 72 H鍵
VK_I 49 73 I鍵
VK_J 4A 74 J鍵
VK_K 4B 75 K鍵
VK_L 4C 76 L鍵
VK_M 4D 77 M鍵
VK_N 4E 78 N鍵
VK_O 4F 79 O鍵
VK_P 50 80 P鍵
VK_Q 51 81 Q鍵
VK_R 52 82 R鍵
VK_S 53 83 S鍵
VK_T 54 84 T鍵
VK_U 55 85 U鍵
VK_V 56 86 V鍵
VK_W 57 87 W鍵
VK_X 58 88 X鍵
VK_Y 59 89 Y鍵
VK_Z 5A 90 Z鍵
VK_LWIN 5B 91 左Windows鍵
VK_RWIN 5C 92 右Windows鍵
VK_APPS 5D 93 應用程式鍵
VK_SLEEP 5F 95 休眠鍵
VK_NUMPAD0 60 96 小數字鍵盤0鍵
VK_NUMPAD1 61 97 小數字鍵盤1鍵
VK_NUMPAD2 62 98 小數字鍵盤2鍵
VK_NUMPAD3 63 99 小數字鍵盤3鍵
VK_NUMPAD4 64 100 小數字鍵盤4鍵
VK_NUMPAD5 65 101 小數字鍵盤5鍵
VK_NUMPAD6 66 102 小數字鍵盤6鍵
VK_NUMPAD7 67 103 小數字鍵盤7鍵
VK_NUMPAD8 68 104 小數字鍵盤8鍵
VK_NUMPAD9 69 105 小數字鍵盤9鍵
VK_MULTIPLY 6A 106 乘號鍵
VK_ADD 6B 107 加號鍵
VK_SEPARATOR 6C 108 分割鍵
VK_SUBSTRACT 6D 109 減號鍵
VK_DECIMAL 6E 110 小數點鍵
VK_DIVIDE 6F 111 除號鍵
VK_F1 70 112 F1鍵
VK_F2 71 113 F2鍵
VK_F3 72 114 F3鍵
VK_F4 73 115 F4鍵
VK_F5 74 116 F5鍵
VK_F6 75 117 F6鍵
VK_F7 76 118 F7鍵
VK_F8 77 119 F8鍵
VK_F9 78 120 F9鍵
VK_F10 79 121 F10鍵
VK_F11 7A 122 F11鍵
VK_F12 7B 123 F12鍵
VK_F13 7C 124 F13鍵
VK_F14 7D 125 F14鍵
VK_F15 7E 126 F15鍵
VK_F16 7F 127 F16鍵
VK_F17 80 128 F17鍵
VK_F18 81 129 F18鍵
VK_F19 82 130 F19鍵
VK_F20 83 131 F20鍵
VK_F21 84 132 F21鍵
VK_F22 85 133 F22鍵
VK_F23 86 134 F23鍵
VK_F24 87 135 F24鍵
VK_NUMLOCK 90 144 Num Lock鍵
VK_SCROLL 91 45 Scroll Lock鍵
VK_LSHIFT A0 160 左Shift鍵
VK_RSHIFT A1 161 右Shift鍵
VK_LCONTROL A2 162 左Ctrl鍵
VK_RCONTROL A3 163 右Ctrl鍵
VK_LMENU A4 164 左Alt鍵
VK_RMENU A5 165 右Alt鍵

v-bind指令

  • v-bind 指令被用來回應地更新 HTML 屬性
		<style type="text/css">
			/* 定義幾組樣式 */
			.p1Color {
				color: blue;
			}

			.p2Color {
				color: darkred;
			}

			.p1Text {
				font-size: 18px;
			}

			.p1Text {
				font-size: 10px;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<!-- 系結 p1Color 并選擇isColor isColor定義為true 也可以直接寫true-->
			<p v-bind:>
				學習 v-bind 指令
			</p>
			<button v-on:mouseup="changeColor">{{chgColor}}</button>
			<p></p>
			<p></p>
		</div>
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {
					isColor: true,
					isText: true,
					color: "yellow",
					size: "14px",
					chgColor: "關閉樣式"
				},
				methods: {
					changeColor: function() {
						// 點擊事件 關閉開啟 p標簽的樣式
						if (this.isColor === true) {
							this.isColor = false;
							this.chgColor = "開啟樣式"
						} else {
							this.isColor = true;
							this.chgColor = "關閉樣式"
						}
					}
				}
			})
		</script>
	</body>
v-bind系結class
		<style type="text/css">
			/* 定義幾組樣式 */
			.p1Color {
				color: blue;
			}

			.p2Color {
				color: darkred;
			}

			.p1Text {
				font-size: 18px;
			}

			.p1Text {
				font-size: 10px;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<!-- 將 樣式 定義在vue實體中,然后 系結到DOM上 -->
			  <!-- :class 等同于 v-on:calss -->
			<p :>
				學習 v-bind 指令
			</p>
			<button v-on:mouseup="changeAColor">{{chgColor}}</button>
			
			<p v-bind:>
				學習 v-bind 指令系結 class
			</p>
			<button v-on:mouseup="changeBColor">{{chgColor}}</button>
			<p></p>
		</div>
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {
					colorA: "p1Color",
					colorB: 'p2Color',
					textA: 'p1Text',
					textB: 'p2Text',
					chgColor: "切換樣式"
				},
				/*定義 兩個 方法切換樣式 */
				methods: {
					changeAColor: function() {
						if ("p1Color" === this.colorA) {
							this.colorA = 'p2Color';
						} else {
							this.colorA = 'p1Color';
						}
					},
					changeBColor: function() {
						if ("p2Color" === this.colorB) {
							this.colorB = 'p1Color';
						} else {
							this.colorB = 'p2Color';
						}
					}
				}
			})
		</script>
	</body>
系結物件和系結陣列 的區別
  • 系結物件的時候 物件的屬性 即要渲染的類名 物件的屬性值對應的是 data 中的資料
  • 系結陣列的時候陣列里面存的是data 中的資料
系結style v-bind:style
<body>
		<div id="app">
			<!-- :style 等同于 v-bind:style -->
			<p :style="{ color:colorB, fontSize:fontSize}">
				v-bind:style 樣式系結 行內樣式
			</p>
			<p v-bind:style="[styleB, styleA]">
				v-bind:style 樣式系結 陣列系結
			</p>
		</div>

		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {
					/* 在data里面定義幾組 樣式資料 */
					styleObject: {
						color: "green",
						fontSize: "18px"
					},
					
					colorB:"green",
					fontSize:"18px",
					
					styleA: {
						color: "red"
					},
					styleB: {
						fontSize: "28px"
					}
				}
			})
		</script>
	</body>

分支回圈

v-if指令

<body>
		<div id="app">
			<!-- 使用v-if 指令來判斷flag -->
			<p v-if="flag === true">
				{{msg}}
			</p>
			<p v-if="flag === false">
				{{msg2}}
			</p>
			<button type="button" @click="changeClick">點我</button>
		</div>

		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {
					flag: true, // 設定標志 為true 用于頁面判斷
					msg: "我出來了",
					msg2: "我消失了"
				},
				methods: {
					changeClick: function() {
						if (this.flag === true) {
							this.flag = false;
						} else {
							this.flag = true;
						}
					}
				}
			})
		</script>
	</body>

v-show指令

<body>
		<div id="app">
			<p v-show="1===1">v-show判斷為true時我顯示了</p>
			<p v-show="1===2">v-show為flase時我隱藏</p>
			<!-- 使用 v-show 指令來判斷flag -->
			<p v-show="flag === true">
				{{msg}}
			</p>
			<p v-show="flag === false">
				{{msg2}}
			</p>
			<button type="button" @click="changeClick">點我</button>
		</div>

		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {
					flag: true, // 設定標志 為true 用于頁面判斷
					msg: "我出來了",
					msg2: "我消失了"
				},
				methods: {
					changeClick: function() {
						if (this.flag === true) {
							this.flag = false;
						} else {
							this.flag = true;
						}
					}
				}
			})
		</script>
	</body>

v-show 和 v-if的區別

  • v-show本質就是標簽display設定為none,控制隱藏
    • v-show只編譯一次,后面其實就是控制css,而v-if不停的銷毀和創建,故v-show性能更好一點,
  • v-if是動態的向DOM樹內添加或者洗掉DOM元素
    • v-if切換有一個區域編譯/卸載的程序,切換程序中合適地銷毀和重建內部的事件監聽和子組件

v-for回圈指令

<body>
		<div id="app">
			<!-- 回圈遍歷 data中 items 資料 -->
			<p v-for="item in items">
				<span>id: {{item.id}} </span>
				<span>name: {{item.name}} </span>
				<span>age: {{item.age}} </span>
				<br>
			</p>

			<!-- 頁面中將會回圈遍歷
			 id: 1 name: 李四 age: 20
			 
			 id: 2 name: 王五 age: 19
			 
			 id: 3 name: 張飛 age: 33
			 -->
		</div>
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				// 準備 回圈模擬資料
				data: {
					items: [{
							id: 1,
							name: "李四",
							age: 20
						},
						{
							id: 2,
							name: "王五",
							age: 19
						},
						{
							id: 3,
							name: "張飛",
							age: 33
						},
					]
				}
			})
		</script>
	</body>

注意點:

  • 不推薦同時使用 v-ifv-for
  • v-ifv-for 一起使用時,v-for 具有比 v-if 更高的優先級,

"="和""和"="的區別

<body>
		<!-- 一個等號 是賦值的意思 主要用于js里面 -->
		<div id="app">
			<!-- 使用雙等時 -->
			<p v-if="num == '1' ">我是雙等于 雙等于 不嚴謹 普通的數字1可以等于字串"1"</p>
			<!-- 使用三等時 由于strNum定義為字符型1 所以不等于數字型1-->
			<p v-if="strNum==='1'">我是雙等于 雙等于 不嚴謹 普通的數字1可以等于字串"1"</p>

			<!-- 同樣使用于其他型別資料 eg Boolean和string的ture相對比 -->
		</div>
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			new Vue({
				el: "#app",
				data: {
					// 定義一個普通的1 一個字符型別的1
					num: 1,
					strNum: '1'
				},
			})
		</script>
	</body>

四.Vue選項卡案例

<body>
		<!-- 選項卡主體 -->
		<div id="app" >
			<div id="" >
				<ul>
					<!-- 取選項卡資料 遍歷標題 -->
							<!-- defaultStyle 如果標志id等于遍歷id則加上默認樣式 -->
					<li v-for="title in tableLists" :>
						<!-- 系結點擊事件change 傳入對應資料id -->
						<span v-on:click='change(title.id)'>{{title.title}}</span>
					</li>
				</ul>
			</div>
			<div id="" >
				<!-- 取選項卡資料 遍歷圖片路徑 -->
				<ul v-for="img in tableLists">
					<!-- 資料id等于標志id 則讓改圖片顯現 -->
					<li v-if="img.id === flagId">
						<img :src="https://www.cnblogs.com/2979100039-qq-con/p/img.path" v-bind:style="showImg">
					</li>
					<!--不等于的就隱藏 -->
					<li v-else>
						<img :src="https://www.cnblogs.com/2979100039-qq-con/p/img.path">
					</li>
				</ul>
			</div>
		</div>
		<script src="https://www.cnblogs.com/2979100039-qq-con/p/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<!-- vue 實體-->
		<script type="text/javascript">
			new Vue({
				el: "#app",
				// 定義圖片樣式
				data: {
					flagId: 1,
					showImg: "display: block;",
					tableLists: [{
						id: 1,
						title: "選項卡1",
						path: "img/3Dbg01.jpg"
					}, {
						id: 2,
						title: "選項卡2",
						path: "img/3Dbg02.jpg"
					}, {
						id: 3,
						title: "選項卡3",
						path: "img/3Dbg03.jpg"
					}, ]
				},
				methods: {
					// 每點擊一次修改flagId的值為傳入的值
					change: function(titleId) {
						this.flagId = titleId;
					}
				}
			})
		</script>
	</body>

參考demo

gitee: https://gitee.com/li_shang_shan/vue-entry-instruction-demo

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/228842.html

標籤:Html/Css

上一篇:HTTP與HTTPS

下一篇:過渡問題,opacity與dispaly的使用

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more