From 7c6bb3624b58d2db85bd82a9224bfbc22e7cf7eb Mon Sep 17 00:00:00 2001 From: GauharChan Date: Thu, 10 Aug 2023 06:41:26 +0000 Subject: [PATCH] deploy: 3f5a9e99e2cf25316cad5fd238e351a63c0e71a2 --- 404.html | 2 +- ...\221\344\270\255\347\232\204\345\235\221.html" | 2 +- ...\205\350\257\273\347\254\224\350\256\260.html" | 2 +- antv.html | 2 +- .../\351\227\256\351\242\230.md.fdc3fc34.js" | 13 ++++++++++--- .../\351\227\256\351\242\230.md.fdc3fc34.lean.js" | 2 +- "es6\347\254\224\350\256\260.html" | 2 +- flutter.html | 2 +- hashmap.json | 2 +- index.html | 2 +- ...\246\344\271\240\347\254\224\350\256\260.html" | 2 +- "js\347\254\224\350\256\260.html" | 2 +- note.html | 2 +- "react\347\254\224\350\256\260.html" | 2 +- taro.html | 2 +- typeScript.html | 2 +- uniapp.html | 2 +- utils.html | 2 +- vite-plugin-shared.html | 2 +- vue3.html | 2 +- "vue3\346\272\220\347\240\201.html" | 2 +- "vue\347\254\224\350\256\260.html" | 2 +- webpack.html | 2 +- ...\207\345\210\260\347\232\204\345\235\221.html" | 2 +- ...\270\347\224\250\344\273\243\347\240\201.html" | 2 +- ...\270\347\224\250\344\273\243\347\240\201.html" | 2 +- ...\241\345\260\217\347\250\213\345\272\217.html" | 2 +- ...\207\347\253\240\351\223\276\346\216\245.html" | 2 +- ...\231\350\241\250\350\276\276\345\274\217.html" | 2 +- "\351\202\243\344\272\233\345\235\221.html" | 2 +- "\351\227\256\351\242\230.html" | 15 +++++++++++---- 31 files changed, 50 insertions(+), 36 deletions(-) rename "assets/\351\227\256\351\242\230.md.bae4798c.js" => "assets/\351\227\256\351\242\230.md.fdc3fc34.js" (94%) rename "assets/\351\227\256\351\242\230.md.bae4798c.lean.js" => "assets/\351\227\256\351\242\230.md.fdc3fc34.lean.js" (98%) diff --git a/404.html b/404.html index 7cd238f..103f6f9 100644 --- a/404.html +++ b/404.html @@ -14,7 +14,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- + diff --git "a/Taro\345\274\200\345\217\221\344\270\255\347\232\204\345\235\221.html" "b/Taro\345\274\200\345\217\221\344\270\255\347\232\204\345\235\221.html" index 3f5c351..a7b6fe6 100644 --- "a/Taro\345\274\200\345\217\221\344\270\255\347\232\204\345\235\221.html" +++ "b/Taro\345\274\200\345\217\221\344\270\255\347\232\204\345\235\221.html" @@ -214,7 +214,7 @@ ], ],

这个组件名前缀你喜欢改什么就改什么,记得在vue的template的引用同步更改就行

重新运行pnpm dev:alipay,大功告成~🎉 4.x版本在安卓上已经没有上面提到的两个问题了

总结

这里踩坑主要还是配置问题,因为我不熟悉webpackwebpackchain因此废了很大劲。还有找资料还是优先到github查找一下有没有类似的issue或者贡献,什么chatGPT没啥用,不停的说谎给出错误答案

- + diff --git "a/Vue.js\350\256\276\350\256\241\344\270\216\345\256\236\347\216\260-\351\230\205\350\257\273\347\254\224\350\256\260.html" "b/Vue.js\350\256\276\350\256\241\344\270\216\345\256\236\347\216\260-\351\230\205\350\257\273\347\254\224\350\256\260.html" index 50997fb..f6fd21e 100644 --- "a/Vue.js\350\256\276\350\256\241\344\270\216\345\256\236\347\216\260-\351\230\205\350\257\273\347\254\224\350\256\260.html" +++ "b/Vue.js\350\256\276\350\256\241\344\270\216\345\256\236\347\216\260-\351\230\205\350\257\273\347\254\224\350\256\260.html" @@ -134,7 +134,7 @@ activeEffect.deps.push(deps) } - + diff --git a/antv.html b/antv.html index 5c0354d..61ce9ac 100644 --- a/antv.html +++ b/antv.html @@ -562,7 +562,7 @@ ...new Set(Array.from({ length: 100 }).map(() => ~~(Math.random() * 5))), ].map((item) => "d" + item); - + diff --git "a/assets/\351\227\256\351\242\230.md.bae4798c.js" "b/assets/\351\227\256\351\242\230.md.fdc3fc34.js" similarity index 94% rename from "assets/\351\227\256\351\242\230.md.bae4798c.js" rename to "assets/\351\227\256\351\242\230.md.fdc3fc34.js" index 58306e3..e4d8af9 100644 --- "a/assets/\351\227\256\351\242\230.md.bae4798c.js" +++ "b/assets/\351\227\256\351\242\230.md.fdc3fc34.js" @@ -291,7 +291,14 @@ import{_ as n,c as a,b as l,a as p,o,r as e}from"./app.08e03c58.js";const u=JSON console.log(data); }, }); -

\u8FD0\u884C\u4EE3\u7801\u53EF\u4EE5\u770B\u5230\uFF0C\u6253\u5370 111\uFF0C222\u3002\u8FD9\u8BF4\u660E\u590D\u6742\u8BF7\u6C42\u7684\u65F6\u5019\uFF0C\u5148\u53D1\u4E86\u4E00\u4E2Aoption\u8BF7\u6C42\uFF0C\u786E\u5B9A\u5141\u8BB8\u8DE8\u57DF\u540E\u518D\u53D1\u8D77put\u8BF7\u6C42\uFF0C\u8FD4\u56DE\u6570\u636E

promise

Promise \u662F\u5F02\u6B65\u7F16\u7A0B\u7684\u4E00\u79CD\u89E3\u51B3\u65B9\u6848\uFF0C\u6BD4\u4F20\u7EDF\u7684\u89E3\u51B3\u65B9\u6848\u2014\u2014\u56DE\u8C03\u51FD\u6570\u548C\u4E8B\u4EF6\u2014\u2014\u66F4\u5408\u7406\u548C\u66F4\u5F3A\u5927

\u662F\u4E00\u4E2A\u5BB9\u5668\uFF0C\u91CC\u9762\u4FDD\u5B58\u7740\u67D0\u4E2A\u672A\u6765\u624D\u4F1A\u7ED3\u675F\u7684\u4E8B\u4EF6\uFF08\u901A\u5E38\u662F\u4E00\u4E2A\u5F02\u6B65\u64CD\u4F5C\uFF09\u7684\u7ED3\u679C\u3002

vue

mvvm

M - Model \u4EE3\u8868\u6570\u636E\u6A21\u578B\uFF0C\u4E5F\u53EF\u4EE5\u5728 Model \u4E2D\u5B9A\u4E49\u6570\u636E\u4FEE\u6539\u548C\u64CD\u4F5C\u7684\u4E1A\u52A1\u903B\u8F91

V - View\uFF0C\u4EE3\u8868 UI \u7EC4\u4EF6\uFF0C\u5B83\u8D1F\u8D23\u5C06\u6570\u636E\u6A21\u578B\u8F6C\u5316\u4E3A UI \u5C55\u73B0\u51FA\u6765

VM - ViewModel\uFF0C\u76D1\u542C\u6A21\u578B\u6570\u636E\u7684\u6539\u53D8\u548C\u63A7\u5236\u89C6\u56FE\u884C\u4E3A\u3001\u5904\u7406\u7528\u6237\u4EA4\u4E92\uFF0C\u7B80\u5355\u7406\u89E3\u5C31\u662F\u4E00\u4E2A\u540C\u6B65 View \u548C Model \u7684\u5BF9\u8C61\uFF0C\u8FDE\u63A5 Model \u548C View

\u53CC\u5411\u7ED1\u5B9A\u539F\u7406

vue-router

\u4F20\u53C2\u548C\u53D6\u53C2

path \u548C query \u4E00\u8D77\u4F7F\u7528

js
\u4F20\u53C2: this.$router.push({
+

\u8FD0\u884C\u4EE3\u7801\u53EF\u4EE5\u770B\u5230\uFF0C\u6253\u5370 111\uFF0C222\u3002\u8FD9\u8BF4\u660E\u590D\u6742\u8BF7\u6C42\u7684\u65F6\u5019\uFF0C\u5148\u53D1\u4E86\u4E00\u4E2Aoption\u8BF7\u6C42\uFF0C\u786E\u5B9A\u5141\u8BB8\u8DE8\u57DF\u540E\u518D\u53D1\u8D77put\u8BF7\u6C42\uFF0C\u8FD4\u56DE\u6570\u636E

4.\u4FEE\u6539\u672C\u5730hosts\u6587\u4EF6

\u5047\u8BBE\u63A5\u53E3\u7684\u5730\u5740\u4E3Aabc.com:8080\uFF0C\u90A3\u4E48\u6211\u4EEC\u53EF\u4EE5\u5728\u811A\u624B\u67B6\u7684config\u4E2D\u914D\u7F6E\u4E00\u4E2Aserve\u7684\u542F\u52A8\u57DF\u540D\uFF1B\u53EA\u8981\u662F\u4E00\u4E8C\u7EA7\u57DF\u540D\u548C\u7AEF\u53E3\u53F7\u76F8\u540C

js
module.exports = {
+  devServer: {
+    host: 'local.abc.com',
+    port: 8080
+  },
+};
+

\u63A5\u7740\u6211\u4EEC\u542F\u52A8\u672C\u5730serve\u670D\u52A1\uFF0C\u5C31\u4F1A\u4EE5\u8FD9\u4E2A\u57DF\u540D\u548C\u7AEF\u53E3\u53F7\u8FD0\u884C\uFF0C\u6211\u4EEC\u9700\u8981\u4FEE\u6539\u672C\u673Ahosts\u6587\u4EF6\uFF0C\u5C06\u8BE5\u57DF\u540D\u6307\u5411127.0.0.1

127.0.0.1 local.abc.com
+

\u5982\u679C\u4F60\u7CFB\u7EDF\u6709vpn\u4E4B\u7C7B\u7684\u4EE3\u7406\uFF0C\u9700\u8981\u5173\u95ED

promise

Promise \u662F\u5F02\u6B65\u7F16\u7A0B\u7684\u4E00\u79CD\u89E3\u51B3\u65B9\u6848\uFF0C\u6BD4\u4F20\u7EDF\u7684\u89E3\u51B3\u65B9\u6848\u2014\u2014\u56DE\u8C03\u51FD\u6570\u548C\u4E8B\u4EF6\u2014\u2014\u66F4\u5408\u7406\u548C\u66F4\u5F3A\u5927

\u662F\u4E00\u4E2A\u5BB9\u5668\uFF0C\u91CC\u9762\u4FDD\u5B58\u7740\u67D0\u4E2A\u672A\u6765\u624D\u4F1A\u7ED3\u675F\u7684\u4E8B\u4EF6\uFF08\u901A\u5E38\u662F\u4E00\u4E2A\u5F02\u6B65\u64CD\u4F5C\uFF09\u7684\u7ED3\u679C\u3002

vue

mvvm

M - Model \u4EE3\u8868\u6570\u636E\u6A21\u578B\uFF0C\u4E5F\u53EF\u4EE5\u5728 Model \u4E2D\u5B9A\u4E49\u6570\u636E\u4FEE\u6539\u548C\u64CD\u4F5C\u7684\u4E1A\u52A1\u903B\u8F91

V - View\uFF0C\u4EE3\u8868 UI \u7EC4\u4EF6\uFF0C\u5B83\u8D1F\u8D23\u5C06\u6570\u636E\u6A21\u578B\u8F6C\u5316\u4E3A UI \u5C55\u73B0\u51FA\u6765

VM - ViewModel\uFF0C\u76D1\u542C\u6A21\u578B\u6570\u636E\u7684\u6539\u53D8\u548C\u63A7\u5236\u89C6\u56FE\u884C\u4E3A\u3001\u5904\u7406\u7528\u6237\u4EA4\u4E92\uFF0C\u7B80\u5355\u7406\u89E3\u5C31\u662F\u4E00\u4E2A\u540C\u6B65 View \u548C Model \u7684\u5BF9\u8C61\uFF0C\u8FDE\u63A5 Model \u548C View

\u53CC\u5411\u7ED1\u5B9A\u539F\u7406

vue-router

\u4F20\u53C2\u548C\u53D6\u53C2

path \u548C query \u4E00\u8D77\u4F7F\u7528

js
\u4F20\u53C2: this.$router.push({
   path: "/xxx",
   query: {
     id: id,
@@ -327,7 +334,7 @@ import{_ as n,c as a,b as l,a as p,o,r as e}from"./app.08e03c58.js";const u=JSON
 max-age     \u7F13\u5B58\u7684\u5185\u5BB9\u5C06\u5728 xxx \u79D2\u540E\u5931\u6548
 no-cache    \u9700\u8981\u4F7F\u7528\u5BF9\u6BD4\u7F13\u5B58\u6765\u9A8C\u8BC1\u7F13\u5B58\u6570\u636E
 no-store    \u6240\u6709\u5185\u5BB9\u90FD\u4E0D\u4F1A\u7F13\u5B58\uFF0C\u5F3A\u7F13\u5B58\u3001\u534F\u5546\u7F13\u5B58\u90FD\u4E0D\u4F1A\u89E6\u53D1
-

\u534F\u5546\u7F13\u5B58

\u6839\u636E\u8BF7\u6C42\u5934\u7684 If-Modified-Since / If-None-Match\u7684\u503C\u548C\u5BF9\u5E94\u7684\u670D\u52A1\u7AEF\u5B57\u6BB5\u7684\u503C\u505A\u5339\u914D\uFF0C\u4E00\u81F4\u5219\u547D\u4E2D\u7F13\u5B58\uFF0C304 \u72B6\u6001\u7801

\u6D4F\u89C8\u5668\u6E32\u67D3\u8FC7\u7A0B

\u8FC7\u7A0B

\u91CD\u6392\u3001\u91CD\u7ED8

\u51CF\u5C11\u91CD\u6392\u6B21\u6570

  1. \u6837\u5F0F\u96C6\u4E2D\u6539\u53D8
  2. dom \u64CD\u4F5C\uFF0C\u8BFB\u548C\u5199\uFF0C\u6700\u597D\u8981\u5206\u5F00
  3. \u4F7F\u7528\u7EDD\u5BF9\u5B9A\u4F4D\u3001\u56FA\u5B9A\u5B9A\u4F4D\u8131\u79BB\u6587\u6863\u6D41

\u5C0F\u7ED3

new.target

\u5224\u65AD\u51FD\u6570\u6216\u6784\u9020\u65B9\u6CD5\u662F\u5426\u662F\u901A\u8FC7new\u8FD0\u7B97\u7B26\u88AB\u8C03\u7528\u7684

\u5982\u679C\u51FD\u6570\u6216\u6784\u9020\u65B9\u6CD5\u662F\u88ABnew\u5B9E\u4F8B\u5316\u7684\uFF0C\u5219new.target\u8FD4\u56DE\u6784\u9020\u51FD\u6570\u7684\u5F15\u7528(\u6784\u9020\u51FD\u6570\u672C\u8EAB)

\u5982\u679C\u662F\u666E\u901A\u51FD\u6570\uFF0C\u5219\u8FD4\u56DEundefined

js
function Person() {
+

\u534F\u5546\u7F13\u5B58

\u6839\u636E\u8BF7\u6C42\u5934\u7684 If-Modified-Since / If-None-Match\u7684\u503C\u548C\u5BF9\u5E94\u7684\u670D\u52A1\u7AEF\u5B57\u6BB5\u7684\u503C\u505A\u5339\u914D\uFF0C\u4E00\u81F4\u5219\u547D\u4E2D\u7F13\u5B58\uFF0C304 \u72B6\u6001\u7801

\u6D4F\u89C8\u5668\u6E32\u67D3\u8FC7\u7A0B

image-20230810143256460

\u91CD\u6392\u3001\u91CD\u7ED8

\u51CF\u5C11\u91CD\u6392\u6B21\u6570

  1. \u6837\u5F0F\u96C6\u4E2D\u6539\u53D8
  2. dom \u64CD\u4F5C\uFF0C\u8BFB\u548C\u5199\uFF0C\u6700\u597D\u8981\u5206\u5F00
  3. \u4F7F\u7528\u7EDD\u5BF9\u5B9A\u4F4D\u3001\u56FA\u5B9A\u5B9A\u4F4D\u8131\u79BB\u6587\u6863\u6D41

\u5C0F\u7ED3

new.target

\u5224\u65AD\u51FD\u6570\u6216\u6784\u9020\u65B9\u6CD5\u662F\u5426\u662F\u901A\u8FC7new\u8FD0\u7B97\u7B26\u88AB\u8C03\u7528\u7684

\u5982\u679C\u51FD\u6570\u6216\u6784\u9020\u65B9\u6CD5\u662F\u88ABnew\u5B9E\u4F8B\u5316\u7684\uFF0C\u5219new.target\u8FD4\u56DE\u6784\u9020\u51FD\u6570\u7684\u5F15\u7528(\u6784\u9020\u51FD\u6570\u672C\u8EAB)

\u5982\u679C\u662F\u666E\u901A\u51FD\u6570\uFF0C\u5219\u8FD4\u56DEundefined

js
function Person() {
   this.age = 18;
   console.log(new.target);
   console.log(new.target.name);
@@ -351,4 +358,4 @@ import{_ as n,c as a,b as l,a as p,o,r as e}from"./app.08e03c58.js";const u=JSON
   var c = a; //a\u7684\u5F15\u7528\u6B21\u6570\u518D\u52A01\uFF0C\u4E3A2
   var b = {}; //a\u7684\u5F15\u7528\u6B21\u6570\u51CF1\uFF0C\u4E3A1
 }
-

\u5F15\u7528\u8BA1\u6570\u6709\u7F3A\u70B9\uFF0C\u5C31\u662F\u5F15\u7528\u5FAA\u73AF\u3002\u5FAA\u73AF\u5F15\u7528\u6307\u7684\u662F\u5BF9\u8C61 A \u4E2D\u5305\u542B\u4E00\u4E2A\u6307\u5411\u5BF9\u8C61 B \u7684\u6307\u9488\uFF0C\u800C\u5BF9\u8C61 B \u4E2D\u4E5F\u5305\u542B\u4E00\u4E2A\u6307\u5411\u5BF9\u8C61 A \u7684\u5F15\u7528\u3002

js \u8FD0\u884C\u539F\u7406

runTime

\u6D4F\u89C8\u5668\u63D0\u4F9B\u7684\u4E00\u4E9B api\uFF0C\u6BD4\u5982window\u3001dom\u7684 api\uFF1Bjs \u7684\u4E8B\u4EF6\u5FAA\u73AF\u3001\u4E8B\u4EF6\u961F\u5217\u88AB\u79F0\u4E3ArunTime

\u5806\u6808

\u5806:\uFF1A\u50A8\u5B58\u7740\u5F15\u7528\u7C7B\u578B\u7684\u5185\u5B58\u5730\u5740\uFF0C\u95ED\u5305\u7684\u53D8\u91CF\u4E5F\u5B58\u5728\u4E8E\u6B64

\u6808\uFF1A\u50A8\u5B58\u51FD\u6570\u7684\u8C03\u7528\uFF0C\u57FA\u672C\u7C7B\u578B\u7684\u6570\u636E\u3002\u51FD\u6570\u4E0A\u4E0B\u6587\u6267\u884C\u5B8C\u6BD5\u4E4B\u540E\u88AB\u6D88\u9664\uFF0C\u5982\u679C\u8FD8\u6709\u5F15\u7528\uFF0C\u90A3\u5C31\u7EE7\u7EED\u5B58\u5728\u4E8E\u8C03\u7528\u6808\u4E2D\u3002

script\u6807\u7B7E

defer

defer \u4F1A\u201C\u5728\u540E\u53F0\u201D\u4E0B\u8F7D\uFF0C\u6D4F\u89C8\u5668\u5C06\u7EE7\u7EED\u5904\u7406 HTML\uFF0C\u6784\u5EFA DOM\uFF1B\u7136\u540E\u7B49 **DOM \u6784\u5EFA\u5B8C\u6210\u540E\uFF0C\u811A\u672C\u624D\u4F1A\u6267\u884C\u3002**\u4E5F\u56E0\u6B64\u8FD9\u4E2D\u6807\u7B7E\u5728\u6587\u6863\u4E2D\u7684\u4F4D\u7F6E\u4E0D\u91CD\u8981

async

\u4E5F\u662F\u5F02\u6B65\u52A0\u8F7D\u4E0D\u4F1A\u963B\u585E\u9875\u9762\u6E32\u67D3\uFF0C\u4F46\u662F\u5F53script\u52A0\u8F7D\u5C31\u7EEA\u540E\uFF0C\u5C31\u4F1A\u6839\u636E\u5728\u6587\u6863\u4E2D\u7684\u987A\u5E8F\u4F18\u5148\u6267\u884C\u4EE3\u7801

Set\u65E0\u6CD5\u5BF9\u54EA\u4E9B\u503C\u53BB\u91CD

Set\u6210\u5458\u662F\u552F\u4E00\u4E14\u65E0\u5E8F\u7684\uFF0C\u6CA1\u6709\u91CD\u590D\u503C\u3002 \u5411Set\u4E2D\u52A0\u5165\u503C\u7684\u65F6\u5019\uFF0C\u4E0D\u4F1A\u8FDB\u884C\u7C7B\u578B\u8F6C\u6362\uFF0C\u7C7B\u4F3C\u4E8E\u7CBE\u786E\u8FD0\u7B97\u7B26===\uFF0C\u4E3B\u8981\u7684\u533A\u522B\u5728\u4E8E**NaN\u7B49\u4E8E\u81EA\u8EAB**\uFF0C==\u800C\u7CBE\u786E\u8FD0\u7B97\u7B26===\u5224\u65ADNaN\u4E0D\u7B49\u4E8E\u81EA\u8EAB\u3002==

\u65B9\u6CD5\u548C\u5C5E\u6027

\u5B9E\u4F8B\u5C5E\u6027constructor\uFF1A\u6784\u9020\u51FD\u6570 size: \u8FD4\u56DE\u5143\u7D20\u6570\u91CF

\u904D\u5386\u65B9\u6CD5\uFF1A

keys()\uFF1A\u8FD4\u56DE\u4E00\u4E2A\u5305\u542B\u96C6\u5408\u4E2D\u6240\u6709\u952E\u7684\u8FED\u4EE3\u5668 values()\uFF1A\u8FD4\u56DE\u4E00\u4E2A\u5305\u542B\u96C6\u5408\u4E2D\u6240\u6709\u503C\u7684\u8FED\u4EE3\u5668 entries()\uFF1A\u8FD4\u56DE\u4E00\u4E2A\u5305\u542Bset\u5BF9\u8C61\u4E2D\u6240\u6709\u5143\u7D20\u5F97\u952E\u503C\u5BF9\u8FED\u4EE3\u5668 forEach(callback,thisArg)\uFF1A\u7528\u4E8E\u5BF9\u96C6\u5408\u6210\u5458\u6267\u884Ccallback

`,154);function r(F,D,y,A,C,i){const s=e("Banner");return o(),a("div",null,[l(s),c])}const h=n(t,[["render",r]]);export{u as __pageData,h as default}; +

\u5F15\u7528\u8BA1\u6570\u6709\u7F3A\u70B9\uFF0C\u5C31\u662F\u5F15\u7528\u5FAA\u73AF\u3002\u5FAA\u73AF\u5F15\u7528\u6307\u7684\u662F\u5BF9\u8C61 A \u4E2D\u5305\u542B\u4E00\u4E2A\u6307\u5411\u5BF9\u8C61 B \u7684\u6307\u9488\uFF0C\u800C\u5BF9\u8C61 B \u4E2D\u4E5F\u5305\u542B\u4E00\u4E2A\u6307\u5411\u5BF9\u8C61 A \u7684\u5F15\u7528\u3002

js \u8FD0\u884C\u539F\u7406

runTime

\u6D4F\u89C8\u5668\u63D0\u4F9B\u7684\u4E00\u4E9B api\uFF0C\u6BD4\u5982window\u3001dom\u7684 api\uFF1Bjs \u7684\u4E8B\u4EF6\u5FAA\u73AF\u3001\u4E8B\u4EF6\u961F\u5217\u88AB\u79F0\u4E3ArunTime

\u5806\u6808

\u5806:\uFF1A\u50A8\u5B58\u7740\u5F15\u7528\u7C7B\u578B\u7684\u5185\u5B58\u5730\u5740\uFF0C\u95ED\u5305\u7684\u53D8\u91CF\u4E5F\u5B58\u5728\u4E8E\u6B64

\u6808\uFF1A\u50A8\u5B58\u51FD\u6570\u7684\u8C03\u7528\uFF0C\u57FA\u672C\u7C7B\u578B\u7684\u6570\u636E\u3002\u51FD\u6570\u4E0A\u4E0B\u6587\u6267\u884C\u5B8C\u6BD5\u4E4B\u540E\u88AB\u6D88\u9664\uFF0C\u5982\u679C\u8FD8\u6709\u5F15\u7528\uFF0C\u90A3\u5C31\u7EE7\u7EED\u5B58\u5728\u4E8E\u8C03\u7528\u6808\u4E2D\u3002

script\u6807\u7B7E

defer

defer \u4F1A\u201C\u5728\u540E\u53F0\u201D\u4E0B\u8F7D\uFF0C\u6D4F\u89C8\u5668\u5C06\u7EE7\u7EED\u5904\u7406 HTML\uFF0C\u6784\u5EFA DOM\uFF1B\u7136\u540E\u7B49 **DOM \u6784\u5EFA\u5B8C\u6210\u540E\uFF0C\u811A\u672C\u624D\u4F1A\u6267\u884C\u3002**\u4E5F\u56E0\u6B64\u8FD9\u4E2D\u6807\u7B7E\u5728\u6587\u6863\u4E2D\u7684\u4F4D\u7F6E\u4E0D\u91CD\u8981

async

\u4E5F\u662F\u5F02\u6B65\u52A0\u8F7D\u4E0D\u4F1A\u963B\u585E\u9875\u9762\u6E32\u67D3\uFF0C\u4F46\u662F\u5F53script\u52A0\u8F7D\u5C31\u7EEA\u540E\uFF0C\u5C31\u4F1A\u6839\u636E\u5728\u6587\u6863\u4E2D\u7684\u987A\u5E8F\u4F18\u5148\u6267\u884C\u4EE3\u7801

Set\u65E0\u6CD5\u5BF9\u54EA\u4E9B\u503C\u53BB\u91CD

Set\u6210\u5458\u662F\u552F\u4E00\u4E14\u65E0\u5E8F\u7684\uFF0C\u6CA1\u6709\u91CD\u590D\u503C\u3002 \u5411Set\u4E2D\u52A0\u5165\u503C\u7684\u65F6\u5019\uFF0C\u4E0D\u4F1A\u8FDB\u884C\u7C7B\u578B\u8F6C\u6362\uFF0C\u7C7B\u4F3C\u4E8E\u7CBE\u786E\u8FD0\u7B97\u7B26===\uFF0C\u4E3B\u8981\u7684\u533A\u522B\u5728\u4E8E**NaN\u7B49\u4E8E\u81EA\u8EAB**\uFF0C==\u800C\u7CBE\u786E\u8FD0\u7B97\u7B26===\u5224\u65ADNaN\u4E0D\u7B49\u4E8E\u81EA\u8EAB\u3002==

\u65B9\u6CD5\u548C\u5C5E\u6027

\u5B9E\u4F8B\u5C5E\u6027constructor\uFF1A\u6784\u9020\u51FD\u6570 size: \u8FD4\u56DE\u5143\u7D20\u6570\u91CF

\u904D\u5386\u65B9\u6CD5\uFF1A

keys()\uFF1A\u8FD4\u56DE\u4E00\u4E2A\u5305\u542B\u96C6\u5408\u4E2D\u6240\u6709\u952E\u7684\u8FED\u4EE3\u5668 values()\uFF1A\u8FD4\u56DE\u4E00\u4E2A\u5305\u542B\u96C6\u5408\u4E2D\u6240\u6709\u503C\u7684\u8FED\u4EE3\u5668 entries()\uFF1A\u8FD4\u56DE\u4E00\u4E2A\u5305\u542Bset\u5BF9\u8C61\u4E2D\u6240\u6709\u5143\u7D20\u5F97\u952E\u503C\u5BF9\u8FED\u4EE3\u5668 forEach(callback,thisArg)\uFF1A\u7528\u4E8E\u5BF9\u96C6\u5408\u6210\u5458\u6267\u884Ccallback

`,160);function r(F,D,y,A,C,i){const s=e("Banner");return o(),a("div",null,[l(s),c])}const h=n(t,[["render",r]]);export{u as __pageData,h as default}; diff --git "a/assets/\351\227\256\351\242\230.md.bae4798c.lean.js" "b/assets/\351\227\256\351\242\230.md.fdc3fc34.lean.js" similarity index 98% rename from "assets/\351\227\256\351\242\230.md.bae4798c.lean.js" rename to "assets/\351\227\256\351\242\230.md.fdc3fc34.lean.js" index d217ef6..40756da 100644 --- "a/assets/\351\227\256\351\242\230.md.bae4798c.lean.js" +++ "b/assets/\351\227\256\351\242\230.md.fdc3fc34.lean.js" @@ -1 +1 @@ -import{_ as n,c as a,b as l,a as p,o,r as e}from"./app.08e03c58.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u7EE7\u627F","slug":"\u7EE7\u627F","link":"#\u7EE7\u627F","children":[{"level":3,"title":"\u51E0\u79CD\u65B9\u5F0F","slug":"\u51E0\u79CD\u65B9\u5F0F","link":"#\u51E0\u79CD\u65B9\u5F0F","children":[]}]},{"level":2,"title":"\u4ECE UR \u8F93\u5165\u5230\u9875\u9762\u5C55\u73B0\u5230\u5E95\u53D1\u751F\u4EC0\u4E48\uFF1F","slug":"\u4ECE-ur-\u8F93\u5165\u5230\u9875\u9762\u5C55\u73B0\u5230\u5E95\u53D1\u751F\u4EC0\u4E48","link":"#\u4ECE-ur-\u8F93\u5165\u5230\u9875\u9762\u5C55\u73B0\u5230\u5E95\u53D1\u751F\u4EC0\u4E48","children":[{"level":3,"title":"\u4E09\u6B21\u63E1\u624B","slug":"\u4E09\u6B21\u63E1\u624B","link":"#\u4E09\u6B21\u63E1\u624B","children":[]},{"level":3,"title":"\u4E3A\u4EC0\u4E48\u9700\u8981\u4E09\u6B21\u63E1\u624B\uFF0C\u4E24\u6B21\u4E0D\u884C\u5417\uFF1F","slug":"\u4E3A\u4EC0\u4E48\u9700\u8981\u4E09\u6B21\u63E1\u624B-\u4E24\u6B21\u4E0D\u884C\u5417","link":"#\u4E3A\u4EC0\u4E48\u9700\u8981\u4E09\u6B21\u63E1\u624B-\u4E24\u6B21\u4E0D\u884C\u5417","children":[]},{"level":3,"title":"\u56DB\u6B21\u6325\u624B","slug":"\u56DB\u6B21\u6325\u624B","link":"#\u56DB\u6B21\u6325\u624B","children":[]}]},{"level":2,"title":"ajax","slug":"ajax","link":"#ajax","children":[{"level":3,"title":"\u5DE5\u4F5C\u8FC7\u7A0B","slug":"\u5DE5\u4F5C\u8FC7\u7A0B","link":"#\u5DE5\u4F5C\u8FC7\u7A0B","children":[]},{"level":3,"title":"\u539F\u751F\u7528\u6CD5","slug":"\u539F\u751F\u7528\u6CD5","link":"#\u539F\u751F\u7528\u6CD5","children":[]},{"level":3,"title":"jq \u7528\u6CD5","slug":"jq-\u7528\u6CD5","link":"#jq-\u7528\u6CD5","children":[]},{"level":3,"title":"axios","slug":"axios","link":"#axios","children":[]}]},{"level":2,"title":"\u8DE8\u57DF","slug":"\u8DE8\u57DF","link":"#\u8DE8\u57DF","children":[{"level":3,"title":"\u89E3\u51B3\u65B9\u6848","slug":"\u89E3\u51B3\u65B9\u6848","link":"#\u89E3\u51B3\u65B9\u6848","children":[]}]},{"level":2,"title":"promise","slug":"promise","link":"#promise","children":[]},{"level":2,"title":"vue","slug":"vue","link":"#vue","children":[{"level":3,"title":"mvvm","slug":"mvvm","link":"#mvvm","children":[]},{"level":3,"title":"\u53CC\u5411\u7ED1\u5B9A\u539F\u7406","slug":"\u53CC\u5411\u7ED1\u5B9A\u539F\u7406","link":"#\u53CC\u5411\u7ED1\u5B9A\u539F\u7406","children":[]},{"level":3,"title":"vue-router","slug":"vue-router","link":"#vue-router","children":[]}]},{"level":2,"title":"JQuery","slug":"jquery","link":"#jquery","children":[{"level":3,"title":"\u6587\u4EF6\u4E0A\u4F20","slug":"\u6587\u4EF6\u4E0A\u4F20","link":"#\u6587\u4EF6\u4E0A\u4F20","children":[]}]},{"level":2,"title":"http","slug":"http","link":"#http","children":[{"level":3,"title":"http \u7F13\u5B58","slug":"http-\u7F13\u5B58","link":"#http-\u7F13\u5B58","children":[]}]},{"level":2,"title":"\u6D4F\u89C8\u5668\u6E32\u67D3\u8FC7\u7A0B","slug":"\u6D4F\u89C8\u5668\u6E32\u67D3\u8FC7\u7A0B","link":"#\u6D4F\u89C8\u5668\u6E32\u67D3\u8FC7\u7A0B","children":[{"level":3,"title":"\u91CD\u6392\u3001\u91CD\u7ED8","slug":"\u91CD\u6392\u3001\u91CD\u7ED8","link":"#\u91CD\u6392\u3001\u91CD\u7ED8","children":[]}]},{"level":2,"title":"new.target","slug":"new-target","link":"#new-target","children":[]},{"level":2,"title":"\u5783\u573E\u56DE\u6536","slug":"\u5783\u573E\u56DE\u6536","link":"#\u5783\u573E\u56DE\u6536","children":[]},{"level":2,"title":"js \u8FD0\u884C\u539F\u7406","slug":"js-\u8FD0\u884C\u539F\u7406","link":"#js-\u8FD0\u884C\u539F\u7406","children":[{"level":3,"title":"runTime","slug":"runtime","link":"#runtime","children":[]},{"level":3,"title":"\u5806\u6808","slug":"\u5806\u6808","link":"#\u5806\u6808","children":[]}]},{"level":2,"title":"script\u6807\u7B7E","slug":"script\u6807\u7B7E","link":"#script\u6807\u7B7E","children":[{"level":3,"title":"defer","slug":"defer","link":"#defer","children":[]},{"level":3,"title":"async","slug":"async","link":"#async","children":[]}]},{"level":2,"title":"Set\u65E0\u6CD5\u5BF9\u54EA\u4E9B\u503C\u53BB\u91CD","slug":"set\u65E0\u6CD5\u5BF9\u54EA\u4E9B\u503C\u53BB\u91CD","link":"#set\u65E0\u6CD5\u5BF9\u54EA\u4E9B\u503C\u53BB\u91CD","children":[{"level":3,"title":"\u65B9\u6CD5\u548C\u5C5E\u6027","slug":"\u65B9\u6CD5\u548C\u5C5E\u6027","link":"#\u65B9\u6CD5\u548C\u5C5E\u6027","children":[]}]}],"relativePath":"\u95EE\u9898.md"}'),t={name:"\u95EE\u9898.md"},c=p("",154);function r(F,D,y,A,C,i){const s=e("Banner");return o(),a("div",null,[l(s),c])}const h=n(t,[["render",r]]);export{u as __pageData,h as default}; +import{_ as n,c as a,b as l,a as p,o,r as e}from"./app.08e03c58.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u7EE7\u627F","slug":"\u7EE7\u627F","link":"#\u7EE7\u627F","children":[{"level":3,"title":"\u51E0\u79CD\u65B9\u5F0F","slug":"\u51E0\u79CD\u65B9\u5F0F","link":"#\u51E0\u79CD\u65B9\u5F0F","children":[]}]},{"level":2,"title":"\u4ECE UR \u8F93\u5165\u5230\u9875\u9762\u5C55\u73B0\u5230\u5E95\u53D1\u751F\u4EC0\u4E48\uFF1F","slug":"\u4ECE-ur-\u8F93\u5165\u5230\u9875\u9762\u5C55\u73B0\u5230\u5E95\u53D1\u751F\u4EC0\u4E48","link":"#\u4ECE-ur-\u8F93\u5165\u5230\u9875\u9762\u5C55\u73B0\u5230\u5E95\u53D1\u751F\u4EC0\u4E48","children":[{"level":3,"title":"\u4E09\u6B21\u63E1\u624B","slug":"\u4E09\u6B21\u63E1\u624B","link":"#\u4E09\u6B21\u63E1\u624B","children":[]},{"level":3,"title":"\u4E3A\u4EC0\u4E48\u9700\u8981\u4E09\u6B21\u63E1\u624B\uFF0C\u4E24\u6B21\u4E0D\u884C\u5417\uFF1F","slug":"\u4E3A\u4EC0\u4E48\u9700\u8981\u4E09\u6B21\u63E1\u624B-\u4E24\u6B21\u4E0D\u884C\u5417","link":"#\u4E3A\u4EC0\u4E48\u9700\u8981\u4E09\u6B21\u63E1\u624B-\u4E24\u6B21\u4E0D\u884C\u5417","children":[]},{"level":3,"title":"\u56DB\u6B21\u6325\u624B","slug":"\u56DB\u6B21\u6325\u624B","link":"#\u56DB\u6B21\u6325\u624B","children":[]}]},{"level":2,"title":"ajax","slug":"ajax","link":"#ajax","children":[{"level":3,"title":"\u5DE5\u4F5C\u8FC7\u7A0B","slug":"\u5DE5\u4F5C\u8FC7\u7A0B","link":"#\u5DE5\u4F5C\u8FC7\u7A0B","children":[]},{"level":3,"title":"\u539F\u751F\u7528\u6CD5","slug":"\u539F\u751F\u7528\u6CD5","link":"#\u539F\u751F\u7528\u6CD5","children":[]},{"level":3,"title":"jq \u7528\u6CD5","slug":"jq-\u7528\u6CD5","link":"#jq-\u7528\u6CD5","children":[]},{"level":3,"title":"axios","slug":"axios","link":"#axios","children":[]}]},{"level":2,"title":"\u8DE8\u57DF","slug":"\u8DE8\u57DF","link":"#\u8DE8\u57DF","children":[{"level":3,"title":"\u89E3\u51B3\u65B9\u6848","slug":"\u89E3\u51B3\u65B9\u6848","link":"#\u89E3\u51B3\u65B9\u6848","children":[]}]},{"level":2,"title":"promise","slug":"promise","link":"#promise","children":[]},{"level":2,"title":"vue","slug":"vue","link":"#vue","children":[{"level":3,"title":"mvvm","slug":"mvvm","link":"#mvvm","children":[]},{"level":3,"title":"\u53CC\u5411\u7ED1\u5B9A\u539F\u7406","slug":"\u53CC\u5411\u7ED1\u5B9A\u539F\u7406","link":"#\u53CC\u5411\u7ED1\u5B9A\u539F\u7406","children":[]},{"level":3,"title":"vue-router","slug":"vue-router","link":"#vue-router","children":[]}]},{"level":2,"title":"JQuery","slug":"jquery","link":"#jquery","children":[{"level":3,"title":"\u6587\u4EF6\u4E0A\u4F20","slug":"\u6587\u4EF6\u4E0A\u4F20","link":"#\u6587\u4EF6\u4E0A\u4F20","children":[]}]},{"level":2,"title":"http","slug":"http","link":"#http","children":[{"level":3,"title":"http \u7F13\u5B58","slug":"http-\u7F13\u5B58","link":"#http-\u7F13\u5B58","children":[]}]},{"level":2,"title":"\u6D4F\u89C8\u5668\u6E32\u67D3\u8FC7\u7A0B","slug":"\u6D4F\u89C8\u5668\u6E32\u67D3\u8FC7\u7A0B","link":"#\u6D4F\u89C8\u5668\u6E32\u67D3\u8FC7\u7A0B","children":[{"level":3,"title":"\u91CD\u6392\u3001\u91CD\u7ED8","slug":"\u91CD\u6392\u3001\u91CD\u7ED8","link":"#\u91CD\u6392\u3001\u91CD\u7ED8","children":[]}]},{"level":2,"title":"new.target","slug":"new-target","link":"#new-target","children":[]},{"level":2,"title":"\u5783\u573E\u56DE\u6536","slug":"\u5783\u573E\u56DE\u6536","link":"#\u5783\u573E\u56DE\u6536","children":[]},{"level":2,"title":"js \u8FD0\u884C\u539F\u7406","slug":"js-\u8FD0\u884C\u539F\u7406","link":"#js-\u8FD0\u884C\u539F\u7406","children":[{"level":3,"title":"runTime","slug":"runtime","link":"#runtime","children":[]},{"level":3,"title":"\u5806\u6808","slug":"\u5806\u6808","link":"#\u5806\u6808","children":[]}]},{"level":2,"title":"script\u6807\u7B7E","slug":"script\u6807\u7B7E","link":"#script\u6807\u7B7E","children":[{"level":3,"title":"defer","slug":"defer","link":"#defer","children":[]},{"level":3,"title":"async","slug":"async","link":"#async","children":[]}]},{"level":2,"title":"Set\u65E0\u6CD5\u5BF9\u54EA\u4E9B\u503C\u53BB\u91CD","slug":"set\u65E0\u6CD5\u5BF9\u54EA\u4E9B\u503C\u53BB\u91CD","link":"#set\u65E0\u6CD5\u5BF9\u54EA\u4E9B\u503C\u53BB\u91CD","children":[{"level":3,"title":"\u65B9\u6CD5\u548C\u5C5E\u6027","slug":"\u65B9\u6CD5\u548C\u5C5E\u6027","link":"#\u65B9\u6CD5\u548C\u5C5E\u6027","children":[]}]}],"relativePath":"\u95EE\u9898.md"}'),t={name:"\u95EE\u9898.md"},c=p("",160);function r(F,D,y,A,C,i){const s=e("Banner");return o(),a("div",null,[l(s),c])}const h=n(t,[["render",r]]);export{u as __pageData,h as default}; diff --git "a/es6\347\254\224\350\256\260.html" "b/es6\347\254\224\350\256\260.html" index a1fed9b..375edfa 100644 --- "a/es6\347\254\224\350\256\260.html" +++ "b/es6\347\254\224\350\256\260.html" @@ -339,7 +339,7 @@

初始化对象

最好把对象静态化

js
const a = { x: null };
 a.x = 3;
 
- + diff --git a/flutter.html b/flutter.html index 26aff45..a420c70 100644 --- a/flutter.html +++ b/flutter.html @@ -16,7 +16,7 @@
Skip to content
本页目录

flutter中文网

起步

下载 flutter,国内建议下载压缩包。

添加环境变量

具体的路径由你自己把控,sdk,avd 虚拟机通过 android studio 下载

  1. 打开 Android Studio SDK Manager
  2. 找到 Android SDK 这个选项卡,取消勾选 Hide Obsolete Packages
  3. 下载 Android SDK Tools (Obsolete)

tips

安装好 android sdk 和 AVD 安卓手机模拟器后,打开命令行,执行flutter doctor

如果提示flutter doctor --android-licenses,就执行该命令,全部输入y

说明:

  1. ANDROID_HOME:安卓 SDK 文件夹路径 默认 c 盘位置:C:\Users\gauhar\AppData\Local\Android\Sdk
  2. ANDROID_SDK_HOME:安卓手机模拟器路径 默认 c 盘位置:C:\Users\gauhar\.android\avd
  3. 其他两个是镜像地址,如果你可以科学上网可以不用设置
变量名变量值
ANDROID_HOMED:\AndroidSDK
ANDROID_SDK_HOMED:\android_avd
FLUTTER_STORAGE_BASE_URLhttps://storage.flutter-io.cn
PUB_HOSTED_URLhttps://pub.flutter-io.cn

创建项目

  1. vscode 中安装flutter插件,同时他会自动安装dart插件
  2. ctrl + shift + p打开命令面板,输入flutter,选择Flutter: New Project
  3. 输入项目名,创建之后慢慢等待
  4. F5运行项目,如果没有模拟器,去android studio新建一个
  5. 如果是真机调试,注意看手机的安装提示,过了时间就默认不安装了
  6. 修改main.dart文件
- + diff --git a/hashmap.json b/hashmap.json index 0d96864..2c75b4b 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"taro开发中的坑.md":"b47f2e84","vue.js设计与实现-阅读笔记.md":"6966ea21","antv.md":"49e79830","es6笔记.md":"9587c9f3","flutter.md":"cf758a9f","index.md":"0fc07c0c","js学习笔记.md":"ffad86ff","js笔记.md":"cc11ff74","note.md":"18a12138","react笔记.md":"562a00ae","taro.md":"aa7cee6f","typescript.md":"6a1b610e","uniapp.md":"e2e23086","utils.md":"43c9df7a","vite-plugin-shared.md":"4fe6106f","vue3.md":"6dfc138c","vue3源码.md":"b10d56c3","vue笔记.md":"75f1f18d","webpack.md":"cd045ad1","工作上遇到的坑.md":"d91ed733","工作常用代码.md":"d8b407c5","常用代码.md":"848d0634","微信小程序.md":"2de31641","文章链接.md":"26f477a7","正则表达式.md":"9b71bb5a","那些坑.md":"73144ec9","问题.md":"bae4798c"} +{"taro开发中的坑.md":"b47f2e84","vue.js设计与实现-阅读笔记.md":"6966ea21","antv.md":"49e79830","es6笔记.md":"9587c9f3","flutter.md":"cf758a9f","index.md":"0fc07c0c","js学习笔记.md":"ffad86ff","js笔记.md":"cc11ff74","note.md":"18a12138","react笔记.md":"562a00ae","taro.md":"aa7cee6f","typescript.md":"6a1b610e","uniapp.md":"e2e23086","utils.md":"43c9df7a","vite-plugin-shared.md":"4fe6106f","vue3.md":"6dfc138c","vue3源码.md":"b10d56c3","vue笔记.md":"75f1f18d","webpack.md":"cd045ad1","工作上遇到的坑.md":"d91ed733","工作常用代码.md":"d8b407c5","常用代码.md":"848d0634","微信小程序.md":"2de31641","文章链接.md":"26f477a7","正则表达式.md":"9b71bb5a","那些坑.md":"73144ec9","问题.md":"fdc3fc34"} diff --git a/index.html b/index.html index 46842fa..d74be8e 100644 --- a/index.html +++ b/index.html @@ -16,7 +16,7 @@
- + diff --git "a/js\345\255\246\344\271\240\347\254\224\350\256\260.html" "b/js\345\255\246\344\271\240\347\254\224\350\256\260.html" index df7827c..1938d3a 100644 --- "a/js\345\255\246\344\271\240\347\254\224\350\256\260.html" +++ "b/js\345\255\246\344\271\240\347\254\224\350\256\260.html" @@ -599,7 +599,7 @@ console.log(c.name); // gauhar c.pro(); // prototype_pro - + diff --git "a/js\347\254\224\350\256\260.html" "b/js\347\254\224\350\256\260.html" index c20b7cc..bd649be 100644 --- "a/js\347\254\224\350\256\260.html" +++ "b/js\347\254\224\350\256\260.html" @@ -172,7 +172,7 @@ scroll-behavior: smooth; }

scrollingElement

该对象可以非常兼容地获取scrollTopscrollHeight等属性,在移动端PC端都屡试不爽

- + diff --git a/note.html b/note.html index a4d907d..d9fca4a 100644 --- a/note.html +++ b/note.html @@ -71,7 +71,7 @@ let input = yield; // OK } - + diff --git "a/react\347\254\224\350\256\260.html" "b/react\347\254\224\350\256\260.html" index 2b96a98..a7d8ca2 100644 --- "a/react\347\254\224\350\256\260.html" +++ "b/react\347\254\224\350\256\260.html" @@ -273,7 +273,7 @@ </Router> ); - + diff --git a/taro.html b/taro.html index c2a367d..2a7616f 100644 --- a/taro.html +++ b/taro.html @@ -640,7 +640,7 @@ } }

生命周期

入口文件

componentWillMount()

对应小程序的onLaunch,全局触发一次,通过this.$router.params访问路由地址、携带的参数

componentDidMount()

对应小程序的onLaunch,在componentWillMount之后执行

componentDidShow()

对应小程序的onShow

componentDidHide()

对应小程序的onHide

componentDidCatchError(String error)

在微信/百度/字节跳动/支付宝小程序中这一生命周期方法对应 onError,H5/RN 中尚未实现

程序发生脚本错误或 API 调用报错时触发,微信小程序中也可以使用 Taro.onError 绑定监听

componentDidNotFound(Object)

在微信/字节跳动小程序中这一生命周期方法对应 onPageNotFound,其他端尚未实现 微信小程序中,基础库 1.9.90 开始支持

程序要打开的页面不存在时触发,微信小程序中也可以使用 Taro.onPageNotFound 绑定监听

页面文件

组件传值不更新

通过props传值,组件中获取的值还是旧数据

解决方法: 在父组件更新数据之前,先清空,再赋值

- + diff --git a/typeScript.html b/typeScript.html index efe52fc..0d62b4e 100644 --- a/typeScript.html +++ b/typeScript.html @@ -135,7 +135,7 @@ console.log('mounted'); } - + diff --git a/uniapp.html b/uniapp.html index a1b878b..91beef3 100644 --- a/uniapp.html +++ b/uniapp.html @@ -254,7 +254,7 @@ border-top-right-radius: 20rpx; }

ref

内置的组件中不可以使用this.$refs获取,只能用于自定义组件

- + diff --git a/utils.html b/utils.html index 42d938b..ab4de90 100644 --- a/utils.html +++ b/utils.html @@ -179,7 +179,7 @@ } else return; } - + diff --git a/vite-plugin-shared.html b/vite-plugin-shared.html index d85175b..fe8084e 100644 --- a/vite-plugin-shared.html +++ b/vite-plugin-shared.html @@ -319,7 +319,7 @@ // ... }));

现在我们的shared工具就会在正常启动项目的时候运行啦,没有配置的心智负担了

插件配置参数
参数名描述类型
source页面文件夹路径,一般是 src/views、src/pagesstring[可选]
showDeleted是否展示对已删除文件引用的文件列表boolean[可选]

发包注意事项

future feature

image-20230227154033391

目前有个痛点是,我们抛出的成员名称是以文件夹+文件名命名的,assets原有的ts文件一旦重命名,那么成员的名称将会变更,同时页面中的引用需要我们手动更改

chokidar没有提供重命名的事件监听

- + diff --git a/vue3.html b/vue3.html index 900502b..199aa90 100644 --- a/vue3.html +++ b/vue3.html @@ -531,7 +531,7 @@ // mutate count.value, should trigger onTrigger count.value++; - + diff --git "a/vue3\346\272\220\347\240\201.html" "b/vue3\346\272\220\347\240\201.html" index 583b57a..05146ff 100644 --- "a/vue3\346\272\220\347\240\201.html" +++ "b/vue3\346\272\220\347\240\201.html" @@ -235,7 +235,7 @@ export const toReadonly = <T extends unknown>(value: T): T => isObject(value) ? readonly(value as Record<any, any>) : value - + diff --git "a/vue\347\254\224\350\256\260.html" "b/vue\347\254\224\350\256\260.html" index b4abb3e..b2debf4 100644 --- "a/vue\347\254\224\350\256\260.html" +++ "b/vue\347\254\224\350\256\260.html" @@ -512,7 +512,7 @@ </my-component>

强制更新

迫使 Vue 实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。

直接调用即可,如果是因为新增对象或者数组的属性、请使用this.$set新增属性

js
this.$forceUpdate();
 
- + diff --git a/webpack.html b/webpack.html index 3cf3cd4..517d5f5 100644 --- a/webpack.html +++ b/webpack.html @@ -154,7 +154,7 @@

哪个文件需要,就在哪里引入

js
import @babel/polyfill
 

souce-map

通过 webpack 的 devtool 选项,配置哪一种。

定义 souce-map,开发调试更方便,展示源代码,如:打印位置能准确定位

js
devtool: "cheap-module-eval-source-map";
 
- + diff --git "a/\345\267\245\344\275\234\344\270\212\351\201\207\345\210\260\347\232\204\345\235\221.html" "b/\345\267\245\344\275\234\344\270\212\351\201\207\345\210\260\347\232\204\345\235\221.html" index 1c0b188..1e699b9 100644 --- "a/\345\267\245\344\275\234\344\270\212\351\201\207\345\210\260\347\232\204\345\235\221.html" +++ "b/\345\267\245\344\275\234\344\270\212\351\201\207\345\210\260\347\232\204\345\235\221.html" @@ -240,7 +240,7 @@ </html>

vscdoe 行尾序列格式

vscdoe 行尾序列格式有两种

  1. LF
  2. CRLF

坑:

当 vscode 编辑器的格式与项目中的配置不同时,prettier 会报错。

git 拉代码的时候默认是 CRLF 格式

解决方法:

执行命令

shell
git config --global core.autocrlf false
 
- + diff --git "a/\345\267\245\344\275\234\345\270\270\347\224\250\344\273\243\347\240\201.html" "b/\345\267\245\344\275\234\345\270\270\347\224\250\344\273\243\347\240\201.html" index 42163cf..655d2ae 100644 --- "a/\345\267\245\344\275\234\345\270\270\347\224\250\344\273\243\347\240\201.html" +++ "b/\345\267\245\344\275\234\345\270\270\347\224\250\344\273\243\347\240\201.html" @@ -740,7 +740,7 @@ window.URL.revokeObjectURL(href); // 释放掉blob对象 } - + diff --git "a/\345\270\270\347\224\250\344\273\243\347\240\201.html" "b/\345\270\270\347\224\250\344\273\243\347\240\201.html" index 91b6e0a..4882002 100644 --- "a/\345\270\270\347\224\250\344\273\243\347\240\201.html" +++ "b/\345\270\270\347\224\250\344\273\243\347\240\201.html" @@ -77,7 +77,7 @@ } } - + diff --git "a/\345\276\256\344\277\241\345\260\217\347\250\213\345\272\217.html" "b/\345\276\256\344\277\241\345\260\217\347\250\213\345\272\217.html" index 7dd838a..a8d82e0 100644 --- "a/\345\276\256\344\277\241\345\260\217\347\250\213\345\272\217.html" +++ "b/\345\276\256\344\277\241\345\260\217\347\250\213\345\272\217.html" @@ -99,7 +99,7 @@ true false

scope 列表

scope对应接口描述
scope.userInfowx.getUserInfo用户信息
scope.userLocationwx.getLocation, wx.chooseLocation地理位置
scope.userLocationBackgroundwx.userLocationBackground后台定位
scope.addresswx.chooseAddress通讯地址
scope.invoiceTitlewx.chooseInvoiceTitle发票抬头
scope.invoicewx.chooseInvoice获取发票
scope.werunwx.getWeRunData微信运动步数
scope.recordwx.startRecord录音功能
scope.writePhotosAlbumwx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum保存到相册
scope.cameracamera 组件摄像头

chooseAddress

获取用户的通讯地址

navigateTo

页面跳转

navigateBack

页面返回

注意点

只有当前页面配置了tabBar时,底部的导航栏才会出现,没有配置的页面底部是没有导航栏的

1564840249809

- + diff --git "a/\346\226\207\347\253\240\351\223\276\346\216\245.html" "b/\346\226\207\347\253\240\351\223\276\346\216\245.html" index a16f870..df21cb0 100644 --- "a/\346\226\207\347\253\240\351\223\276\346\216\245.html" +++ "b/\346\226\207\347\253\240\351\223\276\346\216\245.html" @@ -16,7 +16,7 @@
- + diff --git "a/\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.html" "b/\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.html" index 05dedae..82f8bbf 100644 --- "a/\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.html" +++ "b/\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.html" @@ -51,7 +51,7 @@
js
let reg = /a{1,2}/;
 console.log(reg.test("1aa56")); //返回true
 

其他常用元字符

总结

正则表达式,只能用于验证字符串是否满足条件(有还是没有),并不是要求字符串是什么样子的。

\w\W通常用于用户名的验证,注意:\w只要出现 字母、数字、下划线 其中的一种,都会返回 true。

空白字符包括 空格、回车(\r) 或者 换行(\n) 、缩进(\t)。

$ 验证特定的字符串的时候记得加(), let reg = /(aa)$/ 这表示验证以 aa 结尾。

.可以匹配空格,但不能匹配\r \n

匹配不是中文:/[^\u4e00-\u9fa5]/

()用于提升优先级,分组

在正则表达式中对空格是敏感的

- + diff --git "a/\351\202\243\344\272\233\345\235\221.html" "b/\351\202\243\344\272\233\345\235\221.html" index 3388249..63dfbb5 100644 --- "a/\351\202\243\344\272\233\345\235\221.html" +++ "b/\351\202\243\344\272\233\345\235\221.html" @@ -299,7 +299,7 @@ console[type](log); }; - + diff --git "a/\351\227\256\351\242\230.html" "b/\351\227\256\351\242\230.html" index d86f38d..d7b7b21 100644 --- "a/\351\227\256\351\242\230.html" +++ "b/\351\227\256\351\242\230.html" @@ -8,7 +8,7 @@ - + @@ -308,7 +308,14 @@ console.log(data); }, }); -

运行代码可以看到,打印 111,222。这说明复杂请求的时候,先发了一个option请求,确定允许跨域后再发起put请求,返回数据

promise

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大

是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

vue

mvvm

M - Model 代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑

V - View,代表 UI 组件,它负责将数据模型转化为 UI 展现出来

VM - ViewModel,监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步 View 和 Model 的对象,连接 Model 和 View

双向绑定原理

vue-router

传参和取参

path 和 query 一起使用

js
传参: this.$router.push({
+

运行代码可以看到,打印 111,222。这说明复杂请求的时候,先发了一个option请求,确定允许跨域后再发起put请求,返回数据

4.修改本地hosts文件

假设接口的地址为abc.com:8080,那么我们可以在脚手架的config中配置一个serve的启动域名;只要是一二级域名和端口号相同

js
module.exports = {
+  devServer: {
+    host: 'local.abc.com',
+    port: 8080
+  },
+};
+

接着我们启动本地serve服务,就会以这个域名和端口号运行,我们需要修改本机hosts文件,将该域名指向127.0.0.1

127.0.0.1 local.abc.com
+

如果你系统有vpn之类的代理,需要关闭

promise

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大

是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

vue

mvvm

M - Model 代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑

V - View,代表 UI 组件,它负责将数据模型转化为 UI 展现出来

VM - ViewModel,监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步 View 和 Model 的对象,连接 Model 和 View

双向绑定原理

vue-router

传参和取参

path 和 query 一起使用

js
传参: this.$router.push({
   path: "/xxx",
   query: {
     id: id,
@@ -344,7 +351,7 @@
 max-age     缓存的内容将在 xxx 秒后失效
 no-cache    需要使用对比缓存来验证缓存数据
 no-store    所有内容都不会缓存,强缓存、协商缓存都不会触发
-

协商缓存

根据请求头的 If-Modified-Since / If-None-Match的值和对应的服务端字段的值做匹配,一致则命中缓存,304 状态码

浏览器渲染过程

过程

重排、重绘

减少重排次数

  1. 样式集中改变
  2. dom 操作,读和写,最好要分开
  3. 使用绝对定位、固定定位脱离文档流

小结

new.target

判断函数或构造方法是否是通过new运算符被调用的

如果函数或构造方法是被new实例化的,则new.target返回构造函数的引用(构造函数本身)

如果是普通函数,则返回undefined

js
function Person() {
+

协商缓存

根据请求头的 If-Modified-Since / If-None-Match的值和对应的服务端字段的值做匹配,一致则命中缓存,304 状态码

浏览器渲染过程

image-20230810143256460

重排、重绘

减少重排次数

  1. 样式集中改变
  2. dom 操作,读和写,最好要分开
  3. 使用绝对定位、固定定位脱离文档流

小结

new.target

判断函数或构造方法是否是通过new运算符被调用的

如果函数或构造方法是被new实例化的,则new.target返回构造函数的引用(构造函数本身)

如果是普通函数,则返回undefined

js
function Person() {
   this.age = 18;
   console.log(new.target);
   console.log(new.target.name);
@@ -369,7 +376,7 @@
   var b = {}; //a的引用次数减1,为1
 }
 

引用计数有缺点,就是引用循环。循环引用指的是对象 A 中包含一个指向对象 B 的指针,而对象 B 中也包含一个指向对象 A 的引用。

js 运行原理

runTime

浏览器提供的一些 api,比如windowdom的 api;js 的事件循环、事件队列被称为runTime

堆栈

堆::储存着引用类型的内存地址,闭包的变量也存在于此

栈:储存函数的调用,基本类型的数据。函数上下文执行完毕之后被消除,如果还有引用,那就继续存在于调用栈中。

script标签

defer

defer 会“在后台”下载,浏览器将继续处理 HTML,构建 DOM;然后等 **DOM 构建完成后,脚本才会执行。**也因此这中标签在文档中的位置不重要

async

也是异步加载不会阻塞页面渲染,但是当script加载就绪后,就会根据在文档中的顺序优先执行代码

Set无法对哪些值去重

Set成员是唯一且无序的,没有重复值。 向Set中加入值的时候,不会进行类型转换,类似于精确运算符===,主要的区别在于**NaN等于自身**,==而精确运算符===判断NaN不等于自身。==

方法和属性

实例属性constructor:构造函数 size: 返回元素数量

遍历方法:

keys():返回一个包含集合中所有键的迭代器 values():返回一个包含集合中所有值的迭代器 entries():返回一个包含set对象中所有元素得键值对迭代器 forEach(callback,thisArg):用于对集合成员执行callback

- +