Hello World
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue基础</title>
</head>
<body>
<div id="app">
{{message}}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
let app = new Vue({
el: "#app",
data: {
message: "你好,小白!"
}
});
</script>
</body>
</html>
<!-- 1、导入开发版本的Vue.js -->
<!-- 2、创建Vue的实例对象,设置el属性和data属性 -->
<!-- 3、使用简洁的模板语法把数据渲染到页面上 -->
v-if
v-if用来判断是否加载某个DOM元素
v-show
调整CSS中display属性,DOM已经加载,只是CSS控制没有显示出来
区别:
v-if: 判断是否加载,在需要时加载
v-show:调整css dispaly属性
v-for
可以用来遍历数组中的元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-for指令</title>
</head>
<body>
<div id="app">
<ul>
<li v-for="(item,index) in items">{{index+1}}.{{item}}</li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
let app = new Vue({
el: "#app",
data: {
items: ['Python', 'Java', 'C++', 'Go', 'C']
}
});
</script>
</body>
</html>
v-text
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-text指令</title>
</head>
<body>
<div id="app">
<h2 v-text="message"></h2>
<h2>{{info}}</h2>
<h2>{{info}}!</h2>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
let app = new Vue({
el: "#app",
data: {
message: "这是内容!",
info: "hello world"
}
});
</script>
</body>
</html>
v-text和v-html的区别:
v-text是渲染纯文本,文本中的HTML标签不会被解析
为了输出真正的HTML,我们应该使用v-html 指令
v-on
v-on用来给一个标签绑定事件,v-on 还有一种简单的写法,就是用@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-on指令</title>
</head>
<body>
<div id="app">
<input type="button" value="按钮1" @click="doSomething">
<button v-on:click="doSomething">按钮2</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
let app = new Vue({
el: "#app",
data: {
message: "内容"
},
methods: {
doSomething: function() {
alert("这是一个弹窗!");
}
}
});
</script>
</body>
</html>
v-model
v-model指令,是绑定数据源。就是把数据绑定在特定的表单元素上,这样就可以实现数据的双向绑定。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-model指令</title>
</head>
<body>
<div id="app">
<input type="text" name="" id="" v-model="message" @keyup.enter="getMessage">
<br>
文本框中的内容为:{{message}}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
let app = new Vue({
el: "#app",
data: {
message: "消息"
},
methods: {
getMessage: function() {
alert(this.message);
}
}
});
</script>
</body>
</html>
v-bind
处理HTML中的标签属性,比如说,我们可以使用v-bind来实现img标签src属性的动态赋值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-bind指令</title>
<style>
.active {
border: 1px solid red;
}
</style>
</head>
<body>
<div id="app">
<img :src="imageURL" :title="imageTitle" @click="toggle" :class="{active: isActive}">
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
let app = new Vue({
el: "#app",
data: {
imageURL: "https://cn.vuejs.org/images/logo.png",
imageTitle: "logo",
isActive: false
},
methods: {
toggle: function() {
this.isActive = !this.isActive;
}
}
});
</script>
</body>
</html>
v-pre
跳过vue的编译,直接输出原始值
v-cloak
在vue渲染完指定的整个DOM后才进行显示,可以结合CSS来解决页面的闪烁问题
[v-cloak] {
display: none;
}
<div id="app" v-cloak>
{{ message }}
</div>
v-once
在第一次进行渲染,渲染完成后视为静态内容,跳出以后的渲染过程