实验摘要

依据当前归档元数据整理;正文中的历史验证记录保留原有时间与口径。

模型 / 档位
DeepSeek-V4.1-Flash-0731 · high
任务版本 / 轮次
v2 · 01
实验 / 归档日期
2026-10-13 / 未记录
输入留存
未记录
执行模式
执行模式未记录
工具
Claude Code
截图评分
84/100 · 规则 v3
费用
批次合计 · 2.71 CNY · 11 个案例,不拆算单案例
耗时
批次耗时 · 一个多小时(精确时长未记录) · 11 个案例
人工修改
查看 7 条修改记录react-lazyload@3.2.0 的 peerDependencies 只声明 React 16/17,与任务正文要求的 React 18 冲突。为保留该库,实验目录内加入 .npmrc 写入 legacy-peer-deps=true,使 npm ci 可以安装;这是为满足任务正文技术栈所做的依赖适配。;react-lazyload@3.2.0 未随包提供类型声明,tsc 严格模式报 TS7016;新增 src/types/react-lazyload.d.ts 补充最小类型声明。;react-lazyload@3.2.0 的 package.json 未声明其代码实际 require 的 prop-types,导致 Vite 将其视为外部依赖、产物中残留裸模块引用(浏览器必然报错);已把 prop-types@15.8.1 显式加入 dependencies。;迁移来源:F:\dev\ai-coding-demo-test(model-test-base 工作区)/demos/bluebook/runs/deepseek-v4-1-flash-high-r01;保留原测试轮次 r01 与完整输入快照。;迁移验收:通过本地 HTTP 实际入口补拍 desktop screenshot.png;390px 页面无横向溢出。;模型与实验目录标识按用户确认更新为 DeepSeek-V4.1-Flash-0731;历史输入、评分、产物与迁移来源保留。;维护者于 2026-10-22 按 v3 对本轮桌面、手机及补充状态逐图重评并绑定 captures 证据;旧截图和 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json。未重跑模型或改写实验源码,截图不证明完整功能、算法、手势或性能。

查看完整原始输入 →

小蓝书 · 瀑布流社区(DeepSeek-V4.1-Flash-0731 · high · r01)

构建型纯前端项目。源码在本目录,构建产物由 npm run build:demo -- bluebook--deepseek-v4-1-flash-0731-high-r01 生成并提交到 previews/bluebook/deepseek-v4-1-flash-0731-high-r01,无需安装依赖即可通过静态服务器预览。

原始提示词

见 完整原始输入;任务正文与 v2 任务正文 逐字一致。

版本说明:主题下有 v1、v2 两个版本,属于同主题下的不同任务——v1 额外要求把图片资源放在 images 目录并在编译时自动拷贝、头像做成文字类型;v2 改为 mock 数据 + 不同高度图片。未指定版本时按测试约定使用版本号最大的 v2,v1 未在本轮执行。

技术栈与目录

React 18 + TypeScript + Vite + Tailwind CSS + Zustand + react-lazyload。图片为本地 SVG,放在 public/images/,Vite 构建时自动拷贝到产物 images/ 并随预览提交,不引用任何外部图片数据。

src/
  main.tsx                  入口
  App.tsx                   页面骨架、整体渐入、搜索与发布提示
  index.css                 Tailwind 指令与骨架屏高光样式
  types.ts                  Note / FeedStatus 类型
  data/mock.ts              24 张本地图片尺寸表 + 60 条 mock 笔记 + 内联 SVG 兜底图
  store/useFeedStore.ts     Zustand:分页、状态、点赞与动画计数
  hooks/usePullToRefresh.ts 下拉刷新手势(阻尼、阈值、鼠标与触摸通用)
  components/TopBar.tsx     顶部搜索栏(logo / 搜索框 / 发布)
  components/MasonryGrid.tsx 瀑布流容器、IntersectionObserver 无限滚动
  components/NoteCard.tsx   卡片:图片、标题、文字头像、点赞动画
  components/SkeletonCard.tsx 骨架卡片
  components/LoadingSpinner.tsx 加载动画
  types/react-lazyload.d.ts react-lazyload 的类型补充声明

需求对照

提示词要求 实现
React 18 + TypeScript + Tailwind + Zustand + react-lazyload 全部采用,见 package.json
顶部搜索栏:logo「小蓝书」/ 搜索图标 + placeholder「搜索你感兴趣的内容」/ 发布按钮 TopBar.tsx
2 列(移动)/ 3 列(平板)/ 4 列(桌面) CSS 多列:columns-2 md:columns-3 xl:columns-4
卡片:图片宽 100% 高自适应、标题两行截断、24px 圆形头像 + 昵称、点赞数 NoteCard.tsx,图片用 aspect-ratio 占位避免布局跳动
卡片 hover 轻微上浮 + 阴影加深;点击按压效果 hover:-translate-y-0.5 hover:shadow-… 与 active:scale-[0.985]
首次加载 20 条、滚动到底部自动加载更多、加载动画 Zustand 分页 + IntersectionObserver + 骨架屏与圆点动画
使用 mock 数据,包含不同高度的图片 data/mock.ts,宽高比覆盖 0.53 ~ 1.45
主色 #fe2c55、背景 #f5f5f5、卡片纯白圆角 8px、适配 iPhone 12+ tailwind.config.js 主题色 + rounded-card + 安全区留白
下拉刷新 usePullToRefresh,带阻尼与「松开立即刷新」提示
图片加载失败显示默认图 onError 切换到内联 SVG 兜底图
点赞动画:红心放大再缩小 每次点击递增 likeBumps,以 key 重放 heart-pop 动画
页面切换渐入 首屏 opacity 过渡 + 每张卡片 animate-fade-in
组件拆分、样式处理、数据 mock 见上方目录

验收自测

通过本地静态服务器访问构建产物 previews/bluebook/.../index.html,用无头 Chromium 核对:

检查项 实测
首次加载 20 条 20 张 article
列数响应式 390px → 2 列;820px → 3 列;1440px → 4 列
滚动到底部自动加载更多 20 → 40 → 60 条
图片加载与高度差异 可见卡片图片全部加载成功;宽高比 0.66 / 0.94 / 0.55 / 0.54 / 0.83 / 1.45
点赞与动画 120 → 121(aria-pressed=true)→ 再点回 120
下拉刷新 拖动时出现「松开立即刷新」,松开后列表回到 20 条
图片加载失败兜底 指向不存在的图片后 src 变为内联 SVG 兜底图
无脚本错误 仅有测试中故意触发的一次 404 资源请求
横向溢出 390 / 820 / 1440 三种宽度下均为 0px

运行与复盘

  • 预览:构建产物已提交,用任何静态服务器指向仓库根目录即可访问 previews/bluebook/deepseek-v4-1-flash-0731-high-r01/。
  • 重新构建:npm run build:demo -- bluebook--deepseek-v4-1-flash-0731-high-r01(脚本会在本目录执行 npm ci 与 npm run build -- --base=./,再把 dist 同步到 previews/ 并记录源码与产物指纹)。
  • 本地开发:在本目录 npm install 后 npm run dev。
  • 复盘:两次构建失败在交付前修复,记入 changes 的两条依赖适配:① react-lazyload@3.2.0 未随包提供 TypeScript 类型,tsc -b 严格模式下报 TS7016,补了 src/types/react-lazyload.d.ts;② 该库的 package.json 并未声明它实际 require 的 prop-types,导致 Vite 把它当成外部依赖(产物里留下裸模块引用,浏览器必然报错),已把 prop-types 显式加入依赖。另外该库的 peerDependencies 只写到 React 17,与正文要求的 React 18 冲突,通过本目录 .npmrc 的 legacy-peer-deps=true 保留该库。

当前归档信息(自动生成)

  • 实验 ID:bluebook--deepseek-v4-1-flash-0731-high-r01
  • 模型:DeepSeek-V4.1-Flash-0731;推理档位:high
  • 类型:app;预览:build;网络:offline
  • 完整原始输入快照 · 主题与其他版本
  • 输入记录:本次批量执行的完整指令 + 主题任务正文;正文与 demos/bluebook/prompts/v2/prompt.md 逐字一致。该主题下有 v1 与 v2 两个版本(v1 额外要求本地 images 目录编译时自动拷贝、头像用文字实现;v2 改为 mock 数据 + 不同高度图片),未指定版本时按测试约定使用版本号最大的 v2,v1 未在本轮执行。
  • 工具:Claude Code。模型名称由用户指定为 DeepSeek-V4.1-Flash-0731;会话内模型标识为 deepseek-flash[1m]。单会话直接执行,未委派子代理。Windows 11 + Node 22.16.0。构建产物由 npm run build:demo 生成并提交到 previews/,指纹由脚本记录。
  • 运行方式:在本目录 npm ci 后 npm run dev;Pages 使用根目录 previews 中已提交的构建产物。
  • 费用记录:Deepseek 批次合计 2.71 CNY(11 个案例;批次 deepseek-v4-1-flash-0731-high-2026-10-13;未记录单案例费用)
  • 主页面

部署适配记录

  • react-lazyload@3.2.0 的 peerDependencies 只声明 React 16/17,与任务正文要求的 React 18 冲突。为保留该库,实验目录内加入 .npmrc 写入 legacy-peer-deps=true,使 npm ci 可以安装;这是为满足任务正文技术栈所做的依赖适配。
  • react-lazyload@3.2.0 未随包提供类型声明,tsc 严格模式报 TS7016;新增 src/types/react-lazyload.d.ts 补充最小类型声明。
  • react-lazyload@3.2.0 的 package.json 未声明其代码实际 require 的 prop-types,导致 Vite 将其视为外部依赖、产物中残留裸模块引用(浏览器必然报错);已把 prop-types@15.8.1 显式加入 dependencies。
  • 迁移来源:F:\dev\ai-coding-demo-test(model-test-base 工作区)/demos/bluebook/runs/deepseek-v4-1-flash-high-r01;保留原测试轮次 r01 与完整输入快照。
  • 迁移验收:通过本地 HTTP 实际入口补拍 desktop screenshot.png;390px 页面无横向溢出。
  • 模型与实验目录标识按用户确认更新为 DeepSeek-V4.1-Flash-0731;历史输入、评分、产物与迁移来源保留。
  • 维护者于 2026-10-22 按 v3 对本轮桌面、手机及补充状态逐图重评并绑定 captures 证据;旧截图和 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json。未重跑模型或改写实验源码,截图不证明完整功能、算法、手势或性能。

本页目录 ↑