# Inertia.js?

Inertia是为通常使用Laravel、Ruby在Rails或Django等框架构建服务器端渲染应用程序的开发团队设计的。它们创建控制器、从数据库(通过 ORM)获取数据以及呈现视图。

但是,当这些开发人员想要将其服务器端呈现的视图替换为基于现代 JavaScript 的单页应用前端时,会发生什么?答案始终是"您需要构建 API"。因为现代 SCA 就是这样构建的。

这意味着构建 REST 或 GraphQL API。这意味着找出该 API 的身份验证。这意味着客户端状态管理。这意味着设置一个新的 Git 存储库。这意味着为 API 设置另一个托管帐户。这个名单还在继续。这是一个完全的范式转变。

Inertia允许您构建一个完全基于 JavaScript 的单页应用,而无需增加所有这些复杂性。

Inertia的工作方式更像一个经典的服务器端渲染的应用程序。创建控制器、从数据库(通过 ORM)获取数据以及呈现视图。除了此处的视图之外,还有 JavaScript 页面组件。这意味着您可以获得客户端应用和 SPA 体验的所有功能,但您不需要构建 API。(请务必查看其工作原理 (opens new window)页面,以得到更完整的解释。

这种简单性确实在前端和前端之间创造了紧密耦合,但在构建经典服务器端呈现的应用程序时,这已经是一种公认的做法(可以说是一种好处)。