@alicloud/alfa-react 1.4.33 → 1.4.35

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() {
@@ -52,8 +53,9 @@ var stripBasename = function stripBasename(path, basename) {
52
53
 
53
54
  var _basename = resolvePath(basename);
54
55
 
55
- if (_path === _basename) return '/';
56
- return _path.replace(new RegExp("^".concat(_basename), 'ig'), '');
56
+ if (_path === _basename) return '/'; // escape all possible regex special characters
57
+
58
+ return _path.replace(new RegExp("^".concat(_basename.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1')), 'ig'), '');
57
59
  };
58
60
  /**
59
61
  * container for microApp mount
@@ -102,6 +104,12 @@ export default function createApplication(loader) {
102
104
  var $syncHistory = useRef(syncHistory);
103
105
  var $basename = useRef(basename);
104
106
  var tagName = normalizeName(props.name);
107
+
108
+ var _useState5 = useState(''),
109
+ _useState6 = _slicedToArray(_useState5, 2),
110
+ releaseVersion = _useState6[0],
111
+ setReleaseVersion = _useState6[1];
112
+
105
113
  $syncHistory.current = syncHistory;
106
114
  $basename.current = basename;
107
115
  if (customProps.path) customProps.path = addLeftSlash(customProps.path); // 受控模式锁定一些参数
@@ -201,33 +209,36 @@ export default function createApplication(loader) {
201
209
  _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
202
210
  var _app$context$updateBo, _app$context, _app$context$baseFram;
203
211
 
204
- var _yield$loader$registe, app, logger, _ref2, path, frameWindow;
212
+ var _yield$loader$registe, app, logger, realVersion, _ref2, path, frameWindow;
205
213
 
206
214
  return _regeneratorRuntime.wrap(function _callee$(_context) {
207
215
  while (1) {
208
216
  switch (_context.prev = _context.next) {
209
217
  case 0:
210
- _context.next = 2;
218
+ countRegister(memoOptions.name);
219
+ _context.next = 3;
211
220
  return loader.register(_objectSpread(_objectSpread({}, memoOptions), {}, {
212
221
  container: memoOptions.container || appRef.current
213
222
  }));
214
223
 
215
- case 2:
224
+ case 3:
216
225
  _yield$loader$registe = _context.sent;
217
226
  app = _yield$loader$registe.app;
218
227
  logger = _yield$loader$registe.logger;
228
+ realVersion = _yield$loader$registe.version;
229
+ setReleaseVersion(realVersion || 'unknown');
219
230
  App = app; // container has been unmounted
220
231
 
221
232
  if (!isUnmounted) {
222
- _context.next = 8;
233
+ _context.next = 11;
223
234
  break;
224
235
  }
225
236
 
226
237
  return _context.abrupt("return");
227
238
 
228
- case 8:
239
+ case 11:
229
240
  if (app) {
230
- _context.next = 10;
241
+ _context.next = 13;
231
242
  break;
232
243
  }
233
244
 
@@ -236,9 +247,9 @@ export default function createApplication(loader) {
236
247
  E_MSG: 'load app failed.'
237
248
  }));
238
249
 
239
- case 10:
250
+ case 13:
240
251
  if (appRef.current) {
241
- _context.next = 12;
252
+ _context.next = 15;
242
253
  break;
243
254
  }
244
255
 
@@ -247,7 +258,7 @@ export default function createApplication(loader) {
247
258
  E_MSG: 'cannot find container.'
248
259
  }));
249
260
 
250
- case 12:
261
+ case 15:
251
262
  // update body in sandbox context
252
263
  (_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
264
  _ref2 = memoOptions.props, path = _ref2.path;
@@ -292,12 +303,12 @@ export default function createApplication(loader) {
292
303
  }
293
304
  }
294
305
 
295
- _context.next = 18;
306
+ _context.next = 21;
296
307
  return app.mount(appRef.current, {
297
308
  customProps: customProps
298
309
  });
299
310
 
300
- case 18:
311
+ case 21:
301
312
  if (frameWindow) {
302
313
  // 每次挂载后主动触发子应用内的 popstate 事件,借此触发 react-router history 的检查逻辑
303
314
  dispatchFramePopstate();
@@ -306,7 +317,7 @@ export default function createApplication(loader) {
306
317
 
307
318
  setAppInstance(app);
308
319
 
309
- case 20:
320
+ case 23:
310
321
  case "end":
311
322
  return _context.stop();
312
323
  }
@@ -343,8 +354,12 @@ export default function createApplication(loader) {
343
354
 
344
355
  var dataAttrs = {
345
356
  'data-id': name,
346
- 'data-version': version,
347
- 'data-loader': loaderVersion
357
+ // 加载器版本
358
+ 'data-loader': loaderVersion,
359
+ // 请求版本
360
+ 'data-request-version': version || 'latest',
361
+ // 实际线上版本
362
+ 'data-release-version': releaseVersion
348
363
  };
349
364
  return /*#__PURE__*/React.createElement(React.Fragment, null, !appInstance ? /*#__PURE__*/React.createElement(Loading, {
350
365
  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';
1
+ export var version = '1.4.35';
@@ -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); }
@@ -74,8 +76,9 @@ var stripBasename = function stripBasename(path, basename) {
74
76
 
75
77
  var _basename = resolvePath(basename);
76
78
 
77
- if (_path === _basename) return '/';
78
- return _path.replace(new RegExp("^".concat(_basename), 'ig'), '');
79
+ if (_path === _basename) return '/'; // escape all possible regex special characters
80
+
81
+ return _path.replace(new RegExp("^".concat(_basename.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1')), 'ig'), '');
79
82
  };
80
83
  /**
81
84
  * container for microApp mount
@@ -124,6 +127,12 @@ function createApplication(loader) {
124
127
  var $syncHistory = (0, _react.useRef)(syncHistory);
125
128
  var $basename = (0, _react.useRef)(basename);
126
129
  var tagName = (0, _utils.normalizeName)(props.name);
130
+
131
+ var _useState5 = (0, _react.useState)(''),
132
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
133
+ releaseVersion = _useState6[0],
134
+ setReleaseVersion = _useState6[1];
135
+
127
136
  $syncHistory.current = syncHistory;
128
137
  $basename.current = basename;
129
138
  if (customProps.path) customProps.path = addLeftSlash(customProps.path); // 受控模式锁定一些参数
@@ -222,33 +231,36 @@ function createApplication(loader) {
222
231
  (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
223
232
  var _app$context$updateBo, _app$context, _app$context$baseFram;
224
233
 
225
- var _yield$loader$registe, app, logger, _ref2, path, frameWindow;
234
+ var _yield$loader$registe, app, logger, realVersion, _ref2, path, frameWindow;
226
235
 
227
236
  return _regenerator.default.wrap(function _callee$(_context) {
228
237
  while (1) {
229
238
  switch (_context.prev = _context.next) {
230
239
  case 0:
231
- _context.next = 2;
240
+ (0, _counter.countRegister)(memoOptions.name);
241
+ _context.next = 3;
232
242
  return loader.register(_objectSpread(_objectSpread({}, memoOptions), {}, {
233
243
  container: memoOptions.container || appRef.current
234
244
  }));
235
245
 
236
- case 2:
246
+ case 3:
237
247
  _yield$loader$registe = _context.sent;
238
248
  app = _yield$loader$registe.app;
239
249
  logger = _yield$loader$registe.logger;
250
+ realVersion = _yield$loader$registe.version;
251
+ setReleaseVersion(realVersion || 'unknown');
240
252
  App = app; // container has been unmounted
241
253
 
242
254
  if (!isUnmounted) {
243
- _context.next = 8;
255
+ _context.next = 11;
244
256
  break;
245
257
  }
246
258
 
247
259
  return _context.abrupt("return");
248
260
 
249
- case 8:
261
+ case 11:
250
262
  if (app) {
251
- _context.next = 10;
263
+ _context.next = 13;
252
264
  break;
253
265
  }
254
266
 
@@ -257,9 +269,9 @@ function createApplication(loader) {
257
269
  E_MSG: 'load app failed.'
258
270
  }));
259
271
 
260
- case 10:
272
+ case 13:
261
273
  if (appRef.current) {
262
- _context.next = 12;
274
+ _context.next = 15;
263
275
  break;
264
276
  }
265
277
 
@@ -268,7 +280,7 @@ function createApplication(loader) {
268
280
  E_MSG: 'cannot find container.'
269
281
  }));
270
282
 
271
- case 12:
283
+ case 15:
272
284
  // update body in sandbox context
273
285
  (_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
286
  _ref2 = memoOptions.props, path = _ref2.path;
@@ -313,12 +325,12 @@ function createApplication(loader) {
313
325
  }
314
326
  }
315
327
 
316
- _context.next = 18;
328
+ _context.next = 21;
317
329
  return app.mount(appRef.current, {
318
330
  customProps: customProps
319
331
  });
320
332
 
321
- case 18:
333
+ case 21:
322
334
  if (frameWindow) {
323
335
  // 每次挂载后主动触发子应用内的 popstate 事件,借此触发 react-router history 的检查逻辑
324
336
  dispatchFramePopstate();
@@ -327,7 +339,7 @@ function createApplication(loader) {
327
339
 
328
340
  setAppInstance(app);
329
341
 
330
- case 20:
342
+ case 23:
331
343
  case "end":
332
344
  return _context.stop();
333
345
  }
@@ -363,8 +375,12 @@ function createApplication(loader) {
363
375
 
364
376
  var dataAttrs = {
365
377
  'data-id': name,
366
- 'data-version': version,
367
- 'data-loader': _version.version
378
+ // 加载器版本
379
+ 'data-loader': _version.version,
380
+ // 请求版本
381
+ 'data-request-version': version || 'latest',
382
+ // 实际线上版本
383
+ 'data-release-version': releaseVersion
368
384
  };
369
385
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !appInstance ? /*#__PURE__*/_react.default.createElement(_Loading.default, {
370
386
  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';
7
+ var version = '1.4.35';
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",
3
+ "version": "1.4.35",
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";
1
+ export declare const version = "1.4.35";