Laravel SPA:Vue是必需的吗?

8zzbczxx  于 2023-05-23  发布在  其他
关注(0)|答案(1)|浏览(218)

有没有可能用laravel创建一个没有vue.js的spa应用程序?我是laravel的新手,我想创建管理面板,它应该是SPA,但想知道是否有必要学习vue.js或者我可以创建它只使用刀片。

ss2ws0br

ss2ws0br1#

简答

是否可以使用laravel创建一个spa应用程序而不使用vue.js
当然,Vuejs是一个支持SPA的框架,laravel社区更喜欢vuejs而不是其他框架。但这并不意味着您需要使用相同的
或者我可以只用刀片
仅使用刀片可能不可行。您需要一些javascript来处理客户端的页面转换和HTML更新。通常情况下,坚持使用vue这样的框架会更有效率。

长答案

为了进一步扩展它,使用刀片的典型Laravel应用程序是服务器呈现的应用程序。当用户打开一个链接时,一个请求将被发送到您的服务器,服务器将其发送到您的Laravel应用程序,您的Laravel应用程序将确定它是哪条路由,并为它渲染一个刀片模板(页面渲染发生在服务器端)。对于大多数应用程序,这将是每个路由的不同刀片模板。当用户点击页面上的某个链接时,浏览器上会加载一个新的页面URL,并且重复这个过程。也就是说,您的Laravel应用程序将为此页面呈现不同的刀片模板。
对于单页应用程序,这将略有不同。通常,无论您打开哪个URL,它都将始终呈现相同的HTML页面。然后,您的JavaScript代码将确定URL并确定它应该呈现什么HTML(页面呈现发生在客户端)。当用户点击页面上的一些链接时,JavaScript将确定它是哪个页面,然后呈现页面,而无需向服务器请求新的HTML。
单页应用程序的更正式的定义是(摘自MDN
SPA(单页应用程序)是一种Web应用程序实现,它只加载单个Web文档,然后在显示不同内容时通过JavaScript API(如XMLHttpRequest和Fetch)更新该单个文档的正文内容。
因此,从本质上讲,要实现单页面应用程序,理想情况下不应该重新加载页面,HTML由JavaScript更新。前端框架,如React,Angular,Vue都默认支持路由。
因此,如果你想避免使用一些框架,你将需要实现某种路由,理想情况下使用javascript的History API,这样每当用户点击页面上的链接时,而不是从服务器请求一个新的HTML,你将使用javascript呈现HTML客户端。
现在有许多库可以帮助您实现这一点(或类似的东西),而无需使用框架。

作为一个过去尝试过同样做法的人,在没有任何框架的情况下构建SPA,我个人的建议是坚持使用vue,react,angular,svelte等框架。除非是为了学习目的,否则它不值得付出努力,而且通常会以一团乱麻的形式结束,除非你愿意为此投入几个小时的工作

既然警告已经不存在了,如果你不想学习vuejs,这里有一些不错的库,你可以尝试一下(我以前试过这些库)。我没有使用Livewires即将推出的SPA,但使用了Livewire本身及其伟大)

  • Barbajs将允许您仍然使用刀片渲染所有HTML。当用户单击一个链接时,barba将发送一个HTTP请求来获取页面的HTML,并在客户端呈现它,而不需要完全的页面转换
  • Prouter是客户端路由器。您可以定义路由和路由的回调。您需要自己处理HTML更新。
  • Laravel Nova是Laravel团队的一个产品。它使用vuejs,但对于大多数应用程序,你通常不需要接触任何javascript,Nova会为你做这一切。您只需要编写PHP代码(按照nova的文档)
  • Livewire v3,一个流行的全栈laravel框架。它的v3计划支持SPA,所以这可能也值得一试

像这样的库还有很多,但现在保持简短。做一些研究,并确定你是否真的需要这个。干杯

相关问题