@alicloud/alfa-react 1.4.33-alpha.0 → 1.4.34

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.
@@ -42,5 +42,17 @@ function createAlfaApp(option) {
42
42
  })));
43
43
  };
44
44
  }
45
+ /**
46
+ * create memorized app in react function component, just create App after first mounted
47
+ * @param option
48
+ * @returns
49
+ */
45
50
 
51
+
52
+ export function useAlfaApp(option) {
53
+ var App = useMemo(function () {
54
+ return createAlfaApp(option);
55
+ }, []);
56
+ return App;
57
+ }
46
58
  export default createAlfaApp;
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
3
  import _regeneratorRuntime from "@babel/runtime/regenerator";
4
- import React from 'react';
4
+ import React, { useMemo } from 'react';
5
5
  import { BaseLoader } from '@alicloud/alfa-core';
6
6
  import ErrorBoundary from './components/ErrorBoundary';
7
7
  import { createCWSWidget } from './widget';
@@ -69,5 +69,17 @@ function createAlfaWidget(option) {
69
69
  );
70
70
  };
71
71
  }
72
+ /**
73
+ * create memorized app in react function component, just create App after first mounted
74
+ * @param option
75
+ * @returns
76
+ */
72
77
 
78
+
79
+ export function useAlfaWidget(option) {
80
+ var App = useMemo(function () {
81
+ return createAlfaWidget(option);
82
+ }, []);
83
+ return App;
84
+ }
73
85
  export default createAlfaWidget;
@@ -11,6 +11,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
11
11
  import React, { useRef, useEffect, useState, useMemo } from 'react';
12
12
  import Loading from './components/Loading';
13
13
  import { normalizeName } from './utils';
14
+ import { countRegister } from './utils/counter';
14
15
  import { version as loaderVersion } from './version';
15
16
 
16
17
  var resolvePath = function resolvePath() {
@@ -102,6 +103,12 @@ export default function createApplication(loader) {
102
103
  var $syncHistory = useRef(syncHistory);
103
104
  var $basename = useRef(basename);
104
105
  var tagName = normalizeName(props.name);
106
+
107
+ var _useState5 = useState(''),
108
+ _useState6 = _slicedToArray(_useState5, 2),
109
+ releaseVersion = _useState6[0],
110
+ setReleaseVersion = _useState6[1];
111
+
105
112
  $syncHistory.current = syncHistory;
106
113
  $basename.current = basename;
107
114
  if (customProps.path) customProps.path = addLeftSlash(customProps.path); // 受控模式锁定一些参数
@@ -201,33 +208,36 @@ export default function createApplication(loader) {
201
208
  _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
202
209
  var _app$context$updateBo, _app$context, _app$context$baseFram;
203
210
 
204
- var _yield$loader$registe, app, logger, _ref2, path, frameWindow;
211
+ var _yield$loader$registe, app, logger, realVersion, _ref2, path, frameWindow;
205
212
 
206
213
  return _regeneratorRuntime.wrap(function _callee$(_context) {
207
214
  while (1) {
208
215
  switch (_context.prev = _context.next) {
209
216
  case 0:
210
- _context.next = 2;
217
+ countRegister(memoOptions.name);
218
+ _context.next = 3;
211
219
  return loader.register(_objectSpread(_objectSpread({}, memoOptions), {}, {
212
220
  container: memoOptions.container || appRef.current
213
221
  }));
214
222
 
215
- case 2:
223
+ case 3:
216
224
  _yield$loader$registe = _context.sent;
217
225
  app = _yield$loader$registe.app;
218
226
  logger = _yield$loader$registe.logger;
227
+ realVersion = _yield$loader$registe.version;
228
+ setReleaseVersion(realVersion || 'unknown');
219
229
  App = app; // container has been unmounted
220
230
 
221
231
  if (!isUnmounted) {
222
- _context.next = 8;
232
+ _context.next = 11;
223
233
  break;
224
234
  }
225
235
 
226
236
  return _context.abrupt("return");
227
237
 
228
- case 8:
238
+ case 11:
229
239
  if (app) {
230
- _context.next = 10;
240
+ _context.next = 13;
231
241
  break;
232
242
  }
233
243
 
@@ -236,9 +246,9 @@ export default function createApplication(loader) {
236
246
  E_MSG: 'load app failed.'
237
247
  }));
238
248
 
239
- case 10:
249
+ case 13:
240
250
  if (appRef.current) {
241
- _context.next = 12;
251
+ _context.next = 15;
242
252
  break;
243
253
  }
244
254
 
@@ -247,7 +257,7 @@ export default function createApplication(loader) {
247
257
  E_MSG: 'cannot find container.'
248
258
  }));
249
259
 
250
- case 12:
260
+ case 15:
251
261
  // update body in sandbox context
252
262
  (_app$context$updateBo = (_app$context = app.context).updateBody) === null || _app$context$updateBo === void 0 ? void 0 : _app$context$updateBo.call(_app$context, memoOptions.sandbox.disableFakeBody ? document.body : appRef.current);
253
263
  _ref2 = memoOptions.props, path = _ref2.path;
@@ -292,12 +302,12 @@ export default function createApplication(loader) {
292
302
  }
293
303
  }
294
304
 
295
- _context.next = 18;
305
+ _context.next = 21;
296
306
  return app.mount(appRef.current, {
297
307
  customProps: customProps
298
308
  });
299
309
 
300
- case 18:
310
+ case 21:
301
311
  if (frameWindow) {
302
312
  // 每次挂载后主动触发子应用内的 popstate 事件,借此触发 react-router history 的检查逻辑
303
313
  dispatchFramePopstate();
@@ -306,7 +316,7 @@ export default function createApplication(loader) {
306
316
 
307
317
  setAppInstance(app);
308
318
 
309
- case 20:
319
+ case 23:
310
320
  case "end":
311
321
  return _context.stop();
312
322
  }
@@ -328,7 +338,7 @@ export default function createApplication(loader) {
328
338
 
329
339
  if (frameHistory) {
330
340
  if (originalPushState !== frameHistory.pushState) frameHistory.pushState = originalPushState;
331
- if (originalReplaceState !== frameHistory.replaceState) frameHistory.pushState = originalReplaceState;
341
+ if (originalReplaceState !== frameHistory.replaceState) frameHistory.replaceState = originalReplaceState;
332
342
  if (originalGo !== frameHistory.go) frameHistory.go = originalGo;
333
343
  }
334
344
 
@@ -343,8 +353,12 @@ export default function createApplication(loader) {
343
353
 
344
354
  var dataAttrs = {
345
355
  'data-id': name,
346
- 'data-version': version,
347
- 'data-loader': loaderVersion
356
+ // 加载器版本
357
+ 'data-loader': loaderVersion,
358
+ // 请求版本
359
+ 'data-request-version': version || 'latest',
360
+ // 实际线上版本
361
+ 'data-release-version': releaseVersion
348
362
  };
349
363
  return /*#__PURE__*/React.createElement(React.Fragment, null, !appInstance ? /*#__PURE__*/React.createElement(Loading, {
350
364
  loading: loading
package/es/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { default as createAlfaApp } from './createAlfaApp';
2
- export { default as createAlfaWidget } from './createAlfaWidget';
1
+ export { default as createAlfaApp, useAlfaApp } from './createAlfaApp';
2
+ export { default as createAlfaWidget, useAlfaWidget } from './createAlfaWidget';
3
3
  export { eventEmitter as widgetEventEmitter } from './widget/index';
4
4
  export { default as addGlobalRequestInterceptor } from './addGlobalRequestInterceptor'; // todo
5
5
 
@@ -0,0 +1,18 @@
1
+ var lastApp;
2
+ var lastTime = 0;
3
+ var min = 1000;
4
+ /**
5
+ * 计算初始化次数,并提示重复加载的应用
6
+ * @param appId string
7
+ */
8
+
9
+ export var countRegister = function countRegister(appId) {
10
+ var nowTime = Date.now();
11
+
12
+ if (lastApp === appId && lastTime && nowTime - lastTime < min) {
13
+ console.warn("[@alicloud/alfa-react] ".concat(appId, " \u91CD\u590D\u52A0\u8F7D\uFF0C\u8BF7\u68C0\u67E5\u4F60\u7684\u4EE3\u7801\u3002\u8BF7\u5728\u51FD\u6570\u7EC4\u4EF6\u4E2D\u4F7F\u7528 useAlfaApp \u6216 useAlfaWidget \u65B9\u6CD5\u3002"));
14
+ }
15
+
16
+ lastApp = appId;
17
+ lastTime = nowTime;
18
+ };
package/es/version.js CHANGED
@@ -1 +1 @@
1
- export var version = '1.4.33-alpha.0';
1
+ export var version = '1.4.34';
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports.default = void 0;
11
+ exports.useAlfaApp = useAlfaApp;
11
12
 
12
13
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14
 
@@ -65,6 +66,19 @@ function createAlfaApp(option) {
65
66
  })));
66
67
  };
67
68
  }
69
+ /**
70
+ * create memorized app in react function component, just create App after first mounted
71
+ * @param option
72
+ * @returns
73
+ */
74
+
75
+
76
+ function useAlfaApp(option) {
77
+ var App = (0, _react.useMemo)(function () {
78
+ return createAlfaApp(option);
79
+ }, []);
80
+ return App;
81
+ }
68
82
 
69
83
  var _default = createAlfaApp;
70
84
  exports.default = _default;
@@ -2,10 +2,13 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.default = void 0;
11
+ exports.useAlfaWidget = useAlfaWidget;
9
12
 
10
13
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
14
 
@@ -13,7 +16,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
16
 
14
17
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
18
 
16
- var _react = _interopRequireDefault(require("react"));
19
+ var _react = _interopRequireWildcard(require("react"));
17
20
 
18
21
  var _alfaCore = require("@alicloud/alfa-core");
19
22
 
@@ -27,6 +30,10 @@ var _beforeResolveHook = _interopRequireDefault(require("./hooks/beforeResolveHo
27
30
 
28
31
  var _beforeLoadHook = _interopRequireDefault(require("./hooks/beforeLoadHook"));
29
32
 
33
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
34
+
35
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
36
+
30
37
  var loader = _alfaCore.BaseLoader.create();
31
38
 
32
39
  loader.beforeResolve.use(_beforeResolveHook.default);
@@ -89,6 +96,19 @@ function createAlfaWidget(option) {
89
96
  );
90
97
  };
91
98
  }
99
+ /**
100
+ * create memorized app in react function component, just create App after first mounted
101
+ * @param option
102
+ * @returns
103
+ */
104
+
105
+
106
+ function useAlfaWidget(option) {
107
+ var App = (0, _react.useMemo)(function () {
108
+ return createAlfaWidget(option);
109
+ }, []);
110
+ return App;
111
+ }
92
112
 
93
113
  var _default = createAlfaWidget;
94
114
  exports.default = _default;
@@ -25,6 +25,8 @@ var _Loading = _interopRequireDefault(require("./components/Loading"));
25
25
 
26
26
  var _utils = require("./utils");
27
27
 
28
+ var _counter = require("./utils/counter");
29
+
28
30
  var _version = require("./version");
29
31
 
30
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -124,6 +126,12 @@ function createApplication(loader) {
124
126
  var $syncHistory = (0, _react.useRef)(syncHistory);
125
127
  var $basename = (0, _react.useRef)(basename);
126
128
  var tagName = (0, _utils.normalizeName)(props.name);
129
+
130
+ var _useState5 = (0, _react.useState)(''),
131
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
132
+ releaseVersion = _useState6[0],
133
+ setReleaseVersion = _useState6[1];
134
+
127
135
  $syncHistory.current = syncHistory;
128
136
  $basename.current = basename;
129
137
  if (customProps.path) customProps.path = addLeftSlash(customProps.path); // 受控模式锁定一些参数
@@ -222,33 +230,36 @@ function createApplication(loader) {
222
230
  (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
223
231
  var _app$context$updateBo, _app$context, _app$context$baseFram;
224
232
 
225
- var _yield$loader$registe, app, logger, _ref2, path, frameWindow;
233
+ var _yield$loader$registe, app, logger, realVersion, _ref2, path, frameWindow;
226
234
 
227
235
  return _regenerator.default.wrap(function _callee$(_context) {
228
236
  while (1) {
229
237
  switch (_context.prev = _context.next) {
230
238
  case 0:
231
- _context.next = 2;
239
+ (0, _counter.countRegister)(memoOptions.name);
240
+ _context.next = 3;
232
241
  return loader.register(_objectSpread(_objectSpread({}, memoOptions), {}, {
233
242
  container: memoOptions.container || appRef.current
234
243
  }));
235
244
 
236
- case 2:
245
+ case 3:
237
246
  _yield$loader$registe = _context.sent;
238
247
  app = _yield$loader$registe.app;
239
248
  logger = _yield$loader$registe.logger;
249
+ realVersion = _yield$loader$registe.version;
250
+ setReleaseVersion(realVersion || 'unknown');
240
251
  App = app; // container has been unmounted
241
252
 
242
253
  if (!isUnmounted) {
243
- _context.next = 8;
254
+ _context.next = 11;
244
255
  break;
245
256
  }
246
257
 
247
258
  return _context.abrupt("return");
248
259
 
249
- case 8:
260
+ case 11:
250
261
  if (app) {
251
- _context.next = 10;
262
+ _context.next = 13;
252
263
  break;
253
264
  }
254
265
 
@@ -257,9 +268,9 @@ function createApplication(loader) {
257
268
  E_MSG: 'load app failed.'
258
269
  }));
259
270
 
260
- case 10:
271
+ case 13:
261
272
  if (appRef.current) {
262
- _context.next = 12;
273
+ _context.next = 15;
263
274
  break;
264
275
  }
265
276
 
@@ -268,7 +279,7 @@ function createApplication(loader) {
268
279
  E_MSG: 'cannot find container.'
269
280
  }));
270
281
 
271
- case 12:
282
+ case 15:
272
283
  // update body in sandbox context
273
284
  (_app$context$updateBo = (_app$context = app.context).updateBody) === null || _app$context$updateBo === void 0 ? void 0 : _app$context$updateBo.call(_app$context, memoOptions.sandbox.disableFakeBody ? document.body : appRef.current);
274
285
  _ref2 = memoOptions.props, path = _ref2.path;
@@ -313,12 +324,12 @@ function createApplication(loader) {
313
324
  }
314
325
  }
315
326
 
316
- _context.next = 18;
327
+ _context.next = 21;
317
328
  return app.mount(appRef.current, {
318
329
  customProps: customProps
319
330
  });
320
331
 
321
- case 18:
332
+ case 21:
322
333
  if (frameWindow) {
323
334
  // 每次挂载后主动触发子应用内的 popstate 事件,借此触发 react-router history 的检查逻辑
324
335
  dispatchFramePopstate();
@@ -327,7 +338,7 @@ function createApplication(loader) {
327
338
 
328
339
  setAppInstance(app);
329
340
 
330
- case 20:
341
+ case 23:
331
342
  case "end":
332
343
  return _context.stop();
333
344
  }
@@ -348,7 +359,7 @@ function createApplication(loader) {
348
359
 
349
360
  if (frameHistory) {
350
361
  if (originalPushState !== frameHistory.pushState) frameHistory.pushState = originalPushState;
351
- if (originalReplaceState !== frameHistory.replaceState) frameHistory.pushState = originalReplaceState;
362
+ if (originalReplaceState !== frameHistory.replaceState) frameHistory.replaceState = originalReplaceState;
352
363
  if (originalGo !== frameHistory.go) frameHistory.go = originalGo;
353
364
  }
354
365
 
@@ -363,8 +374,12 @@ function createApplication(loader) {
363
374
 
364
375
  var dataAttrs = {
365
376
  'data-id': name,
366
- 'data-version': version,
367
- 'data-loader': _version.version
377
+ // 加载器版本
378
+ 'data-loader': _version.version,
379
+ // 请求版本
380
+ 'data-request-version': version || 'latest',
381
+ // 实际线上版本
382
+ 'data-release-version': releaseVersion
368
383
  };
369
384
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !appInstance ? /*#__PURE__*/_react.default.createElement(_Loading.default, {
370
385
  loading: loading
package/lib/index.js CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -35,6 +37,18 @@ Object.defineProperty(exports, "prefetch", {
35
37
  return _alfaCore.prefetch;
36
38
  }
37
39
  });
40
+ Object.defineProperty(exports, "useAlfaApp", {
41
+ enumerable: true,
42
+ get: function get() {
43
+ return _createAlfaApp.useAlfaApp;
44
+ }
45
+ });
46
+ Object.defineProperty(exports, "useAlfaWidget", {
47
+ enumerable: true,
48
+ get: function get() {
49
+ return _createAlfaWidget.useAlfaWidget;
50
+ }
51
+ });
38
52
  Object.defineProperty(exports, "widgetEventEmitter", {
39
53
  enumerable: true,
40
54
  get: function get() {
@@ -42,12 +56,16 @@ Object.defineProperty(exports, "widgetEventEmitter", {
42
56
  }
43
57
  });
44
58
 
45
- var _createAlfaApp = _interopRequireDefault(require("./createAlfaApp"));
59
+ var _createAlfaApp = _interopRequireWildcard(require("./createAlfaApp"));
46
60
 
47
- var _createAlfaWidget = _interopRequireDefault(require("./createAlfaWidget"));
61
+ var _createAlfaWidget = _interopRequireWildcard(require("./createAlfaWidget"));
48
62
 
49
63
  var _index = require("./widget/index");
50
64
 
51
65
  var _addGlobalRequestInterceptor = _interopRequireDefault(require("./addGlobalRequestInterceptor"));
52
66
 
53
- var _alfaCore = require("@alicloud/alfa-core");
67
+ var _alfaCore = require("@alicloud/alfa-core");
68
+
69
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
70
+
71
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.countRegister = void 0;
7
+ var lastApp;
8
+ var lastTime = 0;
9
+ var min = 1000;
10
+ /**
11
+ * 计算初始化次数,并提示重复加载的应用
12
+ * @param appId string
13
+ */
14
+
15
+ var countRegister = function countRegister(appId) {
16
+ var nowTime = Date.now();
17
+
18
+ if (lastApp === appId && lastTime && nowTime - lastTime < min) {
19
+ console.warn("[@alicloud/alfa-react] ".concat(appId, " \u91CD\u590D\u52A0\u8F7D\uFF0C\u8BF7\u68C0\u67E5\u4F60\u7684\u4EE3\u7801\u3002\u8BF7\u5728\u51FD\u6570\u7EC4\u4EF6\u4E2D\u4F7F\u7528 useAlfaApp \u6216 useAlfaWidget \u65B9\u6CD5\u3002"));
20
+ }
21
+
22
+ lastApp = appId;
23
+ lastTime = nowTime;
24
+ };
25
+
26
+ exports.countRegister = countRegister;
package/lib/version.js CHANGED
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- var version = '1.4.33-alpha.0';
7
+ var version = '1.4.34';
8
8
  exports.version = version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/alfa-react",
3
- "version": "1.4.33-alpha.0",
3
+ "version": "1.4.34",
4
4
  "description": "Alfa Framework (React Version)",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -11,4 +11,10 @@ interface IProps {
11
11
  path?: string;
12
12
  }
13
13
  declare function createAlfaApp<P = any>(option: AlfaFactoryOption): (() => null) | ((props: P & IProps) => JSX.Element);
14
+ /**
15
+ * create memorized app in react function component, just create App after first mounted
16
+ * @param option
17
+ * @returns
18
+ */
19
+ export declare function useAlfaApp<P = any>(option: AlfaFactoryOption): (() => null) | ((props: P & IProps) => JSX.Element);
14
20
  export default createAlfaApp;
@@ -1,4 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { AlfaFactoryOption } from './types';
3
3
  declare function createAlfaWidget<P = any>(option: AlfaFactoryOption): ((props: P) => JSX.Element) | (() => null);
4
+ /**
5
+ * create memorized app in react function component, just create App after first mounted
6
+ * @param option
7
+ * @returns
8
+ */
9
+ export declare function useAlfaWidget<P = any>(option: AlfaFactoryOption): ((props: P) => JSX.Element) | (() => null);
4
10
  export default createAlfaWidget;
package/types/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { default as createAlfaApp } from './createAlfaApp';
2
- export { default as createAlfaWidget } from './createAlfaWidget';
1
+ export { default as createAlfaApp, useAlfaApp } from './createAlfaApp';
2
+ export { default as createAlfaWidget, useAlfaWidget } from './createAlfaWidget';
3
3
  export { eventEmitter as widgetEventEmitter } from './widget/index';
4
4
  export { default as addGlobalRequestInterceptor } from './addGlobalRequestInterceptor';
5
5
  export { createEventBus, prefetch } from '@alicloud/alfa-core';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 计算初始化次数,并提示重复加载的应用
3
+ * @param appId string
4
+ */
5
+ export declare const countRegister: (appId: string) => void;
@@ -1 +1 @@
1
- export declare const version = "1.4.33-alpha.0";
1
+ export declare const version = "1.4.34";