react项目应该如何创建和部署?
Admin 2021-05-17 群英技术资讯 1688 次浏览
文本主要给大家介绍的是react项目的创建以及部署的过程,对于刚接触的react朋友有一定学习和借鉴价值,需要的朋友可以参考,下面我们就一起来看看react项目的创建以及部署具体的操作。
react 脚手架初始化,社区比较火的有cra(create-react-app)和umi,从以下几点进行对比最终选择了比较贴合项目的umi。
最终考虑到一个项目需要快速搭建需要许多成型的插件支持所以采用了umi。antd真香!!!@umijs/plugin-model,推荐这个插件看懂内部实践基本就掌握了数据管理了。
umi提供app.ts,运行时配置文件,可以扩展运行时的能力,简单理解就是渲染你页面的前置操作都可以放在这里。这个概念可以类
比storybook(preview.js),如果要自己实现可以在对应html插入script。这里会涉及一些项目关联内容,因为项目需要内嵌在已有项目中,所以我们采取iframe的方式,不可避免我们需要通信,以及iframe大小自适应。
iframe通信,因为域不一样所以采取了,window.postmessage。为了维护数据可读性建议定义对应的事件传输内容,避免后期维护难度上升,如果需要频繁通信更建议采取微前端方案。
iframe自适应, iframe-resizer插件帮我们解决,记住嵌入与被嵌入的都需要安装,不然无法通信不可能自适应。这里遇到一个问题页面嵌入的时候body节点一直无法由内部撑大所以需要使用iframe-resizer提供的自定义计算方法自己在子页面提供对应方法。代码如下:
子系统
import 'iframe-resizer/js/iframeResizer.contentWindow.js';
// 如果内嵌则运行时打开监听
const iframeInit = () => {
if (parent !== window) {
(window as any).iFrameResizer = {
heightCalculationMethod: () => {
return document.body.children[0].clientHeight;
},
};
window.onmessage = (event: any) => {
if (Array.isArray(event.data)) {
if (event.data[0] === '事件名') {
console.log(event.data[1]) // 事件参数
}
}
};
parent.postMessage({ msg: 'MessageFromIframePage' }, '*');
}
};
iframeInit();
经过一轮打包,终于到了上线了。这里主要讲讲nginx怎么配置转发请求。在开发期间,如果需要对多个不同域的接口时,前端第一个反应就是配置proxy。上线时就有点懵了。
proxy: {
'/api': {
target: 'http://aaa.com',
changeOrigin: true,
pathRewrite: { '^/api': '' },
},
'/b-api': {
target: 'http://bbb.com/',
changeOrigin: true,
pathRewrite: { '^/b-api': '' },
},
},
nginx配置如下
server {
listen 80;
server_name 访问地址;
set $rooturi "xxxx/dist";
location ~ .*\.(jpg|jpeg|gif|png|webp|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|svg|proto)$ {
expires 365d;
root $rooturi;
}
location ^~/api/ {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://aaa.com;
}
location ^~/b-api/ {
rewrite ^/b-api/(.*)$ /$1 break;
proxy_pass http://bbb.com;
}
location / {
root $rooturi;
try_files $uri $uri/ /index.html =404;
add_header Cache-Control "no-cache";
add_header Access-Control-Allow-Origin *;
}
}
现在大家对于react项目的创建以及部署的过程应该都有一定的了解了吧,希望大家阅读完这篇文章能有所收获,想要了解更多react项目的内容,大家可以继续关注其他文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章给大家带来了关于javascript的相关知识,其中主要整理了Promise的基本概念及使用方法的相关问题,包括了Promise基本概念、使用Promise解决回调地狱等等内容,下面一起来看一下,希望对大家有帮助。
这篇文章主要为大家详细介绍了JavaScript实现电商平台商品细节图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
如果说是JQuery是手工作坊,那么Vue.js就像是一座工厂,虽然Vue.js做的任何事情JQuery都可以做,但无论是代码量还是流程规范性都是前者较优,这篇文章主要给大家汇总介绍了关于Vue项目中常用的实用技巧,需要的朋友可以参考下
这篇文章主要为大家详细介绍了JavaScript仿京东放大镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要为大家详细介绍了vue+ts实现元素鼠标拖动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008