首頁 > web前端 > js教程 > 主體

js中mvvm模式實現的原理(附程式碼)

不言
發布: 2018-09-30 15:50:38
轉載
3191 人瀏覽過

這篇文章帶給大家的內容是關於js中mvvm模式實現的原理(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

以Vue.js框架為例子,使用的mvvm模式

js中mvvm模式實現的原理(附程式碼)
view#指的是頁面的html和css構成的視圖。
model指的是從後端取到的資料模型
viewmodel 指的是前端開發人員組織產生和維護的視圖資料層。這一層包含的是視圖行為和資料。
視圖行為指的是如頁面載入進來時請求什麼,將指定的資料放到指定的元素上,點擊某個元素觸發某事件。當viewmodel處理好後則會將對應的資料展現到view層。

MVVM模式的優點在於當view和viewmodel的雙向綁定,當資料改變後不需要改修改DOM結構。
例如原生js實作一個input的值綁定另一個div的文本,首先需要監聽input事件,每次改變觸發一次div節點的文本子節點進行修改。使用了MVVM模式則可以自動偵測到資料的改變從而修改div文本

mvvm的實作原理:利用Object.defineProperty(),該方法有get、set兩個屬性方法,從而取得物件屬性的值,給物件屬性重新賦值

//定义一个对象
let obj = {}
Object.defineProperty(obj,'txt'{
    //obj.txt属性赋值方法,同时为input、p文本赋同一个值
    set(val){
       document.getElementById('input').value = val
       document.getElementById('output').innerHTML = val
    },
    //获取txt属性的方法
    get(){
        return obj;
    }
})
//监听事件 触发的时候会给obj.txt重新赋值,从而实现双向绑定
 document.addEventListener('keyup',(e)=>{
   obj.txt = e.target.value;
 })
登入後複製

以上是js中mvvm模式實現的原理(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!