如何用JavaScript實現(xiàn)雙向數(shù)據(jù)綁定
近幾年前端技術棧真是發(fā)展的太迅速了,從以前的針對dom操作的框架如jquery,ext.js等框架逐步過渡到當前的mvvm模式,讓前端開發(fā)者將注意力從dom操作逐漸解脫出來,專注于邏輯的實現(xiàn),個人認為開發(fā)效率至少提升了1倍,mvvm模式的一個核心便是數(shù)據(jù)的雙向綁定。
什么是數(shù)據(jù)的雙向綁定?
上面說的是在vue框架中數(shù)據(jù)雙向綁定的應用,個人認為這個特性很贊,是大幅提升開發(fā)效率的關鍵,那如果脫離mvvm的框架,我也想實現(xiàn)這種數(shù)據(jù)的雙向綁定,可不可以實現(xiàn)了,該如何實現(xiàn)了?
用原生js模擬數(shù)據(jù)雙向綁定
實現(xiàn)步驟:
一:用js監(jiān)聽數(shù)據(jù)的變化并將變化的數(shù)據(jù)時時的同步到頁面
為了實現(xiàn)這個功能我們需要用到js的一個方法Object.defineProperty
推薦下我的前端群:524262608,不定期會有干貨分享,初學者還有一套整理好的入門教程,歡迎初學者和進階中的小伙伴。
1.屬性介紹
2.方法介紹
大概的介紹了defineProperty核心的兩個方法,看到這里,你就知道可以利用這兩個內置方法搞事情了,看下面利用該方法實現(xiàn)數(shù)據(jù)雙向綁定的一個例子
效果如下,當姓名發(fā)生變化時后面的輸入框中的值也同步發(fā)生變化:
小結:雖然對此屬性沒有太研究,但是感覺還是蠻新鮮的,之前只是用到了mvvm模式帶來的便捷卻不知道如何去實現(xiàn),完全么有思路的說,但是小伙伴們,你們看完上述代碼,現(xiàn)在心中的疑惑應該會少很多哈,,嘎嘎。