在本章中,我們將學(xué)習(xí)watch屬性。 使用一個(gè)例子,我們會(huì)看到在VueJS中使用watch屬性。
創(chuàng)建一個(gè)文件:watch-property.html -
<html>
<head>
<meta charset="utf-8" />
<title>VueJs Watch屬性示例</title>
<script type = "text/javascript" src = "js/vue.js"></script>
</head>
<body>
<div id = "computed_props">
公里(kilometers) : <input type = "text" v-model = "kilometers">
米(meters) : <input type = "text" v-model = "meters">
</div>
<script type = "text/javascript">
var vm = new Vue({
el: '#computed_props',
data: {
kilometers : 0,
meters:0
},
methods: {
},
computed :{
},
watch : {
kilometers:function(val) {
this.kilometers = val;
this.meters = val * 1000;
},
meters : function (val) {
this.kilometers = val/ 1000;
this.meters = val;
}
}
});
</script>
</body>
</html>
在上面的代碼中,我們創(chuàng)建了兩個(gè)文本框,一個(gè)是公里,另一個(gè)是米。 在數(shù)據(jù)屬性中,公里和米被初始化為0。watch對(duì)象創(chuàng)建有兩個(gè)函數(shù):kilometers和meters。 在這兩個(gè)功能中,完成從公里到米,從米到公里的轉(zhuǎn)換。
當(dāng)在任何一個(gè)輸入框中輸入數(shù)值時(shí),watch會(huì)負(fù)責(zé)更新兩個(gè)文本框。不必專(zhuān)門(mén)分配任何事件,等待它改變,并做了額外的驗(yàn)證工作。watch負(fù)責(zé)通過(guò)在各個(gè)功能中完成的計(jì)算來(lái)更新文本框。
我們來(lái)看看瀏覽器中的輸出。如下圖所示 -
現(xiàn)在在公里 文本框中輸入一些值,并在米文本框中看到它的變化,反之亦然。