日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

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

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

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

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

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

接下來會和大家分享一下具體的實現, 如果大家想了解 next-admin 這款開源管理系統。ebs28資訊網——每日最新資訊28at.com

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

Github地址:https://github.com/MrXujiang/next-adminebs28資訊網——每日最新資訊28at.com

在線地址:http://next-admin.comebs28資訊網——每日最新資訊28at.com

Next.js部署神器PM2

ebs28資訊網——每日最新資訊28at.com

為什么會選擇PM2來部署呢?這里給大家總結幾個優勢:ebs28資訊網——每日最新資訊28at.com

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

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

下面給大家介紹一下 Next-Admin 的 pm2 配置:ebs28資訊網——每日最新資訊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應用的部署需求,大家可以參考一下。接下來我們只需要在服務器上運行腳本即可啟動:ebs28資訊網——每日最新資訊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"

啟動后的效果:ebs28資訊網——每日最新資訊28at.com

ebs28資訊網——每日最新資訊28at.com

優化打包后圖表渲染白屏問題

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

const MyChart = (props: IChart) => {    const chartRef = useRef<any>(null);    const { type, data, id } =props;    useEffect(() => {        let chart:any;        // 避免在開發環境渲染兩次    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>}

這樣生產環境和開發環境就可以優雅的渲染圖表了:ebs28資訊網——每日最新資訊28at.com

ebs28資訊網——每日最新資訊28at.com

支持PC端和移動端適配

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

ebs28資訊網——每日最新資訊28at.com

ebs28資訊網——每日最新資訊28at.com

ebs28資訊網——每日最新資訊28at.com

ebs28資訊網——每日最新資訊28at.com

ebs28資訊網——每日最新資訊28at.com

內置在線白板

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

ebs28資訊網——每日最新資訊28at.com

后期規劃

后面會對國際化支持,搭建引擎,頁面渲染引擎做一些內置頁面,幫助大家更高效的開發管理系統。ebs28資訊網——每日最新資訊28at.com

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

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

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

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

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 阿克苏市| 阜南县| 竹山县| 宣武区| 咸阳市| 文成县| 滨州市| 商河县| 上犹县| 铁岭市| 漠河县| 吉林省| 台北县| 沈丘县| 河津市| 兴宁市| 台湾省| 常德市| 永善县| 沈阳市| 章丘市| 巢湖市| 醴陵市| 三台县| 安多县| 河间市| 乌审旗| 象山县| 贺州市| 安塞县| 大理市| 志丹县| 剑阁县| 石楼县| 抚远县| 麻江县| 北流市| 祁连县| 顺昌县| 鄂托克前旗| 沽源县|