|
|
1 dag sedan | |
|---|---|---|
| database | 7 månader sedan | |
| frontend | 1 dag sedan | |
| resource | 5 månader sedan | |
| route | 7 månader sedan | |
| src | 7 månader sedan | |
| .gitignore | 7 månader sedan | |
| README.md | 1 dag sedan | |
| composer.json | 7 månader sedan | |
| config.php | 7 månader sedan | |
| info.php | 7 månader sedan |
这是一个完整的示例模块,展示如何在 CyShop 电商系统中实现前端模块化开发。
hello/
├── frontend/
│ └── admin/
│ ├── index.js # 模块配置入口(必需)
│ └── views/ # Vue 组件目录
│ ├── Index.vue # 首页
│ ├── About.vue # 关于页
│ └── Demo.vue # 演示页(带 keep-alive)
├── src/ # 后端代码(PHP)
├── route/ # 后端路由定义
└── composer.json # Composer 配置
| 路由名称 | 路径 | 组件 | 说明 |
|---|---|---|---|
| HelloIndex | /hello/index | Index.vue | 首页展示 |
| HelloAbout | /hello/about | About.vue | 关于页面 |
| HelloDemo | /hello/demo | Demo.vue | 功能演示(带缓存) |
cd frontend/admin
npm run dev
登录后,在左侧菜单中找到 "Hello 示例",点击进入即可查看效果。
打开浏览器开发者工具,会看到类似输出:
🔌 已加载扩展模块:1 个路由,1 个菜单
export default {
routes: {
path: '/hello',
name: 'HelloModule',
component: () => import('@/layout/index.vue'),
meta: {
title: 'Hello 示例',
icon: 'Sunny',
permission: 'hello',
priority: 50
},
children: [
{
path: 'index',
name: 'HelloIndex',
component: () => import('./views/Index.vue'),
meta: {
title: '你好世界',
icon: 'Home'
}
}
]
},
menus: [...]
}
<template>
<div class="my-component">
<el-card>
<h1>我的组件</h1>
</el-card>
</div>
</template>
<script setup>
import { ref } from 'vue'
</script>
import Layout from '@/layout/index.vue'
import SearchForm from '@/components/SearchForm.vue'
import { ElMessage, ElTable } from 'element-plus'
import { Setting, Document } from '@element-plus/icons-vue'
// 在模板中
$router.push('/other-path')
// 或在 script 中
import { useRouter } from 'vue-router'
const router = useRouter()
router.push('/other-path')
permission 字段控制访问frontend/admin/ 目录下export default 导出配置对象six-shop 或 sixdec 目录下这是一个示例模块,用于演示模块化开发的最佳实践