使用vue.js做开发快两年了,对vue的优缺点有一点自己的见解,跟大神比不了,但是面试基本够用
vue在国内能被广泛使用的首要原因是它是基于mvvm框架做开发的,mvvm是前端开发中一种很有影响力的模式,在mvvm中,m代表model 即模型,model中集中粗出变量以及变量的值,v代表view 即视图,集中存储html和css,vm是二者名字的结合,viewmodel,我猜测这样命名应该是找不到合适的名字替代了~~,很多人沿用mvc的controller对mvvm的vm进行中文命名,mvc也是控制器,mvvm也是控制器,说起vm可老厉害了,厉害在哪呢,又是做什么的呢,vm是衔接同步view和model的数据交互控制器,源代码中的什么数据劫持,订阅者-发布者,这么复杂的定义,就留给大神和vue项目组研究吧,我们不要没研究透,反而越来越糊涂,vue有量大系统,第一,通知系统,第二,虚拟dom树,vue对象创建后,会自动引入data对象,data就是模型数据,data中的每一个变量都会自动添加两个访问器属性_set()和_get(),调用变量实际上是调用的访问器属性,当数据发生变化后,就会调用访问器属性,调用访问器属性就会触发通知系统,vm获得通知后就对虚拟dom树进行遍历,并修改需要修改的数据,然后同步到view中,这就是mvvm或者说vue事项双向绑定的原理,虚拟dom树是vm扫描真实dom树创建的一棵极其精简的dom树,只保存变化和可能变化的元素,一点多余的东西都没有,所以遍历极快,而且还封装了dom的重复的增删改查操作,所以能极大地简化代码,这个也符合vue是一个轻量级框架的名号。
vue做SPA应用的用户体验还是不错的,性能也比较好,开发起来也比较简单,也能实现前后端分离
vue的大量封装既是优点又是缺点,做seo那叫一个累啊,报错又不明显,复杂的页面代码非常累赘,加载效率么--谁用谁知道,就和用了2M的宽带似的
多提一嘴mvc和mvvm的区别吧,mvc是比较早的偏后端开发的模式,而且各做各的事,互不干扰,想做双向绑定就只能dom模拟,但是mvvm是实现了响应式的双向数据绑定的,而且还是基于mvc模式演变出来的,你能做的我也能做,你没实现的我却能实现,所以mvvm模式更受前端市场的欢迎!
面试够用,大神手下留情~~
转载的麻烦贴的原地址哈,尊重一下他人劳动成果!
来源:oschina
链接:https://my.oschina.net/u/4278523/blog/3393027