前端页面组件怎么拆提示词(组件树设计、状态放在哪一层、Props 接口、可复用组件识别)

开始做一个复杂页面(后台详情页、多步骤表单、带筛选的列表),不知道怎么拆组件、状态该放在哪里时用:给出页面描述或原型,AI 先画组件树,再决定每份状态的归属和数据流向,定义每个组件的 Props,并指出哪些组件值得抽成通用组件。

NNathaniel bigo··原创首发·AI 辅助撰写
通用大模型 对话模型通用
你是一名擅长组件设计的前端架构师。请在写代码之前,先帮我设计页面的组件结构。

- 框架:[框架](例:React、Vue 3)
- 页面描述(区块、交互、数据来源;有原型可描述原型):
  [页面描述]
- 已有的通用组件库:[已有组件库](例:Ant Design + 团队内部组件)
- 状态管理方案:[状态管理](例:服务端数据用 TanStack Query,全局状态用 Zustand)

请输出:
1. 组件树:用缩进列表表示,每个组件写一句职责说明。拆分依据:单一职责、重复出现的结构、独立变化的区域、需要单独测试的逻辑。避免拆得过细(只被用一次且不足十行的部分不必单独成为组件)。
2. 状态清单:列出页面上所有的状态,逐条决定它属于哪一类、放在哪里:
   - 服务端数据(列表、详情):交给数据请求层缓存,不要复制一份到本地状态;
   - 地址栏状态(筛选条件、页码、当前标签页):放在查询参数里,刷新与分享时保持;
   - 表单状态:放在表单组件内部或表单库中;
   - 界面状态(弹窗开关、展开收起):放在离使用它最近的组件;
   - 真正的全局状态(当前用户、主题):才放进全局状态管理。
   对每份状态说明:哪些组件读取、哪些组件修改、为什么放在这一层。
3. 数据流:画出关键交互(例如修改筛选条件 → 列表刷新)中数据和事件的流向,检查是否存在层层传递过深的属性,给出解决方式(组合、上下文、调整状态位置)。
4. Props 接口:为主要组件写出 Props 类型定义(名称、类型、是否必填、说明),以及组件对外触发的事件。
5. 可复用识别:哪些组件可以抽成通用组件放进组件库,哪些属于业务组件;不要为了「可能复用」过早抽象。
6. 目录结构建议(components、features、hooks 或 composables 的划分)。

高亮处换成你自己的内容:[框架]、[页面描述]、[已有组件库]、[状态管理]

ChatGPT Plus 充值

已被复制 0 次

使用说明

怎么填变量:[页面描述] 按区块写清楚:每块显示什么、有哪些操作、操作后会影响哪些区块。例如「顶部筛选栏修改后,列表刷新并回到第一页;点击某行在右侧抽屉显示详情,抽屉中修改后列表对应行更新」。

常见坑:

  • 把接口返回的数据复制到全局状态里再手动同步,数据不一致的问题层出不穷。服务端数据交给数据请求库管理。
  • 筛选条件和页码放在组件内部状态,刷新页面就丢失,也没法把链接分享给同事。
  • 为了「以后可能复用」,把业务组件抽象成一堆配置项,最后谁都不敢改。先在业务里用起来,出现第二、第三次重复时再抽象。

追问技巧:设计确认后追问「按这个设计生成组件骨架代码,每个组件只写 Props 类型和结构,不写样式」,再逐个填充。

示例输出

示例,仅供参考(订单列表页,节选)
OrderListPage                 页面容器:读取地址栏查询参数,组合各区块
├─ OrderFilters               筛选栏:修改后更新查询参数并重置页码
├─ BatchActionBar             批量操作:仅在有选中项时显示
├─ OrderTable                 表格:展示数据、行选择
│  └─ OrderStatusTag          状态标签(通用,可放入组件库)
├─ Pagination                 分页:读写查询参数中的页码
└─ OrderDetailDrawer          详情抽屉:根据查询参数中的订单编号加载详情
状态类型位置读取者修改者
筛选条件、页码地址栏状态查询参数页面容器、列表请求筛选栏、分页
订单列表数据服务端数据数据请求缓存表格批量操作成功后使缓存失效
选中的行界面状态页面容器表格、批量操作栏表格
当前查看的订单编号地址栏状态查询参数详情抽屉表格行点击

同款作品

用这条提示词做出来的作品;原作者会因此获得积分

做同款

还没有同款,来做第一个。

Nathaniel 的更多内容

同主题

同模型

0 条评论

登录 后参与评论

还没有评论,来抢沙发~