typescript 与模块联合共享数据

ss2ws0br  于 12个月前  发布在  TypeScript
关注(0)|答案(1)|浏览(172)

我正在尝试构建vue.js,typescript,vite应用程序。我还使用vite-module-federation-plugin通过不同的应用程序共享代码。我想知道是否有一种方法可以与模块联邦共享实际数据或只是代码?例如,如果我有一个商店,(Pinia商店)我有东西在里面,有没有一种方法可以通过应用程序共享它,使他们能够修改和添加数据到商店中,并在所有应用?
通过模块联合,我可以共享存储的代码,并使其可用于所有应用程序,但不能用于存储本身的示例。一旦存储被初始化,存储上的任何更新都将仅在对其进行变化的应用程序上可见。
代码共享示例:在主机应用程序中:

import { defineConfig } from 'vite';
import Vue from '@vitejs/plugin-vue';
import { ModuleFederationPlugin } from '@module-federation/next/vite';

export default defineConfig({
  plugins: [
    Vue(),
    ModuleFederationPlugin({
      name: 'app1',
      filename: 'remoteEntry.js',
      exposes: {
        './CounterStore': './src/store/counterStore.ts',
      },
    }),
  ],
});

字符串
在消费应用程序中:

import { defineConfig } from 'vite';
import Vue from '@vitejs/plugin-vue';
import { ModuleFederationPlugin } from '@module-federation/next/vite';

export default defineConfig({
  plugins: [
    Vue(),
    ModuleFederationPlugin({
      name: 'app2',
      filename: 'remoteEntry.js',
      remotes: {
        app1: 'app1@http://localhost:3001/remoteEntry.js',
      },
    }),
  ],
});


在动态加载组件后,我得到了上面解释的结果。

j9per5c4

j9per5c41#

Module Federation Documentation开始:
模块联合是一个概念,它允许开发人员在多个JavaScript应用程序或微前端之间共享代码和资源。
不行,你只能分享代码和资产,不能分享州

相关问题