如何选择正确的后端渲染框架:Next, Nuxt, Nest?

栏目: JavaScript · 发布时间: 5年前

内容简介:摘要:后端渲染3大框架。在上一篇文章中,我探讨了三种最流行的Node框架:Express、Koa和Hapi的区别、优点和缺点。在这篇文章中,我们将研究另外三种非常流行的框架之间的区别:Next、Nuxt和Nest。这三个框架都是服务器端渲染,它们分别与React、Vue和Angular(三个目前最流行的前端框架)密切相关我们的比较将基于一下几点:

摘要:后端渲染3大框架。

简介

在上一篇文章中,我探讨了三种最流行的Node框架:Express、Koa和Hapi的区别、优点和缺点。在这篇文章中,我们将研究另外三种非常流行的框架之间的区别:Next、Nuxt和Nest。这三个框架都是服务器端渲染,它们分别与React、Vue和Angular(三个目前最流行的前端框架)密切相关

我们的比较将基于一下几点:

  • GitHub Stars和npm下载
  • 安装
  • 基本的Hello World应用程序
  • 好处
  • 缺点
  • 性能
  • 社区活跃度

Next

Next是一个React框架,允许使用React构建SSR和静态web应用

  • start

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

    next react react-dom是必不可少的

    npm install --save next react react-dom
    

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

    {
      "scripts": {
        "dev": "next",
        "build": "next build",
        "start": "next start"
      }
    }
    

    next 将读取page目录下的js文件,并解析成页面路由

  • Hello World

    项目内创建目录文件 ./pages/index.js

    function Home() {
      return <div>Hello world!</div>;
    }
    
    export default Home;
    
    // npm run dev
    // 然后访问 http://localhost:3000
    
  • 好处

    • 默认情况下,每个组件都是服务器渲染的
    • 自动代码拆分,加快页面加载速度
    • 不加载不必要的代码
    • 简单的客户端路由(基于页面)
    • 基于Webpack的开发环境,支持模块热更新(HMR)
    • 获取数据非常简单
    • 支持任何Node HTTP服务器实现,如Express
    • 支持Babel和Webpack自定义
    • 能够部署在任何能运行node的平台
    • 内置页面搜索引擎优化(SEO)处理
  • 缺点

    • Next不是后端服务,应该与后台操作独立开
    • 如果你只想创建一个简单的WEB应用,那么它可能会是牛刀杀鸡
    • 数据会在客户端和服务器重复加载
    • 没有实现前后分离的项目,迁移到Next是一件痛苦的事,可能需要双倍工作
  • 性能

    性能基于一下两点

    • 1、使用Apache Bench测试吞吐量。
    • 2、使用 lighthouse测试 Preformance、Accessibility、Best Practices、SEO

如何选择正确的后端渲染框架:Next, Nuxt, Nest?

这是Next基本HelloWorld程序。每秒能处理550.87个请求。每个请求花费的平均时间为18.153ms

如何选择正确的后端渲染框架:Next, Nuxt, Nest?

lighthouse测试报告中可以看到Preformance、Accessibility、Best Practices、SEO都高于70,虽然比其他两个框架低,但不得不说已经是一个比较好的数据,Best Practices 得分nuxt则是高于其他俩个

  • 社区活跃度
    • 贡献者数量:678
    • Pull Requests: 3,029
    • 社区相当活跃

Nuxt

Nuxt是一个基于Vue的通用应用框架,预设了利用Vue开发服务端渲染的应用所需要的各种配置,主要关注的是应用的UI渲染

  • star

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

    为了快速入门,Nuxt.js团队创建了脚手架工具 create-nuxt-app

    // 确保安装了npx(npx在NPM版本5.2.0默认安装了)
    npx create-nuxt-app <项目名>
    

    它会让你进行一些选择:在集成的服务器端框架如:Express、Koa、Hapi、Feathers、Micro、Adonis (WIP);选择您喜欢的UI框架:Bootstrap、Vuetify、Bulma、Buefy等等

  • Hello World

    Nuxt依据 pages 目录结构自动生成 vue-router 模块的路由配置

    // ./pages/index.vue
    <template>
      <div>
        <h1>Hello world!</h1>
        <NLink to="/about">
          About Page
        </NLink>
      </div>
    </template>
    
  • 好处

    • 它的主要范围是UI渲染,同时抽象出客户端/服务器分布
    • 静态渲染、前后分离
    • 自动代码分层
    • 服务、模板皆可配置
    • 项目结构清晰
    • 组件与页面无缝切换
    • 默认支持得ES6 / ES7
    • 支持开发热更新
    • 路由级别的异步数据获取
    • 支持静态文件服务
    • 样式预处:Sass,Less,Stylus等
  • 缺点

    • 周边资源较少
    • 开发复杂的组件可能会很麻烦
    • 自定义配置显得很麻烦
    • 很多具有副作用的数据操作this.items[key]=value
    • 高流量可能会给服务器带来压力
    • 只能在某些挂钩中查询和操作DOM
  • 性能

    Nuxt中的基本HelloWorld应用。每秒能处理190.05个请求。平均一个请求时间为52.619毫秒。在此度量标准上,Nuxt与其他两个框架相比表现最差

如何选择正确的后端渲染框架:Next, Nuxt, Nest?

Lighthouse测试报告中Preformance、Accessibility、SEO三项中得分最高

如何选择正确的后端渲染框架:Next, Nuxt, Nest?

  • 社区活跃

    • 贡献者数量:191
    • Pull Requests:1,385

Nest

Nest是一个渐进式Node框架,深受Angular的启发。用于构建高效,可扩展的Node.服务器端应用程序的框架。使用TypeScript构建,保留与纯JS的兼容性,集OOP(面向对象编程),FP(函数式编程),FRP(响应式编程)一身。服务引擎盖默认使用Express但也提供与各种其他库的兼容性,例如Fastify,允许轻松使用可用的无数第三方插件

  • 安装

    nest提供cli使用该cli命令安装Nest并创建新项目

    npm i @nestjs/cli
    nest new project-name
    

    或者,使用Git安装TypeScript启动项目:

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

    使用该npm cli命令创建新项目后,src目录下会出现几个核心文件,main.ts是我们的入口

    // 创建一个服务然后监听3000端口
    import { NestFactory } from '@nestjs/core';
    import { ApplicationModule } from './app.module';
    
    async function bootstrap() {
      const app = await NestFactory.create(ApplicationModule);
      await app.listen(3000);
    }
    bootstrap();
    
    // 启动起来 
    npm start
    
  • 好处

    • 作为基于TypeScript的Web框架,可以进行严格的类型定义
    • 自动生成Swagger文档
    • Nest中的文件夹结构主要基于Angular
    • 基于模块的框架,代码可复用
    • 项目结构清晰,只需要关注业务无需关注架构
    • 使用最新版本的TypeScript,意味着JS的型特性基本都可用
    • 为开发人员提供更少的上下文切换。从Angular代码到Nest的过渡相对容易
    • 与Angular类似,Nest也有一个不错的命令行工具
  • 缺点

    • 缺乏文档。该框架与其他框架有很好的集成,但文档很少
    • 背后没有大型企业的支持力
    • 总体而言,与其他框架相比,Nest的社区规模较小
  • 性能

    Nest中的基本HelloWorld应用。每秒能处理928.18个请求。每个请求的平均时间为10.774毫秒。在此指标上,Nest在我们比较的三个框架中表现最佳

    如何选择正确的后端渲染框架:Next, Nuxt, Nest?

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

    如何选择正确的后端渲染框架:Next, Nuxt, Nest?

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

  • 社区参与

    • 贡献者数量:81
    • Pull Requests:469

Next, Nuxt, Nest比较就到这里 Preformance、Accessibility、Best Practices、SEO选择你最想要的那个吧

原文: Choosing the right Node.js Framework: Next, Nuxt, Nest?

关于Fundebug

Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和 Java 线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家免费试用!

如何选择正确的后端渲染框架:Next, Nuxt, Nest?

版权声明

转载时请注明作者 Fundebug 以及本文地址:

https://blog.fundebug.com/2019/05/23/next-nuxt-nest/

您的用户遇到BUG了吗?

体验Demo 免费使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

颠覆医疗

颠覆医疗

[美]埃里克·托普 / 张南、魏薇、何雨师 / 译言·东西文库/电子工业出版社 / 2014-1-20 / 55.00

“创造性破坏”是奥地利经济学家约瑟夫·熊彼特最著名的理论,当一个产业在革新之时,都需要大规模地淘汰旧的技术与生产体系,并建立起新的生产体系。电器之于火器、汽车之于马车、个人计算机之于照排系统,都是一次又一次的“创造性破坏”,旧的体系完全不复存在,新的体系随之取代。 “创造性破坏”已经深深地改变了我们的生活,在这个数字时代,我们身边的一切都被“数字化”了。只有一处,也许是由于其本身的根深蒂固,......一起来看看 《颠覆医疗》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器