create-react-app 按需加載以及部署

閑來無事,就想著把前幾天折騰的問題重新梳理一遍,加深印象.
上面一篇文章有提到升級ejectcra項目.為什么升級這個項目,就是想要折騰,就是想要使用到webpack2,還有一個好處是加深對create-react-app的理解.壞處不言而喻,折騰浪費生命浪費時間.

按需加載

  • AsyncComponent.js
import React, { Component } from "react";

export default function asyncComponent(importComponent) {
    class AsyncComponent extends Component {
        constructor(props) {
            super(props);

            this.state = {
                component: null
            };
        }

        async componentDidMount() {
            const { default: component } = await importComponent();

            this.setState({
                component: component
            });
        }

        render() {
            const Component = this.state.component;

            return Component ? <Component {...this.props} /> : null;
        }
    }

    return AsyncComponent;
}

這個是異步加載組件的方法.到時在需要的組件上加入引用就好.例如在路由里.

  • Menu.js
const AsyncUser = asyncComponent(() => import("./User"));
...
<Route path="/users" component={AsyncUser}/>

部署(nginx以及npm2)

  • nginx

    • 準(zhǔn)備工作
        npm run build
    
    • sudo vim /etc/nginx/sites-enabled/react-app.conf
       server {
           listen 7878;
           server_name 127.0.0.1;
           root /home/deploy/workspace/project/build;
           location / {
               try_files $uri /index.html;
               add_header   Cache-Control no-cache;
               #expires      1d;
           }
       }
    
    • 啟用nginx配置
        sudo service nginx reload
        sudo service nginx restart
    
    • 注意
      如果是阿里云服務(wù)器,可能訪問失敗,阿里云的安全策略默認(rèn)是只開啟了80端口,首先去實例里檢測其他的端口是否開放.
  • pm2

    • installl and start

          sudo npm install pm2 -g
          pm2 start npm -- start
      
    • nginx

        # sudo vim /etc/nginx/sites-available/react-app.conf
        server{
              listen 80 default_server;
              server_name YOUR-SERVER-NAME;
              location / {
                proxy_pass http://localhost:3000; #or any port number here
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
              }
        }
      
    • restart

       sudo service nginx reload
       sudo service nginx restart
      
    
    

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市产禾,隨后出現(xiàn)的幾起案子排作,更是在濱河造成了極大的恐慌,老刑警劉巖亚情,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妄痪,死亡現(xiàn)場離奇詭異,居然都是意外死亡楞件,警方通過查閱死者的電腦和手機衫生,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門裳瘪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人罪针,你說我怎么就攤上這事彭羹。” “怎么了泪酱?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵派殷,是天一觀的道長。 經(jīng)常有香客問我墓阀,道長毡惜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任斯撮,我火速辦了婚禮经伙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勿锅。我一直安慰自己帕膜,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布溢十。 她就那樣靜靜地躺著垮刹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茶宵。 梳的紋絲不亂的頭發(fā)上危纫,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天宗挥,我揣著相機與錄音乌庶,去河邊找鬼。 笑死契耿,一個胖子當(dāng)著我的面吹牛瞒大,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播搪桂,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼透敌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了踢械?” 一聲冷哼從身側(cè)響起酗电,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎内列,沒想到半個月后撵术,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡话瞧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年嫩与,在試婚紗的時候發(fā)現(xiàn)自己被綠了寝姿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡划滋,死狀恐怖饵筑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情处坪,我是刑警寧澤根资,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站同窘,受9級特大地震影響嫂冻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜塞椎,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一桨仿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧案狠,春花似錦服傍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拉庵,卻和暖如春灿椅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钞支。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工茫蛹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烁挟。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像柬采,于是被迫代替她去往敵國和親粉捻。 傳聞我的和親對象是個殘疾皇子肩刃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理续语,服務(wù)發(fā)現(xiàn)疮茄,斷路器,智...
    卡卡羅2017閱讀 134,702評論 18 139
  • nginx在工作中已經(jīng)有好幾個環(huán)境在使用了,每次都是重新去網(wǎng)上扒博客,各種編譯配置帅容,今天自己也整理一份安裝文檔和n...
    AndyChin閱讀 2,305評論 0 4
  • =========================================================...
    lavor閱讀 3,494評論 0 5
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx麦乞?那么一定聽過它的“同行”Apache吧姐直!Ngi...
    JokerW閱讀 32,700評論 24 1,002
  • 解壓縮工具The Unarchive[https://theunarchiver.com/] 視頻播放器IINA[...
    Carve_Time閱讀 543評論 0 3