這節(jié)主要學(xué)習(xí)methods屬性, 這個(gè)名字是固定的,它是一個(gè)對(duì)象,用于存儲(chǔ)各種方法。{{方法名()}}就可以調(diào)用相應(yīng)的方法。
示例
<!DOCTYPE html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>方法</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<h2>{{message}}</h2>
<h2>{{greeting('morning')}}</h2>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
message: 'hello vue',
},
methods: {
greeting:function(time){
return 'good ' + time + '!';
}
}
})
</script>
</body>
</html>
如果要在當(dāng)前對(duì)象中拿data的屬性,直接使用Vue實(shí)例化的對(duì)象.name就可以了,調(diào)用方法時(shí)也是直接拿對(duì)應(yīng)的方法。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue的方法練習(xí)</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<h2>{{greeting('Afternoon')}}</h2>
<h2>{{message}}</h2>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!',
name: '軟件1721'
},
methods: {
greeting: function(time) {
return 'Good ' + time + '!' + this.name;
}
}
})
</script>
</body>
</html>
v-on指令
分別點(diǎn)擊“隱藏/顯示”按鈕可以切換內(nèi)容的顯示:
<!DOCTYPE html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>v-on指令練習(xí)2-</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<h2 v-if="show">{{name}}</h2>
<button @click="handleClick">隱藏/顯示</button>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
name: '軟件1721',
show: true,
},
methods: {
handleClick:function() {
this.show = !this.show;
}
},
})
</script>
</body>
</html>
語(yǔ)法糖:
v-on:click可以簡(jiǎn)寫(xiě)為@click
喜歡/不喜歡 練習(xí)
<!DOCTYPE html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>v-on指令練習(xí)5-喜歡的練習(xí)</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<link rel="stylesheet" href="/vue-basic/css/font-awesome.min.css">
<style type="text/css">
.like{
width: 120px;
height: 50px;
color: rgb(234,111,90);
border-radius: 25px;
font-size: 14px;
background-color: #FFF;
border: 1px solid rgb(234,111,90);
outline: none;
}
.dislike{
width: 120px;
height: 50px;
color: #FFF;
border-radius: 25px;
font-size: 14px;
background-color: rgb(234,111,90);
border: 1px solid rgb(234,111,90);
/* 點(diǎn)擊取消外邊框 */
outline: none;
}
</style>
</head>
<body>
<div id="app">
<button class="dislike" v-show="status == false" @click="like">
<i class="icon-heart-empty" ></i> 喜歡 | {{number}}
</button>
<button class="like" v-show="status" @click="dislike">
<i class="icon-heart" ></i> 不喜歡 | {{number}}
</button>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
status: true,
number: 8,
},
methods: {
like:function() {
this.status = !this.status;
this.number += 1;
},
dislike:function() {
this.status = !this.status;
this.number -= 1;
}
},
})
</script>
</body>
</html>

GIF.gif