初学vue
1.cloak
解决页面闪动问题
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
[v
-cloak
] {
display
: none
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div v
-cloak
>{{msg
}}</div
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
msg
: 'hello Vue'
}
});
</script
>
</body
>
</html
>
2.v-text、v-html、v-pre、
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
[v
-cloak
] {
display
: none
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div v
-cloak
>{{msg
}}</div
>
<div v
-text
="msg"></div
>
<div v
-html
="msg1"></div
>
<div v
-pre
>{{msg
}}</div
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
msg
: 'hello Vue',
msg1
: "<h1>HTML</h1>"
}
});
</script
>
</body
>
</html
>
3、数据响应式
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
[v
-cloak
] {
display
: none
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div v
-cloak
>{{msg
}}</div
>
<div v
-once
>{{info
}}</div
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
msg
: 'hello Vue',
info
: 123
}
});
</script
>
</body
>
</html
>
4、双向数据绑定
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
[v
-cloak
] {
display
: none
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div v
-cloak
>{{msg
}}</div
>
<div v
-once
>{{info
}}</div
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
msg
: 'hello Vue',
info
: 123
}
});
</script
>
</body
>
</html
>
5、事件绑定
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
[v
-cloak
] {
display
: none
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div v
-cloak
>{{num
}}</div
>
<div
>
<button v
-on
:click
="num++">点击
</button
>
<button @click
='num++'>点击
1</button
>
<button @click
='handle'>点击
2</button
>
<button @click
='handle()'>点击
3</button
>
</div
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
num
: 0,
},
methods
: {
handle
: function() {
console
.log(this == vm
);
this.num
++;
}
}
})
</script
>
</body
>
</html
>
6、事件对象的基本使用
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
[v
-cloak
] {
display
: none
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div v
-cloak
>{{num
}}</div
>
<div
><button v
-on
:click
="handle1">点击
</button
></div
>
<div
><button v
-on
:click
="handle(123,456,$event)">点击带传参
</button
></div
>
</div
>
<script src
="../vue.js"></script
>
<!--
1.如果事件直接绑定函数名称 那么默认会携带事件对象作为事件函数的第一个参数
2.如果事件绑定调用,那么事件对象必须作为最后一个参数进行传递 显式传递 并且事件的名称必须是$event
-->
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
num
: 0
},
methods
: {
handle
: function(p
, p1
, event
) {
console
.log(p
);
console
.log(p1
);
console
.log(event
.target
.innerHTML
);
this.num
++;
},
handle1
: function(event
) {
console
.log(event
.target
.innerHTML
);
this.num
++;
}
}
})
</script
>
</body
>
</html
>
7.事件修饰符
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
[v
-cloak
] {
display
: none
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div v
-cloak
>{{num
}}</div
>
<div v
-on
:click
='handle0'><button v
-on
:click
.stop
="handle1">点击
</button
></div
>
<a href
="http://www.baidu.com" v
-on
:click
.prevent
="">阻止默认事件
</a
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
num
: 0
},
methods
: {
handle0() {
this.num
++;
},
handle1
: function(event
) {
console
.log(event
.target
.innerHTML
);
this.num
++;
}
}
})
</script
>
</body
>
</html
>
8、按键修饰符
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
</head
>
<body
>
<div id
="app">
<form action
="">
<div
>
用户名
:
<input type
="text" v
-on
:keyup
.delete="clearContent" v
-model
="uname">
</div
>
<div
>
密码
:
<input type
="text" v
-model
="pwd" v
-on
:keyup
.enter
="handleSubmit">
</div
>
<div
>
<input type
="button" v
-on
:click
="handleSubmit" value
="提交">
</div
>
</form
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
uname
: '',
pwd
: ''
},
methods
: {
handleSubmit() {
console
.log(this.uname
, this.pwd
);
},
clearContent() {
this.uname
= ""
}
}
})
</script
>
</body
>
</html
>
9、自定义按键修饰符
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
</head
>
<body
>
<div id
="app">
<input type
="text" v
-on
:keyup
.aaa
="handle" v
-model
="info">
</div
>
<script src
="../vue.js"></script
>
<script
>
Vue
.config
.keyCodes
.aaa
= 65
var vm
= new Vue({
el
: '#app',
data
: {
info
: ''
},
methods
: {
handle(event
) {
console
.log(event
.keyCode
);
},
}
})
</script
>
</body
>
</html
>
10、属性绑定
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
</head
>
<body
>
<div id
="app">
<a v
-bind
:href
="url">百度
</a
>
<a
:href
="url">百度
1</a
>
<button v
-on
:click
="handle">切换
</button
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
url
: 'http://www.baidu.com'
},
methods
: {
handle() {
this.url
= "http://www.jd.com"
}
}
})
</script
>
</body
>
</html
>
11、样式绑定
对象的形式
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
.active
{
border
: 1px solid #
000;
width
: 100px
;
height
: 100px
;
}
.error
{
background
-color
: #f00
;
width
: 100px
;
height
: 100px
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div
:class="{active:isActive,error:isError}"></div
>
<button v
-on
:click
="handle">切换
</button
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
isActive
: true,
isError
: false,
},
methods
: {
handle() {
this.isActive
= !this.isActive
this.isError
= !this.isError
}
}
})
</script
>
</body
>
</html
>
数组的形式
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
.active
{
border
: 1px solid #
000;
width
: 100px
;
height
: 100px
;
}
.error
{
background
-color
: #f00
;
width
: 100px
;
height
: 100px
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div
:class="[activeClass,errorClass]"></div
>
<button v
-on
:click
="handle">切换
</button
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
activeClass
: 'active',
errorClass
: 'error'
},
methods
: {
handle() {
this.activeClass
= ''
}
}
})
</script
>
</body
>
</html
>
混合
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
.active
{
border
: 1px solid #
000;
width
: 100px
;
height
: 100px
;
}
.error
{
background
-color
: #f00
;
width
: 100px
;
height
: 100px
;
}
.test
{
color
: blue
;
}
.base
{
font
-size
: 28px
;
}
</style
>
</head
>
<body
>
<div id
="app">
<div
:class="[activeClass,errorClass,{test:isTest}]">测试样式
</div
>
<div v
-bind
:class="arrClasses"></div
>
<div v
-bind
:class="objClasses"></div
>
<div
class="base" v
-bind
:class="objClasses">测试样式
</div
>
<button v
-on
:click
="handle">切换
</button
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
activeClass
: 'active',
errorClass
: 'error',
isTest
: true,
arrClasses
: ['active', 'error'],
objClasses
: {
active
: true,
error
: true,
},
},
methods
: {
handle() {
this.objClasses
.error
= false
}
}
})
</script
>
</body
>
</html
>
12、分支结构
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
</style
>
</head
>
<body
>
<div id
="app">
<div v
-if='score>=90'>优秀
</div
>
<div v
-else-if='score<90&&score>=80'>良好
</div
>
<div v
-else-if='score<80&&score>=60'>一般
</div
>
<div v
-else>差
</div
>
<input type
="text" v
-model
="score">
<div v
-show
="flag">测试v
-show
</div
>
<button v
-on
:click
="handle">切换
</button
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
score
: 99,
flag
: false,
},
methods
: {
handle
: function() {
this.flag
= !this.flag
}
}
})
</script
>
</body
>
</html
>
13、循环结构
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
</style
>
</head
>
<body
>
<div id
="app">
<div
>水果列表
</div
>
<ul
>
<li v
-for="item in fruits">{{item
}}</li
>
<li v
-for="(item,index) in fruits">{{item
+'-----'+index
}}</li
>
<li v
-for="(item,index) in myFruits" :key
="item.id">
<span
>{{item
.ename
}}</span
>
<span
>----</span
>
<span
>{{item
.cname
}}</span
>
</li
>
</ul
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var vm
= new Vue({
el
: '#app',
data
: {
fruits
: ['apple', 'orange', 'banana'],
myFruits
: [{
id
: 1,
ename
: 'apple',
cname
: '苹果',
}, {
id
: 2,
ename
: 'orange',
cname
: '橘子',
}, {
id
: 3,
ename
: 'banana',
cname
: '香蕉',
}, ]
},
methods
: {
}
})
</script
>
</body
>
</html
>
14、循环分支结合使用
<!DOCTYPE html
>
<html lang
="en">
<head
>
<meta charset
="UTF-8">
<meta name
="viewport" content
="width=device-width, initial-scale=1.0">
<title
>Document
</title
>
<style
>
</style
>
</head
>
<body
>
<div id
="app">
<div v
-if="obj.age>12" v
-for="(value,key,index) in obj">{{value
+ '----'+key
+'-----'+index
}}</div
>
</div
>
<script src
="../vue.js"></script
>
<script
>
var obj
= {
uname
: 'list',
age
: 12,
gender
: 'male'
}
var vm
= new Vue({
el
: '#app',
data
: {
obj
: {
uname
: 'list',
age
: 12,
gender
: 'male'
}
},
methods
: {
}
})
</script
>
</body
>
</html
>
转载请注明原文地址:https://blackberry.8miu.com/read-17662.html