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

亚马逊的网站建设网页设计与制作dw教程

亚马逊的网站建设,网页设计与制作dw教程,网站建设皿金手指谷哥壹柒,京东网页设计教程微前端架构设计与实战示例 微前端架构将大型前端应用拆分为多个独立的子应用,实现独立开发、测试和部署,提升应用的可维护性和扩展性。 一、微前端架构设计 1. 核心设计原则 (1)应用拆分 原则:将单体应用拆分为独…

微前端架构设计与实战示例

微前端架构将大型前端应用拆分为多个独立的子应用,实现独立开发、测试和部署,提升应用的可维护性和扩展性。

一、微前端架构设计

1. 核心设计原则

(1)应用拆分
  • 原则:将单体应用拆分为独立的子应用,每个子应用负责特定的业务功能。
  • 示例:电商应用拆分为商品、购物车、订单等子应用。
(2)技术栈无关
  • 原则:子应用可使用不同的技术栈,如React、Vue、Angular等。
  • 示例:商品子应用使用React,购物车子应用使用Vue。
(3)独立运行
  • 原则:子应用具备独立的运行时环境,不依赖主应用或其他子应用。
  • 示例:每个子应用有自己的入口文件和生命周期管理。
(4)按需加载
  • 原则:根据用户操作或路由动态加载子应用,提升性能。
  • 示例:访问订单页面时,仅加载订单子应用。
(5)隔离与通信
  • 原则:实现子应用间的样式和运行环境隔离,提供安全的通信机制。
  • 示例:使用CSS隔离技术防止样式冲突,通过事件总线进行通信。

2. 架构模式

(1)基座模式(主从架构)
  • 特点:主应用作为基座,负责路由分发、子应用加载、全局状态管理和公共依赖共享。
  • 示例:主应用管理路由,根据路由加载对应的子应用。
(2)去中心化模式
  • 特点:无中心主应用,子应用通过约定协议直接通信。
  • 示例:子应用通过URL参数或自定义事件进行交互。
(3)模块联邦(Module Federation)
  • 特点:通过Webpack 5的Module Federation实现模块级共享,子应用可互相引用暴露的模块。
  • 示例:商品子应用暴露Header组件,订单子应用引用该组件。

3. 关键技术

(1)路由控制
  • 实现:主应用监听URL变化,根据路由规则加载子应用。
  • 示例:访问/product时加载商品子应用。
(2)沙箱隔离
  • 实现:使用Proxy隔离全局变量,采用CSS隔离技术防止样式冲突。
  • 示例:使用qiankun提供的沙箱机制隔离子应用的运行环境。
(3)资源加载
  • 实现:动态加载子应用的JS/CSS资源。
  • 示例:使用SystemJS或Webpack联邦按需加载子应用代码。
(4)通信机制
  • 实现:自定义事件、全局状态管理(如Redux/Mobx)、URL参数传递等。
  • 示例:通过事件总线在子应用间传递数据。
(5)部署集成
  • 实现:子应用独立部署,主应用通过配置动态获取子应用入口。
  • 示例:主应用配置文件中维护子应用的访问地址和加载规则。

二、实战示例:基于qiankun构建微前端应用

1. 项目背景

假设有一个电商平台,包含用户管理、商品展示、订单管理等模块。我们将这些模块拆分为独立的微前端应用,使用qiankun进行集成。

2. 环境准备

  • 安装Node.js和npm
  • 创建项目目录

3. 初始化主应用

(1)创建主应用
mkdir micro-frontend-main
cd micro-frontend-main
npm init -y
(2)安装依赖
npm install qiankun --save
(3)编写主应用代码

index.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>微前端主应用</title>
</head>
<body><div id="subapp-container"></div><script src="index.js"></script>
</body>
</html>

index.js:

import { registerMicroApps, start } from 'qiankun';registerMicroApps([{name: 'user-app', // 子应用名称entry: '//localhost:7101', // 子应用入口地址container: '#subapp-container', // 子应用渲染容器activeRule: '/user', // 激活规则,匹配路由时加载子应用},{name: 'product-app',entry: '//localhost:7102',container: '#subapp-container',activeRule: '/product',},{name: 'order-app',entry: '//localhost:7103',container: '#subapp-container',activeRule: '/order',},
]);start();

4. 创建子应用

(1)创建用户管理子应用
mkdir user-app
cd user-app
npm init -y
(2)安装依赖(以React为例)
npm install react react-dom --save
(3)编写子应用代码

index.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>用户管理子应用</title>
</head>
<body><div id="root"></div><script src="index.js"></script>
</body>
</html>

index.js:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';function render(props) {ReactDOM.render(<App {...props} />, document.getElementById('root'));
}// 导出生命周期函数
export async function bootstrap() {console.log('用户管理子应用 bootstrap');
}export async function mount(props) {console.log('用户管理子应用 mount', props);render(props);
}export async function unmount() {console.log('用户管理子应用 unmount');ReactDOM.unmountComponentAtNode(document.getElementById('root'));
}

App.js:

import React from 'react';const App = (props) => {return (<div><h1>用户管理子应用</h1><p>欢迎,{props.name}</p></div>);
};export default App;
(4)配置子应用打包

package.json:

{"name": "user-app","version": "1.0.0","scripts": {"start": "webpack-dev-server --mode development","build": "webpack --mode production"},"dependencies": {"react": "^18.2.0","react-dom": "^18.2.0"},"devDependencies": {"webpack": "^5.74.0","webpack-cli": "^5.0.1","webpack-dev-server": "^4.11.1"}
}

webpack.config.js:

const path = require('path');module.exports = {entry: './index.js',output: {filename: 'index.js',library: 'userApp', // 指定库名称libraryTarget: 'umd', // 通用模块定义publicPath: '//localhost:7101/', // 子应用访问路径chunkFilename: '[name].js',},mode: 'development',devServer: {contentBase: path.join(__dirname, 'dist'),compress: true,port: 7101,historyApiFallback: true,},module: {rules: [{test: /\.js$/,exclude: /node_modules/,use: {loader: 'babel-loader',options: {presets: ['@babel/preset-react'],},},},],},
};
(5)重复上述步骤创建商品展示和订单管理子应用

5. 运行项目

(1)启动子应用
cd user-app
npm start

同样启动product-apporder-app

(2)启动主应用
cd micro-frontend-main
npx http-server -p 8080

访问http://localhost:8080,通过路由切换查看不同子应用的展示效果。

三、总结

通过以上设计与实战示例,展示了微前端架构的核心原则、架构模式和关键技术。使用qiankun框架,成功构建了一个包含用户管理、商品展示、订单管理等模块的微前端应用,实现了子应用的独立开发、部署和集成,提升了应用的可维护性和扩展性。


文章转载自:

http://9pS4Qnmf.dxqfh.cn
http://E0SjhibF.dxqfh.cn
http://NH1gxvAY.dxqfh.cn
http://KsGOvdda.dxqfh.cn
http://o6shT5mT.dxqfh.cn
http://KIhgnY5u.dxqfh.cn
http://9QkhTPZP.dxqfh.cn
http://mPJnXt7P.dxqfh.cn
http://SJSZmDA4.dxqfh.cn
http://pR77i92Q.dxqfh.cn
http://pQi43UZj.dxqfh.cn
http://RbNVFJjS.dxqfh.cn
http://oWKtgviV.dxqfh.cn
http://FkD4SR8f.dxqfh.cn
http://rra56fZf.dxqfh.cn
http://E4M5mn4W.dxqfh.cn
http://VKmXWBPj.dxqfh.cn
http://CJxT4G6D.dxqfh.cn
http://vrVPn0HC.dxqfh.cn
http://jlO82x0O.dxqfh.cn
http://KxoH6zxL.dxqfh.cn
http://fbr04ZV7.dxqfh.cn
http://gt4zzaJu.dxqfh.cn
http://HQxCPPGu.dxqfh.cn
http://M6um7mdF.dxqfh.cn
http://No8BAgbQ.dxqfh.cn
http://Jr5NxQYf.dxqfh.cn
http://36nIu2Nq.dxqfh.cn
http://A6swSkf6.dxqfh.cn
http://1IOOpxVQ.dxqfh.cn
http://www.dtcms.com/wzjs/771162.html

相关文章:

  • 南宁网站开发企业安义网站建设
  • 深圳企业做网站公自学制作网站难不难
  • supercell账号注册网站新能源电动汽车哪个牌子的质量好
  • 商洛做网站的公司电话房地产市场发展趋势
  • 为什么做金融网站犯法5118网站怎么做的
  • 网站模板建设教程国际域名注册查询
  • 无锡网站怎么优化排名确定网站界面
  • 在百度上做个网站要多少钱泉州网站建设网站
  • 如何查询网站备案号哈尔滨视频剪辑培训机构
  • 全球最大的中文搜索引擎seo优化易下拉排名
  • 网站自创免费的建设网站软件
  • 网站建设与维护 目录传奇176网页游戏
  • 怎么自己做网站免费的cn域名与com域名
  • 什么站做咨询网站好做淘宝客最好的网站是什么网站
  • 网站对联代码廊坊企业网站外包
  • 买卖链接网站scratch软件下载
  • 建房城乡建设部网站沧州网站设计公司价格
  • 保定网站模板建站wordpress raw
  • 南阳优化网站排名百度网址大全怎么设为主页
  • 网站开发工具c正规的网上购物平台
  • 网站改版中销售网站开发的背景
  • 天津大型网站设计公司重庆平台网站建设
  • 网站根目录是什么浙江大境软装设计公司
  • 丢了么网站专业网站设计师去哪找
  • 河南省建设协会网站网站建设ps模板下载
  • 网站 用户体验的重要性城乡建设部网站首页甲级
  • 企业建设网站的目的手机上自己设计房子软件
  • 永嘉高端网站建设效果要建设一个网站需要什么手续费
  • 做门户网站代码质量方面具体需要注意什么网站设计需要哪些技能
  • 用小米路由器做网站wordpress页面是什么意思