一、Node.js 的诞生

先来聊聊 Node.js 诞生的故事,了解一下它最早的定位,以及后来定位的变化。

Node.js 是2009的时候由大神 Ryan Dahl 开发的。Ryan 的本职工作是用 C++ 写服务器,后来他总结出一个经验,一个高性能服务器应该是满足“事件驱动,非阻塞 I/O”模型的。C++ 开发起来比较麻烦,于是 Ryan 就想找一种更高级的语言,以便快速开发。

可以说有两点促成了 Nodejs 的诞生。首先第一点,Ryan 发现 JS 语言本身的特点就是事件驱动并且是非阻塞 I/O 的,跟他的思路正是绝配。第二点,Chrome 的 JS 引擎,也就是 V8 引擎是开源的,而且性能特别棒。于是 Ryan 就基于 V8 开发了 Node.js ,注意 Node.js 听名字好像是个 JS 库,其实不是的,Node.js 是 C++ 开发的,到官网 http://nodejs.org 可以看到

Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境

所以说 Node.js 不是库,是一个运行环境,或者说是一个 JS 语言解释器。

Node.js 最初的定位是提升 Ryan 自己的日常工作效率,也就是用来写服务器代码的,但是后来没有想到的是 Node.js 在前端领域却大放异彩。

先说几句 Node.js 在服务器端的发展。Node.js 的诞生带给人们的是个大大的惊喜,传统上 Web 开发者,前端用 JS 写,但是写服务器端代码的时候还必须用另外一种语言,类似 Ruby/Java/PHP 等。但是 Node.js 出现之后,JS 前后通吃了。如果去网上搜 Node.js 的资料,很多都是用 Node.js 去写服务器代码的。

但是,Node.js 今天也成为了 Web 前端开发必不可少的基础设施。注意,Web 前端的 JS 代码最终还是运行在浏览器中的,所以运行的时候,或者说在产品环境下,不依赖于 Node.js 。但是,Node.js 诞生以后,前端大爆发,类似 React/Vuejs 这样的前端框架的开发环境变得非常强大和负责,Node.js 是这些开发环境运行的基础。

这就是关于 Node.js 诞生,以及它如何从纯后端发展到前后通吃的故事。

Nodejs 中运行 JS 代码

接下来,演示一下 Nodejs 中如何运行 JS 代码。

以前 JS 只能运行在浏览器中,Node.js 出现之后,不管是服务器上,还是我们自己的的笔记本上,只要安装了 Node.js 就可以运行 JS 代码了。假设,咱们已经安装好了 Node.js ,那么进入命令行,

node

执行 node 命令,就可以进入 Node.js 的交互环境。

1 + 1

执行加法操作,回车,就可以看到代码正确执行了。Ctrl-D 可以退出这个交互环境。

但是更为常见的一种执行方式,是把把代码写入到一个文件中。

app.js

console.log("hello");

然后这样来在命令行中执行

node app.js

就可以看到 hello 被打印出来了,而这样过程跟浏览器没有一毛钱关系。

另外有一点是要特别注意的。Node.js 和浏览器是不同的环境,是有着很多细小的差异的。首先,二者各自包含的全局变量不同。document 对象是用来操作页面的,所以只有浏览器环境下才可以直接使用。但是如果是要放到 Node.js 环境下运行代码,就不要使用 document 。同样的道理,Node.js 中可以直接拿来使用的 http 对象,在浏览器环境下就没有。其次,Node.js 和浏览器对 ES6 新特性的支持程度也是不同的,这一点也要注意。

关于如何在 Node.js 环境下运行 JS 代码,我们就聊到这里。

二、npm是个啥

https://blog.csdn.net/qq_37696120/article/details/80507178

三、React脚手架:create-react-app

React 的环境搭建,是比较繁琐的,有很多的依赖:reactreact-dombabelwebpack ... 需要很多的前置知识,很容易让人从入门到放弃。

于是就诞生了 脚手架 这种东西,create-react-app 就是一个 React 的脚手架,用它可以很方便的就创建了整个 React 的环境搭建,它解决了所有的依赖问题。

越上层的建筑,越方便的工具,也说明了我们对底层的定制性越差。不过对于新手学习的同学,把应用的东西先做起来之后,有必要再去理解底层环境的东西,也是种不错的学习的路径。

四、node环境安装

Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/。下载node完成后,npm也会自行下载完成。

下载后,查看版本。说明下载成功

五、安装react脚手架

安装好的npm的源默认是国外的源,会因为网络原因导致执行npm操作有延时,我们可以切换npm的源为淘宝的源镜像。

执行 npm config set registry https://registry.npm.taobao.org。切换完成后,可通过 npm config get registry 查看。

安装react脚手架,cmd执行

npm i -g create-react-app

六.创建项目

安装好 node 和 react脚手架后就可以创建项目啦,cmd切换至指定路径,执行  create-react-app rproject (rproject为自定义项目名),最后出现 happy hacking说明创建成功。

七.启动项目

在项目所在路径下cmd执行 npm start。启动后会自动打开浏览器

八、antd安装

antd是蚂蚁金服推出的一款很棒的react  ui库

npm install antd --save

React脚手架搭建及创建React项目相关推荐

  1. React脚手架应用(创建脚手架、代理配置、ajax相关、组件通信)(四)

    系列文章目录 第一章:React基础知识(React基本使用.JSX语法.React模块化与组件化)(一) 第二章:React基础知识(组件实例三大核心属性state.props.refs)(二) 第 ...

  2. Vue笔记——搭建脚手架并快速创建Vue项目

    现在的Vue脚手架已经升级到3.x版本,即vue-cli3. 脚手架升级之后,安装的命令发生了变化,所以这篇文章会跟大家演示新旧版本的脚手架安装过程,以及使用新旧版本脚手架创建项目的过程. 下面的安装 ...

  3. 搭建环境创建vue项目

    搭建环境创建vue项目 1.安装npm 2.使用淘宝NPM镜像 3.项目初始化 4.命令行创建项目 1.安装npm 下载对应你电脑系统的Node.js版本:下载 | Node.js 中文网 具体安装步 ...

  4. React脚手架搭建项目

    React提供了一个用于创建react项目的脚手架库:create-react-app 一.项目的搭建 第一步: 全局安装 npm i -g create-react-app 第二步: 切换到准备创建 ...

  5. 初学者如何搭建React开发环境并且创建react项目

    搭建React开发环境 1.搭建前提 2.下载node.js和cnpm 3.安装react环境 4.创建react项目 输入命令 如下显示成功 5.运行reactDemo文件 6.错误示范 1.搭建前 ...

  6. React脚手架搭建及目录结构介绍

    react脚手架(create-react-app)搭建 npm install -g create-react-app create-react-app todolist (文件夹名) npm st ...

  7. 如何使用React和Redux前端创建Rails项目

    by Mark Hopson 马克·霍普森(Mark Hopson) 如何使用React和Redux前端(加上Typescript!)创建Rails项目 (How to create a Rails ...

  8. 利用 Create React Native App 快速创建 React Native 应用

    React Native App简介 打开React Native官方文档你会发现,在Getting Started章节下新添加一个Quick Start Tab页.Quick Start是在v0.4 ...

  9. React 环境搭建以及创建项目工程(一)

    下载软件 需要用到三个软件 node.js https://nodejs.org/zh-cn/ vs code. https://code.visualstudio.com/ google 浏览器 h ...

  10. React 环境搭建以及创建项目工程(二)

    创建工程 首先创建一个工程 npx create-react-app weibo cd移动到当前创建的文件下 cd weibo 安装 React 路由 npm install react-router ...

最新文章

  1. Linux开发环境搭建三 使用mount -t cifs 挂载windows共享目录方法与问题解决
  2. zookeeper收尾+dubbo前瞻
  3. 04-CA/TA编程:hash demo
  4. Js+DVML:很酷实用的右键弹出菜单
  5. 未封装的扩展程序是什么意思_Android漏洞挖掘第三期:客户端完整性未校验
  6. Debian 新负责人发表演讲:Debian 的现状与面临的一些问题
  7. 在Windows上面安装多个Memcached
  8. 使用多行sql字符串时,要注意不要忽略了空格
  9. php代码里怎么写html代码_菜鸟青铜变白银!Python 项目代码写完了,然后怎么打包和发布?...
  10. iphoneX样式兼容
  11. C++反汇编第五讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式....
  12. 怎么看笔记本电脑的配置参数_电脑参数怎么看?教你看懂电脑各种配置
  13. 女孩子怎样能赚到月薪一万
  14. 60. MySQLi 扩展拾遗
  15. C++ 二叉树求叶子结点数及输出叶子结点的路径
  16. 小技巧丨累了困了学不下去的时候该怎么办?
  17. 树莓派如何接硬盘_树莓派添加USB外接硬盘
  18. typescript77-在CRA创建支持ts的项目
  19. 算法笔记 (四)算法的逻辑结构和物理结构
  20. DBeaver解决内存不足问题

热门文章

  1. 晶体管电路设计.铃木雅臣
  2. 晶体管放大电路与Multisim仿真学习笔记
  3. python抓取北京所有社区医院经纬度
  4. java 工作流框架都有哪些_java工作流框架有哪些?哪个比较好?
  5. Linux学习基础一 【安装 目录 系统命令 常用vim操作】
  6. TranslateAnimation类:位置变化动画类 (类似tab切换效果)
  7. 获取用户上传的图片的本地路径实现方法,解决fakepath路径问题
  8. maxdos网刻教程(傻瓜型)
  9. JAVA如何封装省市区_基于element ui封装的省市区三级联动
  10. 基于Java的电子会议预约管理系统