前端框架/类库的优缺点

React

优点

1、React运用一个虚拟的DOM实现了一个非常强大的渲染系统,在React中对DOM只更新不读取;
2、一切都是component,代码更加模块化,重用代码更容易,可维护性高
3、单向数据流
4、同构和服务端渲染可以更好的SEO和解决白屏问题

缺点

1、 它不是一个框架,它只是MVC(模型 - 视图 - 控制器)中的view
2、 jsx的一个问题是,渲染函数常常包含大量逻辑,最终看着更像是程序片段,而不是视觉呈现。后期如果发生需求更改,维护起来工作量大
3、 需要配合router和Flux/Mbox才能写大型应用

NEXT

当使用 React 开发系统的时候,常常需要配置很多繁琐的参数,如 Webpack 配置、Router 配置和服务器配置等。如果需要做 SEO,要考虑的事情就更多了,怎么让服务端渲染和客户端渲染保持一致是一件很麻烦的事情,需要引入很多第三方库。针对这些问题,Next.js提供了一个很好的解决方案,使开发人员可以将精力放在业务上,从繁琐的配置中解放出来.

优点:

1、 next是react的应用框架,上手快,动态载入、async开箱即用,提供server rendering和code splitting;
2、 支持Babel和Webpack的配置项定制,支持热模块替换

缺点:

1、 图片等静态文件只能放在 static 目录下,不能通过 require 来引入,也就是没办法通过 webpack 来进行模块化管理,如果各个组件有自身依赖的图片,也只能一股脑放 static 里,也很难实现版本管理控制浏览器缓存。
2、 样式同样也没办法通过 webpack 进行模块化管理,只能通过 style 标签嵌入或直接内联

VUE

优点:

1、 数据模型数据双向绑定”MVVM模式,当前端和数据做一些操作的时候,可以通过AJAX请求对后端做数据持久化,不需要刷新整个页面,只需要改动DOM里需要改动的那部分数据
2、 入门快、轻量化、模块友好

缺点:

1、 社区不大,生态环境没有React好,遇到的问题很少见到社区有在讨论
2、 功能仅限于 view 层,Ajax 等功能需要额外的库

JS

JavaScript 通常是运行在前端,混合在HTML中的JS脚本程序直接被浏览器解释执行,以提高页面的美观性和UI操作响应速度为基本目标。

JS控制页面显示、数据较验、数据临时存储(例如:cookie、浏览器支持的数据、localStorage等)等这些功能。

区分JSP:JSP是运行在后台服务器上,混合在HTML中的java程序段,用于控制HTML的动态生成,并且通常负责调用后台数据库中的数据,传到前台,具有丰富数据交互效果的页面

优点:

1、在程序运行过程中被逐行地解释。

JavaScript与HTML标识结合在一起,从而方便用户的使用操作。

2、一种相对安全的脚本语言。

JavaScript作为一种安全性语言,不被允许访问本地的硬盘,且不能将数据存入服务器,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失或对系统的非法访问。

3、一种跨平台性脚本语言。

JavaScript依赖于浏览器本身,与操作环境无关,只要计算机能运行浏览器,并支持JavaScript的浏览器,就可正确执行,从而实现了“编写一次,走遍天下”的梦想。

缺点:

1、各浏览器厂商对JavaScript支持程度不同

2、“Web安全性”对JavaScript一些功能牺牲。

3、纯粹的JavaScript将不能打开、读写和保存用户计算机上的文件。其有权访问的唯一信息就是该JavaScript所嵌入的那个Web主页中的信息,简言之,JavaScript将只存在于它自己的小小世界—Web主页里。

每次状态改变时,使用JavaScript重新渲染整个页面会非常慢,这应该归咎于读取和更新DOM的性能问题

JavaScript方案——按需要更新每一个元素——要慢

Jquery与react、vue的区别

1.数据与视图分离

jquery的数据与视图没有分离,数据和视图是混在一起的,而vue框架对数据和视图进行了分离,解耦(开放封闭原则,对扩展开放对修改封闭)

2.数据驱动视图

通过数据去驱动视图的变化,只关心数据的变化,dom操作被封装

换言之就是

1、服务端渲染VS客户端渲染

传统的jsp或者模板渲染,都是服务端渲染,就是客户端一个请求,服务器直接把整个页面返回给你,简单粗暴
现有React\vue是前后端分离,通过api进行交互,客户端请求服务器返回json数据,由客户端进行渲染。
而SSR服务端渲染也可以解决客户端首屏加载慢的问题

2、渲染优雅,新框架组件化、模块化的代码易维护

jQuery是通过DOM来控制数据,不仅笨重且渲染且较麻烦

现有框架React(mvc)、vue(mvvm)通过数据来控制状态,通过控制数据来控制渲染

3、项目工程化:

  • jquery之前需要使用第三方的插件时,直接通过script标签引入,而现有的框架有了打包工具之后,结合npm直接安装第三方库
  • 有了node之后,接口可以转发,进行拦截做了一些公共的方法请求功能

你可能感兴趣的:(javascript,react,vue)