Laravel作为后端API,配合Vue.js或React前端实现分离架构。1. Laravel在api.php定义路由,返回JSON,启用CORS并使用Sanctum认证;2. 前端独立搭建,通过Vite或CRA创建项目,配置代理避免跨域;3. 前端登录后保存Token并携带Authorization头请求API;4. 开发时前后端独立运行,生产可选分离或统一部署,Laravel仅提供数据,前端专注交互,提升可维护性与扩展性。
Laravel 本身是一个功能完整的全栈 PHP 框架,但现代开发中越来越多项目采用前后端分离架构。将 Laravel 作为后端 API 服务,配合 Vue.js 或 React 构建独立的前端应用,是当前主流的开发模式之一。下面介绍如何高效地将 Laravel 与 Vue.js 或 React 集成,实现前后端分离开发。
要实现前后端分离,第一步是让 Laravel 只负责提供 RESTful 或 JSON API 接口,不再承担页面渲染任务。
关键配置:
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
前端不再放在 Laravel 的 resources 目录下,而是作为一个独立项目开发,提升可维护性和团队协作效率。
Vue.js 方案:
npm create vue@latest
export default defineConfig({
server: {
proxy: {
'/api': {
target: 'http://laravel.test',
changeOrigin: true,
}
}
}
})
React 方案:
create-react-app frontend
前后端分离后,传统 Session 认证不再适用,推荐使用 Laravel Sanctum 实现 Token 认证。
集成步骤:
co
mposer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
axios.post('/api/login', { email, password })
.then(response => {
const token = response.data.token;
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
});
开发阶段保持前后端独立运行,生产环境可选择合并部署或分开部署。
开发建议:
生产部署选项:
基本上就这些。Laravel 与 Vue.js 或 React 的分离架构清晰、扩展性强,适合中大型项目。关键是明确职责划分:Laravel 只输出数据,前端专注交互体验。合理配置 CORS、认证和代理,开发流程会非常顺畅。