AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

Next.js項目部署,跨端適配,圖表渲染優(yōu)化復盤

來源: 責編: 時間:2024-04-02 17:22:27 182觀看
導讀最近開源了一款基于 Next.js + Antd5.0 的管理后臺系統(tǒng),打算持續(xù)迭代到開發(fā)者能傻瓜式開發(fā)和部署管理后臺的程度, 下面和大家分享一下最近的一些更新。添加pm2持久化部署配置優(yōu)化打包后圖表渲染白屏問題支持PC端和移動

最近開源了一款基于 Next.js + Antd5.0 的管理后臺系統(tǒng),打算持續(xù)迭代到開發(fā)者能傻瓜式開發(fā)和部署管理后臺的程度, 下面和大家分享一下最近的一些更新。pj528資訊網(wǎng)——每日最新資訊28at.com

  • 添加pm2持久化部署配置
  • 優(yōu)化打包后圖表渲染白屏問題
  • 支持PC端和移動端適配
  • 添加白板制作頁面

接下來會和大家分享一下具體的實現(xiàn), 如果大家想了解 next-admin 這款開源管理系統(tǒng)。pj528資訊網(wǎng)——每日最新資訊28at.com

同時也歡迎對 Next.js 感興趣的小伙伴一起共建。pj528資訊網(wǎng)——每日最新資訊28at.com

Github地址:https://github.com/MrXujiang/next-adminpj528資訊網(wǎng)——每日最新資訊28at.com

在線地址:http://next-admin.compj528資訊網(wǎng)——每日最新資訊28at.com

Next.js部署神器PM2

pj528資訊網(wǎng)——每日最新資訊28at.com

為什么會選擇PM2來部署呢?這里給大家總結幾個優(yōu)勢:pj528資訊網(wǎng)——每日最新資訊28at.com

  • 負載均衡:pm2使用Node.js的cluster模塊,可以在服務器上的所有CPU核心上運行多個應用實例,實現(xiàn)負載均衡。
  • 后臺運行:與直接在前臺運行Node.js應用程序相比,pm2可以將應用程序在后臺運行,更加穩(wěn)定。
  • 異常自動重啟(持久化):pm2可以在應用程序停止之后立即重啟,減少了停機時間。pm2可以監(jiān)測應用程序的運行狀態(tài),當進程發(fā)生異常(如無限循環(huán))時,可以停止并重啟不穩(wěn)定的進程。
  • 控制臺應用監(jiān)控:pm2提供了控制臺界面,可以方便地查看應用程序的狀態(tài)、日志和性能指標等信息。

所以說如果對于 nginx 高級玩法不太熟悉, 建議直接用 pm2。pj528資訊網(wǎng)——每日最新資訊28at.com

下面給大家介紹一下 Next-Admin 的 pm2 配置:pj528資訊網(wǎng)——每日最新資訊28at.com

const argEnvIndex = process.argv.indexOf('--env')let argEnv = (argEnvIndex !== -1 && process.argv[argEnvIndex + 1]) || ''const RUN_ENV_MAP = {  local: {    instances: 2,    max_memory_restart: '250M'  },  dev: {    instances: 2,    max_memory_restart: '250M'  },  prod: {    instances: 4,    max_memory_restart: '1000M'  }}if (!(argEnv in RUN_ENV_MAP)) {  argEnv = 'prod'}module.exports = {  apps: [    {      name: 'next-admin',      script: 'node_modules/next/dist/bin/next',      args: 'start -p 80',      instances: RUN_ENV_MAP[argEnv].instances,      exec_mode: 'cluster',      watch: false,      max_memory_restart: RUN_ENV_MAP[argEnv].max_memory_restart,      env_local: {        APP_ENV: 'local'      },      env_dev: {        APP_ENV: 'dev'      },      env_prod: {        APP_ENV: 'prod'      }    }  ]}

配置基本上可以滿足大部分node應用的部署需求,大家可以參考一下。接下來我們只需要在服務器上運行腳本即可啟動:pj528資訊網(wǎng)——每日最新資訊28at.com

"deploy:local": "pnpm build:local && pm2 start pm2.config.js --env local","deploy:dev": "pnpm build:dev && pm2 start pm2.config.js --env dev","deploy:prod": "pm2 start pm2.config.js --env prod"

啟動后的效果:pj528資訊網(wǎng)——每日最新資訊28at.com

pj528資訊網(wǎng)——每日最新資訊28at.com

優(yōu)化打包后圖表渲染白屏問題

由于新版react在開發(fā)環(huán)境下會渲染兩次,這會導致某些庫創(chuàng)建兩個實例, 導致開發(fā)環(huán)境出現(xiàn)渲染問題, 比如我明明渲染一張圖表,結果在開發(fā)瀏覽器卻渲染了兩張。為了避免開發(fā)環(huán)境react組件渲染兩次的問題, 我寫了一個緩存函數(shù),來解決:pj528資訊網(wǎng)——每日最新資訊28at.com

const MyChart = (props: IChart) => {    const chartRef = useRef<any>(null);    const { type, data, id } =props;    useEffect(() => {        let chart:any;        // 避免在開發(fā)環(huán)境渲染兩次    if(isDev) {        let curCache = localStorage.getItem(id);        if(!curCache) {            localStorage.setItem(id, '1');            chart = createChart(chartRef.current, type, data);        }     }else {        chart = createChart(chartRef.current, type, data);    }    return () => {        localStorage.removeItem(id);        chart && chart.destroy();    }    }, [type, data, id]);    return <div ref={chartRef}></div>}

這樣生產(chǎn)環(huán)境和開發(fā)環(huán)境就可以優(yōu)雅的渲染圖表了:pj528資訊網(wǎng)——每日最新資訊28at.com

pj528資訊網(wǎng)——每日最新資訊28at.com

支持PC端和移動端適配

由于目前大部分管理后臺都是針對PC端的, 移動訪問體驗不好, 所以我在 Next-Admin 管理系統(tǒng)中做了適配, 保證在PC和移動端都能有不錯的適配效果。接下來分享幾張移動端訪問 Next-Admin 的頁面:pj528資訊網(wǎng)——每日最新資訊28at.com

pj528資訊網(wǎng)——每日最新資訊28at.com

pj528資訊網(wǎng)——每日最新資訊28at.com

pj528資訊網(wǎng)——每日最新資訊28at.com

pj528資訊網(wǎng)——每日最新資訊28at.com

pj528資訊網(wǎng)——每日最新資訊28at.com

內(nèi)置在線白板

之前寫了一個自定義的白板應用,目前也內(nèi)置進去了,大家可以參考一下:pj528資訊網(wǎng)——每日最新資訊28at.com

pj528資訊網(wǎng)——每日最新資訊28at.com

后期規(guī)劃

后面會對國際化支持,搭建引擎,頁面渲染引擎做一些內(nèi)置頁面,幫助大家更高效的開發(fā)管理系統(tǒng)。pj528資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-80874-0.htmlNext.js項目部署,跨端適配,圖表渲染優(yōu)化復盤

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C++中時間相關函數(shù)用法詳解

下一篇: Node.js 紀錄片都講了什么?我做了這些關鍵時間線的總結!

標簽:
  • 熱門焦點
  • Find N3入網(wǎng):最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經(jīng)正式入網(wǎng),型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • 俄羅斯:將審查iPhone等外國公司設備 保數(shù)據(jù)安全

    iPhone和特斯拉都屬于在各自領域領頭羊的品牌,推出的產(chǎn)品也也都是數(shù)一數(shù)二的,但對于一些國家而言,它們的產(chǎn)品可靠性和安全性還是在限制范圍內(nèi)。近日,俄羅斯聯(lián)邦通信、信息技術
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數(shù)據(jù)來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內(nèi)市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • 容量越大越不壞?24萬塊硬盤故障率報告公布 這些產(chǎn)品零故障

    8月5日消息,云存儲服務商Backblaze發(fā)布了最新的硬盤故障率報告,年故障率有所上升。Backblaze發(fā)布的硬盤季度統(tǒng)計數(shù)據(jù),其中包括故障率等重要方面。這些結
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協(xié)調(diào)和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現(xiàn)手段有以下幾種方式:Object 類下
  • 摸魚心法第一章——和配置文件說拜拜

    為了能摸魚我們團隊做了容器化,但是帶來的問題是服務配置文件很麻煩,然后大家在群里進行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨立配置中心和k8s作為配
  • 19個 JavaScript 單行代碼技巧,讓你看起來像個專業(yè)人士

    今天這篇文章跟大家分享18個JS單行代碼,你只需花幾分鐘時間,即可幫助您了解一些您可能不知道的 JS 知識,如果您已經(jīng)知道了,就當作復習一下,古人云,溫故而知新嘛。現(xiàn)在,我們就開始今
  • 新電商三兄弟,“抖快紅”成團!

    來源:價值研究所作 者:Hernanderz 隨著內(nèi)容電商的概念興起,抖音、快手、小紅書組成的&ldquo;新電商三兄弟&rdquo;成為業(yè)內(nèi)一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • iQOO 11S新品發(fā)布會

    iQOO將在7月4日19:00舉行新品發(fā)布會,推出杭州亞運會電競賽事官方用機iQOO 11S。
Top