@@ -19,18 +19,20 @@ import { PackageManagerTabs } from '@theme';
19
19
20
20
``` tsx
21
21
function createRemoteComponent<T , E extends keyof T >(
22
- // Function to load remote application, e.g., loadRemote('remote1/export-app') or import('remote1/export-app')
23
- lazyComponent : () => Promise <T >,
24
- info ? :
25
- {
22
+ options : {
23
+ // Function to load remote application, e.g., loadRemote('remote1/export-app') or import('remote1/export-app')
24
+ loader: () => Promise <T >,
26
25
// Default is 'default', used to specify module export
27
- export? : E ;
26
+ export? : E ,
27
+ // Parameters that will be passed to defineAsyncComponent
28
+ asyncComponentOptions? : Omit <AsyncComponentOptions , ' loader' >;
28
29
}
29
30
): (props : {
30
31
basename? : string ;
31
32
memoryRoute? : { entryPath: string };
32
33
}) => DefineComponent ;
33
34
35
+
34
36
function createBridgeComponent(bridgeInfo : {
35
37
rootComponent: VueComponent ;
36
38
}): () => {
@@ -105,9 +107,7 @@ export default defineConfig({
105
107
// ./src/router.ts
106
108
import * as bridge from ' @module-federation/bridge-vue3' ;
107
109
108
- const Remote2 = bridge .createRemoteComponent (() =>
109
- loadRemote (' remote1/export-app' ),
110
- );
110
+ const Remote2 = bridge .createRemoteComponent ({ loader : () => loadRemote (' remote1/export-app' ) });
111
111
112
112
const router = createRouter ({
113
113
history: createWebHistory (),
@@ -132,6 +132,8 @@ function createRemoteComponent<T, E extends keyof T>(
132
132
loader: () => Promise <T >,
133
133
// Default is 'default', used to specify module export
134
134
export? : E ;
135
+ // Parameters that will be passed to defineAsyncComponent
136
+ asyncComponentOptions? : Omit <AsyncComponentOptions , ' loader' >;
135
137
}
136
138
): (props : {
137
139
basename? : string ;
@@ -141,7 +143,7 @@ function createRemoteComponent<T, E extends keyof T>(
141
143
142
144
143
145
``` tsx
144
- const Remote1App = createRemoteComponent (() => loadRemote (' remote1/export-app' ));
146
+ const Remote1App = createRemoteComponent ({ loader : () => loadRemote (' remote1/export-app' ) } );
145
147
```
146
148
147
149
* ` options `
@@ -151,14 +153,18 @@ const Remote1App = createRemoteComponent(() => loadRemote('remote1/export-app'))
151
153
* ` export `
152
154
* type: ` string `
153
155
* Purpose: Used to specify module export
156
+ * ` asyncComponentOptions `
157
+ * type: ` Omit<AsyncComponentOptions, 'loader'> `
158
+ * Purpose: Parameters that will be passed to defineAsyncComponent, except for the loader parameter
154
159
``` tsx
155
160
// remote
156
161
export const provider = createBridgeComponent ({
157
162
rootComponent: App
158
163
});
159
164
160
165
// host
161
- const Remote1App = createRemoteComponent (() => loadRemote (' remote1/export-app' ), {
166
+ const Remote1App = createRemoteComponent ({
167
+ loader : () => loadRemote (' remote1/export-app' ),
162
168
export: ' provider'
163
169
});
164
170
```
@@ -170,9 +176,7 @@ const Remote1App = createRemoteComponent(() => loadRemote('remote1/export-app'),
170
176
``` tsx
171
177
import * as bridge from ' @module-federation/bridge-vue3' ;
172
178
173
- const Remote2 = bridge .createRemoteComponent (() =>
174
- loadRemote (' remote1/export-app' ),
175
- );
179
+ const Remote2 = bridge .createRemoteComponent ({ loader : () => loadRemote (' remote1/export-app' ) });
176
180
177
181
const router = createRouter ({
178
182
history: createWebHistory (),
0 commit comments