当前位置: 首页 > news >正文

前端工程化 - 非feature-based- 示例 - MT

非feature-based- 示例

错误的目录结构

这是大量前端后台项目的默认写法

src/
├── api/
│   ├── user.ts
│   ├── order.ts
│   └── product.ts
│
├── views/
│   ├── UserList.vue
│   ├── UserDetail.vue
│   ├── OrderList.vue
│   └── ProductList.vue
│
├── components/
│   ├── UserTable.vue
│   ├── UserForm.vue
│   ├── OrderTable.vue
│   └── ProductCard.vue
│
├── store/
│   ├── user.ts
│   ├── order.ts
│   └── product.ts
│
├── hooks/
│   ├── useUser.ts
│   ├── useOrder.ts
│   └── useProduct.ts
│
└── router/└── index.ts

看起来:

  • 分层清楚
  • components / hooks / api
  • 很规范

但这是一个典型的 “坏边界” 的结构

Page代码

<template><div class="order-page"><OrderFilter:filters="filters"@change="onFilterChange"/><OrderActions:selected-orders="selectedOrders":permission="permission"@export="handleExport"@change-status="handleChangeStatus"/><OrderList:data="orderList":loading="loading"@select="onSelect"@row-click="openDetail"/><OrderDetailDialogv-if="showDetail":order-id="currentOrderId"@close="showDetail = false"/></div>
</template><script setup lang="ts">
import OrderFilter from './components/OrderFilter.vue'
import OrderActions from './components/OrderActions.vue'
import OrderList from './components/OrderList.vue'
import OrderDetailDialog from './components/OrderDetailDialog.vue'import { useOrder } from '@/hooks/useOrder'
import { usePermission } from '@/hooks/usePermission'const permission = usePermission()const {orderList,filters,loading,selectedOrders,fetchOrders,onFilterChange,onSelect,handleExport,handleChangeStatus,showDetail,currentOrderId,openDetail
} = useOrder()
</script>

OrderList.vue - 核心问题

<template><BaseTable:data="data"@row-click="handleRowClick"><template #actions="{ row }"><buttonv-if="permission.canEdit && row.status !== 'completed'"@click.stop="changeStatus(row)">修改状态</button></template></BaseTable>
</template><script setup lang="ts">
import { computed } from 'vue'
import BaseTable from '@/components/Table/BaseTable.vue'
import { usePermission } from '@/hooks/usePermission'
import { changeOrderStatus } from '@/api/order'defineProps<{data: any[]
}>()const emit = defineEmits(['row-click'])const permission = usePermission()function handleRowClick(row: any) {emit('row-click', row.id)
}function changeStatus(row: any) {if (permission.canEdit) {changeOrderStatus(row.id)}
}
</script>

useOrder.ts - 上帝hook

export function useOrder() {const orderList = ref([])const filters = ref({})const loading = ref(false)const selectedOrders = ref([])const showDetail = ref(false)const currentOrderId = ref<string | null>(null)async function fetchOrders() {loading.value = trueorderList.value = await fetchOrderList(filters.value)loading.value = false}function handleExport() {// 导出逻辑}function handleChangeStatus() {// 状态变更}function openDetail(id: string) {currentOrderId.value = idshowDetail.value = true}return {orderList,filters,loading,selectedOrders,fetchOrders,handleExport,handleChangeStatus,openDetail,showDetail,currentOrderId}
}
http://www.jsqmd.com/news/369994/

相关文章:

  • 【期货量化实战】如何构建稳健的量化交易策略(完整指南)
  • 2026年工业夹爪品牌推荐 ——工业机器人夹爪选型避坑指南 - 品牌2025
  • 如何提升车间设备联网率,实现数字化管理
  • 前端工程化 - 良好的feature-based-目录结构与具体示例 - MT
  • 只需五分钟,手把手教你本地部署大模型!
  • 【期货量化进阶】期货量化交易中的市场状态识别(实战方法)
  • 什么情况下,域名更适合走经纪交易?
  • 这次终于选对!顶流之选的AI论文平台 —— 千笔·专业学术智能体
  • 前端工程化 - 看起来“很合理”的feature目录结构 - MT
  • 亲测有效!想进大厂还是国企?这几个渠道才是“上岸”捷径 - 博客万
  • 【期货量化进阶】量化交易中的信号质量评估(实战方法)
  • 2025年买前必看!市场公认的优质烫金机品牌,市面上烫金机厂商技术实力与市场口碑领航者 - 品牌推荐师
  • 多串口智能仪器仪表上位机开发。 包含实时数据监控刷新,操作点击控制,曲线数据显示,数据存储,历...
  • 拉美市场机遇爆发!美客多选品工具与技巧大公开,助你锁定美客多爆款商机 - 跨境小媛
  • 【期货量化进阶】期货量化交易中的多时间框架分析(实战技巧)
  • 好写作AI:与其偷偷用AI,不如让AI成为你的“学术品格加分项”
  • 2026年阿里巴巴/1688开户代运营服务商/公司排行榜:深圳昊客网络凭什么成为中小企业首选? - 专业GEO营销推广
  • 构建科技成果高效转化新路径——成果转化智能顾问赋能全链条服务生态
  • 【期货量化实战】量化交易策略的实盘部署指南(完整教程)
  • 2026年靠谱的电线电缆批发/出售厂家最新TOP排名:优质线缆采购指南 - 深度智识库
  • 【期货量化进阶】期货市场微观结构分析(深度解析)
  • 分析AI搜索优化公司,深圳地区哪家好 - 工业品网
  • 揭秘大润发购物卡回收高价攻略! - 团团收购物卡回收
  • AI搜索优化源头厂家如何选择,排名情况解读 - myqiye
  • 【期货量化进阶】期货量化交易中的订单执行优化(实战技巧)
  • langflow目前收到的能力
  • 2026年求推荐尼龙由壬供应商,实力强的尼龙由壬品牌有哪些 - 工业设备
  • 河北龙鹏产品靠谱吗,其性价比和运营模式在行业中排名如何 - mypinpai
  • 2026年口碑好的尼龙由壬接头供应商,产品价格多少钱 - 工业设备
  • antd的继续深耕