@viewfly/core 3.0.0-alpha.2 → 3.0.0-alpha.4
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/dist/base/_render-context.d.ts +4 -0
- package/dist/base/_utils.d.ts +0 -1
- package/dist/base/component.d.ts +5 -5
- package/dist/base/dep.d.ts +3 -2
- package/dist/base/jsx-element.d.ts +3 -4
- package/dist/base/ref.d.ts +46 -0
- package/dist/base/renderer.d.ts +1 -1
- package/dist/di/reflective-injector.d.ts +1 -1
- package/dist/index.esm.js +503 -259
- package/dist/index.js +611 -923
- package/dist/reactive/array-handlers.d.ts +3 -2
- package/dist/reactive/effect.d.ts +8 -1
- package/dist/reactive/map-handlers.d.ts +1 -1
- package/dist/reactive/reactive.d.ts +8 -3
- package/dist/viewfly.d.ts +1 -1
- package/package.json +1 -1
package/dist/base/_utils.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Key, ViewFlyNode } from './jsx-element';
|
|
2
2
|
import { NativeNode } from './injection-tokens';
|
|
3
3
|
import { Component, ComponentSetup } from './component';
|
|
4
|
-
export declare function hasChange(newProps: Record<string, any>, oldProps: Record<string, any>): boolean;
|
|
5
4
|
export declare const refKey = "ref";
|
|
6
5
|
export declare function comparePropsWithCallbacks(oldProps: Record<string, any>, newProps: Record<string, any>, onDeleted: (key: string, oldValue: any) => void, onAdded: (key: string, value: any) => void, onUpdated: (key: string, newValue: any, oldValue: any) => void): void;
|
|
7
6
|
export declare function classToString(config: unknown): string;
|
package/dist/base/component.d.ts
CHANGED
|
@@ -6,8 +6,7 @@ import { ComponentAtom } from './_utils';
|
|
|
6
6
|
export declare function getSetupContext(need?: boolean): Component;
|
|
7
7
|
export type ClassNames = string | Record<string, unknown> | false | null | undefined | ClassNames[];
|
|
8
8
|
export interface ComponentInstance {
|
|
9
|
-
|
|
10
|
-
$render(): JSXNode;
|
|
9
|
+
render(): JSXNode;
|
|
11
10
|
}
|
|
12
11
|
export type JSXNode = JSX.Element | JSX.ElementClass | string | number | boolean | null | undefined | Iterable<JSXNode>;
|
|
13
12
|
export interface ComponentSetup<P = any> {
|
|
@@ -15,9 +14,10 @@ export interface ComponentSetup<P = any> {
|
|
|
15
14
|
}
|
|
16
15
|
export interface ComponentViewMetadata {
|
|
17
16
|
atom: ComponentAtom;
|
|
18
|
-
|
|
17
|
+
anchorNode: NativeNode;
|
|
19
18
|
isParent: boolean;
|
|
20
|
-
|
|
19
|
+
rootContainer: NativeNode;
|
|
20
|
+
expectContainer: NativeNode;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Viewfly 组件管理类,用于管理组件的生命周期,上下文等
|
|
@@ -48,7 +48,7 @@ export declare class Component {
|
|
|
48
48
|
constructor(parentComponent: Component | null, type: ComponentSetup, props: Record<string, any>, key?: Key);
|
|
49
49
|
markAsDirtied(): void;
|
|
50
50
|
markAsChanged(changedComponent?: Component): void;
|
|
51
|
-
render(update: (template: JSXNode
|
|
51
|
+
render(update: (template: JSXNode) => void): void;
|
|
52
52
|
updateProps(newProps: Record<string, any>): void;
|
|
53
53
|
rerender(): JSXNode;
|
|
54
54
|
destroy(): void;
|
package/dist/base/dep.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export declare class Dep {
|
|
2
2
|
effect: () => void;
|
|
3
|
+
flushMode: 'sync' | 'async';
|
|
3
4
|
destroyCallbacks: Array<() => void>;
|
|
4
|
-
constructor(effect: () => void);
|
|
5
|
+
constructor(effect: () => void, flushMode?: 'sync' | 'async');
|
|
5
6
|
destroy(): void;
|
|
6
7
|
}
|
|
7
|
-
export declare function getDepContext(): Dep
|
|
8
|
+
export declare function getDepContext(): Dep;
|
|
8
9
|
export declare function pushDepContext(dep: Dep): void;
|
|
9
10
|
export declare function popDepContext(): void;
|
|
@@ -37,7 +37,7 @@ export declare function withMark<T extends ComponentSetup>(marks: string | strin
|
|
|
37
37
|
*/
|
|
38
38
|
export declare function applyMark(mark: string | string[], render: () => JSXNode): JSXNode;
|
|
39
39
|
export interface PortalProps<T extends NativeNode> extends Props {
|
|
40
|
-
|
|
40
|
+
container: T;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* 将子节点渲染到指定节点
|
|
@@ -49,7 +49,7 @@ export interface PortalProps<T extends NativeNode> extends Props {
|
|
|
49
49
|
* return () => {
|
|
50
50
|
* return (
|
|
51
51
|
* <div>
|
|
52
|
-
* <Portal
|
|
52
|
+
* <Portal container={modal}>
|
|
53
53
|
* 这里的内容将渲染到 modal 节点
|
|
54
54
|
* </Portal>
|
|
55
55
|
* </div>
|
|
@@ -59,6 +59,5 @@ export interface PortalProps<T extends NativeNode> extends Props {
|
|
|
59
59
|
* ```
|
|
60
60
|
*/
|
|
61
61
|
export declare function Portal<T extends NativeNode>(props: PortalProps<T>): {
|
|
62
|
-
|
|
63
|
-
$render(): JSXNode | JSXNode[];
|
|
62
|
+
render(): JSXNode | JSXNode[];
|
|
64
63
|
};
|
package/dist/base/ref.d.ts
CHANGED
|
@@ -22,6 +22,30 @@ export interface DynamicRef<T> {
|
|
|
22
22
|
* }
|
|
23
23
|
* }
|
|
24
24
|
* ```
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* function Child() {
|
|
28
|
+
* return {
|
|
29
|
+
* show() {
|
|
30
|
+
* console.log('show')
|
|
31
|
+
* },
|
|
32
|
+
* render() {
|
|
33
|
+
* return <div>child</div>
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* function App() {
|
|
38
|
+
* const ref = createDynamicRef<typeof Child>((child) => {
|
|
39
|
+
* child.show()
|
|
40
|
+
* return () => {
|
|
41
|
+
* console.log('destroy')
|
|
42
|
+
* }
|
|
43
|
+
* })
|
|
44
|
+
* return () => {
|
|
45
|
+
* return <Child ref={ref}/>
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
25
49
|
*/
|
|
26
50
|
export declare function createDynamicRef<T, U = ExtractInstanceType<T>>(effect: DynamicRef<U>): DynamicRef<U>;
|
|
27
51
|
export type Ref<T> = {
|
|
@@ -43,6 +67,28 @@ export type Ref<T> = {
|
|
|
43
67
|
* }
|
|
44
68
|
* }
|
|
45
69
|
* ```
|
|
70
|
+
* @example
|
|
71
|
+
* ```tsx
|
|
72
|
+
* function Child() {
|
|
73
|
+
* return {
|
|
74
|
+
* show() {
|
|
75
|
+
* console.log('show')
|
|
76
|
+
* },
|
|
77
|
+
* render() {
|
|
78
|
+
* return <div>child</div>
|
|
79
|
+
* }
|
|
80
|
+
* }
|
|
81
|
+
* }
|
|
82
|
+
* function App() {
|
|
83
|
+
* const ref = createRef<typeof Child>()
|
|
84
|
+
* onMounted(() => {
|
|
85
|
+
* ref.value?.show()
|
|
86
|
+
* })
|
|
87
|
+
* return () => {
|
|
88
|
+
* return <Child ref={ref}/>
|
|
89
|
+
* }
|
|
90
|
+
* }
|
|
91
|
+
* ```
|
|
46
92
|
*/
|
|
47
93
|
export declare function createRef<T, U = ExtractInstanceType<T> | null>(): Ref<U | null>;
|
|
48
94
|
export type RefEffects = Map<RefProp<any>, (() => void) | void>;
|
package/dist/base/renderer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { NativeNode, NativeRenderer } from './injection-tokens';
|
|
2
2
|
import { ElementNamespace } from './_utils';
|
|
3
3
|
import { Component } from './component';
|
|
4
|
-
export declare function createRenderer(component: Component, nativeRenderer: NativeRenderer, namespace: ElementNamespace): (
|
|
4
|
+
export declare function createRenderer(component: Component, nativeRenderer: NativeRenderer, namespace: ElementNamespace): (container: NativeNode) => void;
|
|
@@ -10,7 +10,7 @@ import { Scope } from './injectable';
|
|
|
10
10
|
export declare class ReflectiveInjector implements Injector {
|
|
11
11
|
parentInjector: Injector | null;
|
|
12
12
|
protected scope?: (Scope | null) | undefined;
|
|
13
|
-
protected normalizedProviders: NormalizedProvider
|
|
13
|
+
protected normalizedProviders: Map<Type<any> | AbstractType<any> | InjectionToken<any>, NormalizedProvider>;
|
|
14
14
|
protected recordValues: Map<Type<any> | AbstractType<any> | InjectionToken<any>, any>;
|
|
15
15
|
constructor(parentInjector: Injector | null, staticProviders: Provider[], scope?: (Scope | null) | undefined);
|
|
16
16
|
/**
|