export const mainRoute = [
{
pathname:“/login”,
component:Login
},
{
pathname:“/404”,
component:Notfound
}
]
// /admin/XXX dashboard article articleEdit settings 管理页面
export const admainRoute = [
{
pathname:“/admin/dashboard”,
component:Dashboard
},
{
pathname:“/admin/article”,
component:Article,
exact:true //配置App内置路由需要exact属性,详情见下文
},
{
pathname:“/admin/article/edit/:id”,
component:ArticleEdit
},
{
pathname:“/admin/settings”,
component:Settings
},
]
1-3需要最外层去渲染路由视图
- 在
src/index.js
文件里渲染路由视图
import React from ‘react’;
import ReactDOM from ‘react-dom’;
import App from ‘./App’;
import {HashRouter as Router,Route,Redirect,Switch} from “react-router-dom”
import {mainRoute} from “./routes”
ReactDOM.render(
//admin主页面的路由 进入到App组件
{
mainRoute.map(route=>{
return
})
} //遍历login 404 的路由
//重定向 首页为admin
//如果路径与之前都不匹配,则返回404页面
,
document.getElementById(‘root’)
);
1-4需要配置内层App路由
- 在
src/App.js
文件里渲染路由视图
import React, { Component } from ‘react’
import {admainRoute} from “./routes”
import {Route,Redirect,Switch} from “react-router-dom”
export default class App extends Component {
render() {
return (
{
admainRoute.map(route=>{
return
})
} //admin页面里的路由 dashboard article articleEdit settings
//重定向到 admin页面
)
}
}
- 后续发现了问题
/admin/article
显示Article中的内容 但是/admin/article/edit/2
的时候不显示ArticleEdit中的内容
解决方法,直接在routes/index.js
里面添加一个标志exact
然后遍历路由的时候判断是否要添加exact
属性
{
pathname:“/admin/article”,
component:Article,
exact:true
},
{
admainRoute.map(route=>{
return
})
}
1-5 路由的懒加载
- 下载
react-loadable
通过yarn add react-loadable
安装
- 并新建
src/component/loading/index.js
文件,当懒加载未完成时,会显示该页面的内容
- 更改
src/views/index.js
文件
import Loadable from ‘react-loadable’;
import Loading from ‘…/components/loading’;
//需要将对外的普通组件需要进行懒加载
const Article = Loadable({
loader: () => import(‘./article’),
loading: Loading,
});
const Dashboard = Loadable({
loader: () => import(‘./dashboard’),
loading: Loading,
});
const ArticleEdit = Loadable({
loader: () => import(‘./article/Edit’),
loading: Loading,
});
const Login = Loadable({
loader: () => import(‘./login’),
loading: Loading,
});
const Notfound = Loadable({
loader: () => import(‘./notfound’),
loading: Loading,
});
const Settings = Loadable({
loader: () => import(‘./settings’),
loading: Loading,
});
export {
Article,
ArticleEdit,
Dashboard,
Login,
Notfound,
Settings
}
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
09937)]
[外链图片转存中…(img-bM2bYEpE-1715587809937)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!