国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue.js中關于偵聽器(watch)的高級用法示例

2024-05-06 15:34:41
字體:
來源:轉載
供稿:網友

Vue偵聽器watch

雖然計算屬性在大多數情況下更合適,但有時也需要一個自定義的偵聽器。這就是為什么 Vue 通過 watch 選項提供了一個更通用的方法,來響應數據的變化。當需要在數據變化時執行異步或開銷較大的操作時,這個方式是最有用的。例如:

<div id="watch-example"><p>Ask a yes/no question:<input v-model="question"></p><p>{{ answer }}</p></div>
<!-- 因為 AJAX 庫和通用工具的生態已經相當豐富,Vue 核心代碼沒有重復 --><!-- 提供這些功能以保持精簡。這也可以讓你自由選擇自己更熟悉的工具。 --><script src="https://cdn.jsdelivr.net/npm/axios@0.12.0/dist/axios.min.js"></script><script src="https://cdn.jsdelivr.net/npm/lodash@4.13.1/lodash.min.js"></script><script>var watchExampleVM = new Vue({el: '#watch-example',data: {question: '',answer: 'I cannot give you an answer until you ask a question!'},watch: {// 如果 `question` 發生改變,這個函數就會運行question: function (newQuestion, oldQuestion) {this.answer = 'Waiting for you to stop typing...'this.getAnswer()}},methods: {// `_.debounce` 是一個通過 Lodash 限制操作頻率的函數。// 在這個例子中,我們希望限制訪問 yesno.wtf/api 的頻率// AJAX 請求直到用戶輸入完畢才會發出。想要了解更多關于// `_.debounce` 函數 (及其近親 `_.throttle`) 的知識,// 請參考:https://lodash.com/docs#debouncegetAnswer: _.debounce(function () {if (this.question.indexOf('?') === -1) {this.answer = 'Questions usually contain a question mark. ;-)'return}this.answer = 'Thinking...'var vm = this // this重定向axios.get('https://yesno.wtf/api').then(function (response) {vm.answer = _.capitalize(response.data.answer)}).catch(function (error) {vm.answer = 'Error! Could not reach the API. ' + error})},// 這是我們為判定用戶停止輸入等待的毫秒數500)}})</script>

偵聽器(watch)的高級用法

假設有如下代碼:

<div>  <p>FullName: {{fullName}}</p>  <p>FirstName: <input type="text" v-model="firstName"></p></div>new Vue({ el: '#root', data: { firstName: 'Dawei', lastName: 'Lou', fullName: '' }, watch: { firstName(newName, oldName) {  this.fullName = newName + ' ' + this.lastName; } } })

上面的代碼的效果是,當我們輸入firstName后,wacth監聽每次修改變化的新值,然后計算輸出fullName。

handler方法和immediate屬性

這里 watch 的一個特點是,最初綁定的時候是不會執行的,要等到 firstName 改變時才執行監聽計算。那我們想要一開始就讓他最初綁定的時候就執行改怎么辦呢?我們需要修改一下我們的 watch 寫法,修改過后的 watch 代碼如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 拉萨市| 宁安市| 景德镇市| 东安县| 遵义县| 江北区| 壤塘县| 沙河市| 大竹县| 武邑县| 祁连县| 九寨沟县| 屯留县| 颍上县| 绥芬河市| 左云县| 西贡区| 夹江县| 翁牛特旗| 九台市| 资中县| 泾川县| 克什克腾旗| 卢氏县| 方正县| 自贡市| 怀安县| 大同市| 泽普县| 宣汉县| 安吉县| 神池县| 青河县| 白银市| 特克斯县| 同心县| 邯郸县| 嘉定区| 延吉市| 新泰市| 兰州市|