使用 Laravel 和 Vue.js 分离前端和后端
Posted
技术标签:
【中文标题】使用 Laravel 和 Vue.js 分离前端和后端【英文标题】:Separation of frontend and backend with Laravel and Vue.js 【发布时间】:2017-06-16 18:54:54 【问题描述】:我们正计划为工作申请开发一个网络应用程序。在头两年,我们预计每天的访问量约为 3,000 - 6,000 人次。在稍后阶段,流量将增长到每天 10'000 - 20'000 名访客。
与在刀片模板中包含 Vue 的一体式 Laravel 应用程序相比,分离前端和后端(调用 Laravel 的 REST-API 的前端独立 vue.js)是否有优势?
谢谢
【问题讨论】:
我对 Vue 并不太熟悉,但我看到了将它们完全分离的两大优势。 a) 如果你让你的前端完全分离,你总是可以改变后端的实现(从 Laravel 切换) b) 如果你将混合刀片和 vue 组件,你将很难(呃)使用 Webpack/Browserify .您可能想看看 Lumen - Laravel 的轻量级版本,通常用于纯 API 应用程序。 实际上,我发现使用Vue
,您自然会倾向于这样做,因为从刀片模板初始化Vue
模型数据很尴尬,而且您最终可能会一团糟,此外也就是说,提供JSON
数据的 api 后端可以跨不同平台使用,例如移动应用程序,而无需完全重写。
我认为答案真的取决于你对完全用 javascript 做前端的舒适程度。我倾向于喜欢混合刀片方法,其中包含特定功能的 Vue 组件。它让我熟悉刀片和我们部门的标准工作流程,但也简化了某些功能,这些功能在我需要时需要用 jQuery 才能实现。我的座右铭是更聪明地工作,而不是更努力地工作,因此哪种方法更容易让您理解和维护,那就是最好的!
【参考方案1】:
laravel 是一个非常高性能的框架,如果您使用具有良好后端架构的缓存技术,它将毫无问题地支持负载。
话虽如此,客户端/API 实际上会更高效,因为唯一会占用带宽的是 json 对象而不是完整页面,而对于客户端,您依赖于客户端硬件。
客户端/API 方法的另一大优势是当您想要开发 Ur 移动/桌面应用程序时。 API 将准备就绪,您将只关注您必须开发的新客户端。如果您在服务器上提供页面并且在返回这些计算页面的控制器/操作中完成了很多工作,您将不得不从这些控制器中提取 API 并将这些调用改为 API。
【讨论】:
感谢您的帮助。听起来我们绝对应该遵循前后端分离的方法。【参考方案2】:如果您计划以以下形式交付产品:
一个 REST API, 和一个前端应用程序那么你绝对应该想出两个不同的存储库/项目。
从后端 REST API 和前端应用程序的“一体化”应用程序开始看起来更简单,因为 Laravel 自带 Vue.js 开箱即用。但即使它对前端有帮助,它也专注于后端、php 和 Laravel。我打赌你们的开发人员很快就会混合后端和前端 :)
考虑使用 vue-cli 作为独立项目引导您的前端应用程序,以从其 webpack 配置和一流(前端)开发人员体验中获得巨大收益。从第一天开始,您的前端应用程序就会变得更好,专注于其先决条件:提供高质量的用户体验。
【讨论】:
与其以vue-cli
开头,不如考虑从 Laravel 开始。它现在包括 (v5.4) 一个现成的 Vue 配置和示例组件/模板,这些组件/模板对 Laravel 友好,并设置为单独的前端/后端。
感谢您的解释。听起来分离前端和后端将是更好的解决方案。通过将前端 (Vue) 与后端 (Laravel) 分开,我认为使用 vue-cli 是可行的方法,因为不会使用 Laravel 内部的集成 Vue 环境。
为工作使用正确的工具总是更好,从短期到长期!
@Vanessa-Joyce Laravel 的默认设置使用分离的前端/后端(只是在同一组文件夹中)。您可能会发现它非常有用 - 如果您不使用它,请记住它以在遇到困难时参考。
@ceejayoz 在 Laravel 和 Vue.js 之间共享文件夹有什么好处?以上是关于使用 Laravel 和 Vue.js 分离前端和后端的主要内容,如果未能解决你的问题,请参考以下文章
将 Vue js 前端和 laravel 后端(api 路由)托管到共享服务器?
需要在 vue.js 前端和 Laravel 后端打印名称而不是 id
Laravel 和 Vue.js 看不到 css 和 js 文件