对于那些无法回答为什么喜欢React的人而言,为什么会这样呢?

对于那些无法回答为什么喜欢Vue.js或Angular的人来说,或者对于那些无法解释自己为什么喜欢Vue.js或Angular的人来说。

这是给那些初学者的文章。

我喜欢React。

我喜欢React并且使用它。但也有人喜欢Vue.js并且使用它,还有人喜欢Angular并且使用它。以下是我在被问到”为什么喜欢React”时,在脑海中浮现的矩阵。

ライブラリフレームワークHTMLベースVue.jsAngularJavaScriptベースReact

我喜欢React的原因是可以使用JavaScript基础编写UI,并且可以自定义应用程序中的库结构。

HTML-based 或者 JavaScript-based – 如何编写 UI?

可能的一個翻譯選項為:
說「以HTML為基礎」並不十分準確,可能更好的說法是「以模板為基礎」。
不過,我覺得說「以HTML為基礎」更容易理解。

应用程序的代码在构建时会被打包成JavaScript模块文件。一旦打包完成,它们之间基本上没有什么区别。
然而,在未打包之前,Vue.js/Angular和React之间存在一些差异,即编译器如何解释源代码的问题。

在Vue.js/Angular中,我们将应用程序的UI代码(HTML)作为模板(Template),并将处理部分(Script)与之分开来进行编写。
由于这个模板(HTML)和处理(Script)是两个不同的世界,因此需要使用转译器来将UI和处理进行关联。

    • HTMLの世界では属性の命名で大文字と小文字が区別されないのでケバブケース(hoge-key)をつかう

 

    JavaScriptの世界では大文字と小文字が区別され、基本的にキャメルケース(hogeKey)をつかう

这个会被转译器捣鼓一下。

在React中,UI的代码和处理代码都是在同一种JavaScript语言中编写的。JSX就是用来实现这一点的。
在JSX中写入的类似HTML的代码,虽然外观上与HTML相似,但实际上是JavaScript语言,因此可以直接关联声明的处理代码和UI。

随着TypeScript的流行,React用户也增加了,这是因为UI代码可以以TypeScript进行覆盖,所以更容易受益于TypeScript的好处。

然而,我认为Vue.js和Angular也很好。

我个人的看法是,将模板(Template)和脚本(Script)分开实现的方法与传统的服务器端渲染(SSR)方式实现应用程序的方法和概念非常接近,就像Ruby on Rails所代表的那样。我认为在Java的JSP中也是如此。我在做的时候是基于XML的,但在实现模式方面可以说是一样的(对于PHP和Perl,我没有太多的经验,无法发表言论)。因此,那些有着深入了解传统的服务器端渲染应用开发的人可能会觉得使用Vue.js或Angular会更容易些。

所以,我认为只有React能够取胜。结果取决于个人。

图书馆或框架 – 关于应用程序的结构

React/Vue.js 是 UI 库,而 Angular 是框架。

React/Vue.js 的核心只包含实现 UI 所需的最基本内容,因此根据需求还需要安装其他相关的库。

Angular 是一个框架,自带了很多不同的库。

这是个人喜好的问题。
如果你想要一个最小化的文件结构,追求极简主义,那可能React/Vue.js更适合你。
如果考虑到库的组织会很麻烦,希望能够立即使用,那可能Angular更适合你。

尽管我一直都在使用React,但当进行库的版本升级等操作时,有时候出现了一些很麻烦的问题,因为需要处理它们之间的兼容关系。而Angular作为一个框架,可以吸收这些问题,所以我觉得可能更加轻松一些。

嗯,但如果node_modules目录下有未使用的模块,可能会感觉有点不舒服。可能会导致在容器上安装时花费的时间稍有不同。
嗯,但可能个人的喜好也可以。坦白说,对于这一点,我觉得无论哪种方式都可以。

顺便提一下,React有一个框架叫Next.js,而Vue.js有一个框架叫Nuxt.js。
因为这两个框架除了原生库外还有各自的API,所以在要适应这个领域的话需要一定的学习和熟悉过程。

总结

简单来说……

以下是一个易于表达的喜欢的原因模式。

    • JavaScriptベースでUIが書けるからReactが好き

 

    • TypeScriptをより生かせるからReactが好き

 

    最小構成で作れるからReactが好き

作为喜欢的原因可能有点微妙的情况

    • 宣言的UIだからReactが好き … Vue.js/Angularも宣言的UI

 

    仮想DOMだからReactが好き … Vue.js/Angularも仮想DOM

想要中文原生态地改写,请选择一个选项:

秘密花边信息

或许多次的React、Vue.js和Angular之间的讨论并没有让你感到特别愉快。

大约三年前,我认为React是最酷最好的库!我也坚信其他的库都不行!有时我还会在喜欢其他库的人面前得意洋洋。这篇文章也是我向自己忏悔的一种方式。

希望所有工程师都可以自信地畅所欲言,为创造那样的未来贡献一份力量。谢谢!

bannerAds