Vue的中心思想是数据驱动,像远古时代的老前辈jQuery是结构驱动。
大家回忆下以前我们使用jQuery写代码的时候,经常是这样写的:
$("#myDiv").html("HelloWorld")
这些写法首先要获取Dom节点,也就是Dom结构,然后再修改数据更新结构的内容,使用jQuery的一个很大的目的就是为了去简化Dom的操作,而使用Vue就大不一样了,Vue的做法就是直接this.msg=HelloWorld,然后msg就会自动的同步到结构上,我们所要关心的是数据内容的改变,而不再去关心如何操作Dom结构了。
总结一句话:不要在想着怎么操作DOM,而是想着如何操作数据!!
vue是什么Vue.js (读音 /vju?/,类似于 view) 是一套基于javascript的用于构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与单文件组件和 Vue 生态系统支持的库结合使用时,Vue 也完全能够为复杂的单页应用程序提供驱动。
vue特点
简洁、轻量、组件化、快速、数据驱动、模块友好
vue和其他前端框架区别
1.与AngularJS的区别
相同点:
都支持指令:内置指令和自定义指令。
都支持过滤器:内置过滤器和自定义过滤器。
都支持双向数据绑定。
都不支持低端浏览器。
不同点:
1>AngularJS的学习成本高,比如增加了Dependency Injection(依赖注入)特性,而Vue.js本身提供的API都比较简单、直观。
2>在性能上,AngularJS依赖对数据做脏检查,所以Watcher越多越慢。
Vue.js使用基于依赖追踪的观察并且使用异步队列更新。所有的数据都是独立触发的。
对于庞大的应用来说,这个优化差异还是比较明显的。
手机渲染速度:angular1 300ms * vue 200ms * react 100ms
2.与React的区别
相同点:
React采用特殊的JSX语法,Vue.js在组件开发中也推崇编写.vue特殊文件格式,对文件内容都有一些约定,两者都需要编译后使用。
中心思想相同:一切都是组件,组件实例之间可以嵌套。
都提供合理的钩子函数,可以让开发者定制化地去处理需求。
都不内置列数AJAX,Route等功能到核心包,而是以插件的方式加载。
在组件开发中都支持mixins的特性。
不同点:
React依赖Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM会对渲染出来的结果做脏检查。
Vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作DOM。
vue的应用场景
简单地说,就是需要对 DOM 进行很多自定义操作的项目小项目理论上 Vue 配合类似Flux的架构也可以胜任超大规模多人协作的复杂项目。