自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何選擇正確的Node框架:Next, Nuxt, Nest?

開發(fā) 前端
在這篇文章中,我們將研究另外三種非常流行的框架之間的區(qū)別:Next、Nuxt和Nest。這三個框架都是服務器端渲染,它們分別與React、Vue和Angular(三個目前流行的前端框架)密切相關

[[264425]]

 簡介

在上一篇文章中,我探討了三種流行的Node框架:Express、Koa和Hapi的區(qū)別、優(yōu)點和缺點。在這篇文章中,我們將研究另外三種非常流行的框架之間的區(qū)別:Next、Nuxt和Nest。這三個框架都是服務器端渲染,它們分別與React、Vue和Angular(三個目前流行的前端框架)密切相關

  •     我們的比較將基于一下幾點:
    •   GitHub Stars和npm下載
    •   安裝
    •   基本的Hello World應用程序
    •   好處
    •   缺點
    •   性能
    •   社區(qū)活躍度

Next

Next是一個React框架,允許使用React構建靜態(tài)web應用

  •  start
    •   GitHub Stars: +36,000
    •   npm weekly downloads: +300,000
  •     安裝

next react react-dom是必不可少的 

  1. npm install --save next react react-dom 

package.json 中添加腳本,如下所示:       

  1.  
  2.          "scripts": {  
  3.            "dev": "next",  
  4.            "build": "next build",  
  5.            "start": "next start"  
  6.          }  
  7.        } 

next 將讀取page目錄下的js文件,并解析成頁面路由

  •  Hello World

項目內創(chuàng)建目錄文件 ./pages/index.js       

  1. function Home() {  
  2.           return <div>Hello world!</div> 
  3.         }   
  4.          export default Home;     
  5.          // npm run dev  
  6.         // 然后訪問 http://localhost:3000 
  •  好處
    •   默認情況下,每個組件都是服務器渲染的
    •   自動代碼拆分,加快頁面加載速度
    •   不加載不必要的代碼
    •   簡單的客戶端路由(基于頁面)
    •   基于Webpack的開發(fā)環(huán)境,支持模塊熱更新(HMR)
    •   獲取數據非常簡單
    •   支持任何Node HTTP服務器實現,如Express
    •   支持Babel和Webpack自定義
    •   能夠部署在任何能運行node的平臺
    •   內置頁面搜索引擎優(yōu)化(SEO)處理
  •  缺點
    •   Next不是后端服務,應該與后臺操作獨立開
    •   如果你只想創(chuàng)建一個簡單的WEB應用,那么它可能會是牛刀殺雞
    •   數據會在客戶端和服務器重復加載
    •   沒有實現前后分離的項目,遷移到Next是一件痛苦的事,可能需要雙倍工作
  •     性能

性能基于一下兩點

      1、使用Apache Bench測試吞吐量。

      2、使用 lighthouse測試 Preformance、Accessibility、Best Practices、SEO

這是Next基本HelloWorld程序。每秒能處理550.87個請求。每個請求花費的平均時間為18.153ms

lighthouse測試報告中可以看到Preformance、Accessibility、Best Practices、SEO都高于70,雖然比其他兩個框架低,但不得不說已經是一個比較好的數據,Best Practices 得分nuxt則是高于其他倆個

  •  社區(qū)活躍度
    •   貢獻者數量:678
    •   Pull Requests: 3,029
    •   社區(qū)相當活躍

Nuxt

Nuxt是一個基于Vue的通用應用框架,預設了利用Vue開發(fā)服務端渲染的應用所需要的各種配置,主要關注的是應用的UI渲染

  •  star
    •   GitHub stars:+19,000
    •   npm weekly downloads: +100,000
  •     安裝

為了快速入門,Nuxt.js團隊創(chuàng)建了腳手架工具 create-nuxt-app       

  1. // 確保安裝了npx(npx在NPM版本5.2.0默認安裝了)  
  2.         npx create-nuxt-app <項目名> 

它會讓你進行一些選擇:在集成的服務器端框架如:Express、Koa、Hapi、Feathers、Micro、Adonis (WIP);選擇您喜歡的UI框架:Bootstrap、Vuetify、Bulma、Buefy等等

  •  Hello World

Nuxt依據 pages 目錄結構自動生成 vue-router 模塊的路由配置       

  1. // ./pages/index.vue  
  2.         <template>  
  3.           <div>  
  4.             <h1>Hello world!</h1>  
  5.             <NLink to="/about">  
  6.               About Page  
  7.             </NLink>  
  8.           </div>  
  9.         </template> 
  •  好處
    •   它的主要范圍是UI渲染,同時抽象出客戶端/服務器分布
    •   靜態(tài)渲染、前后分離
    •   自動代碼分層
    •   服務、模板皆可配置
    •   項目結構清晰
    •   組件與頁面無縫切換
    •   默認支持得ES6 / ES7
    •   支持開發(fā)熱更新
    •   路由級別的異步數據獲取
    •   支持靜態(tài)文件服務
    •   樣式預處:Sass,Less,Stylus等
  •  缺點
    •   周邊資源較少
    •   開發(fā)復雜的組件可能會很麻煩
    •   自定義配置顯得很麻煩
    •   很多具有副作用的數據操作this.items[key]=value
    •   高流量可能會給服務器帶來壓力
    •   只能在某些掛鉤中查詢和操作DOM
  •     性能

Nuxt中的基本HelloWorld應用。每秒能處理190.05個請求。平均一個請求時間為52.619毫秒。在此度量標準上,Nuxt與其他兩個框架相比表現最差

  

  •  社區(qū)活躍
    •   貢獻者數量:191
    •   Pull Requests:1,385

Nest

Nest是一個漸進式Node框架,深受Angular的啟發(fā)。用于構建高效,可擴展的Node.服務器端應用程序的框架。使用TypeScript構建,保留與純JS的兼容性,集OOP(面向對象編程),FP(函數式編程),FRP(響應式編程)一身。服務引擎蓋默認使用Express但也提供與各種其他庫的兼容性,例如Fastify,允許輕松使用可用的無數第三方插件

  •     安裝

nest提供cli使用該cli命令安裝Nest并創(chuàng)建新項目       

  1. npm i @nestjs/cli  
  2.        nest new project-name 

或者,使用Git安裝TypeScript啟動項目:     

  1. git clone https://github.com/nestjs/typescript-starter.git project  
  2.       cd project  
  3.       npm install  
  4.       npm run start 
  •     Hello World

使用該npm cli命令創(chuàng)建新項目后,src目錄下會出現幾個核心文件,main.ts是我們的入口       

  1. // 創(chuàng)建一個服務然后監(jiān)聽3000端口  
  2.        import { NestFactory } from '@nestjs/core';  
  3.        import { ApplicationModule } from './app.module';      
  4.         async function bootstrap() {  
  5.          const app = await NestFactory.create(ApplicationModule);  
  6.          await app.listen(3000);  
  7.        }  
  8.        bootstrap();       
  9.         // 啟動起來   
  10.        npm start 
  •  好處
    •   作為基于TypeScript的Web框架,可以進行嚴格的類型定義
    •   自動生成Swagger文檔
    •   Nest中的文件夾結構主要基于Angular
    •   基于模塊的框架,代碼可復用
    •   項目結構清晰,只需要關注業(yè)務無需關注架構
    •   使用的TypeScript,意味著JS的型特性基本都可用
    •   為開發(fā)人員提供更少的上下文切換。從Angular代碼到Nest的過渡相對容易
    •   與Angular類似,Nest也有一個不錯的命令行工具
  •  缺點
    •   缺乏文檔。該框架與其他框架有很好的集成,但文檔很少
    •   背后沒有大型企業(yè)的支持力
    •   總體而言,與其他框架相比,Nest的社區(qū)規(guī)模較小
  •     性能

Nest中的基本HelloWorld應用。每秒能處理928.18個請求。每個請求的平均時間為10.774毫秒。在此指標上,Nest在我們比較的三個框架中表現不錯

Lighthouse提供的報告中,Nest具有非常高的性能,但是accessibility, best practices,SEO得分較低

Nest不是流行的框架但值得一試!

  •  社區(qū)參與
    •   貢獻者數量:81
    •   Pull Requests:469

Next, Nuxt, Nest比較就到這里 Preformance、Accessibility、Best Practices、SEO選擇你最想要的那個吧

 

 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2023-05-12 07:31:58

NuxtVue.js

2018-06-28 08:41:37

2013-01-07 11:38:54

VMware認證

2019-07-22 10:45:31

2024-03-05 07:55:41

框架GINGo

2018-04-23 14:58:27

大數據

2020-02-04 14:25:29

云遷移云計算云平臺

2014-08-18 10:58:20

編程語言編程書籍

2018-04-20 10:54:52

數據集成數據科學工具

2012-09-17 09:58:02

云集成平臺云集成集成平臺

2022-11-24 09:55:12

Kubernetes監(jiān)控

2020-04-20 16:00:05

Node.js框架JavaScript

2021-08-31 08:00:00

開發(fā)軟件框架

2010-06-07 10:01:55

IT培訓就業(yè)

2022-07-13 15:03:23

網絡安全數據安全遠程工作

2017-11-09 08:51:28

2013-09-03 11:33:44

移動辦公BYOD

2017-09-22 08:00:40

交換機分支跳線布線

2021-03-15 07:55:55

API網關微服務架構

2021-10-25 09:00:37

Node.jsJS前端
點贊
收藏

51CTO技術棧公眾號