diff --git a/src/App.js b/src/App.js
index 001cc13..bdf0b82 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,4 +1,4 @@
-import React, {useState} from "react";
+import React, {useState, Suspense} from "react";
// import logo from './logo.svg';
import './App.css';
@@ -6,6 +6,11 @@ import InputComponent from "./components/InputComponent";
import SonComponent from "./components/SonComponent";
import SonComponent2 from "./components/SonComponent2";
import {Link, NavLink, Route, Routes} from "react-router-dom";
+import SonPage from "./pages/SonPage";
+import Page3 from "./pages/Page3";
+
+// 异步组件, 懒加载
+const LazyPage = React.lazy(()=> import("./pages/SonPageLazy"))
function App() {
// vue3 组合式 API
@@ -177,6 +182,8 @@ function App() {
首页
页面1
页面2
+ 页面3-子页面
+ 页面3-子页面2
@@ -186,14 +193,24 @@ function App() {
页面2
- {/* react router v5 和 v6 有较大区别*/}
- {/* v5 中为 Switch*/}
-
- {/* v6 为 element 或 Component */}
- Router Page 1}>
- {/* v5 只有 component */}
- Router Page 2
}>
-
+ {/*过渡效果*/}
+ ...加载中...}>
+ {/* react router v5 和 v6 有较大区别*/}
+ {/* v5 中为 Switch*/}
+
+ {/* v6 为 element 或 Component */}
+ Router Page 1}>
+ {/* v5 只有 component */}
+ Router Page 2
}>
+
+ }>
+ }>
+
+
+
+
+
+
{/*class 类名必须为 className, 内容只能是字符串*/}
{/*
*/}
@@ -229,7 +246,7 @@ function App() {
-
+
diff --git a/src/pages/Page3.js b/src/pages/Page3.js
new file mode 100644
index 0000000..d29a982
--- /dev/null
+++ b/src/pages/Page3.js
@@ -0,0 +1,10 @@
+import {Outlet} from "react-router-dom";
+
+export default function Page3(){
+ return
+ Router Page3
+
+ {/*指定子页面显示位置*/}
+
+
+}
diff --git a/src/pages/SonPage.js b/src/pages/SonPage.js
new file mode 100644
index 0000000..5b4bc42
--- /dev/null
+++ b/src/pages/SonPage.js
@@ -0,0 +1,44 @@
+import {useLocation, useNavigate, useParams, useSearchParams} from "react-router-dom";
+import {useCallback} from "react";
+
+export default function SonPage(){
+ // 适用于 /path/:id 形式
+ let params = useParams()
+
+ // 适用于 /path?page=xxx 形式
+ let [query] = useSearchParams()
+ console.log(query, query.get("page"))
+
+ let location = useLocation()
+
+ const print = useCallback((obj)=>{
+ return JSON.stringify(obj)
+ },[])
+
+ const nav = useNavigate()
+
+ return
+ Son Page
+
+
+ params => {print(params)}
+
+
+
+ query.get("page") => {print(query.get("page"))}
+
+
+
+ location => {print(location)}
+
+
+
+
+
+
+
+}
diff --git a/src/pages/SonPageLazy.js b/src/pages/SonPageLazy.js
new file mode 100644
index 0000000..5b4bc42
--- /dev/null
+++ b/src/pages/SonPageLazy.js
@@ -0,0 +1,44 @@
+import {useLocation, useNavigate, useParams, useSearchParams} from "react-router-dom";
+import {useCallback} from "react";
+
+export default function SonPage(){
+ // 适用于 /path/:id 形式
+ let params = useParams()
+
+ // 适用于 /path?page=xxx 形式
+ let [query] = useSearchParams()
+ console.log(query, query.get("page"))
+
+ let location = useLocation()
+
+ const print = useCallback((obj)=>{
+ return JSON.stringify(obj)
+ },[])
+
+ const nav = useNavigate()
+
+ return
+ Son Page
+
+
+ params => {print(params)}
+
+
+
+ query.get("page") => {print(query.get("page"))}
+
+
+
+ location => {print(location)}
+
+
+
+
+
+
+
+}