安装

MVVM

模板语法
Vue的基本使用
- 引入Vue.js库文件
- 使用vue语法处理数据
- 提供填充数据的标签
- 把vue提供的数据填充到标签中
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<div id="app">
<div> {{msg}} </div><!-- 插值表达式 -->
</div>
<!-- 2.引入库文件 -->
<script type="text/javascript" src="js/vue.js"> </script>
<script>
var vm = new Vue({
el: '#app',//元素挂载位置(可以是css选择器或者DOM元素)
data: {//模型数据(值是一个对象)
msg: 'Hello Vue'
}
});
</script>
|
差值表达式
在mustache语法中,不仅仅可以直接写变量,也可以写简单的表达式
Mustache:{{}}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<div id="app">
<h2>{{message}}</h2>
<h2>{{message}},xqz</h2>
<!-- 在mustache语法中,不仅仅可以直接写变量,也可以写简单的表达式-->
<h2>{{firstName+ ' ' +lastName}}</h2>
<h2>{{firstName}} {{lastName}}</h2>
<h2>{{counter * 2}}</h2>
</div>
<script src="../vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'hello',
firstName: 'x',
lastName: 'qz',
counter:100
}
})
</script>
|
指令
v-cloak
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<style>
[v-cloak]{
display: none;
}
</style>
<body>
<!--在vue解析之前,div中有一个属性叫v-cloak,在解析之后会把这个属性删除-->
<div id="app" v-cloak>
<h2>{{message}}</h2>
</div>
<script src="../vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'hello'
}
})
</script>
|
数据绑定
数据响应式
- 概念:数据的变化导致页面内容的变化,vue会监听属性的变化
数据绑定
v-once
- 作用:编译一次,显示内容之后不再具有响应式功能
- 应用场景:如果显示的信息后续不需要再修改,可以提高性能
v-text
v-html
- 作用:填充HTML片段,能解析html标签
- 区别:存在安全问题,所以只能使用本网站的数据
v-pre
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<body>
<div id="app">
<div v-once></div>
<div v-text="msg"></div>
<div v-html="msg1"></div>
<div v-pre>{{msg}}</div>
</div>
<script src="js/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: 'Hello',
msg1:'<h1>HTML</h1>'
}
})
</script>
</body>
|
双向数据绑定
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<body>
<div id="app">
<div>{{msg}}</div>
<div>
<input type="text" v-model="msg">
</div>
</div>
<script src="../js/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: 'Hello'
}
})
</script>
</body>
|
-
v-model本质原理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<body>
<div id="app">
<!-- 一个属性绑定把data对象的数据显示在页面上,一个事件函数把修改的值覆盖data对象中的原数据 -->
<input type="text" :value="msg" @input='handle'>
或者
<input type="text" :value="msg" @input='msg=$event.target.value'>
<span v-text='msg'></span>
</div>
<script src="../js/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: 'hello',
},
methods: {
handle: function (event) {
this.msg = event.target.value;
}
},
})
</script>
|