Vue2中的定時功能類似于瀏覽器中的setInterval()和setTimeout()函數(shù),可以對頁面中的元素或數(shù)據(jù)進行周期性更新或延時操作。定時器是Vue2中非常常用的功能,亦是其強大的體現(xiàn)之一。
Vue2中的定時器主要包括兩個方法:setInterval()和setTimeout()。其中setInterval()方法會每隔一定時間執(zhí)行一次代碼,而setTimeout()方法則會在規(guī)定的時間后執(zhí)行一次代碼。
//setInterval()實例 var timer = setInterval(function(){ console.log('每2秒運行一次'); },2000); //主動停止定時器 // clearInterval(timer);
上述代碼表示每隔2秒執(zhí)行一次console.log()語句,即使窗口失去焦點,該定時器也會一直運行。可以使用clearInterval()方法停止該定時器。
//setTimeout()實例 setTimeout(function(){ console.log('三秒鐘后執(zhí)行一次'); }, 3000);
上述代碼表示等待3秒后執(zhí)行一次console.log()語句。
需要注意的是,Vue2中的定時器并不是完全依賴于瀏覽器的定時功能。Vue將定時器封裝成一個獨立的對象,在Vue中使用定時器不會受到瀏覽器頻率限制而失效,同時也可以在服務(wù)器端環(huán)境中使用。
除了使用setInterval()和setTimeout()方法之外,Vue2還提供了該框架自己的定時器組件,即interval和timer。這兩個組件與setInterval()和setTimeout()用法類似,但使用后代碼更加簡潔,且支持在模板中直接操作狀態(tài)。
//Vue定時器組件實現(xiàn)計數(shù):{{count}}
上面的代碼使用了Vue的定時器組件,實現(xiàn)了計數(shù)器的功能。計數(shù)器會每隔1秒鐘自動加1,用戶也可以通過點擊啟動和停止按鈕操作計數(shù)器。需要注意的是,interval組件返回的是一個定時器ID,需要通過該ID才可以停止定時器。
除了上述方法以外,Vue還提供了方便的時間格式化方法:$filters.date(). 該方法可以將時間戳格式化為指定的日期或時間格式,例如:
//時間格式化 {{ new Date() | date('YYYY-MM-DD HH:mm:ss') }}
上述代碼會將new Date()的輸出格式化為“YYYY-MM-DD HH:mm:ss”的格式。
總之,在Vue中使用定時器非常方便,無論是使用setInterval()和setTimeout()方法,還是使用Vue的定時器組件,都可以實現(xiàn)快速輕松地對頁面元素和數(shù)據(jù)進行周期性更新或延時操作。值得注意的是,Vue的定時器更為強大且不受瀏覽器限制,甚至可以在服務(wù)器端環(huán)境中使用。