kuikly-compose-interop-dsl

Compose DSL 混用 Kuikly DSL 完整开发助手。指导如何在 Compose DSL 页面中嵌入 Kuikly DSL 组件(DeclarativeBaseView / ViewContainer)及在 Compose 中调用 Kuikly Module。当用户需要在 Compose 页面中复用 Kuikly DSL 组件、封装原生 View 为 Composable、在 Compose 中调用 Kuikly Module时使用。

By tencent-tds · 365 installs

npx skills add tencent-tds/kuiklyui-ai --skill kuikly-compose-interop-dsl

Source repository · Upstream listing

Compose DSL 混用 Kuikly DSL 组件 ⚠️ 注意 :本 skill 仅适用于 Compose DSL 中混用 Kuikly DSL (即在 Compose 页面中嵌入 Kuikly DSL 组件), 不支持 反向在 Kuikly DSL 中混用 Compose DSL。 Contents ComposeContainer 页面搭建 MakeKuiklyComposeNode API(原子 / 容器) 关键约束与常见错误 Compose 中使用 Kuikly Module 详细参考文档 ComposeContainer 页面搭建 Compose 页面继承 ComposeContainer (即 Pager ),在 willInit() 中调用 setContent {} : ComposeContainer 继承自 Kuikly Core 的 Pager ,拥有统一的跨端页面生命周期( willInit / created / pageDidAppear / pageDidDisappear / pageWillDestroy )。 MakeKuiklyComposeNode API 桥接入口,将 Kuikly DSL 组件嵌入 Compose 渲染树。两个重载: 原子组件(无子节点) 适用于 DeclarativeBaseView 子类(Video、地图等自渲染组件): 最小示例 (封装 VideoView): 容器组件(有子节点) 适用于 ViewContainer 子类,可挂载 Compose 子节点: 最小示例 (封装容器卡片): 关键约束与常见错误 factory 基类选择 场景 基类 原子组件(无子节点) DeclarativeBaseView 容器组件(有子节点) ViewContainer ❌ 禁止 ComposeView ❌ 禁止将 ComposeView 子类传入 factory ComposeView 的扁平化优化导致布局 frame 丢失,视图不可见: viewUpdate 必须同步更新 viewInit 只在创建时调用一次;随 Compose 状态变化的属性和事件回调 必须 在 viewUpdate 中也设置,否则重组后不更新。 Compose 中使用 Kuikly Module 通过 LocalActivity.current.getPager() 获取 Pager 实例,再调用 acquireModule : acquireModule 找不到时抛异常; getModule 找不到时返回 null。 详细参考 组件封装详解 (原子/容器、viewInit vs viewUpdate、错误排查):[COMPONENT WRAPPING.md](references/COMPONENT WRAPPING.md) Module 使用详情 (Router / Notify / SP / PageData / 自定义 Module):[MODULE USAGE.md](references/MODULE USAGE.md)