JS 框架与 Laravel:该选择哪一个进行 Web 开发?

JS 框架与 Laravel:该选择哪一个进行 Web 开发?-1

长期以来,JavaScript 生态系统中的开发者一直试图推出类似 Laravel 的应用框架或类似的产品。

我们已经看到,有适用于 NextJS 的 Blitz、适用于 NodeJS 的 Adonis、RedwoodJS 等等——所有这些框架都试图为 JavaScript 构建一个 Laravel。

但它们都没有真正成功。为什么?我们将在本文中找出原因。本文值得各位一读,因为学习 JavaScript 的初学者很难找到一劳永逸的解决方案。

这意味着当你有如此多的选择时,在 JavaScript 中选择一个框架(或库)可能会很困难。例如 React、Vue、Angular、Svelte、NextJS、Meteor 等等。

与此同时,PHP 提供了一个简单的解决方案:Laravel。它是一站式解决方案,将许多框架和库整合在一起。

但它是真正适合自己的选择吗?

在本文中,我将深入探讨为什么 JavaScript 生态系统没有类似 Laravel 的框架,以及是否应该切换到 PHP 以获得像 Laravel 这样的一站式解决方案。

我将讨论使用 JavaScript 框架与 Laravel 等一站式解决方案相比的优缺点,并以比较表作为结尾以帮助您做出决定。

我们将在本文中介绍的内容:

  • 为什么选择 JavaScript 而不是 Laravel

  • 为什么 JavaScript 缺乏一体化解决方案

  • JavaScript 框架和库的好处

  • Laravel 的优点

  • Laravel 与 JS 工具之间的区别

  • 为什么选择 JavaScript 而不是 Laravel

    当初学者决定学习 Web 开发时,他们通常会在 JavaScript/TypeScript 和 PHP 之间进行选择。其他解决方案需要更多专业知识,因此大多数初学者倾向于以上这两种语言。

    许多初学者最终发现 JavaScript 庞大的生态系统令人难以承受,而 PHP 学习者常常感到受到较少的框架和缺乏高级特性的限制。

    为了解决这类困惑,我比较了 JavaScript 和 PHP 当前可用的工具,而不是直接比较语言。由于 PHP 拥有大多数开发人员使用的一体化解决方案,因此我将使用 Laravel 框架进行比较。

    JavaScript 缺乏单一的一体化解决方案或特定的代表性框架。因此,我将 React、Vue、Angular 等工具统称为“JavaScript 框架”。

    首先了解为什么 JavaScript 生态系统缺少类似 Laravel 的框架。

    为什么 JavaScript 缺乏一体化解决方案

    首先,需要承认开发人员过去曾尝试过为 JavaScript 制作 Laravel。

    从 RedwoodJS 开始。这是一个开源的全栈 JavaScript 框架,由 GitHub 联合创始人兼前首席执行官 Tom Preston-Werner 创立。它可以帮助开发人员更快地构建应用程序并发布。

    Redwood 将许多创新解决方案整合到一个框架中。听起来很熟悉?这和 Laravel 一模一样。但是,有看到有人使用 Redwood 发布产品吗?目前没有发现。

    下一个选项是 Blitz。它与 Redwood 做出了同样的承诺:替代 NextJS。Blitz 是一种一体化解决方案,具有用于身份验证、数据库等的自定义内置解决方案。

    但是 Blitz 不像 Laravel 那样允许开发人员自由选择他们想要使用的解决方案。它有由核心团队精心设计的定制解决方案。开发人员不能用其他推荐的解决方案替换任何解决方案。

    定制化是 JavaScript 生态系统中值得注意的一点,随着我们发现更多框架,稍后将解释原因,但是 Blitz 也没有成功。

    然后,还有 AdonisJS。

    但是,我想你明白我的意思了。JavaScript 中的每个一体化解决方案都试图实现各自的 Laravel 框架,但是各自都没有真正成功。

    Blitz、Adonis 和 Redwood 遵循这样一个主题:为 JavaScript 开发人员构建应用程序提供现成的、非可定制解决方案的全栈框架。

    这些框架之所以没有流行起来,因为它们没有满足它们所针对的开发者的真正需求。

    JavaScript 生态系统是独一无二的,它为同一个问题提供了多个解决方案。这种多样性是有原因的,也是这些框架未能成功的原因。

    让我们讨论一下当前流行的 JavaScript 工具的原因与优点,因为它们直接影响 JavaScript 框架和 Laravel 之间的选择。当我概述每个优点时,请考虑它是否符合您自己的需求。

    JavaScript 框架与库的优点

    JavaScript 框架和库是开发人员为节省时间和精力而创建的预先编写的资源、技术和功能的集合。

    这些框架在 21 世纪开始出现,其中 React、Svelte、Angular、NextJS 和 Vue 等著名框架随着时间的推移开始脱颖而出。

    JS 框架与 Laravel:该选择哪一个进行 Web 开发?-每日运维

    然而,选择越多并不一定意味着效率越高。下面,我们将探讨使用 JavaScript 框架的优点和好处,以及为什么一体化解决方案在 JavaScript 生态系统中没有取得成功。

    多功能性

    在 JavaScript 生态系统中,切换或选择一种解决方案比另一种解决方案更加容易。例如,为了实现身份验证,我们有 Clerk、Auth0、AuthJS、NextAuth、Supabase 等。

    JavaScript 生态系统始终为特定解决方案提供多种选择,而初创公司则致力于提供定制解决方案。比如您不喜欢 Clerk,可以使用 NextAuth 进行更多自定义。

    JavaScript 框架的通用性非常强。当一个问题有十种解决方案时,开发人员可以轻松切换,并找到适合自己的解决方案。

    Blitz 和其他框架无法成功就是因为这个原因。如果开发者不喜欢 Blitz 的身份验证方法,他们就会改用其它解决方案。

    新平台

    与 JavaScript 不同,其他编程语言没有围绕为语言构建工具(如库或包)的生态系统。在这些语言中,做到这些实现并不容易。

    JavaScript 生态系统基本上拥有完整的注册表,其中包含适用于最小解决方案(例如电子邮件)的软件包和库。JavaScript 针对每种解决方案都提供了许多软件包、框架和库。