js의 mvvm 모드 구현 원리(코드 포함)

不言
풀어 주다: 2018-09-30 15:50:38
앞으로
3191명이 탐색했습니다.

이 기사는 js의 mvvm 모드 구현 원칙(코드 포함)에 대한 내용입니다. 필요한 친구가 참고할 수 있기를 바랍니다.

Vue.js 프레임워크를 예로 들면,

js의 mvvm 모드 구현 원리(코드 포함)
view에 사용된 mvvm 모드는 페이지의 html과 css로 구성된 뷰를 의미합니다.
model은 백엔드에서 얻은 데이터 모델을 의미합니다.
viewmodel은 프런트엔드 개발자 조직에서 생성하고 유지 관리하는 뷰 데이터 계층을 의미합니다. 이 레이어에는 보기 동작과 데이터가 포함되어 있습니다.
보기 동작은 페이지가 로드될 때 요청되는 동작, 지정된 요소에 지정된 데이터를 배치하고 요소를 클릭하여 이벤트를 트리거하는 것을 의미합니다. 뷰모델이 처리되면 해당 데이터가 뷰 레이어에 표시됩니다.

MVVM 모델의 장점은 뷰와 뷰 모델이 양방향 바인딩되면 데이터가 변경될 때 DOM 구조를 수정할 필요가 없다는 것입니다.
예를 들어 네이티브 js가 입력 값을 다른 div의 텍스트에 바인딩하는 것을 구현하는 경우 먼저 입력 이벤트를 수신해야 하며 각 변경 사항은 div 노드의 텍스트 하위 노드 수정을 트리거합니다. MVVM 모드를 사용하면 데이터 변경 사항을 자동으로 감지하고 div 텍스트를 수정할 수 있습니다.

mvvm의 구현 원리: 객체의 속성 값을 가져오기 위해 get 및 set의 두 가지 속성 메서드가 있는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!