react-01

 react 脚手架

1.  按装

npm i -g create-react-app

2.创建项目

create-react-app my-app

my-app是自己设置的项目名称(遵循npm模块发布时的要求,例如,名字中布恩那个出现大写字母或者汉字以及特殊字符等)

3.进入项目暴露配置

cd my-app

npm start

npm init -y

生产的结构目录

my-app

  |--build      //构建目录,遵循发布系统规范

  |   |-- index.html    //静态页面

  |   |-- static        //资源文件

  |

  |-- node_modules      //项目组件文件夹:所有安装的组件都在这

  |

  |--src                //源码目录

|   |--index.js       //入口文件(还生成了其它的文件,但是没啥用,我们可以直接的删除掉)

  |

  |--public             //静态页面目录

  |   |--index.html     //主页面(还生成了其它的文件,但是没啥用,我们可以直接的删除掉)

  |

  |-- .gitignore        //git提交的忽略文件,我们一般还需要再手动增加.idea(通过webstorm编辑工具进行开发,生成的文件)

  |--package.json   //项目依赖项及项目基础信息

  |--README.md      //项目描述

  |-- ...

复制代码

生成的package.json

{

  "name": "my-app",

  "version": "0.1.0",

  "private": true,

  "dependencies": {  //=>生产依赖项

    "react": "^16.2.0",

    "react-dom": "^16.2.0",

    "react-scripts": "1.1.0"

  },

  "scripts": {   //=>可执行脚本

    "start": "react-scripts start",

    "build": "react-scripts build",

    "test": "react-scripts test --env=jsdom",

    "eject": "react-scripts eject"

  }

}

/*

* 可执行脚本注释:

*   $ npm run start  启动服务,自动编译项目,可以实现边开发,边自动编译刷新,看到最新开发的效果

*   

*   $ npm run build  把项目整体进行编译,最后再bulid目录中生成项目编译后的文件,我们上传服务器的就是这些文件

*   

*   $ npm run test   使用Jest作为测试运行程序(不常用)

*    

*   $ npm run eject  下文具体介绍使用

*   

*   当然以上操作也可以基于yarn来完成

*/

npm run eject 上面提到,脚手架为了"优雅",隐藏了所有的webpack相关配置文件,如果我们想要基于原来的基础再次增加一些自己的东西,首先就要找到这些隐藏文件并且进行修改。

有的开发者直接到node_modules中去搜索webpack.config...等文件,然后进行修改,修改后发现生效了,但是当修改后,我们又安装了一些其它项目模块,重新编译的时候,又回到了原有的配置信息(很头疼的问题,总不能每一次安装新模块后,都重新改一次需要修改的配置吧...)

基于create-react-app创建完成项目后,会提供一个eject命令($ yarn eject),基于这个命令,可以把隐藏的webpack文件展示出来,方便我们二次进行配置。

$yarn eject或者npm run eject 此命令执行完成不可逆转(慎重使用)

执行完成后,我们可以看到原有的结构目录发生了一些变化(新增两个文件夹,package.json中的内容也跟着发生改变)

创建了my-app目录,这个时候,使用下面的命令就可以开始开发应用了。

npm start

默认情况下,会在开发环境下启动一个服务器,监听在3000端口,它会主动给你打开浏览器的,可以立刻就看到这个app的效果。

4.线上编译

npm run build

运行下面两条命令,可以查看线上生产环境的运行效果。

npm install -g pushstate-server

pushstate-server build

5.同端口问题

const apiBaseUrl = process.env.NODE_ENV === 'development' ? 'localhost:3001' : '/'

但是这样搞起来,还是有些复杂,然而,create-react-app提供了一个超级简单的方法,只需要在package.json文件中,加一个配置项就可以了。

比如:

"proxy": "http://localhost:3001/"

Node.js安装

在这里插入图片描述

在这里插入图片描述

记得把导入的语句一同删除(删除后文件不存在导入会报错)

App.js

import React from 'react';

function App() {
  return (
    <div >
      hello world
    </div>
  );
}

export default App;

简单的函数组件

function Header(){
  return <h1>我是头部</h1>;
}
function App() {
  return (
    <Header/>
  );
}

简单的类组件

import React, {Component} from 'react'
class App extends Component{
    render(){
        return (
            <div>
                hello world
            </div>
        )
    }
}
export default App;
import React from 'react';
const Component = React.Component;
class App extends Component {
  
  render() {
    return (
      <div>
        hello world
      </div>
    );
  }
}

export default App;
constructor(props){
  super(props)
  this.fun = this.fun.bind(this)      
}

onClick = {() => ()} //绑定的事件名小驼峰写法
onClick = {this.fun.bind(this)}

如果写行内样式用双花括号{ {}} <p style={ {color:"red"}}>hello</p>

错误写法

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45555960/article/details/105719578