国产探花免费观看_亚洲丰满少妇自慰呻吟_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 代碼如下:

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

圖片精選

主站蜘蛛池模板: 石家庄市| 安乡县| 双峰县| 平塘县| 汤原县| 平果县| 乐清市| 芷江| 偃师市| 台山市| 策勒县| 祥云县| 育儿| 静海县| 博客| 莱州市| 锡林郭勒盟| 舞阳县| 江阴市| 花莲县| 昆山市| 衡东县| 安岳县| 临猗县| 大悟县| 勐海县| 中超| 南通市| 和顺县| 连云港市| 安乡县| 手机| 深圳市| 肇源县| 神农架林区| 清水河县| 安顺市| 西盟| 芮城县| 阿拉尔市| 垫江县|