插值表达式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
{{message}} <!--vue的插值表达式 -->
{{true ? "ok" : "no"}}
{{number + 1}}
{{number * 1.5}}
<!-- 不支持的逻辑表达
{{var a = 1;}}
{{if(a=10){}}}
-->
</div>
<script>
new Vue({
el: "#app", //由vue接管id为app的区域
data: {
message: "Hello Vue!",
number:100
}
});
</script>
</body>
</html>
v-on点击事件
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
{{message}} <!--vue的插值表达式 --><br>
<button v-on:click="fun1('Vue v-on')">点击</button>
</div>
<script>
new Vue({
el: "#app", //由vue接管id为app的区域
data: {
message: "Hello Vue!",
number:100
},
methods:{
fun1:function (msg) {
this.msg = msg;
alert("点击功能" + msg);
}
}
});
</script>
</body>
</html>
键盘事件
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
<!-- <input type="text" onkeydown="showKeyCode()">-->
Vue:<input type="text" v-on:keydown="fun($event)">
</div>
<script>
//传统方法
/**
function showKeyCode(){
var key = event.keyCode;
alert(key);
}
*/
new Vue({
el: "#app", //由vue接管id为app的区域
methods:{
/* $event 是 vue的时间对象 */
fun:function (event) {
var keyCode = event.keyCode;
if(keyCode < 48 || keyCode > 57){
event.preventDefault();//不让键盘起作用
}
}
}
});
</script>
</body>
</html>
鼠标事件
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
<!-- <div @mouseover="fun1" id="div">-->
<!-- <textarea @mouseover="fun2($event)">这是一个文件域</textarea>-->
<!-- </div>-->
<!-- <div onmouseover="divmouseover()" id="div">-->
<!-- <textarea onmouseover="textareamouseover()">这是一个文件域</textarea>-->
<!-- </div>-->
<div v-on:mouseover="fun1" id="div">
<textarea v-on:mouseover="fun2($event)">这是一个文件域</textarea>
</div>
</div>
<script>
new Vue({
el:"#app",
methods:{
fun1:function () {
alert("鼠标悬停在div上了");
},
fun2:function (event) {
alert("鼠标悬停在textarea上了")
}
}
})
//传统方法
/**
function divmouseover() {
alert("鼠标移动到div上")
}
function textareamouseover() {
alert("鼠标移动到text上")
event.stopPropagation();
}
*/
/**
function showKeyCode(){
var key = event.keyCode;
alert(key);
}
*/
</script>
</body>
</html>
事件修饰符
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
<!--
@submit.prevent 阻止事件发生
-->
<form @submit.prevent action="http://www.alibaba.com" method="post">
<input type="submit" value="提交">
</form>
</div>
<script>
new Vue({
el:"#app"
})
</script>
</body>
</html>
on-html text …
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
<div id="div1"></div>
<div id="div2"></div>
<div v-text="message"></div>
<div v-html="message"></div>
<font size="5" :color="ys1">pu</font>
<font size="5" :color="ys2">pu</font>
</div>
<script>
new Vue({
//插值表达式不可用于html标签的属性取值,必须使用v-bind绑定
el:"#app",
data:{
message:"<h1>Hello Vue</h1>",
ys1:"red",
ys2:"green"
}
})
//js
window.onload = function () {
document.getElementById("div1").innerHTML="<h1>Hello</h1>"
document.getElementById("div2").innerText="<h1>Hello</h1>"
}
</script>
</body>
</html>
按键修饰符
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
Vue:<input type="text" v-on:keydown.enter="fun1">
</div>
<script>
new Vue({
//插值表达式不可用于html标签的属性取值,必须使用v-bind绑定
el:"#app",
methods:{
fun1:function () {
alert("按下的是回车!")
}
}
})
</script>
</body>
</html>
v-for
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
<ul>
<li v-for="(item,index) in arr">{{item}} = {{index}}</li>
</ul>
<ul>
<li v-for="(key,value) in product">{{key}} : {{value}}</li>
</ul>
<table border="1">
<tr>
<td>序号</td>
<td>编号</td>
<td>名称</td>
<td>价格</td>
</tr>
<tr v-for="(p,index) in products">
<td>{{index+1}}</td>
<td>{{p.id}}</td>
<td>{{p.name}}</td>
<td>{{p.price}}</td>
</tr>
</table>
</div>
<script>
new Vue({
//插值表达式不可用于html标签的属性取值,必须使用v-bind绑定
el:"#app",
data:{
arr:[1,2,3,4,5],
product:{
id:1,
name:"phone",
price:500
},
products:[
{id:1,name:"mac",price:10000},
{id:2,name:"phone",price:3000},
{id:3,name:"tv",price:4000}
]
}
})
</script>
</body>
</html>
v-model
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>vue</title>
<script src="js/vue.min.js"></script>
</head>
<body>
<div id="app">
<form action="" method="post">
用户名:<input type="text" name="username" v-model="user.username"><br>
密码:<input type="password" name="password" v-model="user.password"><br>
</form>
</div>
<script>
new Vue({
//插值表达式不可用于html标签的属性取值,必须使用v-bind绑定
el:"#app",
data:{
user:{
username:"test",
password:"1234",
}
}
})
</script>
</body>
</html>