使用create-react-app创建react应用
脚手架用webpack完成
react脚手架
1. xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目
1. 包含了所有需要的配置(语法检查、jsx编译、devServer…)
2. 下载好了所有相关的依赖
3. 可以直接运行一个简单效果
2. react提供了一个用于创建react项目的脚手架库: create-react-app
3. 项目的整体技术架构为: react + webpack + es6 + eslint
4. 使用脚手架开发的项目的特点: 模块化, 组件化, 工程化
创建项目并启用
第一步,全局安装:npm i -g create-react-app
第二步,切换到想创项目的目录,使用命令:create-react-app hello-react
第三步,进入项目文件夹:cd hello-react
第四步,启动项目:npm start
脚手架项目结构
public ---- 静态资源文件夹
favicon.icon ------ 网站页签图标
index.html -------- 主页面
logo192.png ------- logo图
logo512.png ------- logo图
manifest.json ----- 应用加壳的配置文件
robots.txt -------- 爬虫协议文件
src ---- 源码文件夹
App.css -------- App组件的样式
App.js --------- App组件
App.test.js ---- 用于给App做测试
index.css ------ 样式
index.js ------- 入口文件
logo.svg ------- logo图
reportWebVitals.js
--- 页面性能分析文件(需要web-vitals库的支持)
setupTests.js
---- 组件单元测试的文件(需要jest-dom库的支持)
public文件
react脚手架关键词的写法,代表public文件夹的路径
与直接写效果相同,上述写法在引人路由会有优势。
用于开启理想视口,移动端网页适配
只针对androids手机页签和地址栏的颜色
src文件
<React.StrictMode>检查app和app里面子组件是否合理
svg是一个logo图,通过浏览器打开就能看到
reportWebVitals 用于记录界面上的性能的
一个简单的hello组件
其实主要写三个文件
将原来的文件放入一个文件重新创建public和src
这是修改后的文件多了三个文件。
./public/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta charset="UTF-8">
<title>react</title>
</head>
<body>
<div id="root"></div>>
</body>
</html>
./src/App.js
//创建外壳组件
import React from 'react'
class App extends React.Component{
render(){
return(
<div>
hello ,react!
</div>
)
}
}
// 暴露APP组件
export default App
./src/index.js
//引入react核心库
import React from 'react'
import ReactDOM from 'react-dom'
// 引入APP组件
import App from './App'
//渲染app组件到页面
ReactDOM.render(<App />,document.getElementById('root'))
这里已经正常使用,但在app中要用组件,不能直接用hello react ,这里可以创建hello 组件
规范化的文件格式
public中两个文件没变
文件要放入components文件夹中不要与app 和index放在一起,可以加入css改变样式具体如下
./components/Hello.css
.title{
background-color: orange;
}
./components/Hello.js
import React ,{Component} from 'react'
import './Hello.css'
export default class Hello extends Component{
render(){
return <h2 className="title">Hello,react</h2>
}
}
./App.js
//创建外壳组件
import React,{Component} from 'react'
import Hello from './components/Hello'
//创建并暴露app
export default class App extends Component{
render(){
return(
<div>
<Hello />
</div>
)
}
}
./index.js
//引入react核心库
import React from 'react'
import ReactDOM from 'react-dom'
// 引入APP组件
import App from './App'
//渲染app组件到页面
ReactDOM.render(<App />,document.getElementById('root'))
多组件模式
componets中每个组件都建立一个文件夹
优化
可以把组件的js改为jsx,这样就能分清逻辑和组件