You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel与Vue项目之间实现数据共享的正确方式是什么

两种实现方案的适用场景及选择建议

两种方案都是Laravel+Vue技术栈下的合法实现,不存在绝对的「正确方式」,需结合业务场景选择:

方案1:服务端直接注入Props

适用场景

页面初始渲染后people数据不需要动态更新、无分页/筛选/搜索等交互需求、组件仅在当前页面复用的场景。

优势

  • 减少一次额外的HTTP请求,首屏渲染速度更快,不会出现数据加载阶段的空白/闪烁
  • 无需额外编写接口请求、异常处理、加载状态逻辑,代码量更小

注意事项

  • 数据量过大时会增大初始HTML的体积,拖慢页面首次加载速度
  • 若后续前端对数据有修改操作,需手动同步服务端状态,否则会出现前后端数据不一致
  • Blade中传递数组类数据时需做JSON序列化,标准写法参考:
<example-component :people="{{ json_encode($people) }}"></example-component>

你提到的@prop是Laravel组件拓展的语法,功能等价于上述写法。

方案2:Axios异步请求获取

适用场景

数据需要动态刷新、有分页/筛选/搜索/增删改查等交互需求、组件需要在多个页面跨场景复用的场景。

优势

  • 前后端逻辑解耦更彻底,组件复用性更高,不需要每个渲染该组件的Blade页面都提前注入people参数
  • 数据始终和服务端保持同步,后续新增交互功能的改造成本极低
  • 支持搭配loading状态、骨架屏优化用户体验

注意事项

  • 你当前写的控制器已经兼容了Ajax请求,直接对当前页面地址发起GET类型的Ajax请求即可拿到JSON格式的people数据,不需要额外新增路由
  • 需额外处理请求异常、加载状态,首屏渲染会有等待时间
  • 需注意接口的权限校验,避免未授权用户直接访问接口拿到数据

选择建议

如果是纯静态的人员列表展示页,优先选择方案1;如果是带交互的管理类页面,优先选择方案2。

内容的提问来源于stack exchange,提问作者El Hombre Sin Nombre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:15:04