1. Vue和React的区别
首先你得说说相同点,两个都是MVVM框架,数据驱动视图,无争议。如果说不同,那可能分为以下这么几点:
-
vue是完整一套由官方维护的框架,核心库主要有由尤雨溪大神独自维护,而react是不要脸的书维护(很多库由社区维护),曾经一段时间很多人质疑vue的后续维护性,似乎这并不是问题。
-
vue上手简单,进阶式框架,白话说你可以学一点,就可以在你项目中去用一点,你不一定需要一次性学习整个vue才能去使用它,而react,恐怕如果你这样会面对项目束手无策。
-
语法上vue并不限制你必须es6+完全js形式编写页面,可以视图和js逻辑尽可能分离,减少很多人看不惯react-jsx的恶心嵌套,毕竟都是作为前端开发者,还是更习惯于html干净。
-
很多人说react适合大型项目,适合什么什么,vue轻量级,适合移动端中小型项目,其实我想说,说这话的人是心里根本没点逼数,vue完全可以应对复杂的大型应用,甚至于说如果你react学的不是很好,写出来的东西或根本不如vue写的,毕竟vue跟着官方文档撸就行,自有人帮你规范,而react比较懒散自由,可以自由发挥
-
vue在国内人气明显胜过react,这很大程度上得益于它的很多语法包括编程思维更符合国人思想
1. 什么是mvvm
MVVM的核心是数据驱动
即ViewModel,ViewModel
是View和Model的关系映射
。
MVVM本质就是基于操作数据
来操作视图
进而操作DOM
,借助于MVVM无需直接
操作DOM,开发者只需编写ViewModel
中有业务
,使得View完全实现自动化
。
2. 什么是 SPA 单页面,它的优缺点分别是什么
SPA( single-page application )即一个web项目
就只有一个页面
(即一个HTML文件,HTML 内容的变换是利用路由机制实现的。
仅在 Web 页面初始化
时加载
相应的 HTML、JavaScript 和 CSS
。一旦页面加载完成
,SPA 不会
因为用户的操作
而进行页面的重新加载或跳转
;取而代之的是利用路由机制
实现 HTML 内容
的变换,UI 与用户的交互,避免页面的重新加载。
优点:
用户体验好、快
,内容的改变不需要重新加载整个页面,避免了不必要的跳转和重复渲染;- 基于上面一点,SPA 相对对
服务器压力小
; - 前后端
职责分离
,架构清晰
,前端进行交互逻辑,后端负责数据处理;
缺点:
初次加载耗时多
:为实现单页 Web 应用功能及显示效果,需要在加载页面的时候将 JavaScript、CSS 统一加载,部分页面按需加载;
前进后退路由管理
:由于单页应用在一个页面中显示所有的内容,所以不能使用浏览器的前进后退功能,所有的页面切换需要自己建立堆栈管理;
SEO 难度较大
:由于所有的内容都在一个页面中动态替换显示,所以在 SEO 上其有着天然的弱势。