安装脚手架步骤
按这个步骤走下去:
-
npm install -g create-react-app
-
create-react-app my-app
使用命令创建应用,myapp为项目名称
-
cd my-app
进入目录,然后就启动
-
npm start
配置文件
npm run eject 导出配置文件 //将所有的配置文件和 package.json 依赖库解压到应用所在的路径方便我们进行一些小改动 (执行完文件中会多了一个config文件,在里面的webpack.config.dev.js文件配置我们平时所需的一些用到的功能,例如:less、sass等)
运行结束后显示的目录,多了一个 config 与 scripts 文件夹;
打开scripts文件下的start.js文件
//大概在37行左右
var DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;
//3000的位置可以修改地址例如:
var DEFAULT_PORT = parseInt(process.env.PORT, 10) || 8888;
npm start //此时在命令行重新启动 则地址变为http://localhost:8888
打开config 文件下的paths.js文件
//大概在68行左右
module.exports = {
appBuild: resolveApp('build'),
appPublic: resolveApp('public'),
appHtml: resolveApp('public/index.html'),
appIndexJs: resolveApp('src/index.js'),
appPackageJson: resolveApp('package.json'),
appSrc: resolveApp('src'),
yarnLockFile: resolveApp('yarn.lock'),
testsSetup: resolveApp('src/setupTests.js'),
appNodeModules: resolveApp('node_modules'),
nodePaths: nodePaths,
publicUrl: getPublicUrl(resolveApp('package.json')),
servedPath: getServedPath(resolveApp('package.json'))
};
//其中appBuild: resolveApp('build')是打包后文件生成的文件夹可以修改成你想要的比如
appBuild: resolveApp('demo')//后边打包结束后会输出在这个文件夹下
//打包之后双击打开 index.html文件是出不来的 因为路径的问题 那么就设置一下;还是这个文件大概58行
function getServedPath(appPackageJson) {
var publicUrl = getPublicUrl(appPackageJson);
var servedUrl = envPublicUrl || (
publicUrl ? url.parse(publicUrl).pathname : '/'
);
return ensureSlash(servedUrl, true);
}
//中的publicUrl ? url.parse(publicUrl).pathname : '/' 在前边加一个.变成
publicUrl ? url.parse(publicUrl).pathname : './'
//好了保存一下 重新打开命令提示符
npm run build //本次打包之后的文件会放到 demo文件夹下边,双击html也可以正常显示了!
!!!切记放在服务器上上线的时候如果用的BrowserRouter一定要给这个路径的.去掉 改回/ 否则会有问题。
依赖包文件 (package.json)
使用命令 npm i 可以下载 文件里面依赖所有对应的包
下载新的包时,可以 可以加上 --save--dev 下载相关的依赖到 这个文件
下一步,除了src里面的index.js 其他的删除,再建好文件夹,开始配路由。
路由配置
模板参考:
在src里面新建一个router文件里面里面建一个index.js 来管理所要配置的路由。 如下:
import React, { Component } from 'react';
import { HashRouter, Switch, Route, Redirect } from 'react-router-dom';
import login from "../login/login";
import home from "../home/home";
export default class RouteConfig extends Component{
render(){
return(
<HashRouter>
<Switch>
<Route path="/" exact component={login} />
<Route path='/home' component={home}/>
<Redirect to="/" />
</Switch>
</HashRouter>
)
}
}
再在外层的index.js 引用配置好的路由文件导入index.html。如下:
import React from 'react';
import ReactDOM from 'react-dom';
import Fff from "./router"; (注意,会默认取router文件夹下面的index.js)
ReactDOM.render(< Fff />, document.getElementById('root'));