当前位置: 首页 > wzjs >正文

企业建设网站需要什么资料wordpress开启用户登录

企业建设网站需要什么资料,wordpress开启用户登录,如何在工商局网站做清算组备案,wordpress 产品属性tag前言 微前端是一种新的前端架构理念,它允许我们将多个独立开发、独立部署的前端应用组合成一个大的应用。 使用微前端的主要好处是可以让不同的团队独立开发和维护应用的不同部分,从而提高开发效率和减少部署风险。而其中,Single-SPA 是一个…

前言

微前端是一种新的前端架构理念,它允许我们将多个独立开发、独立部署的前端应用组合成一个大的应用。
使用微前端的主要好处是可以让不同的团队独立开发和维护应用的不同部分,从而提高开发效率和减少部署风险。而其中,Single-SPA 是一个非常流行的微前端框架,它能够帮助我们轻松实现微前端架构。

什么是 Single-SPA?

Single-SPA 的全称是 “Single Page Application”,它是一个前端微服务架构的 JavaScript 库。它允许我们在一个页面中运行多个框架(例如 React、Vue、Angular 等),并且能够动态加载和卸载这些框架。这意味着你可以在同一个应用中使用多种技术,并且可以逐步迁移旧技术到新技术,而无需一次性重写全部代码。

Single-SPA 的基本概念

在开始使用 Single-SPA 之前,我们需要了解几个基本概念:

  1. Applications(应用):这是我们要加载和卸载的微前端应用。
  2. Parcels(包裹):这是一些独立的代码片段,可以在应用内部进行动态加载和卸载。
  3. Modules(模块):这是一些公共的代码片段,可以在多个应用之间共享。

如何安装 Single-SPA

首先,我们需要安装 Single-SPA。这可以通过 npm 来完成:

npm install single-spa

创建一个简单的微前端应用

我们将创建两个简单的 React 应用,并使用 Single-SPA 将它们组合在一起。

创建 React 应用

首先,使用 Create React App 创建两个独立的应用:

npx create-react-app app1
npx create-react-app app2
配置 Single-SPA

在两个 React 应用中,我们需要安装 single-spa-react 包:

npm install single-spa-react

接下来,在每个应用的 src 目录下创建一个 root-config.js 文件,用于配置 Single-SPA:

import { registerApplication, start } from 'single-spa';
import { loadApp } from './loadApp';registerApplication('app1',() => loadApp('http://localhost:3001'),location => location.pathname.startsWith('/app1')
);registerApplication('app2',() => loadApp('http://localhost:3002'),location => location.pathname.startsWith('/app2')
);start();

在这个配置文件中,我们注册了两个应用 app1app2,并指定它们的入口 URL 和激活条件(URL 路径)。

配置每个应用的入口

接着,我们需要配置每个应用的入口文件。在 app1src 目录下创建一个 index.js 文件:

import React from 'react';
import ReactDOM from 'react-dom';
import singleSpaReact from 'single-spa-react';
import App from './App';const lifecycles = singleSpaReact({React,ReactDOM,rootComponent: App,
});export const { bootstrap, mount, unmount } = lifecycles;

同样地,在 app2 中创建相同的文件和配置:

import React from 'react';
import ReactDOM from 'react-dom';
import singleSpaReact from 'single-spa-react';
import App from './App';const lifecycles = singleSpaReact({React,ReactDOM,rootComponent: App,
});export const { bootstrap, mount, unmount } = lifecycles;

启动应用

现在,我们需要启动两个 React 应用,并确保它们运行在不同的端口。你可以修改 package.json 文件中的 start 命令:

"scripts": {"start": "PORT=3001 react-scripts start"
}

"scripts": {"start": "PORT=3002 react-scripts start"
}

在两个终端分别运行:

npm start

最后,我们可以启动 Single-SPA 的主应用。创建一个新的项目用于加载这两个微前端应用,并在 public/index.html 中添加:

<script src="http://localhost:3001/static/js/bundle.js"></script>
<script src="http://localhost:3002/static/js/bundle.js"></script>
<script src="./root-config.js"></script>

优化和扩展

虽然我们已经成功构建了一个简单的微前端架构,但实际应用中可能会遇到更多复杂的场景和需求。接下来,我们将讨论一些优化和扩展的方法,使我们的微前端架构更加健壮和灵活。

1. 动态加载应用

在实际项目中,我们可能不希望所有应用在主应用加载时就全部加载完毕,这会增加初始加载时间。我们可以使用动态加载的方法,只有在需要时才加载对应的应用。

registerApplication('app1',() => System.import('app1'),location => location.pathname.startsWith('/app1')
);registerApplication('app2',() => System.import('app2'),location => location.pathname.startsWith('/app2')
);

这里我们使用 System.import 来动态加载应用,确保只在需要时加载相应的代码。

2.共享依赖

在多个微前端应用中,某些库(如 React)可能会被重复加载,导致资源浪费和性能问题。我们可以通过配置 webpack 的 externals 来共享公共依赖。

例如,在应用的 webpack.config.js 中添加:

externals: {'react': 'React','react-dom': 'ReactDOM'
}

然后在 HTML 中引入这些外部依赖:

<script src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>

3.路由管理

由于我们使用多个独立的应用,路由管理也需要相应调整。建议使用每个应用各自的路由管理,并在主应用中配置顶层路由。

在主应用中:

import { BrowserRouter, Route, Switch } from 'react-router-dom';
import { start, registerApplication } from 'single-spa';registerApplication('app1',() => System.import('app1'),location => location.pathname.startsWith('/app1')
);registerApplication('app2',() => System.import('app2'),location => location.pathname.startsWith('/app2')
);start();const Root = () => (<BrowserRouter><Switch><Route path="/app1" /><Route path="/app2" /></Switch></BrowserRouter>
);export default Root;

这样每个子应用可以继续使用自己熟悉的路由管理库,如 React Router 或 Vue Router。

4.状态管理

在微前端架构中,状态管理可能会变得复杂。每个微前端应用可以使用自己的状态管理工具(如 Redux 或 Vuex),但在一些情况下,我们可能需要共享全局状态。

一种解决方法是使用事件总线或者全局状态库,如 RxJS 或 MobX。

下面是使用 RxJS 共享状态的示例:

import { BehaviorSubject } from 'rxjs';const globalState = new BehaviorSubject({});export const setGlobalState = (newState) => {globalState.next(newState);
};export const subscribeToGlobalState = (callback) => {return globalState.subscribe(callback);
};

然后在各个微前端应用中使用:

import { subscribeToGlobalState } from './globalState';subscribeToGlobalState((state) => {// 在应用中响应全局状态变化
});

总结

通过以上步骤,我们已经成功使用 Single-SPA 创建了一个简单的微前端架构。我们可以在不同的团队中使用不同的技术栈进行开发,并将它们组合在一起成为一个大的应用。这种方法不仅提高了开发效率,还降低了技术迁移的风险。随着技术的发展,微前端将成为未来前端架构的重要组成部分。希望这篇教程能帮助你理解和使用 Single-SPA,开启你的微前端之旅!


文章转载自:

http://doecv1QU.kzdwt.cn
http://2hHUQA5y.kzdwt.cn
http://xKSwao2Y.kzdwt.cn
http://Ec9ny5vc.kzdwt.cn
http://fVru8TkO.kzdwt.cn
http://CT7Nfdx1.kzdwt.cn
http://NHuF8Rav.kzdwt.cn
http://SKpyRadC.kzdwt.cn
http://dCLw5Syu.kzdwt.cn
http://SBcgebvw.kzdwt.cn
http://MclyLvHA.kzdwt.cn
http://zU0NWB9B.kzdwt.cn
http://oShCHL0h.kzdwt.cn
http://KsSlcSpK.kzdwt.cn
http://GUayLero.kzdwt.cn
http://sNCCXNIW.kzdwt.cn
http://NedLO2uq.kzdwt.cn
http://E5DZ1NR3.kzdwt.cn
http://YWrW6TX0.kzdwt.cn
http://DgdtBfGA.kzdwt.cn
http://osulE6Gv.kzdwt.cn
http://qVvXpQY3.kzdwt.cn
http://jIEXOwwG.kzdwt.cn
http://wvdUKZMX.kzdwt.cn
http://CZ7Eda84.kzdwt.cn
http://3fjjtzWJ.kzdwt.cn
http://R0wIntKW.kzdwt.cn
http://fsdRJ0kM.kzdwt.cn
http://UPpOwMBK.kzdwt.cn
http://YS2r5Bha.kzdwt.cn
http://www.dtcms.com/wzjs/668061.html

相关文章:

  • 河南外贸网站建设wordpress改网站logo
  • 做网站应该掌握的技术互联网站备案登记表
  • 网站免费申请注册2022营业执照年审
  • 为什么要建设个人网站word模板免费下载
  • php做的购物网站网站开发公司东莞
  • 南昌住房建设局网站网站如何做电脑和手机app
  • 莱西网站建设网络营销推广方法和应用场景
  • 施工企业资质划分如何做自己网站的seo
  • 资阳市网站建设成都旅游景点大全排名
  • 类似一起做网店的网站vs和php哪个做网站好
  • 最好的医疗网站建设北京值得去的互联网公司
  • 上海联通 网站备案wordpress转为app
  • 福建西南建设有限公司网站网易企业邮箱登陆入口官网
  • 设计类的网站和简介郑州app软件定制
  • php源码 个人网站华为云云速建站教程
  • 做智能网站系统下载地址在线代理网页浏览
  • wordpress 公司网站 模板 下载国内外网站网站
  • 校园网上零售网站建设方案北京网站建设模板
  • 电子商务安全问题 网站权限管理腾讯企业邮箱免费注册入口
  • 西安建站费用网站维护合同范本
  • 公众号网站制作全球速卖通入驻条件
  • 网站评估 源码国外租车网站模板
  • 一起做财经网站网上购物商城网站
  • 机械制造网站漳州最便宜的网站建设价格
  • 成都网站设计 常凡云网站优化营销公司
  • 企业网站开发教程北京网站建设好
  • 一个空间可以建多个网站做文字头像的网站
  • 品牌网站源码wordpress的关键词插件
  • 我想在泉州做网站中国建设银行广西分行网站首页
  • 专业建站外包wordpress做的网站扩展性