小编s_k*_*iok的帖子

如何在容器应用程序和微前端应用程序之间共享最新的全局上下文?

我正在使用 webpack 模块联合插件,并且有容器微前端应用程序(两者都是在 React 上编写的)。根据新的要求,我应该使用第三方服务 Auth0 和@auth0/auth0-react包来实现身份验证逻辑。

该包使用上下文和提供程序在组件树之间共享数据(用户信息、令牌等),因此我使用身份验证提供程序包装了我的容器应用程序:

<Auth0Provider
  domain={domain}
  clientId={clientId}
  redirectUri={window.location.origin}
  onRedirectCallback={onRedirectCallback}
>
  {children}
</Auth0Provider>
Run Code Online (Sandbox Code Playgroud)

要访问组件树中任何位置的身份验证数据,我们可以使用useAuth0钩子:

  import { useAuth0 } from '@auth0/auth0-react';
  const {
    isLoading,
    isAuthenticated,
    error,
    user,
    loginWithRedirect,
    logout,
  } = useAuth0();
Run Code Online (Sandbox Code Playgroud)

现在,我陷入困境,如何访问微前端中的最新身份验证数据/上下文?注意:容器应用程序的身份验证上下文将异步更新(在“/token”请求完成后)

AuthProvider根据我的尝试,与我的微前端共享为服务:

容器应用程序webpack 配置:

name: 'container',
exposes: {
  './App': './src/App',
  './AuthenticationProvider': './src/AuthenticationProvider',
},
Run Code Online (Sandbox Code Playgroud)

微前端应用程序webpack 配置:

remotes: {
  container: 'container@http://localhost:8080/remoteEntry.js',
},
Run Code Online (Sandbox Code Playgroud)

然后 import { AuthenticationProvider } from 'container/AuthenticationProvider'; 在我的微前端应用程序中。

当然,它不会按预期工作,最新数据将仅在容器应用程序中。 …

reactjs webpack-module-federation

6
推荐指数
0
解决办法
1348
查看次数

如果属性内部不存在变量,如何正确解构变量?

我在 React 组件内部有一个基于服务器响应的变量,该变量可以位于 prop.prop 或 prop 中。我怎样才能正确地解构这个案子?

 const { myVar } = prop.prop || prop

Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
133
查看次数