@cqsjjb/jjb-cloud-component 0.0.7-experimental.2 → 0.0.7-experimental.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,6 +26,8 @@ interface CloudComponentProps extends ComponentProps {
26
26
  componentKey: string;
27
27
  // 组件的额外Props
28
28
  componentProps?: Record<string, unknown>;
29
+ // 组件引用
30
+ componentRef?: React.Ref<Record<string, unknown>>;
29
31
  // 组件开始加载
30
32
  onLoadStart?: () => void;
31
33
  // 组件结束加载
@@ -59,7 +59,12 @@ export default function CloudComponent(props) {
59
59
  setComponent(() => {
60
60
  onLoadEnd && onLoadEnd();
61
61
  return isNewVersion
62
- ? module.default(componentRef)
62
+ ? module.default({
63
+ // 组件引用
64
+ ref: componentRef,
65
+ // 将依赖穿透下去,用于在组件内部使用依赖(以支持云组件嵌套云组件)
66
+ $$dependencies: dependencies
67
+ })
63
68
  : module.default;
64
69
  });
65
70
  } catch (error) {
@@ -70,10 +70,10 @@ export default async function ImportCloudComponent(options) {
70
70
  } catch (error) {
71
71
  throw new Error(`云组件加载失败: ${error.message}`);
72
72
  }
73
- const __require = {};
73
+ const __dependencies = {};
74
74
 
75
75
  Object.entries(dependencies).forEach(([key, value]) => {
76
- __require[key] = value;
76
+ __dependencies[key] = value;
77
77
  });
78
78
 
79
79
  let module;
@@ -89,7 +89,7 @@ export default async function ImportCloudComponent(options) {
89
89
  useModule = runtime.useModule;
90
90
 
91
91
  // 获取云组件导出CJS模块
92
- module = useModule(__require);
92
+ module = useModule(__dependencies);
93
93
 
94
94
  if (!module || typeof module !== 'object') {
95
95
  throw new Error('云组件模块格式错误');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cqsjjb/jjb-cloud-component",
3
- "version": "0.0.7-experimental.2",
3
+ "version": "0.0.7-experimental.3",
4
4
  "description": "前端-云组件",
5
5
  "main": "index.js",
6
6
  "scripts": {