这里下载的是开发版本
https://cn.vuejs.org/v2/guide/installation.html
解释:
1.el是初始化vue框架要渲染的范围
2.data 定义vue中要渲染的变量
3.{{ 变量 }}:这种方式叫做"插值表达式",引用vue中定义的变量
DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./js/vue.js">script>
<title>title>
head>
<body>
<div id="app">
<span>我叫{{ name }},今年我{{ age }}岁了span>
div>
<script>
new Vue({
el: "#app",
data: {
name: "zhangsan",
age: 20 }
})
script>
body>
html>
上边例子只插入了文本和文字,如果插入带标签的文本就不行了
语法:
v-text:插入本文
v-html:插入html
<标签 v-xxx>标签>
DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./js/vue.js">script>
<title>title>
head>
<body>
<div id="app">
<div v-html="name">div>
<div v-text="age">div>
div>
<script>
const vm = new Vue({
el: "#app",
data: {
name: "zhangsan",
age: 20
}
});
script>
body>
html>
{{}}和v-text的作用是一样的
v-if
v-else
v-else-if
v-show
v-show和v-if都是根据布尔值来进行判断的
例子:v-if和v-else
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./js/vue.js"></script>
<title></title>
</head>
<body>
<div id="app">
<div v-html="name"></div>
<div v-text="age"></div>
<span v-if = "num">显示</span>
<span v-else>隐藏</span>
</div>
<script>
const vm = new Vue({
el: "#app",
data: {
name: "zhangsan",
age: 20,
num: Math.random() > 0.3
}
});
</script>
</body>
</html>
例子2:v-show
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./js/vue.js"></script>
<title></title>
</head>
<body>
<div id="app">
<div v-html="name"></div>
<div v-text="age"></div>
<span v-show = "res">显示</span>
</div>
<script>
const vm = new Vue({
el: "#app",
data: {
name: "zhangsan",
age: 20,
res: false
}
});
</script>
</body>
</html>
对于标签内的文字可以使用插值表达式。对于标签的属性来说就不能使用了。这时候需要使用绑定来设置标签的属性。
v-bind的简写也可以使用:来代替
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./js/vue.js"></script>
<title></title>
</head>
<body>
<div id="app">
<a v-bind:href=link.url :title=link.title>{{ link.font }}</a>
</div>
<script>
const vm = new Vue({
el: "#app",
data: {
name: "zhangsan",
age: 20,
res: false,
link: {
font: '百度',
url: 'https://www.baidu.com',
title: '百度一下'
}
}
});
</script>
</body>
</html>
在VUE中绑定事件使用v-on.也就是鼠标的事件.v-on的简写是@
例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./js/vue.js"></script>
<title></title>
<style type="text/css">
* {
margin: 0px;
padding: 0px;
}
.box {
height: 200px;
width: 200px;
background-color: red;
}
.box1 {
height: 200px;
width: 200px;
background-color: green;
}
</style>
</head>
<body>
<div id="app">
<div class="box" :class='{box1:isactive}'></div>
<button @click='aaa'>切换</button>
</div>
</body>
<script>
const vm = new Vue({
el: "#app",
data: {
name: '切换',
isactive: false
},
methods: {
aaa(){
this.isactive = !this.isactive;
}
}
});
</script>
</html>
注意:v-for 是来循环数据的。而不是用来循环html的
例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
<ul>
<li v-for = 'i in data'>{{i}}</li>
<li v-for = '(i,index) in data'>{{index}}:{{i}}</li>
</ul>
</div>
</body>
<script>
const vm = new Vue({
el: "#app",
data: {
data: {
name1: 'zhangsan',
name2: 'lisi',
name3: 'wangwu'
}
}
});
</script>
</html>
当我们修改v-model的值的时候,p标签中的内容也会随之修改.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="./js/vue.js"></script>
<title></title>
</head>
<body>
<div id="app">
<input type="text" v-model = 'gender'>
<p>{{gender}}</p>
</div>
</body>
<script>
const vm = new Vue({
el: "#app",
data: {
gender: 'boy'
}
});
</script>
</html>
多选的例子:
<body>
<div id="app">
<input type="checkbox" value="西瓜" v-model="data"/>
<label for="a">西瓜</label>
<input type="checkbox" value="桃子" v-model="data"/>
<label for="b">桃子</label>
<br />
<span>{{ data }}</span>
</div>
</body>
<script>
const vm = new Vue({
el: "#app",
data: {
gender: 'boy',
data: []
}
});
</script>
前边我们用{{变量}} 来引入变量值,但是我们需要修改字符串或者处理字符串后 在引入的话,如果直接在{{}}里直接修饰的话,后期不方便维护。所有VUE规定了一个computed字段专门来做修饰的
<body>
<div id="app">
<p>{{ fullname }}</p>
</div>
</body>
<script>
const vm = new Vue({
el: "#app",
data: {
gender: 'boy',
xing: 'zhang',
ming: 'san'
},
computed: {
fullname: function(){
return this.xing + this.ming;
}
}
});