react和vue的开发感想

在心宠和金蝶任职的过程中,一直有用react和vue做开发。至于哪些项目选择那种框架,我有自己的一些心得和体会。
首先,react、vue都是目前比较前沿的前端框架(还有angular,不过angular大而全的框架设计让我感觉挺笨重,不过这种特性反而适合多人协作和大型项目使用),让我们先看看官方对自己框架的介绍吧。
首先是react

react官网

react把自己定位成用户创建用户界面的js库。react主要有三大特点:
1.基于组件式开发。(通过props获取外部参数,state来管理内部状态。并通过构合物的方式来实现更复杂的界面。这个构合物说的有点抽象,本质上是递归嵌套组件。你可以类比成乐高积木。每个一个元件相当于组件。一个完整的积木则由不同的元件搭建而成。而对于react来说,则相当于组件的构合)
2.声明式的界面(用户不用关心页面怎么渲染,只要你的数据层发生变化,我们就能渲染正确的组件)
3.Learn Once, Write Anywhere。只要你掌握了react。你就可以开发web应用和react-native应用。

让我们看回vue。

vue官网

vue把自己看作是一个渐进式的js框架。什么叫渐进式呢?可以理解为vue尽量提供最必要的基本功能。而其他非必要功能则通过npm包的方式去引入。比如vue提供ui搭建的基本功能。至于前端路由,你可以用vue-router。想要用状态管理,你可以使用vuex。想要做数据请求,你可以选择vue-resource等等。这样的设计能允许用户按需使用,更加灵活去构建自己的项目。另外,由于颗粒度太小而导致用户搭建一个常见的项目都需要引入多个模块(对于单页应用,vue,vue-router都是必须的),官方还出了相应的脚手架来方便开发。
vue的三大特点:
1.开发友好(只要你会写html、css,你就可以直接上手,学习成本低)
2.通用性强(适用于不同规模的开发)
3.高性能(压缩并gzip后只有19kb。采用虚拟dom和differ算法来减少不必要的dom操作)

当然,上面提到的特点都是react和vue在官网上对外宣传的特点,旨在开发者能大概了解到自身的作用和优势。

React和Vue有哪些相同点呢?
相同点:

  • 数据驱动视图,提供响应式的视图组件
  • 都有Virtual DOM,通过differ算法减少dom操作
  • 组件化开发,实现webComponents规范。都有内部状态管理(react的state,vue的data)和外部参数传入(props)
  • 数据流动单向。
  • 都支持服务端渲染
  • 都支持组件动画过度
  • 都支持jsx语法
  • 都有成熟的脚手架
  • 对props都有类型检验
  • 都有支持native的方案,React的React native,Vue的weex
  • 都是渐进式设计
  • 事件处理都采用事件委托
    不同点:
  • vue的组件写法默认采用单文件组件的方式。开发者在一个vue文件中完成html、js、css的编写。而react默认采用jsx的写法(跟传统的html的写法相似,但允许内嵌js表达式,允许自定义标签等)。后来vue也支持了jsx的写法。这两种写法各有优势。单文件组件的写法跟webcomponent的写法相近,而且把html、js、css都写在了一起,方便组件的管理。jsx则胜在灵活。两者的出现都是为了开发的便利,并没有功能上的优劣。
  • 其他的不同点我感觉都大同小异(- -。当然从性能上讲可能在不同项目规模性能不一样,许多大牛在性能上扯了很多也没有统一的答案)
  • vue上手比react简单

你可能感兴趣的:(react和vue的开发感想)