likes
comments
collection
share

为什么下一个 Laravel 项目要使用Inertia-Js

作者站长头像
站长
· 阅读数 23

在构建 Web 应用程序时,您必须考虑它是传统的服务端渲染应用 (SSR) 还是单页应用 (SPA)。如果说我们要完全用vue来前端开发,尤其是前后端分离的项目,那基本意味着,前端这块我们得使用vue-router了,后端这块就得写api了,这期间前后端的交互、状态及权限验证等可能是让人头疼的。

但是如果我们的后端是laravel,那么这种情况下,我们还有一个很好的选择,就是Inertia + Vue的组合——这样一方面我们能享受前端vue单页组件开发的快乐,另一方面又能继续使用laravel的路由,而不是复杂的vue-router。借助Inertia,我们可以直接将每个vue的单页组件,渲染为一个页面,可以直接往vue组件里传laravel后端的数据。

在后端,我们不需要改变任何熟悉的Laravel操作,不需要专门写个API。我们还是创建控制器,从数据库中获取数据(通过 ORM),然后返回视图。无非这个时候,我们返回一个Inertia视图,然后前端,你就可以创建出功能完善、响应迅速的单页应用,但却不用像一般SPA那样复杂,不用复杂的客户端路由,比如vue-router。

这是一种全新的、完美的、现代化的集成式Web应用开发方式。Inertia 不是一个框架,它是后端框架和前端框架的“桥梁”。前端框架它目前支持React、Vue 和 Svelte,后端框架它支持Laravel 和 Rails。

有了Inertia这个“桥梁”,既可以享受后端laravel的优雅便捷,又可以享受vue组件的灵活高效,让我们的全栈开发进一步愉快、高效,也能让终端用户享受到SPA应用的更好体验。

当然了,Inertia并不只是个桥梁,或者只是个vue-router,它还基于我们前后端开发流程,提供了大量的便利。这期间,Inertia把前后端框架沟通融合的各种复杂问题都解决了:

后端不用构建API

使用 Inertia.js,您不需要制作 REST 或 GraphQL API,因为 Inertia 旨在与您的经典服务器端框架(如 Laravel、Ruby on Rails 或 Django)开箱即用。

解决 SPA 的复杂性

在构建现代 SPA(单页应用程序)时,您必须面对许多麻烦。开发人员在有效管理应用程序状态、确定应用路由、设置导航守卫和身份验证方面一直存在问题。

解决浏览器相关问题

Inertia 具有内置服务,可解决构建 SPA 时遇到的浏览器问题,例如浏览器历史管理和滚动位置。它提供remember、preserveState和preserveScroll属性来缓存本地组件状态。

它还自带加载指示,在加载页面时显示一个基于NProgress.js的进度条。

Inertia可以说是全栈开发者的新“救星”,让全栈开发再次焕发光芒,让后端开发者更轻松地开发出现代SPA,而完全不用管那些前端棘手的部分。

在SEO方面,Inertia也支持SPA的服务端渲染(SSR),SSR 使用户能够更快地与页面交互,并帮助搜索引擎更快地抓取页面。

laravel官方的新手起步项目Laravel Breeze里,也提供了一个由 Vue 或 React支持的 Inertia.js 前端实现。

好了,说了这么多,你真的应该赶紧学一下Inertia开发流程了,并且赶紧用在接下来的项目中,它真的能给你带来很多快乐。偷偷告诉你,我已经把pilishen.com全面升级到Inertia流程了,并且体验了小半年,从inertia 0.6版本就开始在用,非常棒非常值得推荐。

想全面系统学习Inertia的小伙伴,欢迎参加我们的《Laravel Inertia Vue SPA全栈开发实战》这一课程,课程里我们会用Inetia从头写一个论坛,写完了我就作为自己网站pilishen.com的问答模块发出来供大家使用。