今天这个是较完整流程,可以搭建一个完整的react, 后期可以不需要再一步步来了。
创建项目 基本搭建
在创建之前,需要有一个git 仓库,我们要把项目搭建到git 中
目录介绍
cd D: // cd 到某个盘或文件夹
mkdir workspace //创建workspace文件夹
cd workspace
/**
workspace一般为我们仓库和项目总目录
git@192.168.1.1 仓库一(前端自己项目,如果自己是前端leader)
cd 仓库名称
cd www.bdplus.cn 为上线文件夹
ls // 查看有哪些文件
pc或w 为 pc 电脑端项目
h5或m 为h5 网页或app 中网页或公众号
minstore 小程序(如果分微信和支付宝可wminstore tminstore)
app 前端app 用户开发
mkdown (一些备注文件)
以下为正常开发项目,以上为对应上线打包后文件
w
h5
minstore
app
mkdown
如果有其他方式可自己组织
git@2 仓库二 (其他项目比如后端等)
git@3 仓库三
*/
查看node 版本
node -v 或 使用nvm 进行node 版本安装与切换
node 版本
nvm use v14
Now using node v14.15.3 (npm v6.14.9)
node -v
v14.15.3
为了保证同步,选择node 版本14
开始创建项目
npx create-react-app my-app
官方标准命令,my-app 为项目名称(PS:小写)
npx create-react-app first-react
....
git仓库提交
创建项目后要做git 提交
git add --all git add . 或git add 一个个添加
git commit -m '创建项目提交'
git status 查看仓库文件状态
PS:在企业中我们一般要 某个模块 某个功能某个页面等都需要 add 或commit
一天 早 中晚 都分push 其他如果有上线,或领导要看代码等特殊情况可以push 否则不要太频繁
为什么要早中晚,原因很简单,如果电脑跟屁了,你只需要补半天的代码就可以了。当然这是最致命一个问题
进入项目目录
cd first-react
开启或释放配置
yarn eject
注意如果上面你没有仓库 如果没有git 提交,这一步是不可能实现的
PS:
-
发现package.json 内容前后是不一样的 -
多了一个config 文件夹 -
多了一个scripts文件夹
项目启动
yarn start
运行ok 就可以了,但并没有完事 go on...
ctrl+c 后继续操作
项目 sass(scss)安装
yarn add node-sass-chokidar
yarn add npm-run-all
安装 node-sass-chokidar 需要多尝试几次, 如果三五次后还是报错,可尝试以下解决方案
node -v
14 不建议使用node 16
1、npm install -g node-gyp
2、npm install --global --production windows-build-tools
ok 后
删除掉当前文件夹的node 包
rm -rf node_modules
重新yarn 或 npm install
ok后
再次执行yarn add node-sass-chokidar
基本就可以安装成功了
修改package.json(替换 script 代码块 换成以下代码)
"scripts": {
"build-css": "node-sass-chokidar src/ -o src/",
"watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive --use-polling --polling-interval 1000",
"start-js": "node scripts/start.js",
"start": "npm-run-all -p watch-css start-js",
"build-js": "node scripts/build.js",
"build": "npm-run-all build-css build-js",
"test": "node scripts/test.js --env=jsdom"
},
yarn build 打包注意事项
新建一个.env文件与package.json 同在根目录下
GENERATE_SOURCEMAP=false
以下三种路径
PUBLIC_URL=https://www.a.com/
PUBLIC_URL=./
PUBLIC_URL=/
正常代码如下:(会在后面上线具体再介绍)
GENERATE_SOURCEMAP=false
PUBLIC_URL=/
yarn start 启动项目
1、创建文件夹
mkdir -p src/styles/
2、创建一个scss 文件 并写点代码
vi src/styles/index.scss
vi index.js 打开文件
first-react/src/index.js
找到
import './index.css';
修改成
import './styles/index.css';
要引入src/styles/index.css
如果启动后项目会自动生成 index.css
那此时 就代表我们的创建项目第一节点算完成了,
虽然看上步骤挺繁琐的,
但离我们真正创建项目完成还差好几步。
但这一步完成了我们就可以开始码代码了。
** ctrl +c **
继续项目搭建
设置代理
你如何与后端开发进行开发联调的。
早期 的开发模式,基本上是根据后端的接口文档,前端这边模拟实现业务逻辑
想真正与数据库操作,基本上是要把代码发到开发服务器上。
中间有接口字段更改,这边都要在本地改完,再发布到服务器上测试
但现在已经不需要了
在本地就是可以时时对接后台开发接口
任何字段表更改,都可以在本地时时更改
所以如今天的本地开发,又是开发服务器,也是测试服务器,甚至可以是线上服务器
那具体怎么做?
安装包
yarn add http-proxy-middleware
yarn add axios
新建文件
vi
src/setupProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/home',createProxyMiddleware({
target: 'https://#####.com/',
changeOrigin: true,
})
);
app.use(
'/wp-json',createProxyMiddleware({
target: 'https://#####.cn/',
changeOrigin: true,
})
);
};
需要接口联调的可以单独找小主,有现在的接口
可以自己尝试接口
比如:
https://api.aaaa.com/home/mediareports?page_number=1&page_size=20
怎么配置
target 为 https://api.aaaa.com/ 域名
'/home' 为 域名后的第一级目录
/home/mediareports就是你接口的地址
?page_number=1&page_size=20就是接口的参数
早期 是在package.json 中直接修改代理开发
现在已经改成新src/setupProxy.js 文件了
可以增加多个接口
但app.use( 第一个参数 不能重复,也不能与域名有冲突
重要一点是,每次增加一个接口
一定要yarn start
这样 我们的接口就会直接在本地调用了
类似nginx 跨域代理
扩展知识点:
vue react 前端模拟路由 上线后其他页面刷新后404
如何解决
正常是需要在nginx 加一个代码就可以了
还有nginx 跨域如何实现
这个也会在后章节中上线的章节讲
接上文,搭建路由,在企业中基本都是两个及以上的页面。
所以路由是必需的
路由植入
路由安装
1、安装包
yarn add react-router-dom;
react-router 分native 和 web 端
直接使用 web端
新增加Router.js
vi src/Router.js
import React from 'react';
import { BrowserRouter, HashRouter} from 'react-router-dom';
import App from './App.js';
const Router = () => (
<BrowserRouter>
<App/>
</BrowserRouter>
)
export default Router;
这个js 目前作用就是管理路由模式一种是hash 一种是Browser
后期的mobx 或redux 可以直接在<App/> 入口注入
修改index.js
src/index.js
原来的 index.js 直接引入 App.js
如今多了一步
index.js--->Router.js--->App.js
引入 import Router from './Router';
使用
<Router />
import React from 'react';
import ReactDOM from 'react-dom';
import './styles/index.css';
import Router from './Router';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<Router />
</React.StrictMode>,
document.getElementById('root')
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
改造App.js
import React, { Component } from 'react';
import { withRouter,NavLink,Switch,Redirect,Route} from 'react-router-dom';
import Home from './views/Home';
import Test from './views/Test';
class App extends Component {
render(){
return(
<Switch>
<Route exact path="/" component={Home} />
<Route path="/test" component={Test} />
<Redirect to="/"/>
</Switch>
)
}
}
export default App;
这样启动项目就ok了
页面创建
增加一个页面流程还是一样的,还是修改原来的app.js
把以上所有代码搭建好了之后,index.html
默认样式等全都搭建好后,可以提交到git 仓库中
这样后期直接 git cLone 下来以后,
直接删除掉里面的.git 或从仓库中移出来,
改个文件名字,直接npn install 或 yarn
就可以直接开始写项目了。
这样以后就不需要一步步配置了
可以直接git clone
yarn
就完整的项目就ok 了