vue在html使用


1.Vue:

定義:漸進式JavaScript框架

漸進式:

定義:聲明渲染 組件系統 客戶端路由 集中式狀態管理 項目構建

2.MVVM

定義
M Model(服務器上的業務邏輯操作)
V View(頁面)
MV ViewModel(Model與View之間核心樞紐,比如Vue.js)

3.指令: 指令的本質是自定義屬性

4.閃動

問題產生:出現模版語法{{msg}}

解決思路:使用v-cloak指令

解決問題原理:先隱藏,替換好值之后在顯示

demo

code

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
		<div v-cloak>
			{{msg}}
		</div>
		</div>
		<style type="text/css">
			[v-cloak]{display: none;}
		</style>
		<script type="text/javascript" src="js/vue.js">
			
		</script>
		<script type="text/javascript">
			var vu = new Vue({
				el:"#app",
				data:{
					msg:"hello  vue"
				},
				
			});
		</script>

	</body>
</html>

5.數據綁定指令

v-text:填純文本,屬於html片段

v-html:填寫html,屬於完整html

v-bind:填寫屬性,屬於html片段

v-pre:如果原始數據,跳過編譯

v-once:如果顯示的信息后續不需要再修改,使用v-once,這樣可以提高性能。

demo:

code

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
		<div v-text="msg"></div>
		<div v-html="html"></div>
		<a v-bind:href="link1">這是v-bind</a>
		<div v-pre>{{preInfo}}</div>
		<div v-once>{{onceInfo}}</div>
		</div>
	</body>
	<script type="text/javascript" src="js/vue.js"></script>
	<script type="text/javascript">
		var vm = new Vue({
			el:"#app",
			data:{
				link1:"https://www.cnblogs.com/MDD-Blog/",
				img:"./img/logo.png",
				msg:"這是v-text",
				html:"<h1>這是v-html</h1>",
				preInfo:"這是v-pre",
				onceInfo:"這是v-once"
			},
		});
	</script>
</html>

6.雙向數據綁定

原理:v-model ----> vue ----> data{k:v,}

demo

code

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div class="app">
			<div v-text="msg"></div>
			<input type="text" v-model="msg"/>
		</div>
		<script type="text/javascript" src='js/vue.min.js'></script>
		<script type="text/javascript">
			 var vm = new Vue({
				 el:".app",
				 data:{
					  msg : "hello world",
					  message: "hello vue",
					 }, 
			 });
		</script>
	</body>
</html>

7.事件綁定

v-on:事件名="方法" 事件名:點擊: click 移動: mouseenter 雙擊: dbclick

demo1: 事件函數調用

code:事件函數調用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div class="app">
			<div> {{num}} </div>
			<button v-on:click="add()">1.加一</button>
			<button v-on:click="reduce">減一</button>
		</div>
		<script type="text/javescript" src='js/vue.min.js'>
		</script>
		<script type="text/javascript">
			 var vm = new Vue({
				el:".app", /* 元素的掛載位置 */
				data:{
					  num:15,
					 }, /* 模型數據(值是一個對象) */
				methods:{
					add:function(){
						this.num++
					},
					reduce:function(){
						this.num--
					}
				}
			 });
		</script>
	</body>
</html>

demo2: 事件函數傳參

code:事件函數傳參

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div class="app">
			<div> {{num}} </div>
			<button v-on:click="add">1.加一</button>
			<button v-on:click="reduce(2, $event)">減二</button>
		</div>
		<script type="text/javescript" src='js/vue.min.js'>
		</script>
		<script type="text/javascript">
			 var vm = new Vue({
				el:".app", /* 元素的掛載位置 */
				data:{
					  num:15,
					 }, /* 模型數據(值是一個對象) */
				methods:{
					add:function(event){
						//  這里 this 是 vue 的實例對象
						console.log(event.target.innerHTML)
						this.num++
					},
					reduce:function(num2, e){
						this.num-=num2
					}
				}
			 });
		</script>
	</body>
</html>

注意:

  <button v-on:click="reduce(2, $event)">減二</button>  // $event為事件參數必須放到末尾

v-if

<div id="app">
    <div v-if="name === 'a'">
      a
    </div>
    <div v-else-if="name === 'b'">
      b
    </div>
    <div v-else-if="name === 'c'">
      c
    </div>
    <div v-else>
                不是a或b或c
    </div>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    name: 'c'
  }
})
</script>

v-show

code:

<h1 v-show="ok">Hello!</h1>

v-if和v-show的區別

v-if :每次都會重新刪除或者創建元素
v-show:每次不會重新進行DOM元素的刪除和創建操作,只是切換了元素的 display:none 樣式

v-for

demo:


code:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<div >
				<label>ID:
					<input type="text" v-model="id" />
				</label>
				<label>NAME:
					<input type="text" v-model="name" />
				</label>
				<input type="button" v-on:click="add" value="添加"/>
			</div>
			<p v-for="item in infos" v-bind:key="item.id">
				<input type="checkbox" />
				{{ item.id }}
			</p>
		</div>
	</body>
	<script type="text/javascript" src='js/vue.js'></script>
	<script type="text/javascript">
		var vm = new Vue({
			el:"#app",
			data:{
				id:"",
				name:"",
				infos:[
					{id:1,name:"11"},
					{id:2,name:"22"},
					{id:3,name:"33"},
					{id:4,name:"44"},
				],
			},
			methods:{
				add:function(){
					// 列表尾部添加
					// this.infos.push({id:this.id, name:this.name})
					// 列表頭部添加
					this.infos.unshift({id:this.id, name:this.name})
				},
			}
		})
	</script>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM