What’s React?

React 是 facebook 開發的一個 JS 函式庫,負責產生與管理前端的 UI 。它並不算框架。

Why React?

  • 用純 JS 在前端產生 HTML (一般來說是在後端產生 HTML 送到前端)
  • 使用 Virtual DOM,重繪時效率高
  • 自定義 Component組件化方式,方便開發
  • 父子 Component 閒可透過 props 通訊,内部可透過state通訊
  • 支援JSX 语法/Babel REPL/ES6
  • 只負責 MVC 的 View 部份,彈性高,可以跟後端分離,達到即時互動、自動更新的效果
  • 輕量JS 函式庫,豐富且易移植

必要的安装

首先当然需要安装react/react-dom/webpack/webpack/babel等依赖,一次就好,一次到位

npm install --save react react-dom webpack webpack-dev-server html-webpack-plugin
npm install --save --dev babel-loader babel-core babel-preset-react babel-preset-env@next

另外babel-preset-es2015这个已经过时了,新的应该是babel-preset-env@next

淘宝cnpm,这个不是必须的,但是cnpm比npm来讲,速度快很多

npm install -g cnpm --registry=https://registry.npm.taobao.org

安装create-react-app脚手架,记得有-g

cnpm install -g create-react-app

create-react-app

create-react-app 是一个全局的命令行工具,用于简化并创建一个新的项目。react-scripts 是一个生成的项目所需要的开发依赖。

如果出现以下情况,则证明create-react-app没有安装成功,重新执行npm install -g create-react-app

> create-react-app myapp
create-react-app : 无法将“create-react-app”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包
括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ create-react-app myapp
+ ~~~~~~~~~~~~~~~~+ CategoryInfo          : ObjectNotFound: (create-react-app:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException

开始步骤:

  1. 准备一个干净的工作空间,并cd切换到目录下,例如cd C:\workspace\React
  2. 命令行输入create-react-app my-app,创建react应用my-app
  3. 经过漫长的安装,看到Success! Created my-app at C:\workspace\React\my-app等字眼
C:\workspace\React> create-react-app my-appCreating a new React app in C:\workspace\React\my-app.Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...[  ................] | fetchMetadata: sill resolveWithNewModule react-is@16.8.6 checkin[ installable status
> core-js@2.6.9 postinstall C:\workspace\React\my-app\node_modules\babel-runtime\node_modules\core-js
> node scripts/postinstall || echo "ignore"> core-js-pure@3.1.3 postinstall C:\workspace\React\my-app\node_modules\core-js-pure
> node scripts/postinstall || echo "ignore"+ react-dom@16.8.6
+ react-scripts@3.0.1
+ react@16.8.6
added 1402 packages from 727 contributors in 557.619sInitialized a git repository.Success! Created my-app at C:\workspace\React\my-app
Inside that directory, you can run several commands:npm startStarts the development server.npm run buildBundles the app into static files for production.npm testStarts the test runner.npm run ejectRemoves this tool and copies build dependencies, configuration filesand scripts into the app directory. If you do this, you can’t go back!We suggest that you begin by typing:cd my-appnpm startHappy hacking!
PS C:\workspace\React> cd .\my-app\
PS C:\workspace\React\my-app> lsDirectory: C:\workspace\React\my-appMode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2019/6/14     11:18                node_modules
d-----        2019/6/14     11:18                public
d-----        2019/6/14     11:18                src
-a----       1985/10/26     16:15            310 .gitignore
-a----        2019/6/14     11:18         584347 package-lock.json
-a----        2019/6/14     11:18            613 package.json
-a----       1985/10/26     16:15           2881 README.md

目录结构

可以看到react的目录结构大致如下:

my-app/README.mdnode_modules/package.json.gitignorepublic/favicon.icoindex.htmlsrc/App.cssApp.jsApp.test.jsindex.cssindex.jslogo.svg

运行React

输入

npm run start

然后在浏览器中打开

http://localhost:3000

然后就可以看到

index.js

这里作为总控制,把控index页面的js,可以看到这里有几个功能点:

  • 引入 React/ReactDOM 等基本库
  • 引入css样式文件
  • 引入服务器配置serviceWorker文件
  • 引入独立模块Component,例如App
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';ReactDOM.render(<App />, document.getElementById('root'));// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA https://blog.csdn.net/moshowgame
serviceWorker.unregister();

app.js

接下来看app.js,里面主要就是一个设置刚才看到的主界面的一些内容,例如:

  • 一个img图,因为import logo from './logo.svg',所以可以直接使用src={logo}来指定图片地址
  • 一段文字"Edit src/App.js and save to reload."
  • 一些样式,import './App.css',之后可以直接使用className="App-logo"来获取App.css里面的样式
import React from 'react';
import logo from './logo.svg';
import './App.css';function App() {return (<div className="App"><header className="App-header"><img src={logo} className="App-logo" alt="logo" /><p>Edit <code>src/App.js</code> and save to reload.</p><aclassName="App-link"href="https://blog.csdn.net/moshowgame"target="_blank"rel="by Moshow K ZHENG">Learn React</a></header></div>);
}export default App;


开源项目

https://github.com/moshowgame/react-study

React教程之使用create-react-app构建你的第一个react应用相关推荐

  1. React教程(详细版)

    一.简介(背景) 本文篇幅较多,建议耐心看完,我相信多少会对你有所帮助! 1.1.概念 它是一个将数据渲染为HTML视图 的js库 1.2.原生js痛点 用dom的API去操作dom,繁琐且效率低 用 ...

  2. 怎么安装aptdaemon模块_自己开发一个React Native 模块

    大纲 为什么需要 React Native Module 如何创建一个 React Native的模块 编写 Android Toast 功能模块 如何调试 React Native 模块------ ...

  3. 歌谣学前端之react笔记之第一个react项目

    前言 我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 ...

  4. Jenkins教程(3)使用npm构建Node.js和React应用

    本教程将展示Jenkins如何使用 Node Package Manager (npm)去组合构建简单的 Node.js 和 React 应用 . 如果你是一个对CI/CD概念不了解的 Node.js ...

  5. React教程(六)——使用 create-react-app 快速构建 React 开发环境

    1.create-react-app是什么? 做一个react项目,构建其开发环境对初学者来说是很困难的!所以,facebook专门出了create-react-app命令,用于react项目开发环境 ...

  6. 【天赢金创】Facebook:我们是如何构建第一个跨平台的React Native APP

    今年早些时候,我们介绍过iOS版的React Native. React Native带来的是用web方式的React - 自声明式的UI组件和快速的开发迭代来完成手机平台的功能,然后为了保持速度.保 ...

  7. 构建一个react项目_您想要了解更多有关React的内容吗? 让我们构建一个游戏,然后玩。...

    构建一个react项目 by Samer Buna 通过Samer Buna 您想要了解更多有关React的内容吗? 让我们构建一个游戏,然后玩. (Do you want to learn more ...

  8. React 教程:快速上手指南

    翻译:疯狂的技术宅 原文:https://www.toptal.com/react/... 本文首发微信公众号:jingchengyideng 欢迎关注,每天都给你推送新鲜的前端技术文章 前端和 Ja ...

  9. react 最佳实践_最佳React教程

    react 最佳实践 React is a JavaScript library for building user interfaces. It was voted the most loved i ...

最新文章

  1. [JAVA EE] JPA 技术实践:完成增、删、改、查操作
  2. idea springmvc_SSM三大框架使用Maven快速搭建整合(SpringMVC+Spring+Mybatis)
  3. 关于查询ios的app更新的历史版本记录
  4. C#利用Graphics类绘制进阶--根据文字内容自动生成指定旋转角度图片
  5. eclipse正则表达式查找
  6. Arrays练习:字符串倒序排列
  7. try catch finally 中包含return的几种情况,及返回结果
  8. PAT乙级1037 在霍格沃茨找零钱
  9. python识别出蓝色_OpenCVPython——无法检测蓝色对象
  10. Jquery,Ready函数.
  11. GitHub 官方终于要出 App 了!手机上也能改Bug了...
  12. oracle不完全恢复类型,Oracle——不完全恢復
  13. Java EE7和Maven工程入门(1)
  14. java电子小词典课程设计,java课程设计---英汉电子词典
  15. android 表情包下载,超级表情包app下载
  16. 关于SQL Server中left join on and 用法的介绍
  17. 蓝桥网算法提高 学霸的迷宫
  18. Numpy 学习专题(十)—— 大作业
  19. Python绘制太阳花(初学者)
  20. mac电脑软件卸载不掉 如何用CleanMyMac X彻底删除?

热门文章

  1. matlalb与python编程进行动力总成悬置模态计算对比——困惑待解
  2. weblogic 优化设置 http://wenku.baidu.com/view/c42e7a5bbe23482fb4da4cf2.html
  3. Bulk Binding
  4. 陈伟视频——(20—25)控件
  5. Notable —— Markdown 笔记工具
  6. 手机能打开的表白代码_手机待机时间变短,掉电快?一串隐藏代码就能给手机补电...
  7. 从零开始学习JavaScript:轻松掌握编程语言的核心技能①
  8. 哈工大计算机科学与技术教学方案,计算机科学与技术学科硕士研究生培养方案-哈工大计算机学院...
  9. [ICLR19] ORDERED NEURONS: INTEGRATING TREE STRUCTURES INTO RECURRENT NEURAL NETWORKS
  10. 卸载Mac OSX上面的ios模拟器