React 应用构建(环境)
可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么?
一. 环境搭建
- 工作编辑器: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 应用构建(环境)的更多相关文章
- (24/24) webpack小案例--自己动手用webpack构建一个React的开发环境
通过前面的学习,对webpack有了更深的认识,故此节我们就利用前面相关知识自己动手用webpack构建一个React的开发环境,就算是一个小案例吧. 注:此处使用的开发工具是Webstorm. 1. ...
- 深入浅出的webpack4构建工具--webpack4+react构建环境(二十)
下面我们来配置下webpack4+react的开发环境,之前都是针对webpack4+vue的.下面我们也是在之前项目结构的基础之上进行配置下. 首先看下如下是我为 webpack4+react 基本 ...
- React Native的环境搭建以及开发的IDE
(一)前言 前面的课程我们已经对React Native的环境搭建以及开发的IDE做了相关的讲解,今天我们的主要讲解的是应用设备运行(Running)以及调试方法(Debugging).本节的前提条件 ...
- [转载]Sublime Text 3 搭建 React.js 开发环境
[转载]Sublime Text 3 搭建 React.js 开发环境 Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babe ...
- 《React Native 精解与实战》书籍连载「Node.js 简介与 React Native 开发环境配置」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- React+Webpack+ES6环境搭建(自定义框架)
引言 目前React前端框架是今年最火的.而基于React的React Native也迅速发展.React有其独特的组件化功能与JSX的新语法,帮助前端设计有了更好的设计与便捷,而React Nati ...
- 【RN - 基础】之Windows下搭建React Native开发环境
前言 React Native由Facebook公司于2015年F8大会上开源,其主张“Learn once, write everywhere”.React Native的核心设计理念是:既拥有Na ...
- [webpack] 配置react+es6开发环境
写在前面 每次开新项目都要重新安装需要的包,简单记录一下. 以下仅包含最简单的功能: 编译react 编译es6 打包src中入口文件index.js至dist webpack配置react+es6开 ...
- 用Vagrant创建Jenkins构建环境
这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...
- 利用 Rational ClearCase ClearMake 构建高性能的企业级构建环境
转载地址:http://www.ibm.com/developerworks/cn/rational/r-cn-clearmakebuild/ 构建管理是 IBM® Rational® ClearCa ...
随机推荐
- VMware 备份操作系统
在VMware 中备份方式有两种:快照和克隆. 快照:又称还原点,就是保存在拍快照时系统的状态,包含所有内容.在之后的使用中,随时都可以恢复.[短期备份,需要频繁备份时,使用该方法.操作的虚拟系统一般 ...
- 2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2 每一次转化时,你可以将
2023-08-14:用go语言写算法.给出两个长度相同的字符串 str1 和 str2, 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2, 每一次转化时,你可以 ...
- 【opencv】传统目标检测:Haar检测器实现人脸检测
传统目标分类器主要包括Viola Jones Detector.HOG Detector.DPM Detector,本文主要介绍VJ检测器,在VJ检测器基础上发展出了Haar检测器,Haar检测器也是 ...
- VulnStack - ATT&CK红队评估实战(一) Writeup
VulnStack - ATT&CK红队评估实战(一) Writeup VulnStack(一)环境搭建 项目地址 http://vulnstack.qiyuanxuetang.net/vul ...
- vue + canvas 实现九宮格手势解锁器
前言 专栏分享:vue2源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位 ITer 关注点赞收藏 此篇文章用于记录柏成从零开发一个canvas九宮格手势解锁器的历程,最终效果如 ...
- Jackson--FastJson--XStream--代码执行&&反序列化
Jackson--FastJson--XStream--代码执行&&反序列化 Jackson代码执行 (CVE-2020-8840) 影响范围 2.0.0 <= FasterXM ...
- client-go实战之七:准备一个工程管理后续实战的代码
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<client-go实战> ...
- DPDK丢包那些事
本文来自博客园,作者:T-BARBARIANS,博文严禁转载,转载必究! 一.前言 DPDK技术原理相关的文章不胜枚举,但从实战出发,针对DPDK丢包这一类问题进行系统分析的文章还是凤毛麟角. 刚好最 ...
- .then()方法的意思和用法
then()方法是异步执行. 意思是:就是当.then()前的方法执行完后再执行then()内部的程序,这样就避免了,数据没获取到等的问题. 语法:promise.then(onCompleted, ...
- 钉钉OA自定义审批流的创建和使用
前言 大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教. 钉钉作为一款办公软件,审批功能是它的核心功能 ...