zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    C++基础-函数的覆盖和函数重载
    C++基础-public(公有属性),protected(保护属性),private(私有属性)
    C++基础-父类和子类的构造和析构的顺序
    C++基础-类的(有参数)继承
    C++基础-类的(无参数)继承
    C程序之包含头文件
    时间复杂度详细分析
    "分辨率"到底是个什么概念?它和DPI之间是什么关系?
    每天一个Qt类之QWidget
    line1: 1: Syntax error: word unexpected (expecting ")")
  • 原文地址:https://www.cnblogs.com/zhou-xm/p/13432959.html
Copyright © 2011-2022 走看看