MVVM框架出现背景
在过去的10年中,我们已经把很多传统的服务端代码放到了浏览器中,这样就产生了成千上万行的javascript代码,它们连接了各式各样的HTML 和CSS文件,但缺乏正规的组织形式。
目前,随着手机端、移动智能设备的风靡,产生了一种叫做WebApp的东西,也就是移动端的网页应用。它们不仅仅像h5营销网页一样有酷炫的效果,它们还有复杂的点击、输入、下拉选择,视图切换等复杂的交互。在这样的业务需求下,我们还是沿用PC端的开发方案,难免会不太合适。
前端的所涉及的交互也逐渐变多,功能也越来越复杂,例如新闻趣味站,在线购物平台, 社交网络,金融信贷应用,音乐互动社区,视频分享平台,打车出行平台等等,这些网站和平台的共同特点就是交互多,功能复杂。前端的项目越来越大,项目的可维护性和扩展性、安全性等成了主要问题。当年为了解决浏览器兼容性问题,出现了很多类库,其中最典型的就是jquery。但是这类库没有实现对业务逻辑的分成,所以维护性和扩展性极差。
什么是MVVM框架
MVVM可以拆分成:View --- ViewModel --- Model三部分
- Model指的是数据部分
- View指的是视图部分,对应前端就是DOM
- ViewModel就是连接数据的和视图的中间件
{
name: "张三",
age: 21,
}
例如:
在Model层修改修改name的值为“李四”,那么View视图层显示的“张三”也自动变成了“李四”,而里面的整个过程都是由ViewModel来操作,不需要手动去修改代码去实现,不需要操作DOM。
Vue的核心
通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
数据驱动:数据改变驱动了视图的自动更新,传统的做法你得手动改变DOM来改变视图,vue只需要改变数据,就会自动改变视图。
组件化:把整一个网页的拆分成一个个区块,每个区块我们可以看作成一个组件。页面不过是组件的容器,组件可以嵌套自由组合形成完整的页面。
渐进式:当我们开发一个小型网站,可以将Vue 作为该应用的一部分嵌入其中;当开发中型网站,可以结合Vue的核心库及其生态系统也可以满足你的各式需求(core+vuex+vue-route);当开发大型网站,可以使用Vue的一个命令行工具,使快速初始化一个真实的工程变得非常简单(vue init webpack my-project)。对VUE的使用可大可小,它都会有相应的方式来整合到你的项目中。
适用场景
如果你还在用jquery频繁操作你的DOM来更新页面的话,那么,你可以用Vue.js来解放你的DOM操作了。
如果你的项目中有多个部分是相同的,并可以封装成一个组件,那么,你可以试试用Vue.js。
Vue.js的核心实现中使用了ES5的Object.defineProperty特性,IE8及以下版本浏览器是不兼容的,所以,你的项目需要兼容这些较低版本的浏览器的话,那么,Vue.js就不适用了。
(引用https://blog.csdn.net/chenzeyuczy/article/details/79634968)