Vue.js学习总结
1.创建一个Vue实例
通过引入方式创建一个.html文件,在头部标签内引入
<!-- 开发环境版本,包含了有帮助
的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
,之后在<body>内部写入代码完成第一个”Hello Vue”的实例
2.挂载点、模板以及实例的关系
<body>
<div id='root'>
<h1>{{msg}}</h1>
</div>
<script>
new Vue({
el:'#root',
data:{
msg:'hello world'
}
})
</script>
</body>
挂载点就是element对应的标签,上面的html中的html中的{{msg}}去掉
<div id='root'></div>
这个标签就是vue实例的挂载点,因为下面的el正好与上面标签中的id对应上
模板:挂载点里面的内容
<h1>{{msg}}</h1>
模板可以有多种形式,可以写在挂载点内部也可以写在实例里面的template属性里面,所以模板就是挂载点的内部的内容。
new Vue({
el:'#root',
template:'<h1>{{msg}}</h1>',
data:{
msg:'hello world'
}
})
3.实例中的数据、实例和方法
数据:除了插值表达式,可以改变dom之外,Vue还提供了一些指令,操作dom,例如v-text和v-html,v-text会进行一次转义,如下
<!DOCTYPE html>
<html>
<head>
<title>vueTest</title>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="root">
<h1>hello {{msg}}</h1>
<h2>number is {{number}}</h2>
<h2 v-text="number"></h2>
<h2 v-html="number"></h2>
<div v-text="content"></div>
<div v-html="content"></div>
</div>
<script >
new Vue({
el: "#root",
data: {
msg: "world",
number: 12345,
content: "<strong>hello</strong>"
}
})
</script>
</body>
</html>
事件:vue给一个标签绑定事件
vue模板指令:v-on:事件名称,也可简称为@事件名称,如下
<!DOCTYPE html>
<html>
<head>
<title>vueTest</title>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="root">
<div @click="handleClick">{{msg}}</div>
<!-- <div v-on:click="handleClick">{{msg}}</div> -->
</div>
<script >
new Vue({
el: "#root",
data: {
msg: "hello"
},
methods: {
handleClick: function(){
this.msg = "world";
}
}
})
</script>
</body>
</html>
这里用methods下函数实现事件触发
4.vue中的属性绑定和双向数据绑定、计算属性和侦听器
4.1属性绑定 v-bind,如下
<div id="root">
<div v-bind:title="title">hello world</div>
</div>
<script>
new Vue({
el:"#root",
data:{
title:"this is hello world"
}
})
</script>
v-bind也可有另外一种方式
<div v-bind:title="title">hello world</div>可以写为 <div :title="title">hello world</div>
就是“v-bind“”改写为“:”
4.2双向数据绑定,如下
单向绑定:就是当数据改变页面发生变化,而当页面发生改变数据不会跟着改变
双向绑定:就是当数据改变页面发生变化,而当页面发生改变数据也会跟着改变
如下:
<div id="root">
<input type="text" v-model:value="content"/>
<div>{{content}}</div>
</div>
<script>
new Vue({
el:"#root",
data:{
content: "this is content"
},
})
</script
4.3vue中的计算属性和侦听器
4.3.1计算属性
计算属性computed:一个属性通过其他计算属性而来,例如funame由firstname和lastname计算而来,
<div id="root">
姓:<input type="text" v-model:value="firstName">
名:<input type="text" v-model:value="lastName">
<div>{{fullName}}</div>
<div>{{count}}</div>
</div>
<script>
new Vue({
el: "#root",
data: {
firstName: '',
lastName: '',
},
//计算属性
computed:{
fullName: function () {
return this.firstName+" "+this.lastName
}
},
})
</script>
4.3.2侦听器watch,监听数据变化,一旦某个数据发生变化就会在侦听器中进行逻辑计算,如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="root">
姓:<input v-model="firstName"/>
名:<input v-model="lastName"/>
<div>{{fullName}}</div>
<div>{{count}}</div>
</div>
<script>
new Vue({
el:"#root",
data:{
firstName: "",
lastName:"",
count:0
},
computed:{
fullName:function () {
return this.firstName+''+this.lastName
}
},
watch:{
fullName:function () {this.count++
}
}
})
</script>
</body>
</html>

