create-react-app

FaceBook官方出的一个构建React单页面应用的脚手架工具,可以轻松实现零配置就可以快速开发React的应用。

  1、create-react-app构建react项目

// 全局安装

npm install -g create-react-app

// 构建一个my-app的项目

npx create-react-app my-app

cd my-app

// 启动编译当前的React项目,并自动打开 http://localhost:3000/

npm start

  

  2、构建React项目其他方式:

// npm方式:

// npm init <initializer> is available in npm 6+

npm init react-app my-app

// Yarn方式:

// yarn create is available in Yarn 0.25+

yarn create react-app my-app

  

  3、项目默认目录:

├── package.json          # npm 依赖
├── public                  # 这个是webpack的配置的静态目录
│   ├── favicon.ico
│   ├── index.html          # 默认是单页面应用,这个是最终的html的基础模板,页面模板
│   └── manifest.json
├── src
│   ├── App.css             # App根组件的css
│   ├── App.js              # App组件代码
│   ├── App.test.js
│   ├── index.css           # 启动文件样式 全局样式
│   ├── index.js            # 启动的文件(开始执行的入口)入口文件!
│   ├── logo.svg
│   └── serviceWorker.js    # pwa支持
|
---webpack.config.js # webpack 配置文件

  4、起步:

// 启动项目
npm start
// or
yarn start
// 启动测试
npm test
//or
yarn test
// 构建生产版本
npm run build
// or
yarn build
// 解压默认的webpack配置到配置文件中,暴露配置项
npm run eject

  

  5、安装依赖:

npm install node-sass --save
 // or
yarn add node-sass

 // webpack.config.js
entry: [
// WebpackDevServer客户端,它实现开发时热更新功能
isEnvDevelopment &&
require.resolve('react-dev-utils/webpackHotDevClient'),
// 应⽤程序⼊⼝:src/index
paths.appIndexJs,
].filter(Boolean),

//   webpack.config.js 是webpack配置⽂件,开头的常量声明可以看出cra能够⽀持ts、sass及css模块化。
// Check if TypeScript is setup(检查TypeScript是否已设置)

const useTypeScript = fs.existsSync(paths.appTsConfig);

// style files regexes (样式文件表达式)

const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;

 

  6、React和ReactDom

// 删除src下⾯所有代码,新建index.js。

import React from 'react';
import ReactDOM from 'react-dom';

// 这⾥怎么没有出现React字眼?
// JSX => React.createElement(...)
ReactDOM.render(<h1>Hello React</h1>, document.querySelector('#root'));


React负责逻辑控制,数据 -> VDOM 
ReactDom渲染实际DOM,VDOM -> DOM 
React使⽤JSX来描述UI 
babel-loader把JSX 编译成相应的 JS 对象,
React.createElement再把这个JS对象构造成React需要的虚拟dom。

  

  React负责逻辑控制,数据 -> VDOM

  ReactDom渲染实际DOM,VDOM -> DOM

  React使⽤JSX来描述UI

  babel-loader把JSX 编译成相应的 JS 对象,React.createElement再把这个JS对象构造成React需 要的虚拟dom。

 

 

create-react-app入门教程:

https://www.html.cn/create-react-app/docs/getting-started/

https://www.jianshu.com/p/77bf3944b0f4

 

posted @ 2020-08-04 14:15  妮大猫  阅读(482)  评论(0编辑  收藏  举报