阅读时间:1 分钟
0 字
前端集成
DuxLite 支持两种主要的前端开发模式:传统的服务端渲染集成和现代的前后端分离架构。
开发模式选择
传统集成模式
适合中小型项目,前端资源与后端模板紧密集成:
- 服务端渲染:使用 Latte 模板引擎渲染页面
- 渐进增强:在模板基础上添加JavaScript交互
- 简单部署:前后端代码在同一项目中
- 快速开发:无需复杂的构建配置
前后端分离模式
适合大型项目,前端作为独立应用:
- API驱动:后端只提供RESTful API接口
- 单页应用:使用Vue、React等现代框架
- 独立部署:前后端可以分别部署
- 团队协作:前后端可以并行开发
传统集成模式
目录结构
public/
├── assets/
│ ├── css/ # 样式文件
│ ├── js/ # 脚本文件
│ └── images/ # 图片资源
└── uploads/ # 用户上传文件模板布局
html
<!-- layouts/base.latte -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{block title}{$title|default:'DuxLite'}{/block}</title>
<link rel="stylesheet" href="/assets/css/app.css">
{block styles}{/block}
</head>
<body>
{block content}{/block}
{block scripts}{/block}
</body>
</html>页面示例
html
<!-- user/list.latte -->
{layout 'layouts/base.latte'}
{block content}
<div class="container">
<h1>用户管理</h1>
<table class="table">
<thead>
<tr>
<th>姓名</th>
<th>邮箱</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{foreach $users as $user}
<tr>
<td>{$user->name}</td>
<td>{$user->email}</td>
<td>{$user->status ? '正常' : '禁用'}</td>
<td>
<a href="/admin/users/{$user->id}/edit">编辑</a>
<a href="/admin/users/{$user->id}" onclick="return confirm('确定删除?')">删除</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
{/block}前后端分离模式
API接口架构
php
#[Resource(
app: 'api',
route: '/api/users',
name: 'users'
)]
class ApiUserController extends Resources
{
protected string $model = User::class;
// 自动生成RESTful API:
// GET /api/users -> 用户列表
// POST /api/users -> 创建用户
// PUT /api/users/{id} -> 更新用户
// DELETE /api/users/{id} -> 删除用户
}前端应用架构
前端作为独立的单页应用(SPA),通过API与后端交互:
- 技术选择:Vue、React、Angular等现代框架
- 状态管理:Vuex、Redux等状态管理库
- 路由管理:Vue Router、React Router等
- HTTP客户端:Axios、Fetch API等
- 构建工具:Vite、Webpack等
架构选择建议
传统集成模式适用场景
- 中小型项目:功能相对简单,开发团队较小
- 快速原型:需要快速验证想法和功能
- 内容管理:以内容展示为主的网站
- 简单交互:用户交互相对简单
前后端分离模式适用场景
- 大型项目:功能复杂,需要多团队协作
- 高并发应用:需要独立扩展前后端
- 多端应用:同时支持Web、移动端、小程序等
- 复杂交互:需要丰富的用户界面和交互
部署方式对比
传统集成部署
- 简单部署:前后端代码在同一项目中,一次部署即可
- 统一域名:前后端使用同一域名,无跨域问题
- 适合场景:中小型项目、快速原型开发
前后端分离部署
- 独立部署:前端可以部署到CDN,后端部署到应用服务器
- 扩展性好:前后端可以独立扩展和升级
- 适合场景:大型项目、需要高并发的应用
通过选择合适的前端集成模式,可以满足不同规模和复杂度的项目需求。