1、Vue基本代碼和MVVM之間的對應關係
1.1 基本代碼結構 和 插值表達式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<!-- 1.導入Vue的包 -->
<script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
<!-- 將來 new 的Vue實例,會控制這個 元素中的所有內容 -->
<!-- view層 -->
<div id="app">
<p>{{ msg }}</p>
</div>
<script>
// 2.創建一個Vue的實例
// 當我們導入包之後,在瀏覽器的內存中,就多了一個 Vue 構造函數
// VM調度層
var vm = new Vue({
el: '#app', // 表示,當前我們 new 的這個 Vue 實例,要控制頁面上的哪個實例
// Model層
data:{ // data 屬性中,存放的是 el 中要用到的數據
msg: '歡迎學習Vue' // 通過 Vue 提供的指令,很方便的就能把數據渲染到頁面上,不再需要操作DOM元素了【前端Vue之類的框架,不再提倡手動操作DOM元素】
}
})
</script>
</body>
</html>
1.2 v-cloak、v-text和v-html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
[v-cloak]{
/* display: none; */
}
</style>
</head>
<body>
<div class="app">
<!-- 使用 v-cloak 能夠解決 插值表達式閃爍的問題 -->
<p v-cloak>+++++{{ msg }}++++</p>
<!-- 默認v-text是沒有閃爍問題的 -->
<!-- v-text 會覆蓋元素中原本的內容,但是 插值表達式 只會替換自己的這個佔位符,不會把整個元素的內容清空 -->
<h4 v-text="msg">============</h4>
<div>{{ msg2 }}</div>
<div v-text="msg2"></div>
<div v-html="msg2">123</div>
</div>
<script src="./lib/vue-2.4.0.js"></script>
<script>
var vm = new Vue({
el: '.app',
data:{
msg:'123',
msg2:'<h1>這麼大的h1,你看到了嗎</h1>'
}
})
</script>
<!--使用http運行,vscode需要安裝Express-->
</body>
</html>
1.3 v-bind的三種用法
var vm = new Vue({
el: '.app',
data:{
msg:'123',
msg2:'<h1>這麼大的h1,你看到了嗎</h1>',
mytitle:'自定義title'
}
})
- 直接使用指令
v-bind
<input type="button" value="按鈕1" v-bind:title="mytitle"/>
- 使用簡化指令
:
<input type="button" value="按鈕2" :title="mytitle"/>
- 在綁定的時候,拼接綁定內容:
:title="btnTitle + ', 這是追加的內容'"
<input type="button" value="按鈕3" :title="mytitle + '123'"/>
1.4 v-on指令定義Vue事件
var vm = new Vue({
el: '.app',
data:{
msg:'123',
msg2:'<h1>這麼大的h1,你看到了嗎</h1>',
mytitle:'自定義title'
},
methods:{
show:function(){
alert('Hello');
}
}
})
<!-- Vue 中提供了 v-on:事件綁定機制 -->
<input type="button" value="按鈕4" v-on:mouseover="show"/>
<input type="button" value="按鈕5" @mouseover="show"/>