VueJs 2与Vuex vs React with Redux

时间:2018-01-01 16:56:09

标签: reactjs vuejs2

过去几天我和Vuex一起看VueJs 2,我真的很喜欢。

我只是简单介绍了React,我发现vue js 2更容易上手。

React似乎越来越受欢迎,但我看不出React相对于Vue 2的好处。

两者都是基于组件的框架,具有路由和状态管理工具。

那么有人可以解释这些框架之间的主要区别是什么?

1 个答案:

答案 0 :(得分:13)

这是一个自以为是的主观问题。它经常开始神圣战争,而不是真正回答任何事情,因此它不适合StackOverflow。但是,我会尽量以客观的方式回答这个问题。 (注意:我纯粹将Vue与React进行比较并故意避免使用Vuex与Redux)

为什么选择Vue.js?

  1. 它旨在成为平易近人的框架。它适合初学者和高级用户。当您从Vue.js开始时,就像在页面中添加script标记一样简单。对于高级开发人员来说,可能性无穷无尽。您可以从任何复杂的构建工具开始 - TypeScript,Babel,Webpack等。
  2. Vue.js是在Angular和React之后开发的。它从两者中学到了东西,并设法从他们中选择了许多最好的东西到Vue。对于初学者来说,Angular对组件,服务,依赖注入,引导应用程序等的想法可能会让人感到压倒一切。同样适用于React; JSX可能会感到奇怪(即使经过多年,我仍然觉得它很奇怪。)现在,Vue.js是一个交叉路径。您可以使用类似角度的模板,也可以自由选择像JSX一样的React。
  3. Vue.js的反应性非常好。使用Angular(v1中的摘要循环和v2中的区域)或React,它有点不同。学习这些概念需要时间。
  4. Vue.js应该是您的选择还有很多其他原因。不久之后,我写了一篇文章解释为什么Vue.js: https://blog.webf.zone/vue-js-answering-the-why-after-15-months-62db797f75cc

    为什么要反应?

    1. React是一个开创性的库(它不是一个框架),就像Angular一样。它介绍了单向架构,虚拟dom,组件(有状态和无状态)等思想。
    2. React Native 是您可能想要考虑React的另一个原因。它允许您使用为Web编写的相同代码并构建本机移动应用程序。现在解决方案确实存在于Vue.js世界中。但绝对不如 React Native 那么成熟。
    3. 功能编程:React是一个基于函数式编程的库。但是正确地做React意味着你需要使用不变性,明确的状态管理以及所有这些来自功能世界的联合概念
    4. Redux:Redux是React世界的宠儿。它为前端世界提供了精彩的建筑模式,如时间旅行调试,明确的副作用,功能组件等。
    5. 创新:React有一些疯狂的想法,如Relay,Next.js(Vue.js有Nuxt.js)。我还听说过React的一些Drap-n-drop编辑器;第一类TypeScript和Flow支持(即使在2018年你也无法使TypeScript + Vue.js + JSX一起工作)。
    6. 为什么不反应?

      1. 仅使用React是不够的。很快,您将最终使用Redux,Redux中间件,Immutable.js等。一次性完成所有这些操作可能会令人生畏。
      2. 终极版。它很精彩但很冗长。
      3. 最重要的是:在没有任何复杂的构建系统的情况下使用React非常麻烦。要做任何严肃的事,你需要Babel,Webpack等。
      4. 再一次,哪一个更好?

        没有更好的解决方案。如果我需要容纳大量的开发人员(初学者 - 高级),我会选择Vue.js。如果我的团队熟悉React带来的所有额外重载,我会选择React,团队喜欢JavaScript开发Web方法(即使CSS是JS)。

        最后,还有另一个角度。 React中的编程需要遵循规则,因此很有可能您会发现更容易为代码库带来同质性。使用Vue.js,问题通常有多个解决方案。这同时也是好事和坏事。

        他们中的任何一个都不会出错。