Przeglądaj źródła

优化 router.query 取值

icssoa 5 miesięcy temu
rodzic
commit
4228a62d86
2 zmienionych plików z 17 dodań i 4 usunięć
  1. 11 3
      cool/router/index.ts
  2. 6 1
      pages/demo/other/router/query.uvue

+ 11 - 3
cool/router/index.ts

@@ -10,7 +10,9 @@ import {
 	toArray,
 	map,
 	debounce,
-	nth
+	nth,
+	assign,
+	parse
 } from "../utils";
 
 // 路由信息类型
@@ -36,11 +38,16 @@ type Events = {
 export class Router {
 	private eventsMap = {} as Events; // 事件存储
 
-	// 获取缓存的路由参数
+	// 获取传递的 params 参数
 	params() {
 		return (storage.get("router-params") ?? {}) as UTSJSONObject;
 	}
 
+	// 获取传递的 query 参数
+	query() {
+		return this.route()?.query ?? {};
+	}
+
 	// 获取默认路径,支持 home 和 login
 	defaultPath(name: "home" | "login") {
 		const paths = {
@@ -82,7 +89,8 @@ export class Router {
 			// #endif
 
 			// 获取页面 query 参数
-			const query = (get(e, "options") ?? {}) as UTSJSONObject;
+			// @ts-ignore
+			const query = e.options;
 
 			return {
 				path,

+ 6 - 1
pages/demo/other/router/query.uvue

@@ -15,7 +15,7 @@
 <script lang="ts" setup>
 import { t } from "@/locale";
 import DemoItem from "../../components/item.uvue";
-import { userInfo, useStore } from "@/cool";
+import { router, userInfo, useStore } from "@/cool";
 
 const { user } = useStore();
 
@@ -24,6 +24,11 @@ const props = defineProps({
 		type: String
 	}
 });
+
+onReady(() => {
+	const query = router.query();
+	console.log(query);
+});
 </script>
 
 <style lang="scss" scoped></style>