text: (window.webpackJsonp=window.webpackJsonp||[]).push([[47],{167:function(e,t,i){"use strict";i.r(t);var v=i(0),l=Object(v.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"content"},[i("h1",{attrs:{id:"mvvm"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#mvvm","aria-hidden":"true"}},[e._v("#")]),e._v(" MVVM")]),e._v(" "),i("h4",{attrs:{id:"_1、mvvm是什么？"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#_1、mvvm是什么？","aria-hidden":"true"}},[e._v("#")]),e._v(" 1、MVVM是什么？")]),e._v(" "),i("ol",[i("li",[e._v("MVVM是Model-View-ViewModel的简写")]),e._v(" "),i("li",[e._v("它本质上是MVC 的改进版")]),e._v(" "),i("li",[e._v("MVVM（Model-View-ViewModel）框架的由来是MVP（Model-View-Presenter）模式与WPF结合的应用方式时发展演变过来的一种新型架构框架")])]),e._v(" "),i("h4",{attrs:{id:"_2、mvvm优点"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#_2、mvvm优点","aria-hidden":"true"}},[e._v("#")]),e._v(" 2、MVVM优点")]),e._v(" "),i("ul",[i("li",[i("blockquote",[i("p",[e._v("MVVM模式和MVC模式一样，主要目的是分离视图（View）和模型（Model），有几大优点")])])])]),e._v(" "),i("ol",[i("li",[i("strong",[e._v("低耦合")]),e._v('：视图（View）可以独立于Model变化和修改，一个ViewModel可以绑定到不同的"View"上，当View变化的时候Model可以不变，当Model变化的时候View也可以不变')]),e._v(" "),i("li",[i("strong",[e._v("可重用性")]),e._v("：你可以把一些视图逻辑放在一个ViewModel里面，让很多view重用这段视图逻辑")]),e._v(" "),i("li",[i("strong",[e._v("独立开发")]),e._v("：开发人员可以专注于业务逻辑和数据的开发（ViewModel），设计人员可以专注于页面设计，使用Expression Blend可以很容易设计界面并生成xml代码")]),e._v(" "),i("li",[i("strong",[e._v("可测试")]),e._v("：界面素来是比较难于测试的，而现在测试可以针对ViewModel来写")])])])}],!1,null,null,null);t.default=l.exports}}]);