JavaScript、Node.js、nvm、npm 、Vue 之间的关系------类比后端开发中的Python,java,Ruby对照理解

Node.js、nvm、npm、JavaScript 和 Vue 之间的关系

JavaScript (JS)

JavaScript 是一种广泛使用的编程语言,最初设计用于浏览器中的客户端脚本。现在它也被用于服务器端开发(如 Node.js)、移动应用开发(如 React Native)和桌面应用开发(如 Electron)。

类比:后端的编程语言
  • Python
  • Java
  • Ruby

这些编程语言是编写应用程序的基础,提供了语法和标准库,使得开发者可以编写各种功能。


Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,允许你在服务器端运行 JavaScript 代码。Node.js 提供了非阻塞 I/O 操作,使其非常适合处理高并发的网络应用。

类比:后端的运行时环境
  • JVM (Java Virtual Machine)
    • Java 代码在 JVM 上运行,JVM 提供了一个跨平台的运行环境。
  • Python 解释器
    • Python 代码在 Python 解释器上运行,解释器负责执行 Python 代码。

Node.js 类似于 JVM 或 Python 解释器,为 JavaScript 代码提供了一个运行环境,使其可以在服务器端执行。


nvm (Node Version Manager)

nvm 是一个用于管理多个 Node.js 版本的工具。它允许你在同一台机器上安装和切换不同版本的 Node.js,这对于需要支持多个项目且每个项目可能依赖不同版本的 Node.js 的开发者非常有用。

类比:后端的版本管理工具
  • pyenv (Python Version Manager)
    • pyenv 允许你在同一台机器上安装和切换不同版本的 Python。
  • rbenv (Ruby Version Manager)
    • rbenv 允许你在同一台机器上安装和切换不同版本的 Ruby。

nvm 类似于 pyenvrbenv,帮助开发者管理不同版本的 Node.js,确保项目的兼容性和稳定性。


npm (Node Package Manager)

npm 是 Node.js 的包管理器,用于安装、更新、卸载和管理项目依赖。npm 维护了一个巨大的包仓库,其中包含了大量的开源库和工具。

类比:后端的包管理工具
  • Maven (Java)
    • Maven 用于管理 Java 项目的依赖,并提供构建、测试和部署的功能。
  • pip (Python)
    • pip 是 Python 的包管理器,用于安装和管理 Python 包。
  • Bundler (Ruby)
    • Bundler 是 Ruby 的包管理器,用于管理 Gem 依赖。

npm 类似于 Maven、pip 或 Bundler,帮助开发者管理项目的依赖,并提供一系列命令来简化开发流程。


Vue

Vue 是一个用于构建用户界面的前端框架。它提供了声明式的渲染方式、组件系统、响应式数据绑定等功能,帮助开发者高效地构建复杂的单页应用程序 (SPA) 和多页应用程序 (MPA)。

类比:后端的 Web 框架
  • Django (Python)
    • Django 是一个高级的 Python Web 框架,提供了完整的 MVC 架构,包括 ORM、路由系统、模板引擎等。
  • Spring (Java)
    • Spring 是一个企业级的 Java 框架,提供了依赖注入、AOP、事务管理等功能,帮助开发者构建复杂的应用。
  • Ruby on Rails (Ruby)
    • Ruby on Rails 是一个基于 Ruby 的 Web 框架,提供了约定优于配置的理念,简化了 Web 应用的开发。

Vue 类似于 Django、Spring 或 Ruby on Rails,提供了结构化的方式来构建用户界面,并处理常见的任务,如状态管理、路由、组件化等。


总结

  • JavaScript (JS)
    • 编程语言,类似于 Python、Java 或 Ruby。
  • Node.js
    • 服务器端的 JavaScript 运行时环境,类似于 JVM 或 Python 解释器。
  • nvm (Node Version Manager)
    • 用于管理多个 Node.js 版本的工具,类似于 pyenv 或 rbenv。
  • npm (Node Package Manager)
    • 用于管理项目依赖的包管理器,类似于 Maven、pip 或 Bundler。
  • Vue
    • 前端框架,用于构建用户界面,类似于 Django、Spring 或 Ruby on Rails。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1550459.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

记一次教学版内网渗透流程

信息收集 如果觉得文章写的不错可以共同交流 http://aertyxqdp1.target.yijinglab.com/dirsearch dirsearch -u "http://aertyxqdp1.target.yijinglab.com/"发现 http://aertyxqdp1.target.yijinglab.com/joomla/http://aertyxqdp1.target.yijinglab.com/phpMyA…

IT基础监控范围和对象

监控易作为一款由美信时代独立自主研发的分布式一体化集中监控平台,其监控范围极为广泛,几乎涵盖了所有主流的IT基础设施以及相关的设备和系统。以下是对监控易监控范围的详细介绍: 一、IT基础资源监控 服务器硬件监控:监控易支…

fmql之Linux阻塞和非阻塞IO

继续学习正点原子吧。 概念简介 什么是阻塞、非阻塞IO 阻塞/非阻塞访问的代码示例 等待队列(阻塞访问使用) 轮询(非阻塞访问使用) poll操作函数的使用(轮询的一种) 阻塞IO的实验 blockio.c blockioAPP.c 运…

大模型能力扩展之——提示词(Prompt),知识库,思维链(CoT)和Agent(代理)

前言 “大模型的推理能力配合外部工具才能真正发挥大模型的作用” 在学习和使用大模型的过程中,我们会发现大模型只能用来进行一下简单的问答;一旦涉及到复杂的问题,大模型就无能为力了。 其原因就在于我们并不会使用大模型,或…

【韩顺平Java笔记】第3章:变量

只记录我觉得重点的,自用,如果有漏的请自己看视频 文章目录 33. 内容梳理34. 变量原理34.1 为什么需要变量35. 变量概念35.1 概念35.2 变量使用的基本步骤36. 变量入门36.1 变量使用入门案例 37. 变量细节37.1 变量使用注意事项 38. 加号使用38.1 程序中…

Node.js安装Express,Node.js支持Typescript以及Express支持Typescript的步骤

1. Node.js 安装Express 运行如下命令: $ mkdir express-demo $ cd express-demo$ npm install express $ npm install body-parser //(可选)中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据 $ npm install cookie-parser //(可选)通过req.cookies…

如何使用ssm实现大学生校园招聘网的设计与实现

TOC ssm738大学生校园招聘网的设计与实现jsp 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域…

网页WebRTC电话和软电话哪个好用?

关于WebRTC电话与软件电话哪个更好用,这实际上取决于多个因素,并没有一个绝对的答案。不过,我可以根据WebRTC技术的一些特点,以及与传统软件电话相比的优劣势,为你提供一个清晰的对比。 首先,让我们了解一下…

单细胞miloR分析(基于 KNN 图的细胞差异丰度分析方法)

通常情况下,对两组或多组样本进行了不同处理/干预之后,研究者首先会进行同种细胞亚群处理前后的细胞数量的比较,但在单细胞分辨率时代之后,即使是同一个亚群中的不同细胞也应当看成不同的样本。 那么问题就来了,既然应…

算法:按既定顺序创建目标数组

力扣1389 提示&#xff1a; 1 < nums.length, index.length < 100nums.length index.length0 < nums[i] < 1000 < index[i] < i 题解&#xff1a; class Solution {public int[] createTargetArray(int[] nums, int[] index) {int[] target new int[num…

SD2.0 Specification之CRC(Cyclic Redundancy Code)

文章目录 本文章主要讲解关于SD2.0中的CRC应用&#xff0c;其它基础概念和其它内容请参考以下文章。 SD2.0 Specification简述 CRC全称为Cyclic Redundancy Code&#xff0c;中文名称是循环冗余校验&#xff0c;该方法通过附加冗余数据来保证数据的完整性&#xff0c;即用于检…

RabbitMQ的高级特性-限流

消息分发: RabbitMQ队列拥有多个消费者时, 队列会把收到的消息分派给不同的消费者. 每条消息只会发送给订阅列表⾥的⼀个消费者. 这种⽅式⾮常适合扩展, 如果现在负载加重,那么只需要创建更多的消费者来消费处理消息即可. 默认情况下, RabbitMQ是以轮询的⽅法进⾏分发的, ⽽不管…

BetterAndBetter--Mac上强大的手势操控软件,让你的Mac更加得心应手

很多新人在开始使用Mac的时候&#xff0c;很难脱离鼠标操作&#xff0c;但是Mac的触摸板可以说是Mac的一大特色&#xff0c;能够完成非常多的操作&#xff0c;甚至在有些时候比鼠标更加的好用&#xff0c;那么新手该如何使用触摸板呢&#xff0c;BetterAndBetter可以帮助新手快…

Alternative Reconciliation Accounts 备选统驭科目

业务场景&#xff1a; #1 海外项目对于应付账款&#xff0c;超过1年期的需要转入到其他科目&#xff1b; #2. 通过备选统驭科目进行 从应付账款&#xff0c;到应付账款-长期的结转 备选统驭科目的使用与配置 备选统驭科目&#xff08;AlternativeReconciliation Accounts)就…

Dynamics 365 dependency EntityType

导解决方案时经常会碰到组件依赖导致导入报错&#xff0c;而错误提示中组件只有type, 比如下图中的type 20和60, 初看之下并不知道是什么意思&#xff0c;从parentDisplayName能看出来&#xff0c;这个parent是个实体&#xff0c;但实体中的什么呢&#xff0c;目测是看不出来的…

怎样用python+sqlalchemy获得mssql视图对应物理表关系(二)

话不多说 目标:为了实现低代码数据视图对接,有必要得到视图所对应物理表及字段名称,字段类型等 1)约束:视图中用到的物理表不能起别名,所以修改上一篇中存储过程建立语句 USE [agui_conn] GO /****** Object: StoredProcedure [dbo].[sp_GetOrdersByTimestamp] Script D…

生信机器学习入门4 - 构建决策树(Decision Tree)和随机森林(Random Forest)分类器

机器学习文章回顾 生信机器学习入门1 - 数据预处理与线性回归&#xff08;Linear regression&#xff09;预测 生信机器学习入门2 - 机器学习基本概念 生信机器学习入门3 - Scikit-Learn训练机器学习分类感知器 生信机器学习入门4 - scikit-learn训练逻辑回归&#xff08;L…

第五周做题总结_数据结构_队列与应用

id:43 A. DS队列之银行排队 题目描述 银行营业大厅共服务3种客户&#xff0c;类型为A\B\C&#xff0c;大厅分别设置了3个窗口分别服务三种客户&#xff0c;即每个窗口只服务一种客户。现有一批客户来银行办理业务&#xff0c;每个客户都有类型和办理业务时间。每个窗口按照客…

Servlet详细讲解(一篇就够)

目录 一、Servlet 1.1 Servlet介绍 1.2 HTTP 1.2.1 在http请求中有请求报文 1.2.2 在http响应中有响应报文 1.3 GET和POST 1.3.1 GET 1.3.2 POST 二、第一个Servlet程序[重点] 2.1 创建web项目 2.2 pom依赖 2.3 编写Servlet 2.4 配置Servlet 2.5 部署项目 2.6 启…

C++进阶知识2 多态

多态 1. 多态的概念2. 多态的定义及实现2.1 多态的构成条件2.1.2 虚函数2.1.3 虚函数的重写/覆盖2.1.5 虚函数重写的⼀些其他问题2.1.6 override和final关键字2.1.7 重载/重写/隐藏的对⽐ 3. 多态的原理3.2 多态的原理3.2.1 多态是如何实现的3.2.2 动态绑定与静态绑定3.2.3 虚函…