如何权衡 Blade 和 VueJS ?

一直都卡在 VueJSBlade 的联合使用的情况下。

按说 VueJS 已经搞定了几乎所有的 页面渲染,Blade 理论上渲染一个页面就可以了。

但是看诸位大佬的源码一直都是 BladeVueJS 一起用。

说下我自己的想法吧:

在 Vue 和 Blade 一起用的时候,
页面的模板写在 .vue 文件内,laravel 主要通过 web.php 渲染一个首页,剩下的请求通过 api.php 返回JSON数据即可。

但是看了各位开源的代码,似乎都不是我这样想的,不知道有没有大佬愿意出来解惑?

希望得到的解答:

  1. 正确的用法?
  2. 现有的用法为什么这样写
bestony
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 22
leo

@jobsssss 前后端分离未必会降低PHP程序员的开发效率

@bestony 前后端分离一般用在交互比较多的地方,比如管理后台的各种表单。而纯展示页我一般就用后端渲染。

6年前 评论

这个问题目前也是我最迷惑的,我来顶贴:point_up:

6年前 评论
leo

前后端分离很火,但不代表一定比传统后端渲染要好,个人是比较偏向二者混合

6年前 评论
bestony

@leo 那混合的部分,哪些部分应该有vue来完成,哪些是blade完成呢?

6年前 评论
bestony

@jobsssss 确实,从我自己的角度来看,服务端渲染是更好的选择。不过目前是想学习 VueJS,所以想了解下如何在 Laravel使用。

6年前 评论
leo

@jobsssss 前后端分离未必会降低PHP程序员的开发效率

@bestony 前后端分离一般用在交互比较多的地方,比如管理后台的各种表单。而纯展示页我一般就用后端渲染。

6年前 评论
bestony

@leo 好的。谢谢。我举个例子,您看是不是这样。我们假设要做一个后台项目。左侧的菜单栏和顶部的顶栏使用默认的balde渲染,页面的列表、表单、采用 vuejs 渲染?

6年前 评论
leo

@bestony 机智

6年前 评论

我就是把所有非API的路由全部都指向渲染首页的路由上

6年前 评论

@leo 想请教一下,在blade中使用vue组件,后台返回整个html给浏览器后,这个vue组件才开始在浏览器渲染的对吧?

6年前 评论
leo

@huanghongkai 是的

6年前 评论

好的,谢谢你的回答,因为我一开始写的是前端,接触的就是前后端分离,有一种前后端就必须分离的先入为主的观念。后来看了laravel,发现里面有vue有jquery有blade,实在让我很纠结哈哈哈。现在感觉比较清晰了,不就是在服务器渲染好直接返回给浏览器 和 ajax拿到数据后让浏览器渲染的区别么~

6年前 评论

Vue 是一个工具,用于裸写 jQuery 复杂度太高的地方。

6年前 评论
Link

时间、精力足够的情况下,建议以实践前后端分离为主,列举几个我能想到的优点:

  1. laravel 是很好但是你也不一定会用一辈子,后端以后哪怕以后不用 laravel ,业务升级要用其他框架、语言,前端仍然可以不受影响。
  2. webpack 提供的完善的自动构建流程能够实现灵活的前端文件的拆分,增加 hash 彻底解决升级时的缓存问题。
  3. 后端只提供接口也会让测试变得简单,至少肯定比测试页面交互简单多了。
  4. 开发协作也更加便利,前后端工程师只需要部署自己熟悉的开发环境就可以开始开发,招人不用非要局限于熟悉 PHP 同时还熟悉 JS。
6年前 评论

如果不考虑 seo 的话,我是更倾向于前后分离,这样开发效率高而且代码结构也比较清晰

5年前 评论

@Bowens 哈哈哈,真是太巧了~

5年前 评论

@SophieYe

推荐前后端分离的方式,blade 只渲染 index.php 页面,剩下的交给 vue 就行了,前端不需要了解 blade ,后端专注写接口。

如果混合使用,前端需要了解 blade ,甚至自己要构建路由或者找后端帮忙添加页面,后端不仅要处理业务逻辑还需要关注页面及数据。

5年前 评论

web开发中前后端分离应该会比较好的提升开发效率,但是会让前端开发者增加一些工作量。

5年前 评论

有大佬给个 最佳实践 的例子吗?

4年前 评论
Peter335428

頂!

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!