vue八个生命周期
创建前状态:beforeCreate
创建完毕状态:created
挂载前状态:beforeMount
挂载结束状态:mounted
更新前状态:beforeUpdate
更新后状态:updated
销毁前状态:beforeDestroy
销毁后状态:destroyed
插值表达式:
v-text :指令
v-html :指令
模板指令v-html 和v-text 区别(查看下列代码进行比较)
模板指令: v-text:会进行转义
模板指令: v-html:不会转义
v-html指令
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>vue 入门</title>
<!--<script type="text/javascript" src="js/vue.js" ></script>-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="root">
<h1 v-html="content"></h1>
</div>
<script>
new Vue({
el: "#root",
data: {
content: "<h1>hello</h1>"
}
})
</script>
</body>
</html>
效果图:
v-text指令
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>vue 入门</title>
<!--<script type="text/javascript" src="js/vue.js" ></script>-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="root">
<h1 v-text="content"></h1>
</div>
<script>
new Vue({
el: "#root",
data: {
content: "<h1>hello</h1>"
}
})
</script>
</body>
</html>
效果图:
绑定事件指令:v-on
v-on 指令简写:@
v-on:click="handleClick" 和@click="handleClick" 表达的意思一样
handleClick方法定义在methods中。改变变量content的值(数据改变页面随着改变)
事件触发之后执行的方法写在vue实例中methods中
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>vue 入门</title>
<script type="text/javascript" src="js/vue.js" ></script>
<!--<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>-->
</head>
<body>
<div id="root">
<div v-on:click="handleClick">{{content}}</div>
</div>
<script>
new Vue({
el: "#root",
data: {
content: "hello"
},
methods: {
handleClick: function(){
this.content = "world"
}
}
})
</script>
</body>
</html>
属性绑定v-bind
v-bind:title="title" 等同于 :title="title"
双向数据绑定v-model
单向绑定:数据决定页面的显示,页面无法决定数据的内容
双向绑定:v-model
代码展示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>属性绑定和双向数据绑定</title>
<script type="text/javascript" src="js/vue.js" ></script>
<!--<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>-->
</head>
<body>
<div id="root">
<div :title="title">hello world</div>
<input v-model="content" />
<div>{{content}}</div>
</div>
<script>
new Vue({
el: "#root",
data: {
title: "this is hello world",
content: "this is content"
}
})
</script>
</body>
</html>