ホームページ  >  記事  >  ウェブフロントエンド  >  jsでのmvvmモード実装の原理(コード付き)

jsでのmvvmモード実装の原理(コード付き)

不言
不言転載
2018-09-30 15:50:393181ブラウズ

この記事の内容は、js での mvvm モードの実装原理に関するものです (コード付き)。必要な方は参考にしていただければ幸いです。

Vue.js フレームワークを例に挙げます。使用される mvvm モード

jsでのmvvmモード実装の原理(コード付き)
view は次のことを指します。ページ html と css で構成されるビュー。
model は、バックエンドから取得したデータ モデルを指します。
viewmodel は、フロントエンド開発者組織によって生成および維持されるビュー データ レイヤーを指します。このレイヤーにはビューの動作とデータが含まれています。
ビューの動作とは、ページが読み込まれるとき、指定された要素に指定されたデータを配置するとき、要素をクリックしてイベントをトリガーするときに要求される内容を指します。ビューモデルが処理されると、対応するデータがビュー レイヤに表示されます。

MVVM モデルの利点は、ビューとビューモデルが双方向にバインドされている場合、データが変更されたときに DOM 構造を変更する必要がないことです。
たとえば、ネイティブ JS で、入力の値を別の div のテキストにバインドするには、最初に入力イベントをリッスンする必要があり、それぞれの変更がその div のテキスト サブノードの変更をトリガーします。 div ノード。 MVVM モードを使用すると、データの変更を自動的に検出し、div テキストを変更できます。

mvvm の実装原理: オブジェクトを取得するには、get と set という 2 つの属性メソッドがある Object.defineProperty() を使用します。属性。オブジェクトのプロパティを再割り当てします。

//定义一个对象
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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。