如何权衡 Blade 和 VueJS ?
一直都卡在 VueJS
和 Blade
的联合使用的情况下。
按说 VueJS
已经搞定了几乎所有的 页面渲染,Blade
理论上渲染一个页面就可以了。
但是看诸位大佬的源码一直都是 Blade
和 VueJS
一起用。
说下我自己的想法吧:
在 Vue 和 Blade 一起用的时候,
页面的模板写在.vue
文件内,laravel
主要通过web.php
渲染一个首页,剩下的请求通过api.php
返回JSON数据即可。
但是看了各位开源的代码,似乎都不是我这样想的,不知道有没有大佬愿意出来解惑?
希望得到的解答:
- 正确的用法?
- 现有的用法为什么这样写
高认可度评论:
@jobsssss 前后端分离未必会降低PHP程序员的开发效率
@bestony 前后端分离一般用在交互比较多的地方,比如管理后台的各种表单。而纯展示页我一般就用后端渲染。
这个问题目前也是我最迷惑的,我来顶贴:point_up:
顶顶
前后端分离很火,但不代表一定比传统后端渲染要好,个人是比较偏向二者混合
@leo 那混合的部分,哪些部分应该有vue来完成,哪些是blade完成呢?
@jobsssss 确实,从我自己的角度来看,服务端渲染是更好的选择。不过目前是想学习
VueJS
,所以想了解下如何在Laravel
使用。@jobsssss 前后端分离未必会降低PHP程序员的开发效率
@bestony 前后端分离一般用在交互比较多的地方,比如管理后台的各种表单。而纯展示页我一般就用后端渲染。
@leo 好的。谢谢。我举个例子,您看是不是这样。我们假设要做一个后台项目。左侧的菜单栏和顶部的顶栏使用默认的balde渲染,页面的列表、表单、采用 vuejs 渲染?
@bestony 机智
我就是把所有非API的路由全部都指向渲染首页的路由上
@leo 想请教一下,在blade中使用vue组件,后台返回整个html给浏览器后,这个vue组件才开始在浏览器渲染的对吧?
@huanghongkai 是的
好的,谢谢你的回答,因为我一开始写的是前端,接触的就是前后端分离,有一种前后端就必须分离的先入为主的观念。后来看了laravel,发现里面有vue有jquery有blade,实在让我很纠结哈哈哈。现在感觉比较清晰了,不就是在服务器渲染好直接返回给浏览器 和 ajax拿到数据后让浏览器渲染的区别么~
@leo
Vue 是一个工具,用于裸写 jQuery 复杂度太高的地方。
时间、精力足够的情况下,建议以实践前后端分离为主,列举几个我能想到的优点:
如果不考虑 seo 的话,我是更倾向于前后分离,这样开发效率高而且代码结构也比较清晰
@SophieYe 欧呵呵呵
@Bowens 哈哈哈,真是太巧了~
@SophieYe
推荐前后端分离的方式,blade 只渲染 index.php 页面,剩下的交给 vue 就行了,前端不需要了解 blade ,后端专注写接口。
如果混合使用,前端需要了解 blade ,甚至自己要构建路由或者找后端帮忙添加页面,后端不仅要处理业务逻辑还需要关注页面及数据。
web开发中前后端分离应该会比较好的提升开发效率,但是会让前端开发者增加一些工作量。
有大佬给个 最佳实践 的例子吗?
頂!