何宏伟

[嵌牛导读]

Think Always

带着React的心态去接触Vue

由于最近项目web端选择使用Vue,而我在前段时间刚好接触了React,所以在这样的状况下,遇见了Vue。尽管呢,两者使用时间都不是很长,但是遇到的问题却是不少,管中窥豹,从自身的角度来谈谈两者的异同。

[嵌牛鼻子]

Vue,Vuex,React,Redux

[嵌牛提问]

  • Vue && React两者都采用了组件化的思想,具有同样特殊的数据绑定,不同之处在哪里?
  • 使用两者编程最直观的感受如何?
  • 怎样判断在你的项目中使用Vue || React

[嵌牛正文]

Data Flow

一. 组件和数据绑定

两者都具有MVC的架构模式,如果你使用vue-cli生成webpack项目模板,你会发现代码组织非常清晰,这点与React是相似的,都具有比较清晰的代码组织。

  • 组件

React显得严谨,Vue则是落落大方。编写时,React需要采用面向对象的方式来继承Component,组件内部采用JSX来编写

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

Vue每一个.vue文件都可为一个组件,在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例,每个组件内部也可以引用,组件之间也可以相互引用。在 Vue 中注册组件很简单:

Vue.component('todo-item', {
  template: '<li>这是个待办项</li>'
})
  • 数据绑定

两者都有Props数据流,不过Vue本身就已经实现双向数据流v-model,不像React需要手动事项双向数据绑定。
对于组件之间的通信所形成的数据传递,还没有很完整的想法,不过还是欢迎大家和我讨论。

二. 抉择:Vue or React

Double V
  • Vue + Vuex.

优势: 渐进式构建能力是Vue的专属能力,渐进式构建正是Vue最大的优势。Vue具有简洁,合理的架构,这使得Vue非常易于理解,使用起来更加得心应手,更容易构建应用。

弱点: 很明显的一个特点就是:Vue依赖一个单独的人。其他的项目基本都是有一个组织提供支持,而Vue尽管有强大的社区和许多创新型的新增项目,但是Vue的核心开发仍然落在一个人身上,所以在未来的生存之路上必定面临艰辛。

何时选择 Vue + Vuex
如果你有一个传统的Web应用程序,并需要一个坚固稳定的程序层,那么你的答案就是VueVue具有比较清晰的模式,逻辑清晰,代码组织清晰,及时没有经验的团队也可以较为轻松的上手。

Double R
  • React + Redux.

优势: ReactRedux常常需要组合起来使用,两者都非常专注做自己的事,结合其他的功能可以完美构建应用,对于大多数开发人员还是可以比较轻松掌握概念,并了解单向数据流的优美之处,相互之间的功能组合,互补,可以简化大量用户界面应用程序。

弱点: 要构建一个结构完整,功能丰富的Web应用程序,你需要许多的功能,而一旦你脱离“合作关系”- React Redux其他你使用的库,很快你的应用将会分散,难以维护,这种松散的架构一定会在未来找你麻烦。

何时选择 React + Redux
如果你仅仅是缺少贴近问题的处理逻辑,需要一个非常完美的能够解决你问题的库,而框架则是次要,那么React + Redux是适合你的。


END
参考文章:前端框架

收藏