e 3 月之前
父節點
當前提交
7f73525bca

+ 1 - 0
15.vue3/project2/package.json

@@ -11,6 +11,7 @@
     "type-check": "vue-tsc --build"
   },
   "dependencies": {
+    "axios": "^1.7.9",
     "mitt": "^3.0.1",
     "sass": "^1.83.4",
     "vite-plugin-vue-setup-extend": "^0.4.0",

+ 14 - 0
15.vue3/project2/src/Child.vue

@@ -0,0 +1,14 @@
+<template>
+  <div class="Suspense">
+    <h1>Suspense</h1>
+    <p>显示:{{content}}</p>
+  </div>
+</template>
+
+<script setup>
+import axios from 'axios';
+import { ref, reactive } from "vue";
+let {data:{content}}= await axios.get("https://api.uomg.com/api/rand.qinghua?format=json")
+console.log(content,'aa')
+</script>
+<style lang="scss" scoped></style>

+ 32 - 0
15.vue3/project2/src/Home.vue

@@ -0,0 +1,32 @@
+<template>
+  <div class="home">
+    <h1>首页</h1>
+    <img
+      src="https://pic2.zhimg.com/v2-5fb13110e1de13d4c11e6e7f5b8026da_r.jpg"
+      alt=""
+    />
+
+    <Suspense>
+      <!-- 具有深层异步依赖的组件 -->
+      <Child />
+      <!-- 在 #fallback 插槽中显示 “正在加载中” -->
+      <template #fallback> Loading... </template>
+    </Suspense>
+  </div>
+</template>
+
+<script setup>
+import { ref, reactive } from "vue";
+import Child from "./Child.vue";
+</script>
+<style lang="scss" scoped>
+.home {
+  width: 500px;
+  height: 500px;
+  background: yellow;
+  img {
+    width: 300px;
+    height: 300px;
+  }
+}
+</style>

+ 26 - 0
15.vue3/project2/src/Teleport/Home.vue

@@ -0,0 +1,26 @@
+<template>
+  <div class="home">
+    <h1>首页</h1>
+    <img src="https://pic2.zhimg.com/v2-5fb13110e1de13d4c11e6e7f5b8026da_r.jpg" alt="">
+    
+    <Modal></Modal>
+  </div>
+</template>
+
+<script setup>
+import { ref, reactive} from 'vue'
+import Modal from '../Teleport/Teleport.vue'
+
+</script>
+<style lang='scss' scoped>
+.home {
+    width: 500px;
+    height: 500px;
+    background: yellow;
+    filter: saturate(300%);
+    img {
+        width: 300px;
+        height: 300px;
+    }
+}
+</style>

+ 27 - 0
15.vue3/project2/src/Teleport/Teleport.vue

@@ -0,0 +1,27 @@
+<template>
+  <Teleport  to="body">
+    <div>
+      <h2>Teleport</h2>
+    </div>
+  </Teleport>
+</template>
+
+<script setup>
+import { ref, reactive } from "vue";
+</script>
+<style lang="scss" scoped>
+div {
+  width: 200px;
+  height: 200px;
+  background: skyblue;
+  color: #000;
+  font-size: 24px;
+  text-align: center;
+  line-height: 200px;
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  margin-left: -100px;
+  margin-top: -100px;
+}
+</style>

+ 2 - 1
15.vue3/project2/src/main.ts

@@ -2,7 +2,8 @@ import { createApp } from 'vue'
 import router from './router'
 // import App from './App.vue'
 // import App from './shallowRef-shallowReactive.vue'
-import App from './shallowReadonly-readonly.vue'
+// import App from './shallowReadonly-readonly.vue'
+import App from './Home.vue'
 
 import './assets/book.css'
 // createApp(App).use(router).mount('#app')

+ 57 - 0
15.vue3/project2/yarn.lock

@@ -855,6 +855,20 @@ ansi-styles@^6.2.1:
   resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
   integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
 
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+  integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+axios@^1.7.9:
+  version "1.7.9"
+  resolved "https://registry.npmmirror.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a"
+  integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==
+  dependencies:
+    follow-redirects "^1.15.6"
+    form-data "^4.0.0"
+    proxy-from-env "^1.1.0"
+
 balanced-match@^1.0.0:
   version "1.0.2"
   resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -908,6 +922,13 @@ chokidar@^4.0.0:
   dependencies:
     readdirp "^4.0.1"
 
+combined-stream@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+  dependencies:
+    delayed-stream "~1.0.0"
+
 convert-source-map@^2.0.0:
   version "2.0.0"
   resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
@@ -964,6 +985,11 @@ define-lazy-prop@^3.0.0:
   resolved "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f"
   integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==
 
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+  integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
 detect-libc@^1.0.3:
   version "1.0.3"
   resolved "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
@@ -1057,6 +1083,20 @@ fill-range@^7.1.1:
   dependencies:
     to-regex-range "^5.0.1"
 
+follow-redirects@^1.15.6:
+  version "1.15.9"
+  resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
+  integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
+
+form-data@^4.0.0:
+  version "4.0.1"
+  resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
+  integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
 fs-extra@^11.2.0:
   version "11.3.0"
   resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d"
@@ -1253,6 +1293,18 @@ micromatch@^4.0.5:
     braces "^3.0.3"
     picomatch "^2.3.1"
 
+mime-db@1.52.0:
+  version "1.52.0"
+  resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+  integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12:
+  version "2.1.35"
+  resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+  integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+  dependencies:
+    mime-db "1.52.0"
+
 minimatch@^9.0.0, minimatch@^9.0.3:
   version "9.0.5"
   resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
@@ -1403,6 +1455,11 @@ pretty-ms@^9.0.0:
   dependencies:
     parse-ms "^4.0.0"
 
+proxy-from-env@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
 read-package-json-fast@^4.0.0:
   version "4.0.0"
   resolved "https://registry.npmmirror.com/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz#8ccbc05740bb9f58264f400acc0b4b4eee8d1b39"