Skip to content

Conversation

@Muyouz
Copy link
Contributor

@Muyouz Muyouz commented Sep 22, 2025

这个 PR 做了什么? (简要描述所做更改)

这个 PR 是什么类型? (至少选择一个)

  • 错误修复 (Bugfix) issue: fix #
  • 新功能 (Feature)
  • 代码重构 (Refactor)
  • TypeScript 类型定义修改 (Types)
  • 文档修改 (Docs)
  • 代码风格更新 (Code style update)
  • 构建优化 (Chore)
  • 其他,请描述 (Other, please describe):

这个 PR 涉及以下平台:

  • 所有平台
  • Web 端(H5)
  • 移动端(React-Native)
  • 鸿蒙(Harmony)
  • 鸿蒙容器(Harmony Hybrid)
  • ASCF 元服务
  • 快应用(QuickApp)
  • 所有小程序
  • 微信小程序
  • 企业微信小程序
  • 京东小程序
  • 百度小程序
  • 支付宝小程序
  • 支付宝 IOT 小程序
  • 钉钉小程序
  • QQ 小程序
  • 飞书小程序
  • 快手小程序
  • 头条小程序

Summary by CodeRabbit

  • 新功能
    • Image 支持 lego:// 渲染并新增 lang 属性。
    • Button 新增 onClick,禁用态下阻止点击。
  • 样式
    • Button 样式改为类名驱动,更新禁用/加载/尺寸/类型等状态;调整边框与圆角。
    • 多组件(Image/Text/ScrollView/Swiper/PullDownRefresh 等)样式改用 SCSS,部分样式合并与格式化调整(视觉兼容)。
  • 文档
    • 补充 Image 的 lang 属性说明。
  • 杂务
    • 增加开发依赖 dotenv,若干依赖版本固定/更新,构建流程新增“原始”构建模式与 SCSS 合并优化;类型导出扩展若干 hooks。

zhuqingan.3 and others added 26 commits September 1, 2025 18:44
- 支持 size 属性,提供多种尺寸选项
- 支持 type 属性,提供不同按钮类型
- 支持 plain 属性,实现朴素按钮样式
- 支持 disabled 属性,控制按钮禁用状态
- 支持 onClick 事件处理
[Feature request]新增 Button 组件对 TD 端的支持
@coderabbitai
Copy link

coderabbitai bot commented Sep 22, 2025

Walkthrough

在根与 React 子包中更新依赖与构建配置;新增 Rollup 原始构建流程与 SCSS 合并/修复逻辑;Button 增加 onClick 与禁用处理;Image 在 React 与组件源包中引入 lego:// 渲染模式与 lang 属性;多组件样式从 CSS 迁移到 SCSS;类型声明与 Vite Runner 样式处理微调。

Changes

Cohort / File(s) Summary
Root devDeps
package.json
新增 devDependency:dotenv@^16.4.7
React 组件包依赖调整
packages/taro-components-react/package.json
将多项 @tarojs/* 依赖与 devDependencies 从 workspace:* 固定为 4.1.7-beta.3
Rollup 原始构建与样式处理
packages/taro-components-react/rollup.config.mjs
新增 original() 构建条目;getPlugins(pre, post)getPlugins(pre, post, isOriginal);添加 SCSS 合并(mergeScssFiles/mergeScssFile)、样式导入修复(fixStyleImports)及 customStyles 插件;根据 isOriginal 切换 CSS 处理;默认导出包含 original()
React Button 行为与样式类
packages/taro-components-react/src/components/button/index.tsx, packages/taro-components-react/src/components/button/style/index.scss
Button 增加 onClick 属性与 useCallback 处理,阻止 disabled 时触发;渲染 classNames 扩展;样式由属性选择器迁移为类选择器(.taro-btn-*),并调整边框与 border-radius。
React Image lego 模式与 lang
packages/taro-components-react/src/components/image/index.tsx
样式引用改为 SCSS;新增 lang?: string prop;解析 lego:// URL,按需动态插入 LEGO CDN 脚本并在 lego 模式下渲染 <canvas-tag>,否则保留原有 img 路径。
核心组件 Image lego 与文档
packages/taro-components/src/components/image/image.tsx, packages/taro-components/src/components/image/readme.md
源组件同样加入 LEGO 脚本加载与 lego:// 解析,新增公开属性 lang: string;README 增加 lang 文档。
样式从 CSS 迁移到 SCSS(多组件)
packages/taro-components-react/src/components/*/index.tsx
image/pull-down-refresh/scroll-view/text/swiper 等组件入口的样式引用由 index.css 替换为 index.scss(无逻辑变更)。
Swiper 样式文件移动
packages/taro-components-react/src/components/swiper/style/index.css, .../index.scss
在新 index.scss 中添加 .swiper-container-wrapper.swiper-container 的布局规则;旧 CSS 中等价规则被移除/替换。
PullDownRefresh 样式格式化
packages/taro-components-react/src/components/pull-down-refresh/style/index.scss
仅格式重排,无功能变化。
Types 更新
packages/taro-components-react/types/index.d.ts, packages/taro-components-react/types/global.d.ts
hooks 模块新增导出:useMemo/useRef/createContext/useContext/memo/forwardRef/useImperativeHandleJSX.IntrinsicElements 索引签名去掉分号(格式变更)。
Vite Runner 样式流程调整
packages/taro-vite-runner/src/harmony/style.ts
调整 enableParseJSXStyle 的早退位置,延后至依赖处理完成后再返回;移除多余空行。
杂项格式变更
packages/taro-components-react/src/components/input/style/variable.scss
空白/缩进调整,无逻辑变化。

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant App as App(调用方)
  participant Img as Image Component (React/Core)
  participant Util as parseLegoUrl()
  participant DOM as Document
  participant CDN as LEGO CDN (ossin.jd.com)

  App->>Img: render({ src, lang, ... })
  Img->>Util: parseLegoUrl(src)
  Util-->>Img: { tagId, text } | null
  alt lego 模式
    Img->>DOM: 检测是否已加载 lego 脚本
    opt 未加载
      Img->>DOM: 动态插入 <script src=LEGO_CDN_URL>
      DOM->>CDN: 请求 tag.js
      CDN-->>DOM: 返回脚本
    end
    Img-->>App: 渲染 <canvas-tag {tagId,text,lang,...}>
  else 普通模式
    Img-->>App: 渲染 <img ...>(含 lazyLoad 等)
  end
Loading
sequenceDiagram
  autonumber
  participant Rollup as Rollup
  participant Cfg as rollup.config.mjs
  participant Plug as getPlugins(isOriginal)
  participant Mgr as mergeScssFiles/fixStyleImports
  participant FS as FS

  Rollup->>Cfg: 读取配置
  Cfg-->>Rollup: 导出 [original, react, solid]
  Rollup->>Plug: 请求 plugins (isOriginal = true)
  Plug-->>Rollup: 返回 custom styles 插件 集合
  Rollup->>Mgr: 执行 mergeScssFiles
  Mgr->>FS: 读取/解析组件 SCSS @import
  FS-->>Mgr: 返回内容
  Mgr->>FS: 写入合并后的 dist/original/components/*/style/index.scss
  Rollup->>Mgr: 执行 fixStyleImports(重写引用、清理 .scss.js)
  Mgr->>FS: 写入/删除 文件
  Rollup-->>Rollup: 产出 dist/original
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

T-harmony

Suggested reviewers

  • luckyadam
  • yoyo837
  • tutuxxx

Poem

小兔敲键扑簌簌,SCSS 换装亮新图。
按钮点我禁用住,画布贴纸乐乐兔。
构建分流 original 出,样式合并顺路去。
啊呜一口胡萝卜,发布脚本蹦蹦步。 🥕🐇

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed 标题 “Feat/新增original产物” 与变更集的主要内容直接相关:PR 在 packages/taro-components-react/rollup.config.mjs 中新增了 original() 构建产物并引入了 SCSS 合并与样式保留等原始输出流程,标题简短且能反映该关键功能改动;不过包含斜杠与大小写混合,格式上可稍作规范以提高一致性和可读性。
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/4.1.7-mian-feat

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Muyouz Muyouz added this to the 4.1.7 milestone Sep 22, 2025
@coderabbitai coderabbitai bot requested review from luckyadam and tutuxxx September 22, 2025 01:21
@Single-Dancer Single-Dancer merged commit c5c4c67 into main Sep 22, 2025
69 of 72 checks passed
@Single-Dancer Single-Dancer deleted the feat/4.1.7-mian-feat branch September 22, 2025 08:55
@Single-Dancer Single-Dancer changed the title Feat/新增original产物 feat: Image 支持 lego:// 渲染并新增 lang 属性、Button 新增 onClick,禁用态下阻止点击。 Sep 22, 2025
This was referenced Sep 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants