许多人做vue项目,不清楚为什么做的是vue项目而不是jquery项目,为什么这么用,用了之后也没有考虑过对不对,在上周公司开了一个会,说了一些关于我们部门的产品的问题,我总结了三个为什么,下面我把我的一些理解用大白话跟大家描述一下,请放心,我的语文是体育老师教的,有我这样的描述,许多人才能看得更明白:
为什么用vue框架?
- 它优化了项目中的过多的DOM操作,由于对DOM的操作是需要浏览器对页面不断的重绘重排并解析渲染出来,这一过程非常的消耗内存,如果项目过大就会造成CPU占用量过大,造成卡死等现象,既然都用了vue框架,那么就尽可能的减少一切jquery语句的出现;
- MVVM的设计理念,真正的实现视图数据的同步,即渲染数据的时候会触发访问器getter函数,通过每一个组件中的watcher也就是订阅者来监听数据的变化,当数据变化的时候,会调用setter函数,再通过defineProperty方法追踪到这个对象的数据,然后重新渲染模板,生成新的Virtual DOM并更新;
- 将项目组件化,大大降低了耦合度,把页面结构或者功能需求相同的提成单独的组件,这样可以提高代码复用率和减少冗余度;
- 它是一个spa,即单页面应用程序,可以通过vue-router来路由整个项目的各个组件部分;组件之间通讯的状态又可以用vuex来进行统一管理;
- 他是中国人尤雨溪开发的,所以API会对国人比较友好,简单易学而且轻量;
- vue的生态系统还是很大的,虽然还处于成长阶段,但近几年来比较火爆,不断出现更多的第三方插件来帮你打辅助,完善项目。
谨记:vue项目和我们正常写的html的项目是不一样的,一定要深刻理解spa的含义,如果写了很多的组件,但是确实同时加载到一个html的,那这又和正常写的html页面有什么区别,如果项目够大,反而会突出spa的缺点,切换路由变更组件导致没必要的内存泄漏,这又是何苦呢,用一个框架之前一定要搞明白两件事:它是什么?为什么用它?
路由懒加载:cpu不运行,但是内存已加载
组件异步加载:完全不加载
vue项目为什么要用nodeJs:
nodeJs是基于chrome v8引擎的JavaScript的运行环境,所以执行JavaScript代码快会非常的高效,可以说唯快不破;当然也可以实现动态引入require函数,虽然有ES6的引入,但import毕竟是静态引入,当我们在代码块里面想要用的时候,import是没办法提供所需的;Node.js 使用了事件驱动和非阻塞模型支持的事件循环的架构而得以轻量和高效;最重要的就是它含有包管理器,通过npm官网使用别人的源码包就要通过npm安装上,nodeJs会使用Module模块去划分不同的功能,而模块之间的依赖关系就是需要npm来处理的。
为什么要用NW?
nw.js是intel支持的一个基于nodeJs和chrome的应用程序运行环境,还有一个是github支持的Electron,这个相对于nw比较火,更多参考nw.js & Electron,在这里用的是nw.js,也就是说经过它的打包虽然看起来是一个电脑应用程序,但他实质上相当于一个UI浏览器,只不过是以一个轻量的应用程序呈现出来,因此完全支持浏览器的所有功能(ps:顿时感觉现在的JavaScript脚本语言还是很牛X的,能写各种项目以及产品,满足你一切的欲望);它支持nodeJs中所有的API和第三方模块;同时也支持本地的接口;可以直接从DOM和Web Workers调用Node.js模块;适用于Linux,Mac OS X和Windows。以上就是它的特点也是我们做产品或者项目用它的理由。
到这里相信大家应该都理解了,搞明白了这三个为什么,再做项目就会非常的清晰,有自己的见解;其实还有一个为什么要用webpack,这阵子正在研究webpack,这个留到后面总结。
本文的所有内容均是一字一句敲上去的,希望大家阅读完本文可以有所收获,因为能力有限,掌握的知识也是不够全面,欢迎大家提出来一起分享!谢谢O(∩_∩)O~
欢迎访问我的GitHub,喜欢的可以star,项目随意fork,支持转载但要下标注;
欢迎光临个人主页