import React,{ Component } from 'react'import Router from "./router/index"import"./scss/style.scss"import{Provider} from "react-redux"import store from "./store/index"
export defaultclassAppextendsComponent{render(){return(<div className="wrapper"><Provider store={store}><Router></Router></Provider></div>)}}
在router文件夹下有三个文件
index.js,routerconfig.js, routerView.js三个文件
index.js
引入react-router-dom 配置路由,相当于全局配置,在组件中只需传参即可,出现二级路由
import React,{ Component } from 'react'import{BrowserRouter,Switch,Route} from "react-router-dom";import RouterView from "./routerView";import routes from "./routerConfig"
function RootRouter(){return<BrowserRouter><RouterView routes={routes}></RouterView></BrowserRouter>}
export default RootRouter;
routerconfig.js
配置路由 懒加载,详情传参,二级路由
懒加载需要在网上找一张动图
import React,{ Component } from 'react'import Loadable from "react-loadable";//懒加载(按需加载)const loading =()=>{return<div><img src={require("../img/timg (1).gif")} alt=""/></div>}//一级const Home =Loadable({loader:()=>import("../views/home"),loading: loading,})const Cinema =Loadable({loader:()=>import("../views/cinema"),loading: loading,})const Mine =Loadable({loader:()=>import("../views/mine"),loading: loading,})const Car =Loadable({loader:()=>import("../views/car"),loading: loading,})const Detail =Loadable({loader:()=>import("../views/detail"),loading: loading,})const Login =Loadable({loader:()=>import("../views/login"),loading:loading,})// 二级const Future =Loadable({loader:()=>import("../views/child/future"),loading: loading,})const Now =Loadable({loader:()=>import("../views/child/now"),loading: loading,})const routes =[{path:"/home",component: Home,children:[{path:"/home/now",component: Now},{path:"/home/future",component: Future},{path:"/home",redirect:"/home/now"}]},{path:"/cinema",component: Cinema,},{path:"/mine",component: Mine,},{path:"/car",component: Car,},{path:"/login",component: Login,},{path:"/detail/:id",component:Detail,},{path:"/",redirect:"/home"}]
export default routes;
import React,{ Component } from 'react'import{createStore,applyMiddleware,combineReducers} from "redux";import thunk from "redux-thunk";import tao from "./tao/reducer"const reducer=combineReducers({tao,})const store=createStore(reducer,applyMiddleware(thunk))
window.store=store;
export default store;
car.actions.js
异步请求数据 首页和影院和详情页的数据
import axios from "axios";import"../../mock/index"import{ININ_DATA,GET_LIST,DETAIL_ITEM} from "./car.types";export const creatAction=(dispatch)=>{axios.get("/api/hot").then(res=>{dispatch({type:ININ_DATA,list:res.data[0].movieList})})}//影院的数据
export const getlist=(dispatch)=>{axios.get("/api/list").then(res=>{// console.log(res.data) dispatch({type:GET_LIST,futurelist:res.data.list})})}//详情页的数据
export const DetailList=(id)=>(dispatch)=>{axios.post("/api/getList",{id}).then(res=>{console.log(res.data.data)let data=res.data.data;dispatch({type:DETAIL_ITEM,data})})}