javascript - vue如何偵聽change事件實現雙向綁定的?
問題描述
我們用原生的事件偵聽一個input輸入框變化時綁定這么一個事件,這個回調函數執行的條件是輸入框blur之后
el.addEventListener(’change’, function(e){ console.log(e.target.value);})
但是 Vue.js 和 React.js這類框架對于綁定change事件的input并不需要blur才會觸發回調函數,而是每一次實時輸入就會觸發回調,就像IE的onpropertychange事件一樣。
這個是如何做到的?
問題解答
回答1:但是 Vue.js 和 React.js這類框架對于綁定change事件的input并不需要blur才會觸發回調函數,而是每一次實時輸入就會觸發回調,就像IE的onpropertychange事件一樣。 這個是如何做到的?
vue中的輸入框默認監聽的是input事件,所以輸入就會觸發回調。通過下面這種方式可以改成change中觸發。
<input v-model.lazy='msg' >回答2:
其實框架層面底層還是有對DOM事件的監聽,比如你說的input輸入框監聽了input事件,只是Vue框架不需要在input事件中去寫操作(雖然可以寫),自動將DOM變動轉換成了數據模型的變動。
最近在gitchat上做一場分享,可以看看這里。JavaScript 進階之深入理解數據雙向綁定
回答3:根據你的問題你是想了解vue的雙向綁定實現原理,這類文章SF還是有許多的。@鄧木琴居然被盜用了 這篇文章可以參考下鏈接描述
相關文章:
1. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?2. python沒入門,請教一個問題3. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現4. php如何獲取訪問者路由器的mac地址5. html - 爬蟲時出現“DNS lookup failed”,打開網頁卻沒問題,這是什么情況?6. html5 - input type=’file’ 上傳獲取的fileList對象怎么存儲于瀏覽器?7. 求教一個mysql建表分組索引問題8. node.js - 用nodejs 的node-xlsx模塊去讀取excel中的數據,可是讀取出來的日期是數字,請問該如何讀取日期呢?9. javascript - vue-resource中如何設置全局的timeout?10. javascript - 在 vue里面用import引入js文件,結果為undefined
