可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么?

一. 环境搭建

  • 工作编辑器:Visual Studio Code。
  • Javascript 解析器、运行环境 Node.js 的安装。
  • npm 安装:npm 是 Node.js 的软件包管理器。

二. 项目构建

1. 脚手架构建项目(JavaScript)

脚手架是快速帮助开发者搭建开发环境,用最简单方式创建一个简单 Hello World 项目。主要步骤分析如下所示。

全局、非全局安装脚手架环境,创建项目:

全局安装脚手架环境 create-react-app:

$ npm install -g create-react-app
# 查看安装版本
$ create-react-app -V
# 创建一个项目
$ create-react-app my-app

非全局安装,可以直接使用 npx(临时安装最新的脚手架):

# 安装、构建 react 项目
$ npx create-react-app my-app

运行项目:

# 运行项目
$ cd my-app
$ npm start

构建项目实际上会安装三个东西:

  • react:react 顶级库。
  • react-dom:因为 react 有很多的运行环境,比如 app 端的 react-native ,我们要在 web 上运行就使用 react-dom。
  • react-scripts:包含运行和打包 react 应用程序的所有脚本及配置。

其他命令:

# 1. 安装依赖 node_modules
$ npm install 缩写 npm i # 2. nrm 是 npm 包的仓库管理软件,仓库链接地址托管给 nrm 管理,也就是镜像管理
$ npm i -g nrm # 安装 nrm
$ nrm ls # 查看可选源镜像
$ nrm use xxx # 切换镜像
$ nrm current # 查看当前镜像源 # 3. 清除 npm 缓存
$ npm cache clean --force

第一个项目解析 chess-game:

项目入口:index.html 里面加载一个空的 div 节点:

<div id="root"></div>

项目解析:

// 从 React 的包中引入了 React。只要你写 React.js 组件就必须引入 React,因为 React 里有一种语法叫 JSX。要写 JSX 就必须引入 React。
import React from "react";
// ReactDOM 可以帮助我们把 React 组件渲染到页面上去。它是从 react-dom 中引入的。
import ReactDOM from "react-dom" // ReactDOM 里有一个 render 方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上
// 利用 React DOM 模块 渲染一段 DIV 节点,把整段节点插入到 root 节点中。
ReactDOM.render(<Game />, document.getElementById("root")) // React 18 替换之前写法如下:
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<Game />);

2. 脚手架构建项目(TypeScript)

脚手架是快速帮助开发者搭建开发环境,这里脚手架采用 TypeScript 模版创建一个项目。

$ npx create-react-app my-app --template typescript

3. Umi 脚手架构建项目

在工作空间目录下建个空目录用来存放项目:

$ mkdir myapp && cd myapp

通过官方工具创建项目:

$ yarn create @umijs/umi-app
# 或
$ npx @umijs/create-umi-app

安装依赖:

$ yarn install

启动项目:

$ yarn start

4. Umi + dva + antd + mobile

项目以 UMI + DVA 为底层框架,以 Ant Design Mobile为 UI 组件库,快速构建 H5 应用。

React 应用构建(环境)的更多相关文章

  1. (24/24) webpack小案例--自己动手用webpack构建一个React的开发环境

    通过前面的学习,对webpack有了更深的认识,故此节我们就利用前面相关知识自己动手用webpack构建一个React的开发环境,就算是一个小案例吧. 注:此处使用的开发工具是Webstorm. 1. ...

  2. 深入浅出的webpack4构建工具--webpack4+react构建环境(二十)

    下面我们来配置下webpack4+react的开发环境,之前都是针对webpack4+vue的.下面我们也是在之前项目结构的基础之上进行配置下. 首先看下如下是我为 webpack4+react 基本 ...

  3. React Native的环境搭建以及开发的IDE

    (一)前言 前面的课程我们已经对React Native的环境搭建以及开发的IDE做了相关的讲解,今天我们的主要讲解的是应用设备运行(Running)以及调试方法(Debugging).本节的前提条件 ...

  4. [转载]Sublime Text 3 搭建 React.js 开发环境

    [转载]Sublime Text 3 搭建 React.js 开发环境 Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babe ...

  5. 《React Native 精解与实战》书籍连载「Node.js 简介与 React Native 开发环境配置」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  6. React+Webpack+ES6环境搭建(自定义框架)

    引言 目前React前端框架是今年最火的.而基于React的React Native也迅速发展.React有其独特的组件化功能与JSX的新语法,帮助前端设计有了更好的设计与便捷,而React Nati ...

  7. 【RN - 基础】之Windows下搭建React Native开发环境

    前言 React Native由Facebook公司于2015年F8大会上开源,其主张“Learn once, write everywhere”.React Native的核心设计理念是:既拥有Na ...

  8. [webpack] 配置react+es6开发环境

    写在前面 每次开新项目都要重新安装需要的包,简单记录一下. 以下仅包含最简单的功能: 编译react 编译es6 打包src中入口文件index.js至dist webpack配置react+es6开 ...

  9. 用Vagrant创建Jenkins构建环境

    这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...

  10. 利用 Rational ClearCase ClearMake 构建高性能的企业级构建环境

    转载地址:http://www.ibm.com/developerworks/cn/rational/r-cn-clearmakebuild/ 构建管理是 IBM® Rational® ClearCa ...

随机推荐

  1. Angular: Error: NG0100: ExpressionChangedAfterItHasBeenChecked

    错误原因 当变更检测完成后又更改了表达式的值时,Angular就会抛出ExpressionChangedAfterItHasBeenCheckedError 错误,Angular只会在开发模式下抛出此 ...

  2. [django]路由变量与正则表达式

    示例: urlpatterns = [ path('detail.<int:id>.html', detailView, name='detail'), ] 路由变量的类型 示例路由配置了 ...

  3. go-zero 是如何实现计数器限流的?

    原文链接: 如何实现计数器限流? 上一篇文章 go-zero 是如何做路由管理的? 介绍了路由管理,这篇文章来说说限流,主要介绍计数器限流算法,具体的代码实现,我们还是来分析微服务框架 go-zero ...

  4. #Powerbi 1分钟学会,RANK函数,多字段排名函数.

    一:思维导图&数据源示例 1.1思维导图 1.2示例数据源 二:参数构成 三:案例度量值 基础度量值 总销量 = CALCULATE(SUM('数据源'[销量])) 总销售额 = CALCUL ...

  5. python 运行环境变为 pytest in (for) xxx.py原因

    因为本人的自定义函数名称开头为test,在.py文件内我用了unittest框架,所以环境随着变化了. 修改回去很简单,只要不使用test开头或者换个文件夹.

  6. 基于bert-base-chinese训练bert模型(最后附上整体代码)

    目录: 一.bert-base-chinese模型下载 二.数据集的介绍 三.完成类的代码 四.写训练方法 五.总源码及源码参考出处 一.bert-base-chinese模型下载 对于已经预训练好的 ...

  7. API接口设计规范

    说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢? 下面我们 ...

  8. k8s 入门到实战--部署应用到 k8s

    背景 最近这这段时间更新了一些 k8s 相关的博客和视频,也收到了一些反馈:大概分为这几类: 公司已经经历过服务化改造了,但还未接触过云原生. 公司部分应用进行了云原生改造,但大部分工作是由基础架构和 ...

  9. 《Python魔法大冒险》005 魔法挑战:自我介绍机器人

    魔法师和小鱼坐在图书馆的一扇窗户旁,窗外的星空闪烁着神秘的光芒.魔法师轻轻地拍了拍小鱼的肩膀. 魔法师: 小鱼,你已经学会了编写简单的魔法程序,现在我要教你如何创造一个有自己思想的机器人,让它能够和我 ...

  10. Couchdb-权限绕过--命令执行--(CVE-2017-12635)&&(CVE-2017-12636)--H2database命令执行--(CVE-2022-23221)

    Couchdb-权限绕过--命令执行--(CVE-2017-12635)&&(CVE-2017-12636)--H2database命令执行--(CVE-2022-23221) 环境概 ...