airx 0.1.6 → 0.1.8
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.
- package/output/element.d.ts +6 -6
- package/output/element.js.map +1 -1
- package/output/index.d.ts +3 -0
- package/output/index.js +7 -6
- package/output/index.js.map +1 -1
- package/output/reactive.js +1 -6
- package/output/reactive.js.map +1 -1
- package/output/render/browser.d.ts +3 -8
- package/output/render/browser.js +7 -109
- package/output/render/browser.js.map +1 -1
- package/output/render/common/hooks.d.ts +10 -0
- package/output/render/common/hooks.js +22 -0
- package/output/render/common/hooks.js.map +1 -0
- package/output/render/common/index.d.ts +16 -20
- package/output/render/common/index.js +43 -122
- package/output/render/common/index.js.map +1 -1
- package/output/render/common/plugins/context.d.ts +5 -0
- package/output/render/common/plugins/context.js +9 -0
- package/output/render/common/plugins/context.js.map +1 -0
- package/output/render/common/plugins/index.d.ts +19 -0
- package/output/render/common/plugins/index.js +2 -0
- package/output/render/common/plugins/index.js.map +1 -0
- package/output/render/common/plugins/internal/basic.d.ts +10 -0
- package/output/render/common/plugins/internal/basic.js +158 -0
- package/output/render/common/plugins/internal/basic.js.map +1 -0
- package/output/render/common/plugins/internal/inject.d.ts +6 -0
- package/output/render/common/plugins/internal/inject.js +25 -0
- package/output/render/common/plugins/internal/inject.js.map +1 -0
- package/output/render/index.d.ts +3 -3
- package/output/render/index.js +3 -3
- package/output/render/index.js.map +1 -1
- package/package.json +1 -1
package/output/element.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Ref } from './reactive';
|
|
2
1
|
import * as symbol from './symbol';
|
|
3
2
|
type AirxElementType<P> = string | AirxComponent<P>;
|
|
3
|
+
export type Props = {
|
|
4
|
+
[propKey: string]: unknown;
|
|
5
|
+
};
|
|
4
6
|
/**
|
|
5
7
|
* AirxElement 表示一个 Airx 元素
|
|
6
8
|
* type 表示元素的类型,可能是一个 html 标签,
|
|
@@ -10,9 +12,7 @@ type AirxElementType<P> = string | AirxComponent<P>;
|
|
|
10
12
|
*/
|
|
11
13
|
export interface AirxElement<P = any> {
|
|
12
14
|
type: AirxElementType<P>;
|
|
13
|
-
props:
|
|
14
|
-
[propKey: string]: unknown;
|
|
15
|
-
} & P;
|
|
15
|
+
props: Props & P;
|
|
16
16
|
[symbol.airxElementSymbol]: true;
|
|
17
17
|
}
|
|
18
18
|
export type AirxChildren = null | string | number | boolean | undefined | AirxElement | Array<AirxChildren>;
|
|
@@ -38,7 +38,7 @@ export interface AirxComponentLifecycle {
|
|
|
38
38
|
onUnmounted: (listener: AirxComponentUnmountedListener) => void;
|
|
39
39
|
}
|
|
40
40
|
export type AirxComponentContext = AirxComponentLifecycle & {
|
|
41
|
-
provide: <T =
|
|
42
|
-
inject: <T =
|
|
41
|
+
provide: <T = unknown>(key: unknown, value: T) => (newValue: T) => void;
|
|
42
|
+
inject: <T = unknown>(key: unknown) => T | undefined;
|
|
43
43
|
};
|
|
44
44
|
export {};
|
package/output/element.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../source/element.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../source/element.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAmClC;;GAEG;AACH,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAC3B,IAAwB,EACxB,KAAqC,EACrC,GAAG,QAAwB;IAE3B,OAAO;QACL,IAAI;QACJ,KAAK,EAAE;YACL,GAAG,KAAK;YACR,QAAQ;SACT;QACD,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,IAAI;KACjC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,OAAO,OAAO,KAAK,QAAQ;WAC7B,OAAO,KAAK,IAAI;WAChB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAgC;IACvD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAA;AAC7B,CAAC"}
|
package/output/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { AirxElement } from './element';
|
|
2
|
+
import { Plugin } from './render';
|
|
2
3
|
export * from './types';
|
|
4
|
+
export { Plugin } from './render';
|
|
3
5
|
export { createRef, Ref, watch } from './reactive';
|
|
4
6
|
export { Fragment, createElement, AirxComponent, AirxElement, AirxChildren, AirxComponentContext } from './element';
|
|
5
7
|
export { inject, provide, onMounted, onUnmounted } from './render';
|
|
6
8
|
export interface AirxApp {
|
|
9
|
+
plugin: (...plugins: Plugin[]) => AirxApp;
|
|
7
10
|
mount: (container: HTMLElement) => AirxApp;
|
|
8
11
|
}
|
|
9
12
|
export declare function createApp(element: AirxElement<any>): AirxApp;
|
package/output/index.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginContext, render } from './render';
|
|
2
2
|
export * from './types';
|
|
3
3
|
export { createRef, watch } from './reactive';
|
|
4
4
|
export { Fragment, createElement } from './element';
|
|
5
5
|
export { inject, provide, onMounted, onUnmounted } from './render';
|
|
6
6
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
7
|
export function createApp(element) {
|
|
8
|
+
const appContext = new PluginContext();
|
|
8
9
|
const app = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
plugin: (...plugins) => {
|
|
11
|
+
appContext.registerPlugin(...plugins);
|
|
12
|
+
return app;
|
|
13
|
+
},
|
|
13
14
|
mount: (container) => {
|
|
14
|
-
|
|
15
|
+
render(appContext, element, container);
|
|
15
16
|
return app;
|
|
16
17
|
}
|
|
17
18
|
};
|
package/output/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAExD,cAAc,SAAS,CAAA;AAEvB,OAAO,EAAE,SAAS,EAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,QAAQ,EACR,aAAa,EAKd,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,WAAW,EACZ,MAAM,UAAU,CAAA;AAOjB,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAA;IACtC,MAAM,GAAG,GAAY;QACnB,MAAM,EAAE,CAAC,GAAG,OAAiB,EAAE,EAAE;YAC/B,UAAU,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAA;YACrC,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,KAAK,EAAE,CAAC,SAAsB,EAAE,EAAE;YAChC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YACtC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
package/output/reactive.js
CHANGED
|
@@ -34,18 +34,13 @@ function createRefObject(value) {
|
|
|
34
34
|
});
|
|
35
35
|
return object;
|
|
36
36
|
}
|
|
37
|
-
function isRefObject(obj) {
|
|
38
|
-
return obj != null
|
|
39
|
-
&& typeof obj === 'object'
|
|
40
|
-
&& Reflect.has(obj, symbol.airxReactiveDependenciesSymbol);
|
|
41
|
-
}
|
|
42
37
|
export function watch(ref, listener) {
|
|
43
38
|
const deps = Reflect.get(ref, symbol.airxReactiveDependenciesSymbol);
|
|
44
39
|
deps.add(listener);
|
|
45
40
|
return () => { deps.delete(listener); };
|
|
46
41
|
}
|
|
47
42
|
export function createRef(obj) {
|
|
48
|
-
const ref =
|
|
43
|
+
const ref = createRefObject(obj);
|
|
49
44
|
if (!globalContext.dependencies.has(ref)) {
|
|
50
45
|
globalContext.dependencies.add(ref);
|
|
51
46
|
}
|
package/output/reactive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../source/reactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAElC,sBAAsB;AACtB,MAAM,aAAa,GAAG;IACpB,YAAY,EAAE,IAAI,GAAG,EAAgB;CACtC,CAAA;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgB,CAAA;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAc,OAAgB,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAA;YAC7C,aAAa,CAAC,YAAY,GAAG,eAAe,CAAA;YAC5C,MAAM,MAAM,GAAG,OAAO,EAAE,CAAA;YACxB,aAAa,CAAC,YAAY,GAAG,UAAU,CAAA;YACvC,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAc,GAAW;IAC1C,qBAAqB,CAAC,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAA;QACpE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,GAAG,EAAE,CAAA;SACN;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAMD,SAAS,eAAe,CAAc,KAAQ;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAEvC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,8BAA8B,EAAE;QACpE,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,EAAE;KACjB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../source/reactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAElC,sBAAsB;AACtB,MAAM,aAAa,GAAG;IACpB,YAAY,EAAE,IAAI,GAAG,EAAgB;CACtC,CAAA;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgB,CAAA;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAc,OAAgB,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAA;YAC7C,aAAa,CAAC,YAAY,GAAG,eAAe,CAAA;YAC5C,MAAM,MAAM,GAAG,OAAO,EAAE,CAAA;YACxB,aAAa,CAAC,YAAY,GAAG,UAAU,CAAA;YACvC,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAc,GAAW;IAC1C,qBAAqB,CAAC,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAA;QACpE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,GAAG,EAAE,CAAA;SACN;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAMD,SAAS,eAAe,CAAc,KAAQ;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAEvC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,8BAA8B,EAAE;QACpE,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,EAAE;KACjB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,KAAK,CAAc,GAAW,EAAE,QAAuB;IACrE,MAAM,IAAI,GAAuB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAA;IACxF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,GAAM;IACjC,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IAEhC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACxC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACpC;IAED,IAAI,KAAK,GAAM,GAAG,CAAC,KAAK,CAAA;IAExB,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;QACnC,GAAG;YACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACpC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,GAAG,CAAC,QAAQ;YACV,KAAK,GAAG,QAAQ,CAAA;YAChB,UAAU,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,KAAK,CAAA;QACd,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import { AirxElement } from '../element';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
ensureRendered: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare function innerRender(element: AirxElement, domRef: Element, options?: RenderOptions): Instance;
|
|
8
|
-
export declare function render(element: AirxElement, domRef: Element): Instance;
|
|
9
|
-
export {};
|
|
2
|
+
import { PluginContext } from './common/plugins';
|
|
3
|
+
import { Instance } from './common';
|
|
4
|
+
export declare function render(pluginContext: PluginContext, element: AirxElement, domRef: Element): Instance;
|
package/output/render/browser.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLogger } from '../logger';
|
|
2
2
|
import { InnerAirxComponentContext, performUnitOfWork } from './common';
|
|
3
|
-
export function
|
|
3
|
+
export function render(pluginContext, element, domRef) {
|
|
4
4
|
const rootInstance = {
|
|
5
5
|
domRef,
|
|
6
6
|
context: new InnerAirxComponentContext()
|
|
@@ -9,7 +9,6 @@ export function innerRender(element, domRef, options) {
|
|
|
9
9
|
const context = {
|
|
10
10
|
rootInstance,
|
|
11
11
|
nextUnitOfWork: null,
|
|
12
|
-
firstRendered: false,
|
|
13
12
|
needCommitDom: false
|
|
14
13
|
};
|
|
15
14
|
const appInstance = {
|
|
@@ -28,104 +27,10 @@ export function innerRender(element, domRef, options) {
|
|
|
28
27
|
const logger = createLogger('commitDom');
|
|
29
28
|
logger.debug('commitDom', rootInstance);
|
|
30
29
|
function updateDomProperties(dom, nextProps, prevProps = {}) {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const isClass = (key) => key === 'class';
|
|
35
|
-
const isEvent = (key) => key.startsWith("on");
|
|
36
|
-
const isChildren = (key) => key === 'children';
|
|
37
|
-
const isGone = (_prev, next) => (key) => !(key in next);
|
|
38
|
-
const isNew = (prev, next) => (key) => prev[key] !== next[key];
|
|
39
|
-
const isProperty = (key) => !isChildren(key) && !isEvent(key) && !isStyle(key) && !isClass(key) && !isKey(key) && !isRef(key);
|
|
40
|
-
// https://developer.mozilla.org/zh-CN/docs/Web/API/Node
|
|
41
|
-
if (dom.nodeName === '#text' || dom.nodeName === '#comment') {
|
|
42
|
-
const textNode = dom;
|
|
43
|
-
if (textNode.nodeValue !== nextProps.textContent) {
|
|
44
|
-
textNode.nodeValue = String(nextProps.textContent);
|
|
45
|
-
}
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
// remove old style
|
|
49
|
-
const oldStyle = prevProps?.style;
|
|
50
|
-
if (typeof oldStyle === 'object' && oldStyle != null) {
|
|
51
|
-
if (!('style' in dom) || !dom.style)
|
|
52
|
-
return;
|
|
53
|
-
Object.keys(oldStyle).forEach(key => {
|
|
54
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
55
|
-
if ('style' in dom && dom.style) {
|
|
56
|
-
delete dom.style[key];
|
|
57
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
// add new style
|
|
62
|
-
const newStyle = nextProps?.style;
|
|
63
|
-
if (typeof newStyle === 'object' && newStyle != null) {
|
|
64
|
-
if (!('style' in dom) || !dom.style)
|
|
65
|
-
return;
|
|
66
|
-
Object.keys(newStyle).forEach((key) => {
|
|
67
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
68
|
-
const value = newStyle?.[key];
|
|
69
|
-
dom.style[key] = value == null ? '' : value;
|
|
70
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
if (dom.className !== nextProps?.class) {
|
|
74
|
-
if (!nextProps?.class) {
|
|
75
|
-
dom.removeAttribute('class');
|
|
76
|
-
}
|
|
77
|
-
else if (typeof nextProps?.class === 'string') {
|
|
78
|
-
dom.setAttribute('class', nextProps?.class);
|
|
79
|
-
}
|
|
30
|
+
for (const plugin of pluginContext.plugins) {
|
|
31
|
+
if (plugin.updateDom)
|
|
32
|
+
plugin.updateDom(dom, nextProps, prevProps);
|
|
80
33
|
}
|
|
81
|
-
//Remove old or changed event listeners
|
|
82
|
-
Object.keys(prevProps)
|
|
83
|
-
.filter(isEvent)
|
|
84
|
-
.filter(key => !(key in nextProps) ||
|
|
85
|
-
isNew(prevProps, nextProps)(key))
|
|
86
|
-
.forEach(name => {
|
|
87
|
-
const eventType = name
|
|
88
|
-
.toLowerCase()
|
|
89
|
-
.substring(2);
|
|
90
|
-
if (prevProps[name] == null)
|
|
91
|
-
return;
|
|
92
|
-
if (typeof prevProps[name] !== 'function') {
|
|
93
|
-
console.error('EventListener is not a function');
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
97
|
-
dom.removeEventListener(eventType, prevProps[name]);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
// Add event listeners
|
|
101
|
-
Object.keys(nextProps)
|
|
102
|
-
.filter(isEvent)
|
|
103
|
-
.filter(isNew(prevProps, nextProps))
|
|
104
|
-
.forEach(name => {
|
|
105
|
-
const eventType = name
|
|
106
|
-
.toLowerCase()
|
|
107
|
-
.substring(2);
|
|
108
|
-
if (nextProps[name] == null)
|
|
109
|
-
return;
|
|
110
|
-
if (typeof nextProps[name] !== 'function') {
|
|
111
|
-
console.error('EventListener is not a function');
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
|
-
dom.addEventListener(eventType, nextProps[name]);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
// Remove old properties
|
|
119
|
-
Object.keys(prevProps)
|
|
120
|
-
.filter(isProperty)
|
|
121
|
-
.filter(isGone(prevProps, nextProps))
|
|
122
|
-
.forEach(name => dom.setAttribute(name, ''));
|
|
123
|
-
// Set new or changed properties
|
|
124
|
-
Object.keys(nextProps)
|
|
125
|
-
.filter(isProperty)
|
|
126
|
-
.filter(isNew(prevProps, nextProps))
|
|
127
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
128
|
-
.forEach(name => dom.setAttribute(name, nextProps[name]));
|
|
129
34
|
}
|
|
130
35
|
function getParentDom(instance) {
|
|
131
36
|
if (instance.parent?.domRef != null) {
|
|
@@ -267,18 +172,14 @@ export function innerRender(element, domRef, options) {
|
|
|
267
172
|
const logger = createLogger('workLoop');
|
|
268
173
|
while (context.nextUnitOfWork && !shouldYield) {
|
|
269
174
|
logger.debug('nextUnitOfWork', context.nextUnitOfWork);
|
|
270
|
-
context.nextUnitOfWork = performUnitOfWork(context.nextUnitOfWork, onUpdateRequire);
|
|
175
|
+
context.nextUnitOfWork = performUnitOfWork(pluginContext, context.nextUnitOfWork, onUpdateRequire);
|
|
271
176
|
if (context.nextUnitOfWork == null)
|
|
272
177
|
context.needCommitDom = true;
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
if (deadline)
|
|
276
|
-
shouldYield = deadline.timeRemaining() < 1;
|
|
277
|
-
}
|
|
178
|
+
if (deadline)
|
|
179
|
+
shouldYield = deadline.timeRemaining() < 1;
|
|
278
180
|
}
|
|
279
181
|
if (context.needCommitDom && context.rootInstance.child) {
|
|
280
182
|
commitDom(context.rootInstance.child, context.rootInstance.domRef?.firstChild || undefined);
|
|
281
|
-
context.firstRendered = true;
|
|
282
183
|
context.needCommitDom = false;
|
|
283
184
|
}
|
|
284
185
|
requestIdleCallback(workLoop);
|
|
@@ -287,7 +188,4 @@ export function innerRender(element, domRef, options) {
|
|
|
287
188
|
workLoop();
|
|
288
189
|
return context.rootInstance;
|
|
289
190
|
}
|
|
290
|
-
export function render(element, domRef) {
|
|
291
|
-
return innerRender(element, domRef);
|
|
292
|
-
}
|
|
293
191
|
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../source/render/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../source/render/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AirxComponentContext } from '../../element';
|
|
2
|
+
interface GlobalContext {
|
|
3
|
+
current: AirxComponentContext | null;
|
|
4
|
+
}
|
|
5
|
+
export declare const globalContext: GlobalContext;
|
|
6
|
+
export declare const onMounted: AirxComponentContext['onMounted'];
|
|
7
|
+
export declare const onUnmounted: AirxComponentContext['onUnmounted'];
|
|
8
|
+
export declare const inject: AirxComponentContext['inject'];
|
|
9
|
+
export declare const provide: AirxComponentContext['provide'];
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const globalContext = {
|
|
2
|
+
current: null
|
|
3
|
+
};
|
|
4
|
+
function useContext() {
|
|
5
|
+
if (globalContext.current == null) {
|
|
6
|
+
throw new Error('Unable to find a valid component context');
|
|
7
|
+
}
|
|
8
|
+
return globalContext.current;
|
|
9
|
+
}
|
|
10
|
+
export const onMounted = (listener) => {
|
|
11
|
+
return useContext().onMounted(listener);
|
|
12
|
+
};
|
|
13
|
+
export const onUnmounted = (listener) => {
|
|
14
|
+
return useContext().onUnmounted(listener);
|
|
15
|
+
};
|
|
16
|
+
export const inject = (key) => {
|
|
17
|
+
return useContext().inject(key);
|
|
18
|
+
};
|
|
19
|
+
export const provide = (key, value) => {
|
|
20
|
+
return useContext().provide(key, value);
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../source/render/common/hooks.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,IAAI;CACd,CAAA;AAED,SAAS,UAAU;IACjB,IAAI,aAAa,CAAC,OAAO,IAAI,IAAI,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;IAED,OAAO,aAAa,CAAC,OAAO,CAAA;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAsC,CAAC,QAAQ,EAAE,EAAE;IACvE,OAAO,UAAU,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;AACzC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAwC,CAAC,QAAQ,EAAE,EAAE;IAC3E,OAAO,UAAU,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAmC,CAAC,GAAG,EAAE,EAAE;IAC5D,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAoC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACrE,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC,CAAA"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import { Ref } from '../../reactive';
|
|
2
1
|
import { AirxComponentContext, AirxComponentMountedListener, AirxComponentRender, AirxComponentUnmountedListener, AirxElement } from '../../element';
|
|
3
|
-
|
|
4
|
-
export declare const onUnmounted: AirxComponentContext['onUnmounted'];
|
|
5
|
-
export declare const inject: AirxComponentContext['inject'];
|
|
6
|
-
export declare const provide: AirxComponentContext['provide'];
|
|
2
|
+
import { PluginContext } from './plugins';
|
|
7
3
|
export type Disposer = () => void;
|
|
8
|
-
export declare class InnerAirxComponentContext
|
|
9
|
-
instance
|
|
4
|
+
export declare class InnerAirxComponentContext implements AirxComponentContext {
|
|
5
|
+
instance: Instance;
|
|
10
6
|
private disposers;
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
providedMap: Map<unknown, unknown>;
|
|
8
|
+
injectedMap: Map<unknown, unknown>;
|
|
13
9
|
private mountListeners;
|
|
14
10
|
private unmountedListeners;
|
|
15
11
|
triggerMounted(): void;
|
|
@@ -17,7 +13,7 @@ export declare class InnerAirxComponentContext<DOM = Element | string> implement
|
|
|
17
13
|
onMounted(listener: AirxComponentMountedListener): void;
|
|
18
14
|
onUnmounted(listener: AirxComponentUnmountedListener): void;
|
|
19
15
|
provide<T = unknown>(key: any, value: any): (v: T) => void;
|
|
20
|
-
inject<T = unknown>(key: any):
|
|
16
|
+
inject<T = unknown>(key: any): T | undefined;
|
|
21
17
|
addDisposer(...disposers: Disposer[]): void;
|
|
22
18
|
dispose(): void;
|
|
23
19
|
/**
|
|
@@ -34,18 +30,18 @@ export declare class InnerAirxComponentContext<DOM = Element | string> implement
|
|
|
34
30
|
* ↓ | |
|
|
35
31
|
* instance -sibling→ instance...
|
|
36
32
|
*/
|
|
37
|
-
export interface Instance
|
|
38
|
-
domRef?:
|
|
39
|
-
child?: Instance
|
|
40
|
-
parent?: Instance
|
|
41
|
-
sibling?: Instance
|
|
42
|
-
deletions?: Set<Instance
|
|
33
|
+
export interface Instance {
|
|
34
|
+
domRef?: Element;
|
|
35
|
+
child?: Instance;
|
|
36
|
+
parent?: Instance;
|
|
37
|
+
sibling?: Instance;
|
|
38
|
+
deletions?: Set<Instance>;
|
|
43
39
|
element?: AirxElement;
|
|
44
40
|
beforeElement?: AirxElement;
|
|
45
41
|
render?: AirxComponentRender;
|
|
46
|
-
|
|
42
|
+
needReRender?: boolean;
|
|
47
43
|
elementNamespace?: string;
|
|
48
|
-
context: InnerAirxComponentContext
|
|
44
|
+
context: InnerAirxComponentContext;
|
|
49
45
|
memoProps?: any;
|
|
50
46
|
}
|
|
51
47
|
/**
|
|
@@ -53,12 +49,12 @@ export interface Instance<DOM = Element | string> {
|
|
|
53
49
|
* @param parentInstance 当前正在处理的组件的实例
|
|
54
50
|
* @param children 当前组件的子节点
|
|
55
51
|
*/
|
|
56
|
-
export declare function reconcileChildren(parentInstance: Instance, childrenElementArray: AirxElement[]): void;
|
|
52
|
+
export declare function reconcileChildren(appContext: PluginContext, parentInstance: Instance, childrenElementArray: AirxElement[]): void;
|
|
57
53
|
type OnUpdateRequire = (instance: Instance) => void;
|
|
58
54
|
/**
|
|
59
55
|
* 处理单个 instance
|
|
60
56
|
* @param instance 当前处理的实例
|
|
61
57
|
* @returns 返回下一个需要处理的 instance
|
|
62
58
|
*/
|
|
63
|
-
export declare function performUnitOfWork(instance: Instance, onUpdateRequire?: OnUpdateRequire): Instance | null;
|
|
59
|
+
export declare function performUnitOfWork(pluginContext: PluginContext, instance: Instance, onUpdateRequire?: OnUpdateRequire): Instance | null;
|
|
64
60
|
export {};
|
|
@@ -1,27 +1,7 @@
|
|
|
1
1
|
import { createLogger } from '../../logger';
|
|
2
|
-
import { watch,
|
|
2
|
+
import { watch, createCollector } from '../../reactive';
|
|
3
3
|
import { createElement, isValidElement } from '../../element';
|
|
4
|
-
|
|
5
|
-
current: null
|
|
6
|
-
};
|
|
7
|
-
function useContext() {
|
|
8
|
-
if (globalContext.current == null) {
|
|
9
|
-
throw new Error('Unable to find a valid component context');
|
|
10
|
-
}
|
|
11
|
-
return globalContext.current;
|
|
12
|
-
}
|
|
13
|
-
export const onMounted = (listener) => {
|
|
14
|
-
return useContext().onMounted(listener);
|
|
15
|
-
};
|
|
16
|
-
export const onUnmounted = (listener) => {
|
|
17
|
-
return useContext().onUnmounted(listener);
|
|
18
|
-
};
|
|
19
|
-
export const inject = (key) => {
|
|
20
|
-
return useContext().inject(key);
|
|
21
|
-
};
|
|
22
|
-
export const provide = (key, value) => {
|
|
23
|
-
return useContext().provide(key, value);
|
|
24
|
-
};
|
|
4
|
+
import { globalContext } from './hooks';
|
|
25
5
|
export class InnerAirxComponentContext {
|
|
26
6
|
instance;
|
|
27
7
|
disposers = new Set();
|
|
@@ -73,48 +53,24 @@ export class InnerAirxComponentContext {
|
|
|
73
53
|
}
|
|
74
54
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
75
55
|
provide(key, value) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
80
|
-
const ref = this.providedMap.get(key);
|
|
81
|
-
ref.value = value;
|
|
82
|
-
return newValue => ref.value = newValue;
|
|
56
|
+
this.providedMap.set(key, value);
|
|
57
|
+
return v => this.providedMap.set(key, v);
|
|
83
58
|
}
|
|
84
59
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
85
60
|
inject(key) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
* @returns 返回找到的值的 Ref 和提供该值的实例
|
|
94
|
-
*/
|
|
95
|
-
const getResultOfContext = () => {
|
|
96
|
-
let provider = null;
|
|
97
|
-
let result = null;
|
|
98
|
-
let nextParentInstance = this.instance;
|
|
99
|
-
while (nextParentInstance != null) {
|
|
100
|
-
provider = nextParentInstance;
|
|
101
|
-
result = nextParentInstance.context.providedMap.get(key) || null;
|
|
102
|
-
if (result != null)
|
|
103
|
-
break;
|
|
104
|
-
nextParentInstance = nextParentInstance.parent;
|
|
61
|
+
const getProvideValueForParent = (instance, key) => {
|
|
62
|
+
if (instance && instance.context) {
|
|
63
|
+
const value = instance.context.providedMap.get(key);
|
|
64
|
+
if (value != undefined)
|
|
65
|
+
return value;
|
|
66
|
+
if (instance.parent)
|
|
67
|
+
return getProvideValueForParent(instance.parent, key);
|
|
105
68
|
}
|
|
106
|
-
return
|
|
69
|
+
return undefined;
|
|
107
70
|
};
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
this.addDisposer(watch(result, () => {
|
|
112
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
|
-
resultRef.value = result.value;
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
|
-
resultRef.value = result?.value;
|
|
117
|
-
return resultRef;
|
|
71
|
+
const currentParentValue = getProvideValueForParent(this.instance.parent, key);
|
|
72
|
+
this.injectedMap.set(key, currentParentValue); // 更新本地值
|
|
73
|
+
return this.injectedMap.get(key);
|
|
118
74
|
}
|
|
119
75
|
addDisposer(...disposers) {
|
|
120
76
|
disposers.forEach(disposer => {
|
|
@@ -155,7 +111,7 @@ export class InnerAirxComponentContext {
|
|
|
155
111
|
* @param parentInstance 当前正在处理的组件的实例
|
|
156
112
|
* @param children 当前组件的子节点
|
|
157
113
|
*/
|
|
158
|
-
export function reconcileChildren(parentInstance, childrenElementArray) {
|
|
114
|
+
export function reconcileChildren(appContext, parentInstance, childrenElementArray) {
|
|
159
115
|
const logger = createLogger('reconcileChildren');
|
|
160
116
|
logger.debug('reconcileChildren', parentInstance, childrenElementArray);
|
|
161
117
|
// parentInstance ←--------
|
|
@@ -209,18 +165,16 @@ export function reconcileChildren(parentInstance, childrenElementArray) {
|
|
|
209
165
|
const instance = childrenInstanceMap.get(innerKey) || null;
|
|
210
166
|
return [instance, () => childrenInstanceMap.delete(innerKey)];
|
|
211
167
|
}
|
|
212
|
-
/**
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
if (instance.element.type !== nextElement.type)
|
|
223
|
-
return false;
|
|
168
|
+
/** 是否复用实例 */
|
|
169
|
+
function isReuseInstance(instance, nextElement) {
|
|
170
|
+
for (const plugin of appContext.plugins) {
|
|
171
|
+
if (typeof plugin.isReuseInstance === 'function') {
|
|
172
|
+
const result = plugin.isReuseInstance(instance, nextElement);
|
|
173
|
+
// 任意一个插件要求不复用就不复用
|
|
174
|
+
if (result === false)
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
224
178
|
return true;
|
|
225
179
|
}
|
|
226
180
|
function updateMemoProps(instance) {
|
|
@@ -244,48 +198,16 @@ export function reconcileChildren(parentInstance, childrenElementArray) {
|
|
|
244
198
|
instance.memoProps[key] = value;
|
|
245
199
|
}
|
|
246
200
|
}
|
|
247
|
-
function
|
|
248
|
-
const
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
if (typeof preProps !== 'object'
|
|
254
|
-
|| typeof nextProps !== 'object'
|
|
255
|
-
|| preProps === null
|
|
256
|
-
|| nextProps === null) {
|
|
257
|
-
logger.debug('props must be an object');
|
|
258
|
-
return true;
|
|
259
|
-
}
|
|
260
|
-
// 对应 key 的值不相同返回 false
|
|
261
|
-
const prevKeys = Object.keys(preProps);
|
|
262
|
-
for (let index = 0; index < prevKeys.length; index++) {
|
|
263
|
-
const key = prevKeys[index];
|
|
264
|
-
if (key !== 'children' && key !== 'key') {
|
|
265
|
-
if (!Object.hasOwn(nextProps, key))
|
|
201
|
+
function isNeedReRender(instance) {
|
|
202
|
+
for (const plugin of appContext.plugins) {
|
|
203
|
+
if (typeof plugin.isReRender === 'function') {
|
|
204
|
+
const result = plugin.isReRender(instance);
|
|
205
|
+
// 任意一个插件要求重新渲染就重新渲染
|
|
206
|
+
if (result === true)
|
|
266
207
|
return true;
|
|
267
|
-
if (!Object.is(preProps[key], nextProps[key]))
|
|
268
|
-
return true;
|
|
269
|
-
}
|
|
270
|
-
if (key === 'children') {
|
|
271
|
-
const prevChildren = preProps['children'];
|
|
272
|
-
const nextChildren = nextProps['children'];
|
|
273
|
-
// children 都是空的,则无需更新
|
|
274
|
-
if (prevChildren.length === 0 && nextChildren.length === 0)
|
|
275
|
-
return false;
|
|
276
|
-
// 简单比较一下 child 的引用
|
|
277
|
-
for (let index = 0; index < prevChildren.length; index++) {
|
|
278
|
-
const prevChild = prevChildren[index];
|
|
279
|
-
const nextChild = nextChildren[index];
|
|
280
|
-
if (prevChild !== nextChild)
|
|
281
|
-
return true;
|
|
282
|
-
if (typeof prevChild !== typeof nextChild)
|
|
283
|
-
return true;
|
|
284
|
-
}
|
|
285
208
|
}
|
|
286
|
-
return false;
|
|
287
209
|
}
|
|
288
|
-
return
|
|
210
|
+
return false;
|
|
289
211
|
}
|
|
290
212
|
function getElementNamespace(element) {
|
|
291
213
|
const ns = Object.keys(element.props)
|
|
@@ -306,16 +228,15 @@ export function reconcileChildren(parentInstance, childrenElementArray) {
|
|
|
306
228
|
for (let index = 0; index < childrenElementArray.length; index++) {
|
|
307
229
|
const element = childrenElementArray[index];
|
|
308
230
|
const [instance, seize] = getChildInstance(element, index);
|
|
309
|
-
|
|
310
|
-
if (isSameType) {
|
|
231
|
+
if (instance && isReuseInstance(instance, element)) {
|
|
311
232
|
seize(); // 从 childrenInstanceMap 中释放
|
|
312
233
|
newChildrenInstanceArray.push(instance);
|
|
313
234
|
instance.beforeElement = instance.element;
|
|
314
235
|
instance.element = element;
|
|
315
236
|
updateMemoProps(instance);
|
|
316
237
|
// 如果父组件更新了,子组件全部都要更新
|
|
317
|
-
if (instance.
|
|
318
|
-
instance.
|
|
238
|
+
if (instance.needReRender !== true && typeof element.type === 'function') {
|
|
239
|
+
instance.needReRender = parentInstance.needReRender || isNeedReRender(instance);
|
|
319
240
|
}
|
|
320
241
|
}
|
|
321
242
|
else {
|
|
@@ -371,7 +292,7 @@ export function reconcileChildren(parentInstance, childrenElementArray) {
|
|
|
371
292
|
* @param instance 当前处理的实例
|
|
372
293
|
* @returns 返回下一个需要处理的 instance
|
|
373
294
|
*/
|
|
374
|
-
export function performUnitOfWork(instance, onUpdateRequire) {
|
|
295
|
+
export function performUnitOfWork(pluginContext, instance, onUpdateRequire) {
|
|
375
296
|
const element = instance.element;
|
|
376
297
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
377
298
|
function childrenAsElements(children) {
|
|
@@ -403,17 +324,17 @@ export function performUnitOfWork(instance, onUpdateRequire) {
|
|
|
403
324
|
instance.render = collector.collect(() => component(instance.memoProps));
|
|
404
325
|
globalContext.current = beforeContext;
|
|
405
326
|
const children = collector.collect(() => instance.render?.());
|
|
406
|
-
reconcileChildren(instance, childrenAsElements(children));
|
|
327
|
+
reconcileChildren(pluginContext, instance, childrenAsElements(children));
|
|
407
328
|
}
|
|
408
|
-
if (instance.
|
|
329
|
+
if (instance.needReRender) {
|
|
409
330
|
const children = collector.collect(() => instance.render?.());
|
|
410
|
-
reconcileChildren(instance, childrenAsElements(children));
|
|
411
|
-
delete instance.
|
|
331
|
+
reconcileChildren(pluginContext, instance, childrenAsElements(children));
|
|
332
|
+
delete instance.needReRender;
|
|
412
333
|
}
|
|
413
334
|
// 处理依赖触发的更新
|
|
414
335
|
collector.complete().forEach(ref => {
|
|
415
336
|
instance.context.addDisposer(watch(ref, () => {
|
|
416
|
-
instance.
|
|
337
|
+
instance.needReRender = true;
|
|
417
338
|
onUpdateRequire?.(instance);
|
|
418
339
|
}));
|
|
419
340
|
});
|
|
@@ -421,7 +342,7 @@ export function performUnitOfWork(instance, onUpdateRequire) {
|
|
|
421
342
|
// 浏览器组件/标签
|
|
422
343
|
if (typeof element?.type === 'string') {
|
|
423
344
|
if ('children' in element.props && Array.isArray(element.props.children)) {
|
|
424
|
-
reconcileChildren(instance, childrenAsElements(element.props.children));
|
|
345
|
+
reconcileChildren(pluginContext, instance, childrenAsElements(element.props.children));
|
|
425
346
|
}
|
|
426
347
|
}
|
|
427
348
|
// 优先处理 child
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/render/common/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/render/common/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BasicLogic } from './internal/basic';
|
|
2
|
+
import { InjectSystem } from './internal/inject';
|
|
3
|
+
export class PluginContext {
|
|
4
|
+
plugins = [new BasicLogic(), new InjectSystem()];
|
|
5
|
+
registerPlugin(...plugins) {
|
|
6
|
+
this.plugins.push(...plugins);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../source/render/common/plugins/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,OAAO,aAAa;IACxB,OAAO,GAAa,CAAC,IAAI,UAAU,EAAE,EAAE,IAAI,YAAY,EAAE,CAAC,CAAA;IAE1D,cAAc,CAAC,GAAG,OAAiB;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Instance } from '..';
|
|
2
|
+
import { AirxElement, Props } from '../../../element';
|
|
3
|
+
export { PluginContext } from './context';
|
|
4
|
+
export interface Plugin {
|
|
5
|
+
/**
|
|
6
|
+
* 检查是否需要重新渲染
|
|
7
|
+
* 只要任意一个插件返回了 true,就一定会重新渲染,如果返回 void,则继续交给其他插件判断
|
|
8
|
+
*/
|
|
9
|
+
isReRender?(instance: Instance): true | void;
|
|
10
|
+
/**
|
|
11
|
+
* dom 更新方法
|
|
12
|
+
*/
|
|
13
|
+
updateDom?(dom: Element, nextProps: Props, prevProps?: Props): void;
|
|
14
|
+
/**
|
|
15
|
+
* 检查是否需要重新创建实例
|
|
16
|
+
* 只要任意一个插件返回了 false,就一定会重新创建实例,如果返回 void,则继续交给其他插件判断
|
|
17
|
+
*/
|
|
18
|
+
isReuseInstance?(instance: Instance, nextElement: AirxElement): false | void;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../source/render/common/plugins/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AirxElement, Props } from '../../../../element';
|
|
2
|
+
import { Instance } from '../../index';
|
|
3
|
+
import { Plugin } from '../index';
|
|
4
|
+
export declare class BasicLogic implements Plugin {
|
|
5
|
+
private logger;
|
|
6
|
+
private isSameProps;
|
|
7
|
+
isReRender(instance: Instance): true | void;
|
|
8
|
+
updateDom(dom: Element, nextProps: Props, prevProps?: Props): void;
|
|
9
|
+
isReuseInstance(instance: Instance, nextElement: AirxElement): false | void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { createLogger } from '../../../../logger';
|
|
2
|
+
export class BasicLogic {
|
|
3
|
+
logger = createLogger('basicLogicPlugin');
|
|
4
|
+
isSameProps(preProps, nextProps) {
|
|
5
|
+
if (Object.is(nextProps, preProps)) {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
if (typeof preProps !== 'object'
|
|
9
|
+
|| typeof nextProps !== 'object'
|
|
10
|
+
|| preProps === null
|
|
11
|
+
|| nextProps === null) {
|
|
12
|
+
this.logger.debug('props must be an object');
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
// 对应 key 的值不相同返回 false
|
|
16
|
+
const prevKeys = Object.keys(preProps);
|
|
17
|
+
for (let index = 0; index < prevKeys.length; index++) {
|
|
18
|
+
const key = prevKeys[index];
|
|
19
|
+
if (key !== 'children' && key !== 'key') {
|
|
20
|
+
if (!Object.hasOwn(nextProps, key))
|
|
21
|
+
return false;
|
|
22
|
+
if (!Object.is(preProps[key], nextProps[key]))
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (key === 'children') {
|
|
26
|
+
const prevChildren = preProps['children'];
|
|
27
|
+
const nextChildren = nextProps['children'];
|
|
28
|
+
// children 都是空的,则无需更新
|
|
29
|
+
if (prevChildren.length === 0 && nextChildren.length === 0)
|
|
30
|
+
return true;
|
|
31
|
+
// 简单比较一下 child 的引用
|
|
32
|
+
for (let index = 0; index < prevChildren.length; index++) {
|
|
33
|
+
const prevChild = prevChildren[index];
|
|
34
|
+
const nextChild = nextChildren[index];
|
|
35
|
+
if (prevChild !== nextChild)
|
|
36
|
+
return false;
|
|
37
|
+
if (typeof prevChild !== typeof nextChild)
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
isReRender(instance) {
|
|
46
|
+
const nextProps = instance.element?.props;
|
|
47
|
+
const preProps = instance.beforeElement?.props;
|
|
48
|
+
if (!this.isSameProps(preProps, nextProps))
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
updateDom(dom, nextProps, prevProps = {}) {
|
|
52
|
+
this.logger.debug('updateDom', dom, nextProps, prevProps);
|
|
53
|
+
const isKey = (key) => key === 'key';
|
|
54
|
+
const isRef = (key) => key === 'ref';
|
|
55
|
+
const isStyle = (key) => key === 'style';
|
|
56
|
+
const isClass = (key) => key === 'class';
|
|
57
|
+
const isEvent = (key) => key.startsWith("on");
|
|
58
|
+
const isChildren = (key) => key === 'children';
|
|
59
|
+
const isGone = (_prev, next) => (key) => !(key in next);
|
|
60
|
+
const isNew = (prev, next) => (key) => prev[key] !== next[key];
|
|
61
|
+
const isProperty = (key) => !isChildren(key) && !isEvent(key) && !isStyle(key) && !isClass(key) && !isKey(key) && !isRef(key);
|
|
62
|
+
// https://developer.mozilla.org/zh-CN/docs/Web/API/Node
|
|
63
|
+
if (dom.nodeName === '#text' || dom.nodeName === '#comment') {
|
|
64
|
+
const textNode = dom;
|
|
65
|
+
if (textNode.nodeValue !== nextProps.textContent) {
|
|
66
|
+
textNode.nodeValue = String(nextProps.textContent);
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// remove old style
|
|
71
|
+
const oldStyle = prevProps?.style;
|
|
72
|
+
if (typeof oldStyle === 'object' && oldStyle != null) {
|
|
73
|
+
if (!('style' in dom) || !dom.style)
|
|
74
|
+
return;
|
|
75
|
+
Object.keys(oldStyle).forEach(key => {
|
|
76
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
77
|
+
if ('style' in dom && dom.style) {
|
|
78
|
+
delete dom.style[key];
|
|
79
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// add new style
|
|
84
|
+
const newStyle = nextProps?.style;
|
|
85
|
+
if (typeof newStyle === 'object' && newStyle != null) {
|
|
86
|
+
if (!('style' in dom) || !dom.style)
|
|
87
|
+
return;
|
|
88
|
+
Object.keys(newStyle).forEach((key) => {
|
|
89
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
90
|
+
const value = newStyle?.[key];
|
|
91
|
+
dom.style[key] = value == null ? '' : value;
|
|
92
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
if (dom.className !== nextProps?.class) {
|
|
96
|
+
if (!nextProps?.class) {
|
|
97
|
+
dom.removeAttribute('class');
|
|
98
|
+
}
|
|
99
|
+
else if (typeof nextProps?.class === 'string') {
|
|
100
|
+
dom.setAttribute('class', nextProps?.class);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//Remove old or changed event listeners
|
|
104
|
+
Object.keys(prevProps)
|
|
105
|
+
.filter(isEvent)
|
|
106
|
+
.filter(key => !(key in nextProps) ||
|
|
107
|
+
isNew(prevProps, nextProps)(key))
|
|
108
|
+
.forEach(name => {
|
|
109
|
+
const eventType = name
|
|
110
|
+
.toLowerCase()
|
|
111
|
+
.substring(2);
|
|
112
|
+
if (prevProps[name] == null)
|
|
113
|
+
return;
|
|
114
|
+
if (typeof prevProps[name] !== 'function') {
|
|
115
|
+
console.error('EventListener is not a function');
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
119
|
+
dom.removeEventListener(eventType, prevProps[name]);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
// Add event listeners
|
|
123
|
+
Object.keys(nextProps)
|
|
124
|
+
.filter(isEvent)
|
|
125
|
+
.filter(isNew(prevProps, nextProps))
|
|
126
|
+
.forEach(name => {
|
|
127
|
+
const eventType = name
|
|
128
|
+
.toLowerCase()
|
|
129
|
+
.substring(2);
|
|
130
|
+
if (nextProps[name] == null)
|
|
131
|
+
return;
|
|
132
|
+
if (typeof nextProps[name] !== 'function') {
|
|
133
|
+
console.error('EventListener is not a function');
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
137
|
+
dom.addEventListener(eventType, nextProps[name]);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
// Remove old properties
|
|
141
|
+
Object.keys(prevProps)
|
|
142
|
+
.filter(isProperty)
|
|
143
|
+
.filter(isGone(prevProps, nextProps))
|
|
144
|
+
.forEach(name => dom.setAttribute(name, ''));
|
|
145
|
+
// Set new or changed properties
|
|
146
|
+
Object.keys(nextProps)
|
|
147
|
+
.filter(isProperty)
|
|
148
|
+
.filter(isNew(prevProps, nextProps))
|
|
149
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
150
|
+
.forEach(name => dom.setAttribute(name, nextProps[name]));
|
|
151
|
+
}
|
|
152
|
+
isReuseInstance(instance, nextElement) {
|
|
153
|
+
if (instance && instance.element && instance.element.type !== nextElement.type) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=basic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../source/render/common/plugins/internal/basic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export class InjectSystem {
|
|
2
|
+
getProvideValueForParent(instance, key) {
|
|
3
|
+
if (instance && instance.context) {
|
|
4
|
+
const value = instance.context.providedMap.get(key);
|
|
5
|
+
if (value != undefined)
|
|
6
|
+
return value;
|
|
7
|
+
if (instance.parent) {
|
|
8
|
+
return this.getProvideValueForParent(instance.parent, key);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
isReuseInstance(instance) {
|
|
14
|
+
const injectedKeys = [...instance.context.injectedMap.keys()];
|
|
15
|
+
for (let index = 0; index < injectedKeys.length; index++) {
|
|
16
|
+
const key = injectedKeys[index];
|
|
17
|
+
const currentValue = instance.context.injectedMap.get(key);
|
|
18
|
+
const parentValue = this.getProvideValueForParent(instance.parent, key);
|
|
19
|
+
// 如果发现任何值发生变化,则重建实例
|
|
20
|
+
if (parentValue !== currentValue)
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../../source/render/common/plugins/internal/inject.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IACf,wBAAwB,CAAC,QAA8B,EAAE,GAAY;QAC3E,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;YAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnD,IAAI,KAAK,IAAI,SAAS;gBAAE,OAAO,KAAK,CAAA;YACpC,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,OAAO,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;aAC3D;SACF;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,eAAe,CAAC,QAAkB;QAChC,MAAM,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACxD,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;YAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAEvE,oBAAoB;YACpB,IAAI,WAAW,KAAK,YAAY;gBAAE,OAAO,KAAK,CAAA;SAC/C;IACH,CAAC;CACF"}
|
package/output/render/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { inject, provide, onMounted, onUnmounted } from './common';
|
|
2
|
-
export { render
|
|
3
|
-
export {
|
|
1
|
+
export { inject, provide, onMounted, onUnmounted } from './common/hooks';
|
|
2
|
+
export { render } from './browser';
|
|
3
|
+
export { Plugin, PluginContext } from './common/plugins';
|
package/output/render/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { inject, provide, onMounted, onUnmounted } from './common';
|
|
2
|
-
export { render
|
|
3
|
-
export {
|
|
1
|
+
export { inject, provide, onMounted, onUnmounted } from './common/hooks';
|
|
2
|
+
export { render } from './browser';
|
|
3
|
+
export { PluginContext } from './common/plugins';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,WAAW,EACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,WAAW,EACZ,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAU,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
|