跑馬燈案例
阿新 • • 發佈:2019-02-26
dev put star lang pat 表示 停止 字符 vue
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Title</title>
<script src="js/vue-2.4.0.js"></script>
</head>
<body>
<div id="app">
<input type="button" value="浪起來" @click="lang">
<input type="button" value="停下來" @click="stop">
<h4>{{msg}}</h4>
</div>
<script>
//註意:在VM實例中,如果想要獲取data上的數據,或者想要調用methods中的方法,
// 必須通過this數據屬性名,或this 方法名來訪問,這裏的this就表示我們new出來的VM實例對象
const vm=new Vue({
el:‘#app‘,
data:{
msg:‘猥瑣發育,別浪~‘,
intervalId:null //在data上定義 定時器Id
},
methods:{
lang(){
//console.log(this.msg);
if(this.intervalId!=null) return;
//const _this=this;
this.intervalId=setInterval( ()=> { //=> 箭頭外部的指示永遠和內部相同 this
//獲取到頭的第一個字符
var start=this.msg.substring(0,1)
//獲取到後面的所有字符
var end=this.msg.substring(1)
//重新拼接得到新的字符串,並賦值給this.msg
this.msg=end+start
},400);
//註意:VM實例,會監聽自己身上data中所有數據的改變,只要數據一發生變化,就會自動把最新的數據,
//從data上同步到頁面中去;[好處:程序員只需關心數據,不需要考慮如何重新渲染DOM頁面]
},
stop(){ //停止計時器
clearInterval(this.intervalId)
//每當清理定時器之後,需要重新把this.intervalId設置為null
this.intervalId=null;
},
}
})
</script>
</body>
</html>
跑馬燈案例