From 47917cb5b6d454e7a0f35893a6fda01102aba674 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 04:48:58 +0000 Subject: [PATCH] Deploy to GitHub pages --- 404.html | 21 + CNAME | 1 + ads.txt | 1 + assets/app.9f5d8b3e.js | 197 ++ assets/changelog.md.1e825a6d.js | 8 + assets/changelog.md.1e825a6d.lean.js | 8 + assets/chunks/VPAlgoliaSearchBox.661ef68a.js | 24 + assets/chunks/framework.0d8bea05.js | 9 + assets/chunks/theme.edde7d9a.js | 14 + assets/communication.md.03c12ebf.js | 672 ++++++ assets/communication.md.03c12ebf.lean.js | 672 ++++++ assets/component.md.b59f8845.js | 1949 ++++++++++++++++ assets/component.md.b59f8845.lean.js | 1949 ++++++++++++++++ assets/efficient.md.a41d0892.js | 552 +++++ assets/efficient.md.a41d0892.lean.js | 552 +++++ assets/engineering.md.43ce842b.js | 291 +++ assets/engineering.md.43ce842b.lean.js | 291 +++ assets/guide.md.82bb6597.js | 650 ++++++ assets/guide.md.82bb6597.lean.js | 650 ++++++ assets/img/book.png | Bin 0 -> 54144 bytes assets/img/bundler.png | Bin 0 -> 29072 bytes assets/img/caniuse-es6-classes.jpg | Bin 0 -> 115411 bytes assets/img/cats.jpg | Bin 0 -> 656049 bytes assets/img/communication-prop-drilling.png | Bin 0 -> 18492 bytes assets/img/communication-provide-inject.png | Bin 0 -> 21121 bytes assets/img/components.png | Bin 0 -> 7622 bytes assets/img/cookbook-miniprogram.jpg | Bin 0 -> 23939 bytes assets/img/donate-dark.jpg | Bin 0 -> 19174 bytes assets/img/donate.jpg | Bin 0 -> 12770 bytes assets/img/esm-run.jpg | Bin 0 -> 67818 bytes assets/img/esm.png | Bin 0 -> 33697 bytes assets/img/github-top-languages-dark.jpg | Bin 0 -> 68989 bytes assets/img/github-top-languages.jpg | Bin 0 -> 63529 bytes assets/img/job-details-dark.png | Bin 0 -> 272545 bytes assets/img/job-details.png | Bin 0 -> 216013 bytes assets/img/npm-detail-ts-icon.jpg | Bin 0 -> 29478 bytes assets/img/screenshot-pkg-dark.jpg | Bin 0 -> 57837 bytes assets/img/screenshot-pkg.jpg | Bin 0 -> 56736 bytes assets/img/screenshot-postman-dark.jpg | Bin 0 -> 88546 bytes assets/img/screenshot-postman.jpg | Bin 0 -> 99153 bytes assets/img/screenshot-vscode-dark.jpg | Bin 0 -> 87499 bytes assets/img/screenshot-vscode.jpg | Bin 0 -> 91486 bytes assets/img/seo-page-code-dark.jpg | Bin 0 -> 544474 bytes assets/img/seo-page-code.jpg | Bin 0 -> 394076 bytes assets/img/seo-page-dark.jpg | Bin 0 -> 112686 bytes assets/img/seo-page.jpg | Bin 0 -> 97989 bytes assets/img/seo-spa-page-code-dark.jpg | Bin 0 -> 113179 bytes assets/img/seo-spa-page-code.jpg | Bin 0 -> 76386 bytes assets/img/vue-devtools-components-dark.jpg | Bin 0 -> 92399 bytes assets/img/vue-devtools-components.jpg | Bin 0 -> 88541 bytes assets/img/vue-devtools-pinia-dark.jpg | Bin 0 -> 36080 bytes assets/img/vue-devtools-pinia.jpg | Bin 0 -> 33935 bytes assets/img/vue-devtools-routes-dark.jpg | Bin 0 -> 44673 bytes assets/img/vue-devtools-routes.jpg | Bin 0 -> 42934 bytes assets/img/vue-devtools-timeline-dark.jpg | Bin 0 -> 95531 bytes assets/img/vue-devtools-timeline.jpg | Bin 0 -> 86474 bytes assets/img/vue-versions-on-npmjs.jpg | Bin 0 -> 119922 bytes assets/index.md.c8d0f3cd.js | 8 + assets/index.md.c8d0f3cd.lean.js | 8 + .../inter-italic-cyrillic-ext.33bd5a8e.woff2 | Bin 0 -> 28332 bytes assets/inter-italic-cyrillic.ea42a392.woff2 | Bin 0 -> 17824 bytes assets/inter-italic-greek-ext.4fbe9427.woff2 | Bin 0 -> 12188 bytes assets/inter-italic-greek.8f4463c4.woff2 | Bin 0 -> 23264 bytes assets/inter-italic-latin-ext.bd8920cc.woff2 | Bin 0 -> 63552 bytes assets/inter-italic-latin.bd3b6f56.woff2 | Bin 0 -> 46048 bytes assets/inter-italic-vietnamese.6ce511fb.woff2 | Bin 0 -> 8784 bytes .../inter-roman-cyrillic-ext.e75737ce.woff2 | Bin 0 -> 26600 bytes assets/inter-roman-cyrillic.5f2c6c8c.woff2 | Bin 0 -> 16780 bytes assets/inter-roman-greek-ext.ab0619bc.woff2 | Bin 0 -> 11808 bytes assets/inter-roman-greek.d5a6d92a.woff2 | Bin 0 -> 21776 bytes assets/inter-roman-latin-ext.0030eebd.woff2 | Bin 0 -> 59608 bytes assets/inter-roman-latin.2ed14f66.woff2 | Bin 0 -> 42464 bytes assets/inter-roman-vietnamese.14ce25a6.woff2 | Bin 0 -> 8492 bytes assets/links.md.d1aafe6b.js | 8 + assets/links.md.d1aafe6b.lean.js | 8 + assets/pinia.md.c3d0acb5.js | 465 ++++ assets/pinia.md.c3d0acb5.lean.js | 465 ++++ assets/plugin.md.66b7dcdd.js | 791 +++++++ assets/plugin.md.66b7dcdd.lean.js | 791 +++++++ assets/preface.md.59b338cf.js | 8 + assets/preface.md.59b338cf.lean.js | 8 + assets/router.md.e17ca07e.js | 503 +++++ assets/router.md.e17ca07e.lean.js | 503 +++++ assets/style.dfe14009.css | 8 + assets/typescript.md.e6e7bfb1.js | 677 ++++++ assets/typescript.md.e6e7bfb1.lean.js | 677 ++++++ assets/upgrade.md.25cf659f.js | 190 ++ assets/upgrade.md.25cf659f.lean.js | 190 ++ changelog.html | 28 + communication.html | 688 ++++++ component.html | 1965 +++++++++++++++++ efficient.html | 568 +++++ engineering.html | 307 +++ guide.html | 666 ++++++ hashmap.json | 1 + icons/apple-touch-icon-152x152.png | Bin 0 -> 20188 bytes icons/icon-128x128.png | Bin 0 -> 16420 bytes icons/icon-256x256.png | Bin 0 -> 42402 bytes icons/icon-32x32.png | Bin 0 -> 3502 bytes icons/icon-512x512.png | Bin 0 -> 123352 bytes icons/msapplication-icon-144x144.png | Bin 0 -> 15455 bytes icons/safari-pinned-tab.svg | 862 ++++++++ index.html | 24 + links.html | 24 + logo.png | Bin 0 -> 3451 bytes logo.svg | 8 + manifest.json | 24 + pinia.html | 481 ++++ plugin.html | 807 +++++++ preface.html | 24 + router.html | 519 +++++ typescript.html | 693 ++++++ upgrade.html | 206 ++ 113 files changed, 21714 insertions(+) create mode 100644 404.html create mode 100644 CNAME create mode 100644 ads.txt create mode 100644 assets/app.9f5d8b3e.js create mode 100644 assets/changelog.md.1e825a6d.js create mode 100644 assets/changelog.md.1e825a6d.lean.js create mode 100644 assets/chunks/VPAlgoliaSearchBox.661ef68a.js create mode 100644 assets/chunks/framework.0d8bea05.js create mode 100644 assets/chunks/theme.edde7d9a.js create mode 100644 assets/communication.md.03c12ebf.js create mode 100644 assets/communication.md.03c12ebf.lean.js create mode 100644 assets/component.md.b59f8845.js create mode 100644 assets/component.md.b59f8845.lean.js create mode 100644 assets/efficient.md.a41d0892.js create mode 100644 assets/efficient.md.a41d0892.lean.js create mode 100644 assets/engineering.md.43ce842b.js create mode 100644 assets/engineering.md.43ce842b.lean.js create mode 100644 assets/guide.md.82bb6597.js create mode 100644 assets/guide.md.82bb6597.lean.js create mode 100644 assets/img/book.png create mode 100644 assets/img/bundler.png create mode 100644 assets/img/caniuse-es6-classes.jpg create mode 100644 assets/img/cats.jpg create mode 100644 assets/img/communication-prop-drilling.png create mode 100644 assets/img/communication-provide-inject.png create mode 100644 assets/img/components.png create mode 100644 assets/img/cookbook-miniprogram.jpg create mode 100644 assets/img/donate-dark.jpg create mode 100644 assets/img/donate.jpg create mode 100644 assets/img/esm-run.jpg create mode 100644 assets/img/esm.png create mode 100644 assets/img/github-top-languages-dark.jpg create mode 100644 assets/img/github-top-languages.jpg create mode 100644 assets/img/job-details-dark.png create mode 100644 assets/img/job-details.png create mode 100644 assets/img/npm-detail-ts-icon.jpg create mode 100644 assets/img/screenshot-pkg-dark.jpg create mode 100644 assets/img/screenshot-pkg.jpg create mode 100644 assets/img/screenshot-postman-dark.jpg create mode 100644 assets/img/screenshot-postman.jpg create mode 100644 assets/img/screenshot-vscode-dark.jpg create mode 100644 assets/img/screenshot-vscode.jpg create mode 100644 assets/img/seo-page-code-dark.jpg create mode 100644 assets/img/seo-page-code.jpg create mode 100644 assets/img/seo-page-dark.jpg create mode 100644 assets/img/seo-page.jpg create mode 100644 assets/img/seo-spa-page-code-dark.jpg create mode 100644 assets/img/seo-spa-page-code.jpg create mode 100644 assets/img/vue-devtools-components-dark.jpg create mode 100644 assets/img/vue-devtools-components.jpg create mode 100644 assets/img/vue-devtools-pinia-dark.jpg create mode 100644 assets/img/vue-devtools-pinia.jpg create mode 100644 assets/img/vue-devtools-routes-dark.jpg create mode 100644 assets/img/vue-devtools-routes.jpg create mode 100644 assets/img/vue-devtools-timeline-dark.jpg create mode 100644 assets/img/vue-devtools-timeline.jpg create mode 100644 assets/img/vue-versions-on-npmjs.jpg create mode 100644 assets/index.md.c8d0f3cd.js create mode 100644 assets/index.md.c8d0f3cd.lean.js create mode 100644 assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 create mode 100644 assets/inter-italic-cyrillic.ea42a392.woff2 create mode 100644 assets/inter-italic-greek-ext.4fbe9427.woff2 create mode 100644 assets/inter-italic-greek.8f4463c4.woff2 create mode 100644 assets/inter-italic-latin-ext.bd8920cc.woff2 create mode 100644 assets/inter-italic-latin.bd3b6f56.woff2 create mode 100644 assets/inter-italic-vietnamese.6ce511fb.woff2 create mode 100644 assets/inter-roman-cyrillic-ext.e75737ce.woff2 create mode 100644 assets/inter-roman-cyrillic.5f2c6c8c.woff2 create mode 100644 assets/inter-roman-greek-ext.ab0619bc.woff2 create mode 100644 assets/inter-roman-greek.d5a6d92a.woff2 create mode 100644 assets/inter-roman-latin-ext.0030eebd.woff2 create mode 100644 assets/inter-roman-latin.2ed14f66.woff2 create mode 100644 assets/inter-roman-vietnamese.14ce25a6.woff2 create mode 100644 assets/links.md.d1aafe6b.js create mode 100644 assets/links.md.d1aafe6b.lean.js create mode 100644 assets/pinia.md.c3d0acb5.js create mode 100644 assets/pinia.md.c3d0acb5.lean.js create mode 100644 assets/plugin.md.66b7dcdd.js create mode 100644 assets/plugin.md.66b7dcdd.lean.js create mode 100644 assets/preface.md.59b338cf.js create mode 100644 assets/preface.md.59b338cf.lean.js create mode 100644 assets/router.md.e17ca07e.js create mode 100644 assets/router.md.e17ca07e.lean.js create mode 100644 assets/style.dfe14009.css create mode 100644 assets/typescript.md.e6e7bfb1.js create mode 100644 assets/typescript.md.e6e7bfb1.lean.js create mode 100644 assets/upgrade.md.25cf659f.js create mode 100644 assets/upgrade.md.25cf659f.lean.js create mode 100644 changelog.html create mode 100644 communication.html create mode 100644 component.html create mode 100644 efficient.html create mode 100644 engineering.html create mode 100644 guide.html create mode 100644 hashmap.json create mode 100644 icons/apple-touch-icon-152x152.png create mode 100644 icons/icon-128x128.png create mode 100644 icons/icon-256x256.png create mode 100644 icons/icon-32x32.png create mode 100644 icons/icon-512x512.png create mode 100644 icons/msapplication-icon-144x144.png create mode 100644 icons/safari-pinned-tab.svg create mode 100644 index.html create mode 100644 links.html create mode 100644 logo.png create mode 100644 logo.svg create mode 100644 manifest.json create mode 100644 pinia.html create mode 100644 plugin.html create mode 100644 preface.html create mode 100644 router.html create mode 100644 typescript.html create mode 100644 upgrade.html diff --git a/404.html b/404.html new file mode 100644 index 00000000..014a0c83 --- /dev/null +++ b/404.html @@ -0,0 +1,21 @@ + + + + + + 404 | Vue3 入门指南与实战案例 + + + + + + + + + + +
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.

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..cbf63dd1 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +vue3.chengpeiquan.com \ No newline at end of file diff --git a/ads.txt b/ads.txt new file mode 100644 index 00000000..2082b131 --- /dev/null +++ b/ads.txt @@ -0,0 +1 @@ +google.com, pub-7109929923549092, DIRECT, f08c47fec0942fa0 \ No newline at end of file diff --git a/assets/app.9f5d8b3e.js b/assets/app.9f5d8b3e.js new file mode 100644 index 00000000..ba7f68cb --- /dev/null +++ b/assets/app.9f5d8b3e.js @@ -0,0 +1,197 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{u as Fe,A as ke,v as Ie,b as Ae,e as bn,f as Wn,F as qe,_ as He,d as Be,r as Tn,l as wn,D as Cn,X as xn,B as jn,R as In,I as ye,a2 as An,c as Ln,H as Rn,a3 as Un,a4 as Bn,a5 as Kn,a6 as Sn,a7 as Nn,a8 as zn,a9 as Fn,aa as kn,ab as Hn,ac as Yn,ad as Vn,ae as Xn,af as Gn,S as Qn}from"./chunks/framework.0d8bea05.js";import{t as $n}from"./chunks/theme.edde7d9a.js";function Oe(){return typeof window<"u"?navigator.userAgent.toLowerCase():""}const Ye=typeof window<"u";/Android/i.test(Oe());/iPhone|iPod|iPad|iOS/i.test(Oe());/uni-app|html5plus/.test(Oe());/MicroMessenger/i.test(Oe());/\sQQ|mqqbrowser|qzone|qqbrowser/i.test(Oe());/mqqbrowser|qqbrowser/i.test(Oe());/qzone\/.*_qz_([\d.]+)/i.test(Oe());/(weibo).*weibo__([\d.]+)/i.test(Oe());/(baiduboxapp)\/([\d.]+)/i.test(Oe());function Jn([R,...H]){return R?R.toUpperCase()+H.join(""):""}function Zn([R,...H]){return R?(R.toLowerCase()+H.join("")).replace(/[-_](\w)/g,(l,i)=>i?i.toUpperCase():""):""}function qn(R){return R?Jn(Zn(R)):""}function er({type:R,id:H,resource:l}){return new Promise((i,e)=>{if(!Ye||document.querySelector(`#${H}`)){e();return}function t(a){a.addEventListener("load",i),a.addEventListener("error",e),a.addEventListener("abort",e)}switch(R){case"js":{const a=document.createElement("script");a.id=H,a.async=!0,a.src=l,t(a),document.head.appendChild(a);break}case"css":{const a=document.createElement("link");a.id=H,a.rel="stylesheet",a.href=l,t(a),document.head.appendChild(a);break}case"style":{const a=document.createElement("style");a.id=H,t(a),document.head.appendChild(a),a.appendChild(document.createTextNode(l));break}}})}function tr(){try{return"production"}catch{return}}tr();function Ve(R){try{return R==="production"}catch{return!1}}Ve("development");Ve("test");Ve("production");var ar=Object.defineProperty,nr=(R,H,l)=>H in R?ar(R,H,{enumerable:!0,configurable:!0,writable:!0,value:l}):R[H]=l,Ce=(R,H,l)=>(nr(R,typeof H!="symbol"?H+"":H,l),l);const rr="web-analytics-core",Xe=["baidu","cnzz"];var Te=(R=>(R.SetAutoPageview="_setAutoPageview",R.SetAccount="_setAccount",R.TrackPageview="_trackPageview",R.TrackEvent="_trackEvent",R))(Te||{});function ir({pluginId:R,platform:H,websiteId:l,propertyKey:i,args:e}){const t=[];switch(i){case"loadSdk":{t.push("JS-SDK load done.");break}case"setAccount":{t.push("set account done.");break}case"trackPageview":{const{pageUrl:r,fromUrl:o}=e[0]||{};t.push("track pageview done."),t.push(`pageUrl: ${Le(r)}`),H==="cnzz"&&o&&t.push(`fromUrl: ${Le(o)}`);break}case"trackEvent":{const{category:r,action:o,label:n,value:s,nodeId:u}=e[0]||{};t.push("track event done."),t.push(`category: ${r}`),t.push(`action: ${o}`),t.push(`label: ${Se(n)}`),t.push(`value: ${Ne(s)}`),H==="cnzz"&&t.push(`nodeId: ${et(u)}`);break}}t.push(`websiteId: ${l}`),t.push(`time: ${new Date}`);const a=t.join(` +`);return` +[${R}] ${qn(H)} Analytics ${a} + +`}function Le(R){if((!R||typeof R!="string")&&(R="/"),R.startsWith("http")){const H=R.split("/"),l=`${H[0]}//${H[2]}`;R=R.replace(l,"")}return R}function or(R){return(!R||R&&typeof R!="string")&&(R=""),typeof R=="string"&&!R.includes("http")&&(R=""),R}function et(R){return(!R||typeof R!="string")&&(R=""),R}function Se(R){return(!R||typeof R!="string")&&(R=""),R}function Ne(R){return(!R||!Number(R))&&(R=1),R}function Ge(R,H,l){const i=l.value;return l.value=function(...e){const{debug:t,pluginId:a,platform:r,websiteId:o}=this;if(t){const n=ir({pluginId:a,platform:r,websiteId:o,propertyKey:H,args:e});console.log(n)}i.apply(this,e)},l}function sr(R,H,l){const i=l.value;return l.value=function(...e){const[t]=e,{category:a,action:r}=t;if(typeof a!="string"||typeof r!="string"||!a||!r){this.throwError("Valid `category` and `action` are missing from the track event options.");return}i.apply(this,e)},l}var ur=Object.defineProperty,dr=Object.getOwnPropertyDescriptor,lr=(R,H,l,i)=>{for(var e=i>1?void 0:i?dr(H,l):H,t=R.length-1,a;t>=0;t--)(a=R[t])&&(e=(i?a(H,l,e):a(e))||e);return i&&e&&ur(H,l,e),e};class tt{constructor({pluginId:H,platform:l,websiteId:i,debug:e}){Ce(this,"pluginId"),Ce(this,"platform"),Ce(this,"sdkInstance"),Ce(this,"sdkUrl",""),Ce(this,"websiteId",""),Ce(this,"debug"),this.pluginId=H||rr,this.platform=l,this.websiteId=i,this.debug=e??!1,this.updatePlatformInfo(),this.loadSdk()}updatePlatformInfo(){if(Ye)switch(this.platform){case"baidu":{this.sdkInstance=window._hmt||[],this.sdkUrl=`https://hm.baidu.com/hm.js?${this.websiteId}`;break}case"cnzz":{this.sdkInstance=window._czc||[],this.sdkUrl=`https://v1.cnzz.com/z_stat.php?id=${this.websiteId}&web_id=${this.websiteId}`;break}default:{const H=Xe.join(", ");this.throwError(`Unsupported platform options, only supported: ${H}.`)}}}loadSdk(){!this.sdkInstance||!this.sdkUrl||(this.sdkInstance.push([Te.SetAutoPageview,!1]),er({type:"js",id:`${this.pluginId}-${this.platform}-${this.websiteId}`,resource:this.sdkUrl}).catch(H=>{console.log(H)}))}throwError(H){throw new Error(`[${this.pluginId}] ${H}`)}}lr([Ge],tt.prototype,"loadSdk",1);var mr=Object.defineProperty,fr=Object.getOwnPropertyDescriptor,at=(R,H,l,i)=>{for(var e=i>1?void 0:i?fr(H,l):H,t=R.length-1,a;t>=0;t--)(a=R[t])&&(e=(i?a(H,l,e):a(e))||e);return i&&e&&mr(H,l,e),e};let Re=class extends tt{constructor({pluginId:H,platform:l,websiteId:i,debug:e}){super({pluginId:H,platform:l,websiteId:i,debug:e})}setAccount(){this.sdkInstance&&this.sdkInstance.push([Te.SetAccount,this.websiteId])}trackPageview({pageUrl:H,fromUrl:l}){if(this.sdkInstance)switch(this.setAccount(),this.platform){case"baidu":{this.sdkInstance.push([Te.TrackPageview,Le(H)]);break}case"cnzz":{this.sdkInstance.push([Te.TrackPageview,Le(H),l?or(l):""]);break}}}trackEvent({category:H,action:l,label:i,value:e,nodeId:t}){if(this.sdkInstance)switch(this.setAccount(),this.platform){case"baidu":{this.sdkInstance.push([Te.TrackEvent,H,l,Se(i),Ne(e)]);break}case"cnzz":{this.sdkInstance.push([Te.TrackEvent,H,l,Se(i),Ne(e),et(t)]);break}}}};at([Ge],Re.prototype,"trackPageview",1);at([Ge,sr],Re.prototype,"trackEvent",1);function cr(R){return new Re({platform:"baidu",...R})}function _r(R){return new Re({platform:"cnzz",...R})}var hr=Object.defineProperty,vr=(R,H,l)=>H in R?hr(R,H,{enumerable:!0,configurable:!0,writable:!0,value:l}):R[H]=l,je=(R,H,l)=>(vr(R,typeof H!="symbol"?H+"":H,l),l);let gr=class{constructor({platform:H,websiteIds:l,debug:i}){je(this,"pluginId"),je(this,"platform"),je(this,"websiteIds"),je(this,"instances"),je(this,"debug"),this.pluginId="web-analytics-vue",this.platform=H,this.websiteIds=l||[],this.instances=[],this.debug=i??!1,this.init()}init(){try{switch(this.platform){case"baidu":{this.websiteIds.forEach(H=>{const l=cr({pluginId:this.pluginId,websiteId:H,debug:this.debug});this.instances.push(l)});break}case"cnzz":{this.websiteIds.forEach(H=>{const l=_r({pluginId:this.pluginId,websiteId:H,debug:this.debug});this.instances.push(l)});break}default:{const H=Xe.join(", ");this.throwError(`Unsupported platform options, only supported: ${H}.`);break}}}catch(H){this.throwError(`Plugin initialization failed: ${H}.`)}}trackPageview(H){this.instances.forEach(l=>l.trackPageview({...H}))}trackEvent(H){this.instances.forEach(l=>l.trackEvent({...H}))}throwError(H){throw new Error(`[${this.pluginId}] ${H}`)}};function Pr({version:R}){try{const[H]=R.split(".");return H?Number(H):3}catch{return 3}}function Mr(R){return Xe.includes(R)?`$${R}Analytics`:""}function Er({analytics:R,platform:H}){return(l,i)=>{if(!Ye)return;const e=new gr({platform:H,...i});for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(R[r]=e[r]);const t=Object.getPrototypeOf(e);Object.setPrototypeOf(R,t);const a=Mr(H);if(a)switch(Pr(l)){case 2:{l.prototype[a]=R;break}case 3:{l.config.globalProperties[a]=R;break}}}}function pr(){const R={};return{baiduAnalytics:R,registerBaiduAnalytics:Er({analytics:R,platform:"baidu"})}}var Dr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function nt(R){return R&&R.__esModule&&Object.prototype.hasOwnProperty.call(R,"default")?R.default:R}var rt={exports:{}},it={exports:{}};(function(){var R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",H={rotl:function(l,i){return l<>>32-i},rotr:function(l,i){return l<<32-i|l>>>i},endian:function(l){if(l.constructor==Number)return H.rotl(l,8)&16711935|H.rotl(l,24)&4278255360;for(var i=0;i0;l--)i.push(Math.floor(Math.random()*256));return i},bytesToWords:function(l){for(var i=[],e=0,t=0;e>>5]|=l[e]<<24-t%32;return i},wordsToBytes:function(l){for(var i=[],e=0;e>>5]>>>24-e%32&255);return i},bytesToHex:function(l){for(var i=[],e=0;e>>4).toString(16)),i.push((l[e]&15).toString(16));return i.join("")},hexToBytes:function(l){for(var i=[],e=0;e>>6*(3-a)&63)):i.push("=");return i.join("")},base64ToBytes:function(l){l=l.replace(/[^A-Z0-9+\/]/ig,"");for(var i=[],e=0,t=0;e>>6-t*2);return i}};it.exports=H})();var yr=it.exports,ze={utf8:{stringToBytes:function(R){return ze.bin.stringToBytes(unescape(encodeURIComponent(R)))},bytesToString:function(R){return decodeURIComponent(escape(ze.bin.bytesToString(R)))}},bin:{stringToBytes:function(R){for(var H=[],l=0;l + * @license MIT + */var Or=function(R){return R!=null&&(ot(R)||br(R)||!!R._isBuffer)};function ot(R){return!!R.constructor&&typeof R.constructor.isBuffer=="function"&&R.constructor.isBuffer(R)}function br(R){return typeof R.readFloatLE=="function"&&typeof R.slice=="function"&&ot(R.slice(0,0))}(function(){var R=yr,H=Je.utf8,l=Or,i=Je.bin,e=function(t,a){t.constructor==String?a&&a.encoding==="binary"?t=i.stringToBytes(t):t=H.stringToBytes(t):l(t)?t=Array.prototype.slice.call(t,0):!Array.isArray(t)&&t.constructor!==Uint8Array&&(t=t.toString());for(var r=R.bytesToWords(t),o=t.length*8,n=1732584193,s=-271733879,u=-1732584194,d=271733878,m=0;m>>24)&16711935|(r[m]<<24|r[m]>>>8)&4278255360;r[o>>>5]|=128<>>9<<4)+14]=o;for(var f=e._ff,_=e._gg,c=e._hh,v=e._ii,m=0;m>>0,s=s+P>>>0,u=u+h>>>0,d=d+y>>>0}return R.endian([n,s,u,d])};e._ff=function(t,a,r,o,n,s,u){var d=t+(a&r|~a&o)+(n>>>0)+u;return(d<>>32-s)+a},e._gg=function(t,a,r,o,n,s,u){var d=t+(a&o|r&~o)+(n>>>0)+u;return(d<>>32-s)+a},e._hh=function(t,a,r,o,n,s,u){var d=t+(a^r^o)+(n>>>0)+u;return(d<>>32-s)+a},e._ii=function(t,a,r,o,n,s,u){var d=t+(r^(a|~o))+(n>>>0)+u;return(d<>>32-s)+a},e._blocksize=16,e._digestsize=16,rt.exports=function(t,a){if(t==null)throw new Error("Illegal argument "+t);var r=R.wordsToBytes(e(t,a));return a&&a.asBytes?r:a&&a.asString?i.bytesToString(r):R.bytesToHex(r)}})();var Wr=rt.exports;const Tr=nt(Wr);var st={exports:{}};(function(R,H){(function(i,e){R.exports=e()})(Dr,function(){return function(l){var i={};function e(t){if(i[t])return i[t].exports;var a=i[t]={i:t,l:!1,exports:{}};return l[t].call(a.exports,a,a.exports,e),a.l=!0,a.exports}return e.m=l,e.c=i,e.d=function(t,a,r){e.o(t,a)||Object.defineProperty(t,a,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var a=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(a,"a",a),a},e.o=function(t,a){return Object.prototype.hasOwnProperty.call(t,a)},e.p="/dist",e(e.s=191)}([function(l,i,e){i.a=t;function t(a,r){if(r.length1?"s":"")+" required, but only "+r.length+" present")}},function(l,i,e){i.a=a;var t=e(0);function a(r){t.a(1,arguments);var o=Object.prototype.toString.call(r);return r instanceof Date||typeof r=="object"&&o==="[object Date]"?new Date(r.getTime()):typeof r=="number"||o==="[object Number]"?new Date(r):((typeof r=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn(new Error().stack)),new Date(NaN))}},function(l,i,e){i.a=t;function t(a){return function(r){var o=r||{},n=o.width?String(o.width):a.defaultWidth,s=a.formats[n]||a.formats[a.defaultWidth];return s}}},function(l,i,e){i.a=t;function t(a){return function(r,o){var n=o||{},s=n.context?String(n.context):"standalone",u;if(s==="formatting"&&a.formattingValues){var d=a.defaultFormattingWidth||a.defaultWidth,m=n.width?String(n.width):d;u=a.formattingValues[m]||a.formattingValues[d]}else{var f=a.defaultWidth,_=n.width?String(n.width):a.defaultWidth;u=a.values[_]||a.values[f]}var c=a.argumentCallback?a.argumentCallback(r):r;return u[c]}}},function(l,i,e){i.a=t;function t(a){return function(r,o){var n=String(r),s=o||{},u=n.match(a.matchPattern);if(!u)return null;var d=u[0],m=n.match(a.parsePattern);if(!m)return null;var f=a.valueCallback?a.valueCallback(m[0]):m[0];return f=s.valueCallback?s.valueCallback(f):f,{value:f,rest:n.slice(d.length)}}}},function(l,i,e){i.a=t;function t(o){return function(n,s){var u=String(n),d=s||{},m=d.width,f=m&&o.matchPatterns[m]||o.matchPatterns[o.defaultMatchWidth],_=u.match(f);if(!_)return null;var c=_[0],v=m&&o.parsePatterns[m]||o.parsePatterns[o.defaultParseWidth],g;return Object.prototype.toString.call(v)==="[object Array]"?g=r(v,function(P){return P.test(c)}):g=a(v,function(P){return P.test(c)}),g=o.valueCallback?o.valueCallback(g):g,g=d.valueCallback?d.valueCallback(g):g,{value:g,rest:u.slice(c.length)}}}function a(o,n){for(var s in o)if(o.hasOwnProperty(s)&&n(o[s]))return s}function r(o,n){for(var s=0;s"u"}function n(M){return M!==null&&!o(M)&&M.constructor!==null&&!o(M.constructor)&&typeof M.constructor.isBuffer=="function"&&M.constructor.isBuffer(M)}function s(M){return a.call(M)==="[object ArrayBuffer]"}function u(M){return typeof FormData<"u"&&M instanceof FormData}function d(M){var D;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?D=ArrayBuffer.isView(M):D=M&&M.buffer&&M.buffer instanceof ArrayBuffer,D}function m(M){return typeof M=="string"}function f(M){return typeof M=="number"}function _(M){return M!==null&&typeof M=="object"}function c(M){return a.call(M)==="[object Date]"}function v(M){return a.call(M)==="[object File]"}function g(M){return a.call(M)==="[object Blob]"}function P(M){return a.call(M)==="[object Function]"}function h(M){return _(M)&&P(M.pipe)}function y(M){return typeof URLSearchParams<"u"&&M instanceof URLSearchParams}function W(M){return M.replace(/^\s*/,"").replace(/\s*$/,"")}function T(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function j(M,D){if(!(M===null||typeof M>"u"))if(typeof M!="object"&&(M=[M]),r(M))for(var p=0,w=M.length;p"u"||!t.env||!1;function v(){return null}var g=o.h("a",null).constructor;g.prototype.$$typeof=u,g.prototype.preactCompatUpgraded=!1,g.prototype.preactCompatNormalized=!1,Object.defineProperty(g.prototype,"type",{get:function(){return this.nodeName},set:function(x){this.nodeName=x},configurable:!0}),Object.defineProperty(g.prototype,"props",{get:function(){return this.attributes},set:function(x){this.attributes=x},configurable:!0});var P=o.options.event;o.options.event=function(x){return P&&(x=P(x)),x.persist=Object,x.nativeEvent=x,x};var h=o.options.vnode;o.options.vnode=function(x){if(!x.preactCompatUpgraded){x.preactCompatUpgraded=!0;var N=x.nodeName,Y=x.attributes=J({},x.attributes);typeof N=="function"?(N[d]===!0||N.prototype&&"isReactComponent"in N.prototype)&&(x.children&&String(x.children)===""&&(x.children=void 0),x.children&&(Y.children=x.children),x.preactCompatNormalized||oe(x),y(x)):(x.children&&String(x.children)===""&&(x.children=void 0),x.children&&(Y.children=x.children),Y.defaultValue&&(!Y.value&&Y.value!==0&&(Y.value=Y.defaultValue),delete Y.defaultValue),W(x,Y))}h&&h(x)};function y(x){var N=x.nodeName,Y=x.attributes;x.attributes={},N.defaultProps&&J(x.attributes,N.defaultProps),Y&&J(x.attributes,Y)}function W(x,N){var Y,$,Q;if(N){for(Q in N)if(Y=f.test(Q))break;if(Y){$=x.attributes={};for(Q in N)N.hasOwnProperty(Q)&&($[f.test(Q)?Q.replace(/([A-Z0-9])/,"-$1").toLowerCase():Q]=N[Q])}}}function T(x,N,Y){var $=N&&N._preactCompatRendered&&N._preactCompatRendered.base;$&&$.parentNode!==N&&($=null),$||($=N.children[0]);for(var Q=N.childNodes.length;Q--;)N.childNodes[Q]!==$&&N.removeChild(N.childNodes[Q]);var ae=o.render(x,N,$);return N&&(N._preactCompatRendered=ae&&(ae._component||{base:ae})),typeof Y=="function"&&Y(),ae&&ae._component||ae}var j=function(){};j.prototype.getChildContext=function(){return this.props.context},j.prototype.render=function(x){return x.children[0]};function b(x,N,Y,$){var Q=o.h(j,{context:x.context},N),ae=T(Q,Y);return $&&$(ae),ae._component||ae.base}function C(x){var N=x._preactCompatRendered&&x._preactCompatRendered.base;return N&&N.parentNode===x?(o.render(o.h(v),x,N),!0):!1}var I=[],M={map:function(x,N,Y){return x==null?null:(x=M.toArray(x),Y&&Y!==x&&(N=N.bind(Y)),x.map(N))},forEach:function(x,N,Y){if(x==null)return null;x=M.toArray(x),Y&&Y!==x&&(N=N.bind(Y)),x.forEach(N)},count:function(x){return x&&x.length||0},only:function(x){if(x=M.toArray(x),x.length!==1)throw new Error("Children.only() expects only one child.");return x[0]},toArray:function(x){return x==null?[]:Array.isArray&&Array.isArray(x)?x:I.concat(x)}},D;function p(x){return ue.bind(null,x)}for(var w={},L=s.length;L--;)w[s[L]]=p(s[L]);function z(x,N){for(var Y=N||0;Y0;)Y[$]=arguments[$+2];if(!le(x))return x;var Q=x.attributes||x.props,ae=o.h(x.nodeName||x.type,Q,x.children||Q&&Q.children),me=[ae,N];return Y&&Y.length?me.push(Y):N&&N.children&&me.push(N.children),oe(o.cloneElement.apply(void 0,me))}function le(x){return x&&(x instanceof g||x.$$typeof===u)}function F(x,N){return N._refProxies[x]||(N._refProxies[x]=function(Y){N&&N.refs&&(N.refs[x]=Y,Y===null&&(delete N._refProxies[x],N=null))})}function S(x){var N=x.nodeName,Y=x.attributes;if(!(!Y||typeof N!="string")){var $={};for(var Q in Y)$[Q.toLowerCase()]=Q;if($.ondoubleclick&&(Y.ondblclick=Y[$.ondoubleclick],delete Y[$.ondoubleclick]),$.onchange&&(N==="textarea"||N.toLowerCase()==="input"&&!/^fil|che|rad/i.test(Y.type))){var ae=$.oninput||"oninput";Y[ae]||(Y[ae]=ee([Y[ae],Y[$.onchange]]),delete Y[$.onchange])}}}function X(x){var N=x.attributes;if(N){var Y=N.className||N.class;Y&&(N.className=Y)}}function J(x,N){for(var Y in N)N.hasOwnProperty(Y)&&(x[Y]=N[Y]);return x}function V(x,N){for(var Y in x)if(!(Y in N))return!0;for(var $ in N)if(x[$]!==N[$])return!0;return!1}function E(x){return x&&x.base||x}function O(){}function B(x){function N(Y,$){U(this),fe.call(this,Y,$,_),q.call(this,Y,$)}return x=J({constructor:N},x),x.mixins&&k(x,A(x.mixins)),x.statics&&J(N,x.statics),x.propTypes&&(N.propTypes=x.propTypes),x.defaultProps&&(N.defaultProps=x.defaultProps),x.getDefaultProps&&(N.defaultProps=x.getDefaultProps()),O.prototype=fe.prototype,N.prototype=J(new O,x),N.displayName=x.displayName||"Component",N}function A(x){for(var N={},Y=0;Y1)for(var y=1;y0,d=u?(t+a(n))%t:a(n);return s*t+d}},function(l,i){l.exports=function(e){return typeof e=="object"?e!==null:typeof e=="function"}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);return isNaN(d)?new Date(NaN):(d&&u.setDate(u.getDate()+d),u)}},function(l,i,e){i.a=o;var t=e(1),a=e(6),r=e(0);function o(n,s){r.a(1,arguments);var u=s||{},d=u.locale,m=d&&d.options&&d.options.weekStartsOn,f=m==null?0:a.a(m),_=u.weekStartsOn==null?f:a.a(u.weekStartsOn);if(!(_>=0&&_<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=t.a(n),v=c.getDay(),g=(v<_?7:0)+v-_;return c.setDate(c.getDate()-g),c.setHours(0,0,0,0),c}},function(l,i,e){var t=e(16),a=e(39);l.exports=e(17)?function(r,o,n){return t.f(r,o,a(1,n))}:function(r,o,n){return r[o]=n,r}},function(l,i){var e={}.hasOwnProperty;l.exports=function(t,a){return e.call(t,a)}},function(l,i,e){i.a=r;var t=e(22),a=e(0);function r(o){return a.a(1,arguments),t.a(o,{weekStartsOn:1})}},function(l,i,e){i.a=n;var t=e(19),a=e(57),r=e(0),o=864e5;function n(s,u){r.a(2,arguments);var d=a.a(s),m=a.a(u),f=d.getTime()-t.a(d),_=m.getTime()-t.a(m);return Math.round((f-_)/o)}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o,n){a.a(2,arguments);var s=t.a(o),u=t.a(n),d=s.getTime()-u.getTime();return d<0?-1:d>0?1:d}},function(l,i,e){var t=e(48),a=e(341),r=e(35),o=e(36),n=e(37),s={code:"en-US",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){var t=e(51);l.exports=function(a,r,o){if(t(a),r===void 0)return a;switch(o){case 1:return function(n){return a.call(r,n)};case 2:return function(n,s){return a.call(r,n,s)};case 3:return function(n,s,u){return a.call(r,n,s,u)}}return function(){return a.apply(r,arguments)}}},function(l,i){l.exports=function(e){try{return!!e()}catch{return!0}}},function(l,i){l.exports={}},function(l,i,e){var t=e(104),a=e(70);l.exports=function(r){return t(a(r))}},function(l,i,e){var t=e(70);l.exports=function(a){return Object(t(a))}},function(l,i,e){i.a=o;var t=e(1),a=e(25),r=e(0);function o(n){r.a(1,arguments);var s=t.a(n),u=s.getFullYear(),d=new Date(0);d.setFullYear(u+1,0,4),d.setHours(0,0,0,0);var m=a.a(d),f=new Date(0);f.setFullYear(u,0,4),f.setHours(0,0,0,0);var _=a.a(f);return s.getTime()>=m.getTime()?u+1:s.getTime()>=_.getTime()?u:u-1}},function(l,i,e){i.a=a;var t={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},n={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},s={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},u={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}};function d(f,_){var c=Number(f),v=c%100;if(v>20||v<10)switch(v%10){case 1:return c+"st";case 2:return c+"nd";case 3:return c+"rd"}return c+"th"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,n={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},s={any:[/^b/i,/^(a|c)/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},c={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},v={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){i.a=t;function t(a,r){for(var o=a<0?"-":"",n=Math.abs(a).toString();n.length=a.length?{value:void 0,done:!0}:(o=t(a,r),this._i+=o.length,{value:o,done:!1})})},function(l,i){l.exports=!0},function(l,i,e){var t=e(103),a=e(75);l.exports=Object.keys||function(o){return t(o,a)}},function(l,i){var e={}.toString;l.exports=function(t){return e.call(t).slice(8,-1)}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);if(isNaN(d))return new Date(NaN);if(!d)return u;var m=u.getDate(),f=new Date(u.getTime());f.setMonth(u.getMonth()+d+1,0);var _=f.getDate();return m>=_?f:(u.setFullYear(f.getFullYear(),f.getMonth(),m),u)}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n).getTime(),d=t.a(s);return new Date(u+d)}},function(l,i,e){i.a=o;var t=e(34),a=e(25),r=e(0);function o(n){r.a(1,arguments);var s=t.a(n),u=new Date(0);u.setFullYear(s,0,4),u.setHours(0,0,0,0);var d=a.a(u);return d}},function(l,i,e){i.a=r;var t=e(57),a=e(0);function r(o,n){a.a(2,arguments);var s=t.a(o),u=t.a(n);return s.getTime()===u.getTime()}},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"in "+s:s+" ago":s}},function(l,i,e){i.a=o;var t=e(6),a=e(45),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(1,arguments);var u=s||{},d=u.locale,m=d&&d.options&&d.options.weekStartsOn,f=m==null?0:t.a(m),_=u.weekStartsOn==null?f:t.a(u.weekStartsOn);if(!(_>=0&&_<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=a.a(n),v=c.getUTCDay(),g=(v<_?7:0)+v-_;return c.setUTCDate(c.getUTCDate()-g),c.setUTCHours(0,0,0,0),c}},function(l,i){l.exports=function(e){if(typeof e!="function")throw TypeError(e+" is not a function!");return e}},function(l,i){var e=0,t=Math.random();l.exports=function(a){return"Symbol(".concat(a===void 0?"":a,")_",(++e+t).toString(36))}},function(l,i,e){var t=e(16).f,a=e(24),r=e(9)("toStringTag");l.exports=function(o,n,s){o&&!a(o=s?o:o.prototype,r)&&t(o,r,{configurable:!0,value:n})}},function(l,i,e){e(215);for(var t=e(8),a=e(23),r=e(31),o=e(9)("toStringTag"),n="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s0?Math.floor(s):Math.ceil(s)}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o);return n.setDate(1),n.setHours(0,0,0,0),n}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=1,s=t.a(o),u=s.getUTCDay(),d=(u0?t:e)(a)}},function(l,i){l.exports=function(e){if(e==null)throw TypeError("Can't call method on "+e);return e}},function(l,i,e){var t=e(14),a=e(212),r=e(75),o=e(73)("IE_PROTO"),n=function(){},s="prototype",u=function(){var d=e(66)("iframe"),m=r.length,f="<",_=">",c;for(d.style.display="none",e(105).appendChild(d),d.src="javascript:",c=d.contentWindow.document,c.open(),c.write(f+"script"+_+"document.F=Object"+f+"/script"+_),c.close(),u=c.F;m--;)delete u[s][r[m]];return u()};l.exports=Object.create||function(m,f){var _;return m!==null?(n[s]=t(m),_=new n,n[s]=null,_[o]=m):_=u(),f===void 0?_:a(_,f)}},function(l,i,e){var t=e(69),a=Math.min;l.exports=function(r){return r>0?a(t(r),9007199254740991):0}},function(l,i,e){var t=e(74)("keys"),a=e(52);l.exports=function(r){return t[r]||(t[r]=a(r))}},function(l,i,e){var t=e(7),a=e(8),r="__core-js_shared__",o=a[r]||(a[r]={});(l.exports=function(n,s){return o[n]||(o[n]=s!==void 0?s:{})})("versions",[]).push({version:t.version,mode:e(41)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(l,i){l.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(l,i,e){var t=e(43),a=e(9)("toStringTag"),r=t(function(){return arguments}())=="Arguments",o=function(n,s){try{return n[s]}catch{}};l.exports=function(n){var s,u,d;return n===void 0?"Undefined":n===null?"Null":typeof(u=o(s=Object(n),a))=="string"?u:r?t(s):(d=t(s))=="Object"&&typeof s.callee=="function"?"Arguments":d}},function(l,i,e){var t=e(76),a=e(9)("iterator"),r=e(31);l.exports=e(7).getIteratorMethod=function(o){if(o!=null)return o[a]||o["@@iterator"]||r[t(o)]}},function(l,i,e){var t=e(51);function a(r){var o,n;this.promise=new r(function(s,u){if(o!==void 0||n!==void 0)throw TypeError("Bad Promise constructor");o=s,n=u}),this.resolve=t(o),this.reject=t(n)}l.exports.f=function(r){return new a(r)}},function(l,i){i.f=Object.getOwnPropertySymbols},function(l,i,e){i.f=e(9)},function(l,i,e){var t=e(8),a=e(7),r=e(41),o=e(80),n=e(16).f;l.exports=function(s){var u=a.Symbol||(a.Symbol=r?{}:t.Symbol||{});s.charAt(0)!="_"&&!(s in u)&&n(u,s,{value:o.f(s)})}},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0}),i.omit=t,i.arraysEqual=a,i.isElementAnSFC=function(n){var s=typeof n.type=="string";return s?!1:!n.type.prototype.isReactComponent};function t(o){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s={};return Object.keys(o).forEach(function(u){n.indexOf(u)===-1&&(s[u]=o[u])}),s}function a(o,n){var s=o===n;if(s)return!0;var u=!Array.isArray(o)||!Array.isArray(n),d=o.length!==n.length;return u||d?!1:o.every(function(m,f){return m===n[f]})}function r(o){var n={};return function(s){return n[s]||(n[s]=o(s)),n[s]}}i.hyphenate=r(function(o){return o.replace(/([A-Z])/g,"-$1").toLowerCase()})},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){return a.a(1,arguments),t.a(o).getDay()===0}},function(l,i,e){i.a=n;var t=e(6),a=e(45),r=e(0),o=36e5;function n(s,u){r.a(2,arguments);var d=t.a(u);return a.a(s,d*o)}},function(l,i,e){i.a=o;var t=e(6),a=e(44),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s),d=u*3;return a.a(n,d)}},function(l,i,e){i.a=n;var t=e(1),a=e(26),r=e(0);function o(s,u){var d=s.getFullYear()-u.getFullYear()||s.getMonth()-u.getMonth()||s.getDate()-u.getDate()||s.getHours()-u.getHours()||s.getMinutes()-u.getMinutes()||s.getSeconds()-u.getSeconds()||s.getMilliseconds()-u.getMilliseconds();return d<0?-1:d>0?1:d}function n(s,u){r.a(2,arguments);var d=t.a(s),m=t.a(u),f=o(d,m),_=Math.abs(a.a(d,m));d.setDate(d.getDate()-f*_);var c=o(d,m)===-f,v=f*(_-c);return v===0?0:v}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getMonth(),u=s-s%3;return n.setMonth(u,1),n.setHours(0,0,0,0),n}},function(l,i,e){i.a=n;var t=e(148),a=e(83),r=e(56),o=e(0);function n(s){o.a(1,arguments);for(var u=t.a(s),d=[],m=0;m=1&&g<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var P=new Date(0);P.setUTCFullYear(m+1,0,g),P.setUTCHours(0,0,0,0);var h=r.a(P,u),y=new Date(0);y.setUTCFullYear(m,0,g),y.setUTCHours(0,0,0,0);var W=r.a(y,u);return d.getTime()>=h.getTime()?m+1:d.getTime()>=W.getTime()?m:m-1}},function(l,i,e){i.a=n;var t=e(170),a=e(22),r=e(6),o=e(0);function n(s,u){o.a(1,arguments);var d=u||{},m=d.locale,f=m&&m.options&&m.options.firstWeekContainsDate,_=f==null?1:r.a(f),c=d.firstWeekContainsDate==null?_:r.a(d.firstWeekContainsDate),v=t.a(s,u),g=new Date(0);g.setFullYear(v,0,c),g.setHours(0,0,0,0);var P=a.a(g,u);return P}},function(l,i,e){i.a=o;var t=e(6),a=e(21),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=r;var t=e(22),a=e(0);function r(o,n,s){a.a(2,arguments);var u=t.a(o,s),d=t.a(n,s);return u.getTime()===d.getTime()}},function(l,i,e){i.a=n;var t=e(6),a=e(1),r=e(164),o=e(0);function n(s,u){o.a(2,arguments);var d=a.a(s),m=t.a(u),f=d.getFullYear(),_=d.getDate(),c=new Date(0);c.setFullYear(f,m,15),c.setHours(0,0,0,0);var v=r.a(c);return d.setMonth(m,Math.min(_,v)),d}},function(l,i,e){var t=e(3),a={locale:{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},number:{"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"}},r={narrow:["ईसा-पूर्व","ईस्वी"],abbreviated:["ईसा-पूर्व","ईस्वी"],wide:["ईसा-पूर्व","ईसवी सन"]},o={narrow:["1","2","3","4"],abbreviated:["ति1","ति2","ति3","ति4"],wide:["पहली तिमाही","दूसरी तिमाही","तीसरी तिमाही","चौथी तिमाही"]},n={narrow:["ज","फ़","मा","अ","मई","जू","जु","अग","सि","अक्तू","न","दि"],abbreviated:["जन","फ़र","मार्च","अप्रैल","मई","जून","जुल","अग","सित","अक्तू","नव","दिस"],wide:["जनवरी","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितंबर","अक्तूबर","नवंबर","दिसंबर"]},s={narrow:["र","सो","मं","बु","गु","शु","श"],short:["र","सो","मं","बु","गु","शु","श"],abbreviated:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],wide:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"]},u={narrow:{am:"पूर्वाह्न",pm:"अपराह्न",midnight:"मध्यरात्रि",noon:"दोपहर",morning:"सुबह",afternoon:"दोपहर",evening:"शाम",night:"रात"},abbreviated:{am:"पूर्वाह्न",pm:"अपराह्न",midnight:"मध्यरात्रि",noon:"दोपहर",morning:"सुबह",afternoon:"दोपहर",evening:"शाम",night:"रात"},wide:{am:"पूर्वाह्न",pm:"अपराह्न",midnight:"मध्यरात्रि",noon:"दोपहर",morning:"सुबह",afternoon:"दोपहर",evening:"शाम",night:"रात"}},d={narrow:{am:"पूर्वाह्न",pm:"अपराह्न",midnight:"मध्यरात्रि",noon:"दोपहर",morning:"सुबह",afternoon:"दोपहर",evening:"शाम",night:"रात"},abbreviated:{am:"पूर्वाह्न",pm:"अपराह्न",midnight:"मध्यरात्रि",noon:"दोपहर",morning:"सुबह",afternoon:"दोपहर",evening:"शाम",night:"रात"},wide:{am:"पूर्वाह्न",pm:"अपराह्न",midnight:"मध्यरात्रि",noon:"दोपहर",morning:"सुबह",afternoon:"दोपहर",evening:"शाम",night:"रात"}};function m(v){var g=c.localeToNumber(v),P=c.numberToLocale(g),h=g%10;switch(h){case 2:case 3:case 4:case 6:case 1:case 5:case 7:case 8:case 9:case 0:return P}}function f(v){var g=v.toString().replace(/[१२३४५६७८९०]/g,function(P){return a.number[P]});return Number(g)}function _(v){return v.toString().replace(/\d/g,function(g){return a.locale[g]})}var c={localeToNumber:f,numberToLocale:_,ordinalNumber:m,era:t.a({values:r,defaultWidth:"wide"}),quarter:t.a({values:o,defaultWidth:"wide",argumentCallback:function(v){return Number(v)-1}}),month:t.a({values:n,defaultWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=c},function(l,i,e){l.exports=!e(17)&&!e(30)(function(){return Object.defineProperty(e(66)("div"),"a",{get:function(){return 7}}).a!=7})},function(l,i,e){(function(t){l.exports=e(196)}).call(i,e(18))},function(l,i){},function(l,i,e){var t=e(41),a=e(11),r=e(102),o=e(23),n=e(31),s=e(211),u=e(53),d=e(106),m=e(9)("iterator"),f=!([].keys&&"next"in[].keys()),_="@@iterator",c="keys",v="values",g=function(){return this};l.exports=function(P,h,y,W,T,j,b){s(y,h,W);var C=function(oe){if(!f&&oe in p)return p[oe];switch(oe){case c:return function(){return new y(this,oe)};case v:return function(){return new y(this,oe)}}return function(){return new y(this,oe)}},I=h+" Iterator",M=T==v,D=!1,p=P.prototype,w=p[m]||p[_]||T&&p[T],L=w||C(T),z=T?M?C("entries"):L:void 0,ne=h=="Array"&&p.entries||w,te,de,ue;if(ne&&(ue=d(ne.call(new P)),ue!==Object.prototype&&ue.next&&(u(ue,I,!0),!t&&typeof ue[m]!="function"&&o(ue,m,g))),M&&w&&w.name!==v&&(D=!0,L=function(){return w.call(this)}),(!t||b)&&(f||D||!p[m])&&o(p,m,L),n[h]=L,n[I]=g,T)if(te={values:M?L:C(v),keys:j?L:C(c),entries:z},b)for(de in te)de in p||r(p,de,te[de]);else a(a.P+a.F*(f||D),h,te);return te}},function(l,i,e){l.exports=e(23)},function(l,i,e){var t=e(24),a=e(32),r=e(213)(!1),o=e(73)("IE_PROTO");l.exports=function(n,s){var u=a(n),d=0,m=[],f;for(f in u)f!=o&&t(u,f)&&m.push(f);for(;s.length>d;)t(u,f=s[d++])&&(~r(m,f)||m.push(f));return m}},function(l,i,e){var t=e(43);l.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return t(a)=="String"?a.split(""):Object(a)}},function(l,i,e){var t=e(8).document;l.exports=t&&t.documentElement},function(l,i,e){var t=e(24),a=e(33),r=e(73)("IE_PROTO"),o=Object.prototype;l.exports=Object.getPrototypeOf||function(n){return n=a(n),t(n,r)?n[r]:typeof n.constructor=="function"&&n instanceof n.constructor?n.constructor.prototype:n instanceof Object?o:null}},function(l,i,e){var t=e(14);l.exports=function(a,r,o,n){try{return n?r(t(o)[0],o[1]):r(o)}catch(u){var s=a.return;throw s!==void 0&&t(s.call(a)),u}}},function(l,i,e){var t=e(31),a=e(9)("iterator"),r=Array.prototype;l.exports=function(o){return o!==void 0&&(t.Array===o||r[a]===o)}},function(l,i,e){var t=e(14),a=e(51),r=e(9)("species");l.exports=function(o,n){var s=t(o).constructor,u;return s===void 0||(u=t(s)[r])==null?n:a(u)}},function(l,i,e){var t=e(29),a=e(221),r=e(105),o=e(66),n=e(8),s=n.process,u=n.setImmediate,d=n.clearImmediate,m=n.MessageChannel,f=n.Dispatch,_=0,c={},v="onreadystatechange",g,P,h,y=function(){var T=+this;if(c.hasOwnProperty(T)){var j=c[T];delete c[T],j()}},W=function(T){y.call(T.data)};(!u||!d)&&(u=function(j){for(var b=[],C=1;arguments.length>C;)b.push(arguments[C++]);return c[++_]=function(){a(typeof j=="function"?j:Function(j),b)},g(_),_},d=function(j){delete c[j]},e(43)(s)=="process"?g=function(T){s.nextTick(t(y,T,1))}:f&&f.now?g=function(T){f.now(t(y,T,1))}:m?(P=new m,h=P.port2,P.port1.onmessage=W,g=t(h.postMessage,h,1)):n.addEventListener&&typeof postMessage=="function"&&!n.importScripts?(g=function(T){n.postMessage(T+"","*")},n.addEventListener("message",W,!1)):v in o("script")?g=function(T){r.appendChild(o("script"))[v]=function(){r.removeChild(this),y.call(T)}}:g=function(T){setTimeout(t(y,T,1),0)}),l.exports={set:u,clear:d}},function(l,i){l.exports=function(e){try{return{e:!1,v:e()}}catch(t){return{e:!0,v:t}}}},function(l,i,e){var t=e(14),a=e(20),r=e(78);l.exports=function(o,n){if(t(o),a(n)&&n.constructor===o)return n;var s=r.f(o),u=s.resolve;return u(n),s.promise}},function(l,i,e){var t=e(9)("iterator"),a=!1;try{var r=[7][t]();r.return=function(){a=!0},Array.from(r,function(){throw 2})}catch{}l.exports=function(o,n){if(!n&&!a)return!1;var s=!1;try{var u=[7],d=u[t]();d.next=function(){return{done:s=!0}},u[t]=function(){return d},o(u)}catch{}return s}},function(l,i,e){l.exports={default:e(232),__esModule:!0}},function(l,i,e){var t=e(11),a=e(7),r=e(30);l.exports=function(o,n){var s=(a.Object||{})[o]||Object[o],u={};u[o]=n(s),t(t.S+t.F*r(function(){s(1)}),"Object",u)}},function(l,i,e){i.__esModule=!0;var t=e(117),a=r(t);function r(o){return o&&o.__esModule?o:{default:o}}i.default=function(o,n){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n&&((typeof n>"u"?"undefined":(0,a.default)(n))==="object"||typeof n=="function")?n:o}},function(l,i,e){i.__esModule=!0;var t=e(234),a=s(t),r=e(236),o=s(r),n=typeof o.default=="function"&&typeof a.default=="symbol"?function(u){return typeof u}:function(u){return u&&typeof o.default=="function"&&u.constructor===o.default&&u!==o.default.prototype?"symbol":typeof u};function s(u){return u&&u.__esModule?u:{default:u}}i.default=typeof o.default=="function"&&n(a.default)==="symbol"?function(u){return typeof u>"u"?"undefined":n(u)}:function(u){return u&&typeof o.default=="function"&&u.constructor===o.default&&u!==o.default.prototype?"symbol":typeof u>"u"?"undefined":n(u)}},function(l,i,e){var t=e(103),a=e(75).concat("length","prototype");i.f=Object.getOwnPropertyNames||function(o){return t(o,a)}},function(l,i,e){var t=e(55),a=e(39),r=e(32),o=e(67),n=e(24),s=e(98),u=Object.getOwnPropertyDescriptor;i.f=e(17)?u:function(m,f){if(m=r(m),f=o(f,!0),s)try{return u(m,f)}catch{}if(n(m,f))return a(!t.f.call(m,f),m[f])}},function(l,i,e){i.__esModule=!0;var t=e(245),a=u(t),r=e(249),o=u(r),n=e(117),s=u(n);function u(d){return d&&d.__esModule?d:{default:d}}i.default=function(d,m){if(typeof m!="function"&&m!==null)throw new TypeError("Super expression must either be null or a function, not "+(typeof m>"u"?"undefined":(0,s.default)(m)));d.prototype=(0,o.default)(m&&m.prototype,{constructor:{value:d,enumerable:!1,writable:!0,configurable:!0}}),m&&(a.default?(0,a.default)(d,m):d.__proto__=m)}},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0}),i.hasClassInParent=i.formatErrorMsg=i.getMetaContent=i.axiosGithub=i.axiosJSON=i.queryStringify=i.queryParse=void 0;var t=e(274),a=u(t),r=e(277),o=u(r),n=e(284),s=u(n);function u(d){return d&&d.__esModule?d:{default:d}}i.queryParse=function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.location.search;if(!m)return{};var f=m[0]==="?"?m.substring(1):m,_={};return f.split("&").forEach(function(c){var v=c.split("="),g=(0,o.default)(v,2),P=g[0],h=g[1];P&&(_[decodeURIComponent(P)]=decodeURIComponent(h))}),_},i.queryStringify=function(m){var f=(0,a.default)(m).map(function(_){return _+"="+encodeURIComponent(m[_]||"")}).join("&");return f},i.axiosJSON=s.default.create({headers:{Accept:"application/json"}}),i.axiosGithub=s.default.create({baseURL:"https://api.github.com",headers:{Accept:"application/json"}}),i.getMetaContent=function(m,f){f||(f="content");var _=window.document.querySelector("meta[name='"+m+"']");return _&&_.getAttribute(f)},i.formatErrorMsg=function(m){var f="Error: ";return m.response&&m.response.data&&m.response.data.message?(f+=m.response.data.message+". ",m.response.data.errors&&(f+=m.response.data.errors.map(function(_){return _.message}).join(", "))):f+=m.message,f},i.hasClassInParent=function d(m){for(var f=arguments.length,_=Array(f>1?f-1:0),c=1;c"u")return!1;var g=m.className.split(" ");return _.forEach(function(P,h){v=v||g.indexOf(P)>=0}),v||m.parentNode&&d(m.parentNode,_)}},function(l,i,e){l.exports=function(a,r){return function(){for(var n=new Array(arguments.length),s=0;s"u"||(t.isArray(_)?c=c+"[]":_=[_],t.forEach(_,function(g){t.isDate(g)?g=g.toISOString():t.isObject(g)&&(g=JSON.stringify(g)),d.push(a(c)+"="+a(g))}))}),u=d.join("&")}if(u){var m=o.indexOf("#");m!==-1&&(o=o.slice(0,m)),o+=(o.indexOf("?")===-1?"?":"&")+u}return o}},function(l,i,e){l.exports=function(a){return!!(a&&a.__CANCEL__)}},function(l,i,e){(function(t){var a=e(10),r=e(290),o={"Content-Type":"application/x-www-form-urlencoded"};function n(d,m){!a.isUndefined(d)&&a.isUndefined(d["Content-Type"])&&(d["Content-Type"]=m)}function s(){var d;return(typeof XMLHttpRequest<"u"||typeof t<"u"&&Object.prototype.toString.call(t)==="[object process]")&&(d=e(126)),d}var u={adapter:s(),transformRequest:[function(m,f){return r(f,"Accept"),r(f,"Content-Type"),a.isFormData(m)||a.isArrayBuffer(m)||a.isBuffer(m)||a.isStream(m)||a.isFile(m)||a.isBlob(m)?m:a.isArrayBufferView(m)?m.buffer:a.isURLSearchParams(m)?(n(f,"application/x-www-form-urlencoded;charset=utf-8"),m.toString()):a.isObject(m)?(n(f,"application/json;charset=utf-8"),JSON.stringify(m)):m}],transformResponse:[function(m){if(typeof m=="string")try{m=JSON.parse(m)}catch{}return m}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(m){return m>=200&&m<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},a.forEach(["delete","get","head"],function(m){u.headers[m]={}}),a.forEach(["post","put","patch"],function(m){u.headers[m]=a.merge(o)}),l.exports=u}).call(i,e(18))},function(l,i,e){var t=e(10),a=e(291),r=e(123),o=e(293),n=e(296),s=e(297),u=e(127);l.exports=function(m){return new Promise(function(_,c){var v=m.data,g=m.headers;t.isFormData(v)&&delete g["Content-Type"];var P=new XMLHttpRequest;if(m.auth){var h=m.auth.username||"",y=m.auth.password||"";g.Authorization="Basic "+btoa(h+":"+y)}var W=o(m.baseURL,m.url);if(P.open(m.method.toUpperCase(),r(W,m.params,m.paramsSerializer),!0),P.timeout=m.timeout,P.onreadystatechange=function(){if(!(!P||P.readyState!==4)&&!(P.status===0&&!(P.responseURL&&P.responseURL.indexOf("file:")===0))){var C="getAllResponseHeaders"in P?n(P.getAllResponseHeaders()):null,I=!m.responseType||m.responseType==="text"?P.responseText:P.response,M={data:I,status:P.status,statusText:P.statusText,headers:C,config:m,request:P};a(_,c,M),P=null}},P.onabort=function(){P&&(c(u("Request aborted",m,"ECONNABORTED",P)),P=null)},P.onerror=function(){c(u("Network Error",m,null,P)),P=null},P.ontimeout=function(){var C="timeout of "+m.timeout+"ms exceeded";m.timeoutErrorMessage&&(C=m.timeoutErrorMessage),c(u(C,m,"ECONNABORTED",P)),P=null},t.isStandardBrowserEnv()){var T=e(298),j=(m.withCredentials||s(W))&&m.xsrfCookieName?T.read(m.xsrfCookieName):void 0;j&&(g[m.xsrfHeaderName]=j)}if("setRequestHeader"in P&&t.forEach(g,function(C,I){typeof v>"u"&&I.toLowerCase()==="content-type"?delete g[I]:P.setRequestHeader(I,C)}),t.isUndefined(m.withCredentials)||(P.withCredentials=!!m.withCredentials),m.responseType)try{P.responseType=m.responseType}catch(b){if(m.responseType!=="json")throw b}typeof m.onDownloadProgress=="function"&&P.addEventListener("progress",m.onDownloadProgress),typeof m.onUploadProgress=="function"&&P.upload&&P.upload.addEventListener("progress",m.onUploadProgress),m.cancelToken&&m.cancelToken.promise.then(function(C){P&&(P.abort(),c(C),P=null)}),v===void 0&&(v=null),P.send(v)})}},function(l,i,e){var t=e(292);l.exports=function(r,o,n,s,u){var d=new Error(r);return t(d,o,n,s,u)}},function(l,i,e){var t=e(10);l.exports=function(r,o){o=o||{};var n={},s=["url","method","params","data"],u=["headers","auth","proxy"],d=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];t.forEach(s,function(c){typeof o[c]<"u"&&(n[c]=o[c])}),t.forEach(u,function(c){t.isObject(o[c])?n[c]=t.deepMerge(r[c],o[c]):typeof o[c]<"u"?n[c]=o[c]:t.isObject(r[c])?n[c]=t.deepMerge(r[c]):typeof r[c]<"u"&&(n[c]=r[c])}),t.forEach(d,function(c){typeof o[c]<"u"?n[c]=o[c]:typeof r[c]<"u"&&(n[c]=r[c])});var m=s.concat(u).concat(d),f=Object.keys(o).filter(function(c){return m.indexOf(c)===-1});return t.forEach(f,function(c){typeof o[c]<"u"?n[c]=o[c]:typeof r[c]<"u"&&(n[c]=r[c])}),n}},function(l,i,e){function t(a){this.message=a}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,l.exports=t},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(12),a=r(t);function r(o){return o&&o.__esModule?o:{default:o}}i.default=function(o){var n=o.src,s=o.className,u=o.alt,d=o.defaultSrc,m=d===void 0?"//cdn.jsdelivr.net/npm/gitalk@1/src/assets/icon/github.svg":d;return a.default.createElement("div",{className:"gt-avatar "+s},a.default.createElement("img",{src:n||m,alt:"@"+u,onError:function(_){_.target.src=m}}))}},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(12),a=r(t);function r(o){return o&&o.__esModule?o:{default:o}}i.default=function(o){var n=o.className,s=o.text,u=o.name;return a.default.createElement("span",{className:"gt-ico "+n},a.default.createElement("span",{className:"gt-svg",dangerouslySetInnerHTML:{__html:e(304)("./"+u+".svg")}}),s&&a.default.createElement("span",{className:"gt-ico-text"},s))}},function(l,i,e){i.a=u;var t=e(56),a=e(1),r=e(6),o=e(0),n=e(83),s=e(133);function u(d,m){o.a(2,arguments);var f=a.a(d),_=t.a(f),c=r.a(m);if(isNaN(c))return new Date(NaN);var v=f.getHours(),g=c<0?-1:1,P=r.a(c/5);f.setDate(f.getDate()+P*7);for(var h=Math.abs(c%5);h>0;)f.setDate(f.getDate()+g),t.a(f)||(h-=1);return _&&t.a(f)&&c!==0&&(s.a(f)&&f.setDate(f.getDate()+(g<0?2:-1)),n.a(f)&&f.setDate(f.getDate()+(g<0?1:-2))),f.setHours(v),f}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){return a.a(1,arguments),t.a(o).getDay()===6}},function(l,i,e){i.a=n;var t=e(6),a=e(34),r=e(135),o=e(0);function n(s,u){o.a(2,arguments);var d=t.a(u);return r.a(s,a.a(s)+d)}},function(l,i,e){i.a=s;var t=e(6),a=e(1),r=e(46),o=e(26),n=e(0);function s(u,d){n.a(2,arguments);var m=a.a(u),f=t.a(d),_=o.a(m,r.a(m)),c=new Date(0);return c.setFullYear(f,0,4),c.setHours(0,0,0,0),m=r.a(c),m.setDate(m.getDate()+_),m}},function(l,i,e){i.a=n;var t=e(6),a=e(45),r=e(0),o=6e4;function n(s,u){r.a(2,arguments);var d=t.a(u);return a.a(s,d*o)}},function(l,i,e){i.a=o;var t=e(6),a=e(45),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,u*1e3)}},function(l,i,e){i.a=o;var t=e(6),a=e(44),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,u*12)}},function(l,i,e){i.a=r;var t=e(34),a=e(0);function r(o,n){return a.a(2,arguments),t.a(o)-t.a(n)}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o,n){a.a(2,arguments);var s=t.a(o),u=t.a(n),d=s.getFullYear()-u.getFullYear(),m=s.getMonth()-u.getMonth();return d*12+m}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=Math.floor(n.getMonth()/3)+1;return s}},function(l,i,e){i.a=n;var t=e(22),a=e(19),r=e(0),o=6048e5;function n(s,u,d){r.a(2,arguments);var m=t.a(s,d),f=t.a(u,d),_=m.getTime()-a.a(m),c=f.getTime()-a.a(f);return Math.round((_-c)/o)}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o,n){a.a(2,arguments);var s=t.a(o),u=t.a(n);return s.getFullYear()-u.getFullYear()}},function(l,i,e){i.a=o;var t=e(59),a=e(0),r=36e5;function o(n,s){a.a(2,arguments);var u=t.a(n,s)/r;return u>0?Math.floor(u):Math.ceil(u)}},function(l,i,e){i.a=o;var t=e(6),a=e(134),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=o;var t=e(59),a=e(0),r=6e4;function o(n,s){a.a(2,arguments);var u=t.a(n,s)/r;return u>0?Math.floor(u):Math.ceil(u)}},function(l,i,e){i.a=n;var t=e(1),a=e(143),r=e(27),o=e(0);function n(s,u){o.a(2,arguments);var d=t.a(s),m=t.a(u),f=r.a(d,m),_=Math.abs(a.a(d,m));d.setFullYear("1584"),m.setFullYear("1584");var c=r.a(d,m)===-f,v=f*(_-c);return v===0?0:v}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o,n){a.a(1,arguments);var s=o||{},u=t.a(s.start),d=t.a(s.end),m=d.getTime();if(!(u.getTime()<=m))throw new RangeError("Invalid interval");var f=[],_=u;_.setHours(0,0,0,0);var c=n&&"step"in n?Number(n.step):1;if(c<1||isNaN(c))throw new RangeError("`options.step` must be a number greater than 1");for(;_.getTime()<=m;)f.push(t.a(_)),_.setDate(_.getDate()+c),_.setHours(0,0,0,0);return f}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getFullYear();return n.setFullYear(s+1,0,0),n.setHours(23,59,59,999),n}},function(l,i,e){i.a=o;var t=e(1),a=e(6),r=e(0);function o(n,s){r.a(1,arguments);var u=s||{},d=u.locale,m=d&&d.options&&d.options.weekStartsOn,f=m==null?0:a.a(m),_=u.weekStartsOn==null?f:a.a(u.weekStartsOn);if(!(_>=0&&_<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=t.a(n),v=c.getDay(),g=(v<_?-7:0)+6-(v-_);return c.setDate(c.getDate()+g),c.setHours(23,59,59,999),c}},function(l,i,e){i.a=h;var t=e(15),a=e(28),r=e(49),o=e(1),n=e(342),s=e(156),u=e(19),d=e(157),m=e(6),f=e(0),_=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,c=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,v=/^'([^]*?)'?$/,g=/''/g,P=/[a-zA-Z]/;function h(W,T,j){f.a(2,arguments);var b=String(T),C=j||{},I=C.locale||a.a,M=I.options&&I.options.firstWeekContainsDate,D=M==null?1:m.a(M),p=C.firstWeekContainsDate==null?D:m.a(C.firstWeekContainsDate);if(!(p>=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var w=I.options&&I.options.weekStartsOn,L=w==null?0:m.a(w),z=C.weekStartsOn==null?L:m.a(C.weekStartsOn);if(!(z>=0&&z<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!I.localize)throw new RangeError("locale must contain localize property");if(!I.formatLong)throw new RangeError("locale must contain formatLong property");var ne=o.a(W);if(!t.a(ne))throw new RangeError("Invalid time value");var te=u.a(ne),de=r.a(ne,te),ue={firstWeekContainsDate:p,weekStartsOn:z,locale:I,_originalDate:ne},oe=b.match(c).map(function(ie){var le=ie[0];if(le==="p"||le==="P"){var F=s.a[le];return F(ie,I.formatLong,ue)}return ie}).join("").match(_).map(function(ie){if(ie==="''")return"'";var le=ie[0];if(le==="'")return y(ie);var F=n.a[le];if(F)return!C.useAdditionalWeekYearTokens&&d.b(ie)&&d.c(ie,T,W),!C.useAdditionalDayOfYearTokens&&d.a(ie)&&d.c(ie,T,W),F(de,ie,I.localize,ue);if(le.match(P))throw new RangeError("Format string contains an unescaped latin alphabet character `"+le+"`");return ie}).join("");return oe}function y(W){return W.match(v)[1].replace(g,"'")}},function(l,i,e){var t=e(38),a={y:function(r,o){var n=r.getUTCFullYear(),s=n>0?n:1-n;return t.a(o==="yy"?s%100:s,o.length)},M:function(r,o){var n=r.getUTCMonth();return o==="M"?String(n+1):t.a(n+1,2)},d:function(r,o){return t.a(r.getUTCDate(),o.length)},a:function(r,o){var n=r.getUTCHours()/12>=1?"pm":"am";switch(o){case"a":case"aa":case"aaa":return n.toUpperCase();case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h:function(r,o){return t.a(r.getUTCHours()%12||12,o.length)},H:function(r,o){return t.a(r.getUTCHours(),o.length)},m:function(r,o){return t.a(r.getUTCMinutes(),o.length)},s:function(r,o){return t.a(r.getUTCSeconds(),o.length)},S:function(r,o){var n=o.length,s=r.getUTCMilliseconds(),u=Math.floor(s*Math.pow(10,n-3));return t.a(u,o.length)}};i.a=a},function(l,i,e){i.a=s;var t=e(1),a=e(63),r=e(344),o=e(0),n=6048e5;function s(u){o.a(1,arguments);var d=t.a(u),m=a.a(d).getTime()-r.a(d).getTime();return Math.round(m/n)+1}},function(l,i,e){i.a=o;var t=e(1),a=e(63),r=e(0);function o(n){r.a(1,arguments);var s=t.a(n),u=s.getUTCFullYear(),d=new Date(0);d.setUTCFullYear(u+1,0,4),d.setUTCHours(0,0,0,0);var m=a.a(d),f=new Date(0);f.setUTCFullYear(u,0,4),f.setUTCHours(0,0,0,0);var _=a.a(f);return s.getTime()>=m.getTime()?u+1:s.getTime()>=_.getTime()?u:u-1}},function(l,i,e){i.a=s;var t=e(1),a=e(50),r=e(345),o=e(0),n=6048e5;function s(u,d){o.a(1,arguments);var m=t.a(u),f=a.a(m,d).getTime()-r.a(m,d).getTime();return Math.round(f/n)+1}},function(l,i,e){function t(n,s){switch(n){case"P":return s.date({width:"short"});case"PP":return s.date({width:"medium"});case"PPP":return s.date({width:"long"});case"PPPP":default:return s.date({width:"full"})}}function a(n,s){switch(n){case"p":return s.time({width:"short"});case"pp":return s.time({width:"medium"});case"ppp":return s.time({width:"long"});case"pppp":default:return s.time({width:"full"})}}function r(n,s){var u=n.match(/(P+)(p+)?/),d=u[1],m=u[2];if(!m)return t(n,s);var f;switch(d){case"P":f=s.dateTime({width:"short"});break;case"PP":f=s.dateTime({width:"medium"});break;case"PPP":f=s.dateTime({width:"long"});break;case"PPPP":default:f=s.dateTime({width:"full"});break}return f.replace("{{date}}",t(d,s)).replace("{{time}}",a(m,s))}var o={p:a,P:r};i.a=o},function(l,i,e){i.a=r,i.b=o,i.c=n;var t=["D","DD"],a=["YY","YYYY"];function r(s){return t.indexOf(s)!==-1}function o(s){return a.indexOf(s)!==-1}function n(s,u,d){if(s==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(u,"`) for formatting years to the input `").concat(d,"`; see: https://git.io/fxCyr"));if(s==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(u,"`) for formatting years to the input `").concat(d,"`; see: https://git.io/fxCyr"));if(s==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(u,"`) for formatting days of the month to the input `").concat(d,"`; see: https://git.io/fxCyr"));if(s==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(u,"`) for formatting days of the month to the input `").concat(d,"`; see: https://git.io/fxCyr"))}},function(l,i,e){i.a=v;var t=e(27),a=e(60),r=e(61),o=e(28),n=e(1),s=e(159),u=e(19),d=e(0),m=1440,f=2520,_=43200,c=86400;function v(g,P,h){d.a(2,arguments);var y=h||{},W=y.locale||o.a;if(!W.formatDistance)throw new RangeError("locale must contain formatDistance property");var T=t.a(g,P);if(isNaN(T))throw new RangeError("Invalid time value");var j=s.a(y);j.addSuffix=!!y.addSuffix,j.comparison=T;var b,C;T>0?(b=n.a(P),C=n.a(g)):(b=n.a(g),C=n.a(P));var I=r.a(C,b),M=(u.a(C)-u.a(b))/1e3,D=Math.round((I-M)/60),p;if(D<2)return y.includeSeconds?I<5?W.formatDistance("lessThanXSeconds",5,j):I<10?W.formatDistance("lessThanXSeconds",10,j):I<20?W.formatDistance("lessThanXSeconds",20,j):I<40?W.formatDistance("halfAMinute",null,j):I<60?W.formatDistance("lessThanXMinutes",1,j):W.formatDistance("xMinutes",1,j):D===0?W.formatDistance("lessThanXMinutes",1,j):W.formatDistance("xMinutes",D,j);if(D<45)return W.formatDistance("xMinutes",D,j);if(D<90)return W.formatDistance("aboutXHours",1,j);if(D0?(T=r.a(v),j=r.a(c)):(T=r.a(c),j=r.a(v));var b=P.roundingMethod==null?"round":String(P.roundingMethod),C;if(b==="floor")C=Math.floor;else if(b==="ceil")C=Math.ceil;else if(b==="round")C=Math.round;else throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");var I=o.a(j,T),M=(t.a(j)-t.a(T))/1e3,D=C((I-M)/60),p;if(P.unit==null?D<1?p="second":D<60?p="minute":D=1&&g<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var P=new Date(0);P.setFullYear(m+1,0,g),P.setHours(0,0,0,0);var h=t.a(P,u),y=new Date(0);y.setFullYear(m,0,g),y.setHours(0,0,0,0);var W=t.a(y,u);return d.getTime()>=h.getTime()?m+1:d.getTime()>=W.getTime()?m:m-1}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getMonth();return n.setFullYear(n.getFullYear(),s+1,0),n.setHours(0,0,0,0),n}},function(l,i,e){i.a=s;var t=e(94),a=e(173),r=e(1),o=e(0),n=e(6);function s(u,d){if(o.a(2,arguments),!d||typeof d!="object")return new Date(NaN);var m="years"in d?n.a(d.years):0,f="months"in d?n.a(d.months):0,_="weeks"in d?n.a(d.weeks):0,c="days"in d?n.a(d.days):0,v="hours"in d?n.a(d.hours):0,g="minutes"in d?n.a(d.minutes):0,P="seconds"in d?n.a(d.seconds):0,h=a.a(r.a(u),f+m*12),y=t.a(h,c+_*7),W=g+v*60,T=P+W*60,j=T*1e3,b=new Date(y.getTime()-j);return b}},function(l,i,e){i.a=o;var t=e(6),a=e(44),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=W;var t=e(28),a=e(49),r=e(1),o=e(160),n=e(156),s=e(19),u=e(157),d=e(6),m=e(381),f=e(0),_=10,c=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,v=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,g=/^'([^]*?)'?$/,P=/''/g,h=/\S/,y=/[a-zA-Z]/;function W(b,C,I,M){f.a(3,arguments);var D=String(b),p=String(C),w=M||{},L=w.locale||t.a;if(!L.match)throw new RangeError("locale must contain match property");var z=L.options&&L.options.firstWeekContainsDate,ne=z==null?1:d.a(z),te=w.firstWeekContainsDate==null?ne:d.a(w.firstWeekContainsDate);if(!(te>=1&&te<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var de=L.options&&L.options.weekStartsOn,ue=de==null?0:d.a(de),oe=w.weekStartsOn==null?ue:d.a(w.weekStartsOn);if(!(oe>=0&&oe<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(p==="")return D===""?r.a(I):new Date(NaN);var ie={firstWeekContainsDate:te,weekStartsOn:oe,locale:L},le=[{priority:_,subPriority:-1,set:T,index:0}],F,S=p.match(v).map(function(fe){var ge=fe[0];if(ge==="p"||ge==="P"){var Ee=n.a[ge];return Ee(fe,L.formatLong,ie)}return fe}).join("").match(c),X=[];for(F=0;F0&&h.test(D))return new Date(NaN);var G=le.map(function(fe){return fe.priority}).sort(function(fe,ge){return ge-fe}).filter(function(fe,ge,Ee){return Ee.indexOf(fe)===ge}).map(function(fe){return le.filter(function(ge){return ge.priority===fe}).sort(function(ge,Ee){return Ee.subPriority-ge.subPriority})}).map(function(fe){return fe[0]}),ee=r.a(I);if(isNaN(ee))return new Date(NaN);var q=a.a(ee,s.a(ee)),re={};for(F=0;F=0&&_<=6))throw new RangeError("weekStartsOn must be between 0 and 6");var c=t.a(n),v=c.getDay(),g=(v<_?-7:0)+6-(v-_);return c.setHours(0,0,0,0),c.setDate(c.getDate()+g),c}},function(l,i,e){var t=e(3),a={locale:{1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},number:{"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"}},r={narrow:["খ্রিঃপূঃ","খ্রিঃ"],abbreviated:["খ্রিঃপূর্ব","খ্রিঃ"],wide:["খ্রিস্টপূর্ব","খ্রিস্টাব্দ"]},o={narrow:["১","২","৩","৪"],abbreviated:["১ত্রৈ","২ত্রৈ","৩ত্রৈ","৪ত্রৈ"],wide:["১ম ত্রৈমাসিক","২য় ত্রৈমাসিক","৩য় ত্রৈমাসিক","৪র্থ ত্রৈমাসিক"]},n={narrow:["জানু","ফেব্রু","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্ট","অক্টো","নভে","ডিসে"],abbreviated:["জানু","ফেব্রু","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্ট","অক্টো","নভে","ডিসে"],wide:["জানুয়ারি","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"]},s={narrow:["র","সো","ম","বু","বৃ","শু","শ"],short:["রবি","সোম","মঙ্গল","বুধ","বৃহ","শুক্র","শনি"],abbreviated:["রবি","সোম","মঙ্গল","বুধ","বৃহ","শুক্র","শনি"],wide:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার ","শুক্রবার","শনিবার"]},u={narrow:{am:"পূ",pm:"অপ",midnight:"মধ্যরাত",noon:"মধ্যাহ্ন",morning:"সকাল",afternoon:"বিকাল",evening:"সন্ধ্যা",night:"রাত"},abbreviated:{am:"পূর্বাহ্ন",pm:"অপরাহ্ন",midnight:"মধ্যরাত",noon:"মধ্যাহ্ন",morning:"সকাল",afternoon:"বিকাল",evening:"সন্ধ্যা",night:"রাত"},wide:{am:"পূর্বাহ্ন",pm:"অপরাহ্ন",midnight:"মধ্যরাত",noon:"মধ্যাহ্ন",morning:"সকাল",afternoon:"বিকাল",evening:"সন্ধ্যা",night:"রাত"}},d={narrow:{am:"পূ",pm:"অপ",midnight:"মধ্যরাত",noon:"মধ্যাহ্ন",morning:"সকাল",afternoon:"বিকাল",evening:"সন্ধ্যা",night:"রাত"},abbreviated:{am:"পূর্বাহ্ন",pm:"অপরাহ্ন",midnight:"মধ্যরাত",noon:"মধ্যাহ্ন",morning:"সকাল",afternoon:"বিকাল",evening:"সন্ধ্যা",night:"রাত"},wide:{am:"পূর্বাহ্ন",pm:"অপরাহ্ন",midnight:"মধ্যরাত",noon:"মধ্যাহ্ন",morning:"সকাল",afternoon:"বিকাল",evening:"সন্ধ্যা",night:"রাত"}};function m(g,P){if(g>18&&g<=31)return P+"শে";switch(g){case 1:return P+"লা";case 2:case 3:return P+"রা";case 4:return P+"ঠা";default:return P+"ই"}}function f(g,P){var h=v.localeToNumber(g),y=v.numberToLocale(h),W=P.unit;if(W==="date")return m(h,y);if(h>10||h===0)return y+"তম";var T=h%10;switch(T){case 2:case 3:return y+"য়";case 4:return y+"র্থ";case 6:return y+"ষ্ঠ";case 1:case 5:case 7:case 8:case 9:case 0:return y+"ম"}}function _(g){var P=g.toString().replace(/[১২৩৪৫৬৭৮৯০]/g,function(h){return a.number[h]});return Number(P)}function c(g){return g.toString().replace(/\d/g,function(P){return a.locale[P]})}var v={localeToNumber:_,numberToLocale:c,ordinalNumber:f,era:t.a({values:r,defaultWidth:"wide"}),quarter:t.a({values:o,defaultWidth:"wide",argumentCallback:function(g){return Number(g)-1}}),month:t.a({values:n,defaultWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=v},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"moins d’une seconde",other:"moins de {{count}} secondes"},xSeconds:{one:"1 seconde",other:"{{count}} secondes"},halfAMinute:"30 secondes",lessThanXMinutes:{one:"moins d’une minute",other:"moins de {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"environ 1 heure",other:"environ {{count}} heures"},xHours:{one:"1 heure",other:"{{count}} heures"},xDays:{one:"1 jour",other:"{{count}} jours"},aboutXWeeks:{one:"environ 1 semaine",other:"environ {{count}} semaines"},xWeeks:{one:"1 semaine",other:"{{count}} semaines"},aboutXMonths:{one:"environ 1 mois",other:"environ {{count}} mois"},xMonths:{one:"1 mois",other:"{{count}} mois"},aboutXYears:{one:"environ 1 an",other:"environ {{count}} ans"},xYears:{one:"1 an",other:"{{count}} ans"},overXYears:{one:"plus d’un an",other:"plus de {{count}} ans"},almostXYears:{one:"presqu’un an",other:"presque {{count}} ans"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"dans "+s:"il y a "+s:s}},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'dernier à' p",yesterday:"'hier à' p",today:"'aujourd’hui à' p",tomorrow:"'demain à' p'",nextWeek:"eeee 'prochain à' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["av. J.-C","ap. J.-C"],abbreviated:["av. J.-C","ap. J.-C"],wide:["avant Jésus-Christ","après Jésus-Christ"]},r={narrow:["T1","T2","T3","T4"],abbreviated:["1er trim.","2ème trim.","3ème trim.","4ème trim."],wide:["1er trimestre","2ème trimestre","3ème trimestre","4ème trimestre"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],wide:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},n={narrow:["D","L","M","M","J","V","S"],short:["di","lu","ma","me","je","ve","sa"],abbreviated:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],wide:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},s={narrow:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"mat.",afternoon:"ap.m.",evening:"soir",night:"mat."},abbreviated:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"matin",afternoon:"après-midi",evening:"soir",night:"matin"},wide:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"du matin",afternoon:"de l’après-midi",evening:"du soir",night:"du matin"}};function u(m,f){var _=Number(m),c=f||{},v=String(c.unit),g;return _===0?_:(v==="year"||v==="hour"||v==="week"?_===1?g="ère":g="ème":_===1?g="er":g="ème",_+g)}var d={ordinalNumber:u,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(m){return Number(m)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=d},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(ième|ère|ème|er|e)?/i,o=/\d+/i,n={narrow:/^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,abbreviated:/^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,wide:/^(avant Jésus-Christ|après Jésus-Christ)/i},s={any:[/^av/i,/^ap/i]},u={narrow:/^[1234]/i,abbreviated:/^t[1234]/i,wide:/^[1234](er|ème|e)? trimestre/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,wide:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^av/i,/^ma/i,/^juin/i,/^juil/i,/^ao/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[lmjvsd]/i,short:/^(di|lu|ma|me|je|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,wide:/^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i},c={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^di/i,/^lu/i,/^ma/i,/^me/i,/^je/i,/^ve/i,/^sa/i]},v={narrow:/^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,any:/^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^min/i,noon:/^mid/i,morning:/mat/i,afternoon:/ap/i,evening:/soir/i,night:/nuit/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(64),a=f(t),r=e(65),o=f(r),n=e(12),s=f(n),u=e(12);e(203);var d=e(207),m=f(d);function f(c){return c&&c.__esModule?c:{default:c}}var _=function(){function c(){var v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};(0,a.default)(this,c),this.options=v}return(0,o.default)(c,[{key:"render",value:function(g,P){var h=null;if(g=g||this.options.container,!g)throw new Error("Container is required: "+g);if(g instanceof HTMLElement)h=g;else if(h=window.document.getElementById(g),!h)throw new Error("Container not found, window.document.getElementById: "+g);return P||(P=function(){}),(0,u.render)(s.default.createElement(m.default,{options:this.options}),h,P)}}]),c}();l.exports=_},function(l,i,e){l.exports={default:e(193),__esModule:!0}},function(l,i,e){e(194);var t=e(7).Object;l.exports=function(r,o,n){return t.defineProperty(r,o,n)}},function(l,i,e){var t=e(11);t(t.S+t.F*!e(17),"Object",{defineProperty:e(16).f})},function(l,i,e){(function(t){l.exports=e(201)()}).call(i,e(18))},function(l,i,e){/** @license React v16.12.0 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */Object.defineProperty(i,"__esModule",{value:!0});var t=typeof Symbol=="function"&&Symbol.for,a=t?Symbol.for("react.element"):60103,r=t?Symbol.for("react.portal"):60106,o=t?Symbol.for("react.fragment"):60107,n=t?Symbol.for("react.strict_mode"):60108,s=t?Symbol.for("react.profiler"):60114,u=t?Symbol.for("react.provider"):60109,d=t?Symbol.for("react.context"):60110,m=t?Symbol.for("react.async_mode"):60111,f=t?Symbol.for("react.concurrent_mode"):60111,_=t?Symbol.for("react.forward_ref"):60112,c=t?Symbol.for("react.suspense"):60113,v=t?Symbol.for("react.suspense_list"):60120,g=t?Symbol.for("react.memo"):60115,P=t?Symbol.for("react.lazy"):60116,h=t?Symbol.for("react.fundamental"):60117,y=t?Symbol.for("react.responder"):60118,W=t?Symbol.for("react.scope"):60119;function T(b){if(typeof b=="object"&&b!==null){var C=b.$$typeof;switch(C){case a:switch(b=b.type,b){case m:case f:case o:case s:case n:case c:return b;default:switch(b=b&&b.$$typeof,b){case d:case _:case P:case g:case u:return b;default:return C}}case r:return C}}}function j(b){return T(b)===f}i.typeOf=T,i.AsyncMode=m,i.ConcurrentMode=f,i.ContextConsumer=d,i.ContextProvider=u,i.Element=a,i.ForwardRef=_,i.Fragment=o,i.Lazy=P,i.Memo=g,i.Portal=r,i.Profiler=s,i.StrictMode=n,i.Suspense=c,i.isValidElementType=function(b){return typeof b=="string"||typeof b=="function"||b===o||b===f||b===s||b===n||b===c||b===v||typeof b=="object"&&b!==null&&(b.$$typeof===P||b.$$typeof===g||b.$$typeof===u||b.$$typeof===d||b.$$typeof===_||b.$$typeof===h||b.$$typeof===y||b.$$typeof===W)},i.isAsyncMode=function(b){return j(b)||T(b)===m},i.isConcurrentMode=j,i.isContextConsumer=function(b){return T(b)===d},i.isContextProvider=function(b){return T(b)===u},i.isElement=function(b){return typeof b=="object"&&b!==null&&b.$$typeof===a},i.isForwardRef=function(b){return T(b)===_},i.isFragment=function(b){return T(b)===o},i.isLazy=function(b){return T(b)===P},i.isMemo=function(b){return T(b)===g},i.isPortal=function(b){return T(b)===r},i.isProfiler=function(b){return T(b)===s},i.isStrictMode=function(b){return T(b)===n},i.isSuspense=function(b){return T(b)===c}},function(l,i,e){(function(t){/** @license React v16.12.0 +* react-is.development.js +* +* Copyright (c) Facebook, Inc. and its affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/}).call(i,e(18))},function(l,i,e){(function(t){var a=e(99),r=e(199),o=e(68),n=e(200),s=Function.call.bind(Object.prototype.hasOwnProperty),u=function(){};function d(){return null}l.exports=function(m,f){var _=typeof Symbol=="function"&&Symbol.iterator,c="@@iterator";function v(F){var S=F&&(_&&F[_]||F[c]);if(typeof S=="function")return S}var g="<>",P={array:T("array"),bool:T("boolean"),func:T("function"),number:T("number"),object:T("object"),string:T("string"),symbol:T("symbol"),any:j(),arrayOf:b,element:C(),elementType:I(),instanceOf:M,node:L(),objectOf:p,oneOf:D,oneOfType:w,shape:z,exact:ne};function h(F,S){return F===S?F!==0||1/F===1/S:F!==F&&S!==S}function y(F){this.message=F,this.stack=""}y.prototype=Error.prototype;function W(F){function S(J,V,E,O,B,A,k){if(O=O||g,A=A||E,k!==o&&f){var U=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw U.name="Invariant Violation",U}return V[E]==null?J?V[E]===null?new y("The "+B+" `"+A+"` is marked as required "+("in `"+O+"`, but its value is `null`.")):new y("The "+B+" `"+A+"` is marked as required in "+("`"+O+"`, but its value is `undefined`.")):null:F(V,E,O,B,A)}var X=S.bind(null,!1);return X.isRequired=S.bind(null,!0),X}function T(F){function S(X,J,V,E,O,B){var A=X[J],k=ue(A);if(k!==F){var U=oe(A);return new y("Invalid "+E+" `"+O+"` of type "+("`"+U+"` supplied to `"+V+"`, expected ")+("`"+F+"`."))}return null}return W(S)}function j(){return W(d)}function b(F){function S(X,J,V,E,O){if(typeof F!="function")return new y("Property `"+O+"` of component `"+V+"` has invalid PropType notation inside arrayOf.");var B=X[J];if(!Array.isArray(B)){var A=ue(B);return new y("Invalid "+E+" `"+O+"` of type "+("`"+A+"` supplied to `"+V+"`, expected an array."))}for(var k=0;k"u"||F===null)return""+F;var S=ue(F);if(S==="object"){if(F instanceof Date)return"date";if(F instanceof RegExp)return"regexp"}return S}function ie(F){var S=oe(F);switch(S){case"array":case"object":return"an "+S;case"boolean":case"date":case"regexp":return"a "+S;default:return S}}function le(F){return!F.constructor||!F.constructor.name?g:F.constructor.name}return P.checkPropTypes=n,P.resetWarningCache=n.resetWarningCache,P.PropTypes=P,P}}).call(i,e(18))},function(l,i,e){/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var t=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function n(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var u={},d=0;d<10;d++)u["_"+String.fromCharCode(d)]=d;var m=Object.getOwnPropertyNames(u).map(function(_){return u[_]});if(m.join("")!=="0123456789")return!1;var f={};return"abcdefghijklmnopqrst".split("").forEach(function(_){f[_]=_}),Object.keys(Object.assign({},f)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}l.exports=n()?Object.assign:function(s,u){for(var d,m=o(s),f,_=1;_2;)de.push(arguments[U]);for(O&&O.children!=null&&(de.length||de.push(O.children),delete O.children);de.length;)if((A=de.pop())&&A.pop!==void 0)for(U=A.length;U--;)de.push(A[U]);else(A===!0||A===!1)&&(A=null),(k=typeof E!="function")&&(A==null?A="":typeof A=="number"?A=String(A):typeof A!="string"&&(k=!1)),k&&B?G[G.length-1]+=A:G===ue?G=[A]:G.push(A),B=k;var ee=new t;return ee.nodeName=E,ee.children=G,ee.attributes=O??void 0,ee.key=O==null?void 0:O.key,te.vnode!==void 0&&te.vnode(ee),ee}function r(E,O){for(var B in O)E[B]=O[B];return E}function o(E,O){return a(E.nodeName,r(r({},E.attributes),O),arguments.length>2?[].slice.call(arguments,2):E.children)}function n(E){!E.__d&&(E.__d=!0)&&ie.push(E)==1&&(te.debounceRendering||setTimeout)(s)}function s(){var E,O=ie;for(ie=[];E=O.pop();)E.__d&&p(E)}function u(E,O,B){return typeof O=="string"||typeof O=="number"?E.splitText!==void 0:typeof O.nodeName=="string"?!E._componentConstructor&&d(E,O.nodeName):B||E._componentConstructor===O.nodeName}function d(E,O){return E.__n===O||E.nodeName.toLowerCase()===O.toLowerCase()}function m(E){var O=r({},E.attributes);O.children=E.children;var B=E.nodeName.defaultProps;if(B!==void 0)for(var A in B)O[A]===void 0&&(O[A]=B[A]);return O}function f(E,O){var B=O?document.createElementNS("http://www.w3.org/2000/svg",E):document.createElement(E);return B.__n=E,B}function _(E){E.parentNode&&E.parentNode.removeChild(E)}function c(E,O,B,A,k){if(O==="className"&&(O="class"),O!=="key")if(O==="ref")B&&B(null),A&&A(E);else if(O==="class"&&!k)E.className=A||"";else if(O==="style"){if((!A||typeof A=="string"||typeof B=="string")&&(E.style.cssText=A||""),A&&typeof A=="object"){if(typeof B!="string")for(var U in B)U in A||(E.style[U]="");for(var U in A)E.style[U]=typeof A[U]=="number"&&oe.test(U)===!1?A[U]+"px":A[U]}}else if(O==="dangerouslySetInnerHTML")A&&(E.innerHTML=A.__html||"");else if(O[0]=="o"&&O[1]=="n"){var G=O!==(O=O.replace(/Capture$/,""));O=O.toLowerCase().substring(2),A?B||E.addEventListener(O,g,G):E.removeEventListener(O,g,G),(E.__l||(E.__l={}))[O]=A}else if(O!=="list"&&O!=="type"&&!k&&O in E)v(E,O,A??""),(A==null||A===!1)&&E.removeAttribute(O);else{var ee=k&&O!==(O=O.replace(/^xlink\:?/,""));A==null||A===!1?ee?E.removeAttributeNS("http://www.w3.org/1999/xlink",O.toLowerCase()):E.removeAttribute(O):typeof A!="function"&&(ee?E.setAttributeNS("http://www.w3.org/1999/xlink",O.toLowerCase(),A):E.setAttribute(O,A))}}function v(E,O,B){try{E[O]=B}catch{}}function g(E){return this.__l[E.type](te.event&&te.event(E)||E)}function P(){for(var E;E=le.pop();)te.afterMount&&te.afterMount(E),E.componentDidMount&&E.componentDidMount()}function h(E,O,B,A,k,U){F++||(S=k!=null&&k.ownerSVGElement!==void 0,X=E!=null&&!("__preactattr_"in E));var G=y(E,O,B,A,U);return k&&G.parentNode!==k&&k.appendChild(G),--F||(X=!1,U||P()),G}function y(E,O,B,A,k){var U=E,G=S;if(O==null&&(O=""),typeof O=="string")return E&&E.splitText!==void 0&&E.parentNode&&(!E._component||k)?E.nodeValue!=O&&(E.nodeValue=O):(U=document.createTextNode(O),E&&(E.parentNode&&E.parentNode.replaceChild(U,E),T(E,!0))),U.__preactattr_=!0,U;if(typeof O.nodeName=="function")return w(E,O,B,A);if(S=O.nodeName==="svg"?!0:O.nodeName==="foreignObject"?!1:S,(!E||!d(E,String(O.nodeName)))&&(U=f(String(O.nodeName),S),E)){for(;E.firstChild;)U.appendChild(E.firstChild);E.parentNode&&E.parentNode.replaceChild(U,E),T(E,!0)}var ee=U.firstChild,q=U.__preactattr_||(U.__preactattr_={}),re=O.children;return!X&&re&&re.length===1&&typeof re[0]=="string"&&ee!=null&&ee.splitText!==void 0&&ee.nextSibling==null?ee.nodeValue!=re[0]&&(ee.nodeValue=re[0]):(re&&re.length||ee!=null)&&W(U,re,B,A,X||q.dangerouslySetInnerHTML!=null),b(U,O.attributes,q),S=G,U}function W(E,O,B,A,k){var U,G,ee,q,re=E.childNodes,ce=[],he={},fe=0,ge=0,Ee=re.length,x=0,N=O?O.length:0;if(Ee!==0)for(var Y=0;Y=Ee?E.appendChild(q):q!==re[Y]&&(q===re[Y+1]?_(re[Y]):E.insertBefore(q,re[Y]||null)))}if(fe)for(var Y in he)he[Y]!==void 0&&T(he[Y],!1);for(;ge<=x;)(q=ce[x--])!==void 0&&T(q,!1)}function T(E,O){var B=E._component;B?L(B):(E.__preactattr_!=null&&E.__preactattr_.ref&&E.__preactattr_.ref(null),(O===!1||E.__preactattr_==null)&&_(E),j(E))}function j(E){for(E=E.lastChild;E;){var O=E.previousSibling;T(E,!0),E=O}}function b(E,O,B){var A;for(A in B)(!O||O[A]==null)&&B[A]!=null&&c(E,A,B[A],B[A]=void 0,S);for(A in O)A==="children"||A==="innerHTML"||A in B&&O[A]===(A==="value"||A==="checked"?E[A]:B[A])||c(E,A,B[A],B[A]=O[A],S)}function C(E){var O=E.constructor.name;(J[O]||(J[O]=[])).push(E)}function I(E,O,B){var A,k=J[E.name];if(E.prototype&&E.prototype.render?(A=new E(O,B),z.call(A,O,B)):(A=new z(O,B),A.constructor=E,A.render=M),k){for(var U=k.length;U--;)if(k[U].constructor===E){A.__b=k[U].__b,k.splice(U,1);break}}return A}function M(E,O,B){return this.constructor(E,B)}function D(E,O,B,A,k){E.__x||(E.__x=!0,(E.__r=O.ref)&&delete O.ref,(E.__k=O.key)&&delete O.key,!E.base||k?E.componentWillMount&&E.componentWillMount():E.componentWillReceiveProps&&E.componentWillReceiveProps(O,A),A&&A!==E.context&&(E.__c||(E.__c=E.context),E.context=A),E.__p||(E.__p=E.props),E.props=O,E.__x=!1,B!==0&&(B===1||te.syncComponentUpdates!==!1||!E.base?p(E,1,k):n(E)),E.__r&&E.__r(E))}function p(E,O,B,A){if(!E.__x){var k,U,G,ee=E.props,q=E.state,re=E.context,ce=E.__p||ee,he=E.__s||q,fe=E.__c||re,ge=E.base,Ee=E.__b,x=ge||Ee,N=E._component,Y=!1;if(ge&&(E.props=ce,E.state=he,E.context=fe,O!==2&&E.shouldComponentUpdate&&E.shouldComponentUpdate(ee,q,re)===!1?Y=!0:E.componentWillUpdate&&E.componentWillUpdate(ee,q,re),E.props=ee,E.state=q,E.context=re),E.__p=E.__s=E.__c=E.__b=null,E.__d=!1,!Y){k=E.render(ee,q,re),E.getChildContext&&(re=r(r({},re),E.getChildContext()));var $,Q,ae=k&&k.nodeName;if(typeof ae=="function"){var me=m(k);U=N,U&&U.constructor===ae&&me.key==U.__k?D(U,me,1,re,!1):($=U,E._component=U=I(ae,me,re),U.__b=U.__b||Ee,U.__u=E,D(U,me,0,re,!1),p(U,1,B,!0)),Q=U.base}else G=x,$=N,$&&(G=E._component=null),(x||O===1)&&(G&&(G._component=null),Q=h(G,k,re,B||!ge,x&&x.parentNode,!0));if(x&&Q!==x&&U!==N){var ve=x.parentNode;ve&&Q!==ve&&(ve.replaceChild(Q,x),$||(x._component=null,T(x,!1)))}if($&&L($),E.base=Q,Q&&!A){for(var pe=E,K=E;K=K.__u;)(pe=K).base=Q;Q._component=pe,Q._componentConstructor=pe.constructor}}if(!ge||B?le.unshift(E):Y||(P(),E.componentDidUpdate&&E.componentDidUpdate(ce,he,fe),te.afterUpdate&&te.afterUpdate(E)),E.__h!=null)for(;E.__h.length;)E.__h.pop().call(E);!F&&!A&&P()}}function w(E,O,B,A){for(var k=E&&E._component,U=k,G=E,ee=k&&E._componentConstructor===O.nodeName,q=ee,re=m(O);k&&!q&&(k=k.__u);)q=k.constructor===O.nodeName;return k&&q&&(!A||k._component)?(D(k,re,3,B,A),E=k.base):(U&&!ee&&(L(U),E=G=null),k=I(O.nodeName,re,B),E&&!k.__b&&(k.__b=E,G=null),D(k,re,1,B,A),E=k.base,G&&E!==G&&(G._component=null,T(G,!1))),E}function L(E){te.beforeUnmount&&te.beforeUnmount(E);var O=E.base;E.__x=!0,E.componentWillUnmount&&E.componentWillUnmount(),E.base=null;var B=E._component;B?L(B):O&&(O.__preactattr_&&O.__preactattr_.ref&&O.__preactattr_.ref(null),E.__b=O,_(O),C(E),j(O)),E.__r&&E.__r(null)}function z(E,O){this.__d=!0,this.context=O,this.props=E,this.state=this.state||{}}function ne(E,O,B){return h(B,E,{},!1,O,!1)}var te={},de=[],ue=[],oe=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,ie=[],le=[],F=0,S=!1,X=!1,J={};r(z.prototype,{setState:function(E,O){var B=this.state;this.__s||(this.__s=r({},B)),r(B,typeof E=="function"?E(B,this.props):E),O&&(this.__h=this.__h||[]).push(O),n(this)},forceUpdate:function(E){E&&(this.__h=this.__h||[]).push(E),p(this,2)},render:function(){}});var V={h:a,createElement:a,cloneElement:o,Component:z,render:ne,rerender:s,options:te};l.exports=V})()},function(l,i,e){l.exports=e(204).polyfill()},function(l,i,e){(function(t,a){var r;/*! +* @overview es6-promise - a tiny implementation of Promises/A+. +* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) +* @license Licensed under MIT license +* See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE +* @version 4.1.1 +*/(function(o,n){l.exports=n()})(this,function(){function o(K){var Z=typeof K;return K!==null&&(Z==="object"||Z==="function")}function n(K){return typeof K=="function"}var s=void 0;Array.isArray?s=Array.isArray:s=function(K){return Object.prototype.toString.call(K)==="[object Array]"};var u=s,d=0,m=void 0,f=void 0,_=function(Z,se){M[d]=Z,M[d+1]=se,d+=2,d===2&&(f?f(D):w())};function c(K){f=K}function v(K){_=K}var g=typeof window<"u"?window:void 0,P=g||{},h=P.MutationObserver||P.WebKitMutationObserver,y=typeof self>"u"&&typeof t<"u"&&{}.toString.call(t)==="[object process]",W=typeof Uint8ClampedArray<"u"&&typeof importScripts<"u"&&typeof MessageChannel<"u";function T(){return function(){return t.nextTick(D)}}function j(){return typeof m<"u"?function(){m(D)}:I()}function b(){var K=0,Z=new h(D),se=document.createTextNode("");return Z.observe(se,{characterData:!0}),function(){se.data=K=++K%2}}function C(){var K=new MessageChannel;return K.port1.onmessage=D,function(){return K.port2.postMessage(0)}}function I(){var K=setTimeout;return function(){return K(D,1)}}var M=new Array(1e3);function D(){for(var K=0;K=x.comments||fe.data.length "+re}),q.push(""),q.push(""),G&&q.unshift(""),E.setState({comment:G+q.join(` +`)},function(){j.default.update(E.commentEL),E.commentEL.focus()})}},E.handlePopup=function(U){U.preventDefault(),U.stopPropagation();var G=!E.state.isPopupVisible,ee=function q(re){(0,I.hasClassInParent)(re.target,"gt-user","gt-popup")||(window.document.removeEventListener("click",q),E.setState({isPopupVisible:!1}))};E.setState({isPopupVisible:G}),G?window.document.addEventListener("click",ee):window.document.removeEventListener("click",ee)},E.handleLogin=function(){var U=E.state.comment;window.localStorage.setItem(oe.GT_COMMENT,encodeURIComponent(U)),window.location.href=E.loginLink},E.handleIssueCreate=function(){E.setState({isIssueCreating:!0}),E.createIssue().then(function(U){return E.setState({isIssueCreating:!1,isOccurError:!1}),E.getComments(U)}).catch(function(U){E.setState({isIssueCreating:!1,isOccurError:!0,errorMsg:(0,I.formatErrorMsg)(U)})}).then(function(U){U&&E.setState({isNoInit:!1})})},E.handleCommentCreate=function(U){if(!E.state.comment.length){U&&U.preventDefault(),E.commentEL.focus();return}E.setState(function(G){if(!G.isCreating)return E.createComment().then(function(){return E.setState({isCreating:!1,isOccurError:!1})}).catch(function(ee){E.setState({isCreating:!1,isOccurError:!0,errorMsg:(0,I.formatErrorMsg)(ee)})}),{isCreating:!0}})},E.handleCommentPreview=function(U){E.setState({isPreview:!E.state.isPreview}),E.state.isPreview&&I.axiosGithub.post("/markdown",{text:E.state.comment},{headers:E.accessToken&&{Authorization:"token "+E.accessToken}}).then(function(G){E.setState({previewHtml:G.data})}).catch(function(G){E.setState({isOccurError:!0,errorMsg:(0,I.formatErrorMsg)(G)})})},E.handleCommentLoad=function(){var U=E.state,G=U.issue,ee=U.isLoadMore;ee||(E.setState({isLoadMore:!0}),E.getComments(G).then(function(){return E.setState({isLoadMore:!1})}))},E.handleCommentChange=function(U){return E.setState({comment:U.target.value})},E.handleLogout=function(){E.logout(),window.location.reload()},E.handleCommentFocus=function(U){var G=E.options.distractionFreeMode;if(!G)return U.preventDefault();E.setState({isInputFocused:!0})},E.handleCommentBlur=function(U){var G=E.options.distractionFreeMode;if(!G)return U.preventDefault();E.setState({isInputFocused:!1})},E.handleSort=function(U){return function(G){E.setState({pagerDirection:U})}},E.handleCommentKeyDown=function(U){var G=E.options.enableHotKey;G&&(U.metaKey||U.ctrlKey)&&U.keyCode===13&&(E.publicBtnEL&&E.publicBtnEL.focus(),E.handleCommentCreate())},E.options=(0,o.default)({},{id:window.location.href,number:-1,labels:["Gitalk"],title:window.document.title,body:"",language:window.navigator.language||window.navigator.userLanguage,perPage:10,pagerDirection:"last",createIssueManually:!1,distractionFreeMode:!1,proxy:"https://cors-anywhere.azm.workers.dev/https://github.com/login/oauth/access_token",flipMoveOptions:{staggerDelayBy:150,appearAnimation:"accordionVertical",enterAnimation:"accordionVertical",leaveAnimation:"accordionVertical"},enableHotKey:!0,url:window.location.href,defaultAuthor:{avatarUrl:"//avatars1.githubusercontent.com/u/29697133?s=50",login:"null",url:""},updateCountCallback:null},V.options),E.state.pagerDirection=E.options.pagerDirection;var O=window.localStorage.getItem(oe.GT_COMMENT);O&&(E.state.comment=decodeURIComponent(O),window.localStorage.removeItem(oe.GT_COMMENT));var B=(0,I.queryParse)();if(B.code){var A=B.code;delete B.code;var k=""+window.location.origin+window.location.pathname+"?"+(0,I.queryStringify)(B)+window.location.hash;history.replaceState(null,null,k),E.options=(0,o.default)({},E.options,{url:k,id:k},V.options),I.axiosJSON.post(E.options.proxy,{code:A,client_id:E.options.clientID,client_secret:E.options.clientSecret}).then(function(U){U.data&&U.data.access_token?(E.accessToken=U.data.access_token,E.getInit().then(function(){return E.setState({isIniting:!1})}).catch(function(G){console.log("err:",G),E.setState({isIniting:!1,isOccurError:!0,errorMsg:(0,I.formatErrorMsg)(G)})})):(console.log("res.data err:",U.data),E.setState({isOccurError:!0,errorMsg:(0,I.formatErrorMsg)(new Error("no access token"))}))}).catch(function(U){console.log("err: ",U),E.setState({isOccurError:!0,errorMsg:(0,I.formatErrorMsg)(U)})})}else E.getInit().then(function(){return E.setState({isIniting:!1})}).catch(function(U){console.log("err:",U),E.setState({isIniting:!1,isOccurError:!0,errorMsg:(0,I.formatErrorMsg)(U)})});return E.i18n=(0,C.default)(E.options.language),E}return(0,f.default)(J,[{key:"componentDidUpdate",value:function(){this.commentEL&&(0,j.default)(this.commentEL)}},{key:"getInit",value:function(){var E=this;return this.getUserInfo().then(function(){return E.getIssue()}).then(function(O){return E.getComments(O)})}},{key:"getUserInfo",value:function(){var E=this;return this.accessToken?I.axiosGithub.get("/user",{headers:{Authorization:"token "+this.accessToken}}).then(function(O){E.setState({user:O.data})}).catch(function(O){E.logout()}):new a.default(function(O){O()})}},{key:"getIssueById",value:function(){var E=this,O=this.options,B=O.owner,A=O.repo,k=O.number,U=O.clientID,G=O.clientSecret,ee="/repos/"+B+"/"+A+"/issues/"+k;return new a.default(function(q,re){I.axiosGithub.get(ee,{auth:{username:U,password:G},params:{t:Date.now()}}).then(function(ce){var he=null;ce&&ce.data&&ce.data.number===k&&(he=ce.data,E.setState({issue:he,isNoInit:!1})),q(he)}).catch(function(ce){ce.response.status===404&&q(null),re(ce)})})}},{key:"getIssueByLabels",value:function(){var E=this,O=this.options,B=O.owner,A=O.repo,k=O.id,U=O.labels,G=O.clientID,ee=O.clientSecret;return I.axiosGithub.get("/repos/"+B+"/"+A+"/issues",{auth:{username:G,password:ee},params:{labels:U.concat(k).join(","),t:Date.now()}}).then(function(q){var re=E.options.createIssueManually,ce=!1,he=null;if(q&&q.data&&q.data.length)he=q.data[0];else{if(!re&&E.isAdmin)return E.createIssue();ce=!0}return E.setState({issue:he,isNoInit:ce}),he})}},{key:"getIssue",value:function(){var E=this,O=this.options.number,B=this.state.issue;return B?(this.setState({isNoInit:!1}),a.default.resolve(B)):typeof O=="number"&&O>0?this.getIssueById().then(function(A){return A||E.getIssueByLabels()}):this.getIssueByLabels()}},{key:"createIssue",value:function(){var E=this,O=this.options,B=O.owner,A=O.repo,k=O.title,U=O.body,G=O.id,ee=O.labels,q=O.url;return I.axiosGithub.post("/repos/"+B+"/"+A+"/issues",{title:k,labels:ee.concat(G),body:U||q+` + + `+((0,I.getMetaContent)("description")||(0,I.getMetaContent)("description","og:description")||"")},{headers:{Authorization:"token "+this.accessToken}}).then(function(re){return E.setState({issue:re.data}),re.data})}},{key:"getComments",value:function(E){if(E)return this.accessToken?le.default.call(this,E):this.getCommentsV3(E)}},{key:"createComment",value:function(){var E=this,O=this.state,B=O.comment,A=O.localComments,k=O.comments;return this.getIssue().then(function(U){return I.axiosGithub.post(U.comments_url,{body:B},{headers:{Accept:"application/vnd.github.v3.full+json",Authorization:"token "+E.accessToken}})}).then(function(U){E.setState({comment:"",comments:k.concat(U.data),localComments:A.concat(U.data)})})}},{key:"logout",value:function(){this.setState({user:null}),window.localStorage.removeItem(oe.GT_ACCESS_TOKEN)}},{key:"like",value:function(E){var O=this,B=this.options,A=B.owner,k=B.repo,U=this.state.user,G=this.state.comments;I.axiosGithub.post("/repos/"+A+"/"+k+"/issues/comments/"+E.id+"/reactions",{content:"heart"},{headers:{Authorization:"token "+this.accessToken,Accept:"application/vnd.github.squirrel-girl-preview"}}).then(function(ee){G=G.map(function(q){return q.id===E.id?(q.reactions?~q.reactions.nodes.findIndex(function(re){return re.user.login===U.login})||(q.reactions.totalCount+=1):(q.reactions={nodes:[]},q.reactions.totalCount=1),q.reactions.nodes.push(ee.data),q.reactions.viewerHasReacted=!0,(0,o.default)({},q)):q}),O.setState({comments:G})})}},{key:"unLike",value:function(E){var O=this,B=this.state.user,A=this.state.comments,k=function(G){return{operationName:"RemoveReaction",query:` + mutation RemoveReaction{ + removeReaction (input:{ + subjectId: "`+G+`", + content: HEART + }) { + reaction { + content + } + } + } + `}};I.axiosGithub.post("/graphql",k(E.gId),{headers:{Authorization:"bearer "+this.accessToken}}).then(function(U){U.data&&(A=A.map(function(G){if(G.id===E.id){var ee=G.reactions.nodes.findIndex(function(q){return q.user.login===B.login});return~ee&&(G.reactions.totalCount-=1,G.reactions.nodes.splice(ee,1)),G.reactions.viewerHasReacted=!1,(0,o.default)({},G)}return G}),O.setState({comments:A}))})}},{key:"initing",value:function(){return h.default.createElement("div",{className:"gt-initing"},h.default.createElement("i",{className:"gt-loader"}),h.default.createElement("p",{className:"gt-initing-text"},this.i18n.t("init")))}},{key:"noInit",value:function(){var E=this.state,O=E.user,B=E.isIssueCreating,A=this.options,k=A.owner,U=A.repo,G=A.admin;return h.default.createElement("div",{className:"gt-no-init",key:"no-init"},h.default.createElement("p",{dangerouslySetInnerHTML:{__html:this.i18n.t("no-found-related",{link:'Issues'})}}),h.default.createElement("p",null,this.i18n.t("please-contact",{user:[].concat(G).map(function(ee){return"@"+ee}).join(" ")})),this.isAdmin?h.default.createElement("p",null,h.default.createElement(w.default,{onClick:this.handleIssueCreate,isLoading:B,text:this.i18n.t("init-issue")})):null,!O&&h.default.createElement(w.default,{className:"gt-btn-login",onClick:this.handleLogin,text:this.i18n.t("login-with-github")}))}},{key:"header",value:function(){var E=this,O=this.state,B=O.user,A=O.comment,k=O.isCreating,U=O.previewHtml,G=O.isPreview;return h.default.createElement("div",{className:"gt-header",key:"header"},B?h.default.createElement(D.default,{className:"gt-header-avatar",src:B.avatar_url,alt:B.login}):h.default.createElement("a",{className:"gt-avatar-github",onClick:this.handleLogin},h.default.createElement(ue.default,{className:"gt-ico-github",name:"github"})),h.default.createElement("div",{className:"gt-header-comment"},h.default.createElement("textarea",{ref:function(q){E.commentEL=q},className:"gt-header-textarea "+(G?"hide":""),value:A,onChange:this.handleCommentChange,onFocus:this.handleCommentFocus,onBlur:this.handleCommentBlur,onKeyDown:this.handleCommentKeyDown,placeholder:this.i18n.t("leave-a-comment")}),h.default.createElement("div",{className:"gt-header-preview markdown-body "+(G?"":"hide"),dangerouslySetInnerHTML:{__html:U}}),h.default.createElement("div",{className:"gt-header-controls"},h.default.createElement("a",{className:"gt-header-controls-tip",href:"https://guides.github.com/features/mastering-markdown/",target:"_blank",rel:"noopener noreferrer"},h.default.createElement(ue.default,{className:"gt-ico-tip",name:"tip",text:this.i18n.t("support-markdown")})),B&&h.default.createElement(w.default,{getRef:this.getRef,className:"gt-btn-public",onClick:this.handleCommentCreate,text:this.i18n.t("comment"),isLoading:k}),h.default.createElement(w.default,{className:"gt-btn-preview",onClick:this.handleCommentPreview,text:G?this.i18n.t("edit"):this.i18n.t("preview")}),!B&&h.default.createElement(w.default,{className:"gt-btn-login",onClick:this.handleLogin,text:this.i18n.t("login-with-github")}))))}},{key:"comments",value:function(){var E=this,O=this.state,B=O.user,A=O.comments,k=O.isLoadOver,U=O.isLoadMore,G=O.pagerDirection,ee=this.options,q=ee.language,re=ee.flipMoveOptions,ce=ee.admin,he=A.concat([]);return G==="last"&&this.accessToken&&he.reverse(),h.default.createElement("div",{className:"gt-comments",key:"comments"},h.default.createElement(W.default,re,he.map(function(fe){return h.default.createElement(te.default,{comment:fe,key:fe.id,user:B,language:q,commentedText:E.i18n.t("commented"),admin:ce,replyCallback:E.reply(fe),likeCallback:fe.reactions&&fe.reactions.viewerHasReacted?E.unLike.bind(E,fe):E.like.bind(E,fe)})})),!he.length&&h.default.createElement("p",{className:"gt-comments-null"},this.i18n.t("first-comment-person")),!k&&he.length?h.default.createElement("div",{className:"gt-comments-controls"},h.default.createElement(w.default,{className:"gt-btn-loadmore",onClick:this.handleCommentLoad,isLoading:U,text:this.i18n.t("load-more")})):null)}},{key:"meta",value:function(){var E=this.state,O=E.user,B=E.issue,A=E.isPopupVisible,k=E.pagerDirection,U=E.localComments,G=(B&&B.comments)+U.length,ee=k==="last",q=this.options.updateCountCallback;if(q&&{}.toString.call(q)==="[object Function]")try{q(G)}catch(re){console.log("An error occurred executing the updateCountCallback:",re)}return h.default.createElement("div",{className:"gt-meta",key:"meta"},h.default.createElement("span",{className:"gt-counts",dangerouslySetInnerHTML:{__html:this.i18n.t("counts",{counts:''+G+"",smart_count:G})}}),A&&h.default.createElement("div",{className:"gt-popup"},O?h.default.createElement(z.default,{className:"gt-action-sortasc"+(ee?"":" is--active"),onClick:this.handleSort("first"),text:this.i18n.t("sort-asc")}):null,O?h.default.createElement(z.default,{className:"gt-action-sortdesc"+(ee?" is--active":""),onClick:this.handleSort("last"),text:this.i18n.t("sort-desc")}):null,O?h.default.createElement(z.default,{className:"gt-action-logout",onClick:this.handleLogout,text:this.i18n.t("logout")}):h.default.createElement("a",{className:"gt-action gt-action-login",onClick:this.handleLogin},this.i18n.t("login-with-github")),h.default.createElement("div",{className:"gt-copyright"},h.default.createElement("a",{className:"gt-link gt-link-project",href:"https://github.com/gitalk/gitalk",target:"_blank",rel:"noopener noreferrer"},"Gitalk"),h.default.createElement("span",{className:"gt-version"},oe.GT_VERSION))),h.default.createElement("div",{className:"gt-user"},O?h.default.createElement("div",{className:A?"gt-user-inner is--poping":"gt-user-inner",onClick:this.handlePopup},h.default.createElement("span",{className:"gt-user-name"},O.login),h.default.createElement(ue.default,{className:"gt-ico-arrdown",name:"arrow_down"})):h.default.createElement("div",{className:A?"gt-user-inner is--poping":"gt-user-inner",onClick:this.handlePopup},h.default.createElement("span",{className:"gt-user-name"},this.i18n.t("anonymous")),h.default.createElement(ue.default,{className:"gt-ico-arrdown",name:"arrow_down"}))))}},{key:"render",value:function(){var E=this.state,O=E.isIniting,B=E.isNoInit,A=E.isOccurError,k=E.errorMsg,U=E.isInputFocused;return h.default.createElement("div",{className:"gt-container"+(U?" gt-input-focused":"")},O&&this.initing(),!O&&(B?[]:[this.meta()]),A&&h.default.createElement("div",{className:"gt-error"},k),!O&&(B?[this.noInit()]:[this.header(),this.comments()]))}},{key:"accessToken",get:function(){return this._accessToke||window.localStorage.getItem(oe.GT_ACCESS_TOKEN)},set:function(E){window.localStorage.setItem(oe.GT_ACCESS_TOKEN,E),this._accessToken=E}},{key:"loginLink",get:function(){var E="https://github.com/login/oauth/authorize",O=this.options.clientID,B={client_id:O,redirect_uri:window.location.href,scope:"public_repo"};return E+"?"+(0,I.queryStringify)(B)}},{key:"isAdmin",get:function(){var E=this.options.admin,O=this.state.user;return O&&~[].concat(E).map(function(B){return B.toLowerCase()}).indexOf(O.login.toLowerCase())}}]),J}(P.Component);l.exports=S},function(l,i,e){l.exports={default:e(209),__esModule:!0}},function(l,i,e){e(100),e(40),e(54),e(218),e(226),e(227),l.exports=e(7).Promise},function(l,i,e){var t=e(69),a=e(70);l.exports=function(r){return function(o,n){var s=String(a(o)),u=t(n),d=s.length,m,f;return u<0||u>=d?r?"":void 0:(m=s.charCodeAt(u),m<55296||m>56319||u+1===d||(f=s.charCodeAt(u+1))<56320||f>57343?r?s.charAt(u):m:r?s.slice(u,u+2):(m-55296<<10)+(f-56320)+65536)}}},function(l,i,e){var t=e(71),a=e(39),r=e(53),o={};e(23)(o,e(9)("iterator"),function(){return this}),l.exports=function(n,s,u){n.prototype=t(o,{next:a(1,u)}),r(n,s+" Iterator")}},function(l,i,e){var t=e(16),a=e(14),r=e(42);l.exports=e(17)?Object.defineProperties:function(n,s){a(n);for(var u=r(s),d=u.length,m=0,f;d>m;)t.f(n,f=u[m++],s[f]);return n}},function(l,i,e){var t=e(32),a=e(72),r=e(214);l.exports=function(o){return function(n,s,u){var d=t(n),m=a(d.length),f=r(u,m),_;if(o&&s!=s){for(;m>f;)if(_=d[f++],_!=_)return!0}else for(;m>f;f++)if((o||f in d)&&d[f]===s)return o||f||0;return!o&&-1}}},function(l,i,e){var t=e(69),a=Math.max,r=Math.min;l.exports=function(o,n){return o=t(o),o<0?a(o+n,0):r(o,n)}},function(l,i,e){var t=e(216),a=e(217),r=e(31),o=e(32);l.exports=e(101)(Array,"Array",function(n,s){this._t=o(n),this._i=0,this._k=s},function(){var n=this._t,s=this._k,u=this._i++;return!n||u>=n.length?(this._t=void 0,a(1)):s=="keys"?a(0,u):s=="values"?a(0,n[u]):a(0,[u,n[u]])},"values"),r.Arguments=r.Array,t("keys"),t("values"),t("entries")},function(l,i){l.exports=function(){}},function(l,i){l.exports=function(e,t){return{value:t,done:!!e}}},function(l,i,e){var t=e(41),a=e(8),r=e(29),o=e(76),n=e(11),s=e(20),u=e(51),d=e(219),m=e(220),f=e(109),_=e(110).set,c=e(222)(),v=e(78),g=e(111),P=e(223),h=e(112),y="Promise",W=a.TypeError,T=a.process,j=T&&T.versions,b=j&&j.v8||"",C=a[y],I=o(T)=="process",M=function(){},D,p,w,L,z=p=v.f,ne=!!function(){try{var S=C.resolve(1),X=(S.constructor={})[e(9)("species")]=function(J){J(M,M)};return(I||typeof PromiseRejectionEvent=="function")&&S.then(M)instanceof X&&b.indexOf("6.6")!==0&&P.indexOf("Chrome/66")===-1}catch{}}(),te=function(S){var X;return s(S)&&typeof(X=S.then)=="function"?X:!1},de=function(S,X){if(!S._n){S._n=!0;var J=S._c;c(function(){for(var V=S._v,E=S._s==1,O=0,B=function(A){var k=E?A.ok:A.fail,U=A.resolve,G=A.reject,ee=A.domain,q,re,ce;try{k?(E||(S._h==2&&ie(S),S._h=1),k===!0?q=V:(ee&&ee.enter(),q=k(V),ee&&(ee.exit(),ce=!0)),q===A.promise?G(W("Promise-chain cycle")):(re=te(q))?re.call(q,U,G):U(q)):G(V)}catch(he){ee&&!ce&&ee.exit(),G(he)}};J.length>O;)B(J[O++]);S._c=[],S._n=!1,X&&!S._h&&ue(S)})}},ue=function(S){_.call(a,function(){var X=S._v,J=oe(S),V,E,O;if(J&&(V=g(function(){I?T.emit("unhandledRejection",X,S):(E=a.onunhandledrejection)?E({promise:S,reason:X}):(O=a.console)&&O.error&&O.error("Unhandled promise rejection",X)}),S._h=I||oe(S)?2:1),S._a=void 0,J&&V.e)throw V.v})},oe=function(S){return S._h!==1&&(S._a||S._c).length===0},ie=function(S){_.call(a,function(){var X;I?T.emit("rejectionHandled",S):(X=a.onrejectionhandled)&&X({promise:S,reason:S._v})})},le=function(S){var X=this;X._d||(X._d=!0,X=X._w||X,X._v=S,X._s=2,X._a||(X._a=X._c.slice()),de(X,!0))},F=function(S){var X=this,J;if(!X._d){X._d=!0,X=X._w||X;try{if(X===S)throw W("Promise can't be resolved itself");(J=te(S))?c(function(){var V={_w:X,_d:!1};try{J.call(S,r(F,V,1),r(le,V,1))}catch(E){le.call(V,E)}}):(X._v=S,X._s=1,de(X,!1))}catch(V){le.call({_w:X,_d:!1},V)}}};ne||(C=function(X){d(this,C,y,"_h"),u(X),D.call(this);try{X(r(F,this,1),r(le,this,1))}catch(J){le.call(this,J)}},D=function(X){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},D.prototype=e(224)(C.prototype,{then:function(X,J){var V=z(f(this,C));return V.ok=typeof X=="function"?X:!0,V.fail=typeof J=="function"&&J,V.domain=I?T.domain:void 0,this._c.push(V),this._a&&this._a.push(V),this._s&&de(this,!1),V.promise},catch:function(S){return this.then(void 0,S)}}),w=function(){var S=new D;this.promise=S,this.resolve=r(F,S,1),this.reject=r(le,S,1)},v.f=z=function(S){return S===C||S===L?new w(S):p(S)}),n(n.G+n.W+n.F*!ne,{Promise:C}),e(53)(C,y),e(225)(y),L=e(7)[y],n(n.S+n.F*!ne,y,{reject:function(X){var J=z(this),V=J.reject;return V(X),J.promise}}),n(n.S+n.F*(t||!ne),y,{resolve:function(X){return h(t&&this===L?C:this,X)}}),n(n.S+n.F*!(ne&&e(113)(function(S){C.all(S).catch(M)})),y,{all:function(X){var J=this,V=z(J),E=V.resolve,O=V.reject,B=g(function(){var A=[],k=0,U=1;m(X,!1,function(G){var ee=k++,q=!1;A.push(void 0),U++,J.resolve(G).then(function(re){q||(q=!0,A[ee]=re,--U||E(A))},O)}),--U||E(A)});return B.e&&O(B.v),V.promise},race:function(X){var J=this,V=z(J),E=V.reject,O=g(function(){m(X,!1,function(B){J.resolve(B).then(V.resolve,E)})});return O.e&&E(O.v),V.promise}})},function(l,i){l.exports=function(e,t,a,r){if(!(e instanceof t)||r!==void 0&&r in e)throw TypeError(a+": incorrect invocation!");return e}},function(l,m,e){var t=e(29),a=e(107),r=e(108),o=e(14),n=e(72),s=e(77),u={},d={},m=l.exports=function(f,_,c,v,g){var P=g?function(){return f}:s(f),h=t(c,v,_?2:1),y=0,W,T,j,b;if(typeof P!="function")throw TypeError(f+" is not iterable!");if(r(P)){for(W=n(f.length);W>y;y++)if(b=_?h(o(T=f[y])[0],T[1]):h(f[y]),b===u||b===d)return b}else for(j=P.call(f);!(T=j.next()).done;)if(b=a(j,h,T.value,_),b===u||b===d)return b};m.BREAK=u,m.RETURN=d},function(l,i){l.exports=function(e,t,a){var r=a===void 0;switch(t.length){case 0:return r?e():e.call(a);case 1:return r?e(t[0]):e.call(a,t[0]);case 2:return r?e(t[0],t[1]):e.call(a,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(a,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(a,t[0],t[1],t[2],t[3])}return e.apply(a,t)}},function(l,i,e){var t=e(8),a=e(110).set,r=t.MutationObserver||t.WebKitMutationObserver,o=t.process,n=t.Promise,s=e(43)(o)=="process";l.exports=function(){var u,d,m,f=function(){var g,P;for(s&&(g=o.domain)&&g.exit();u;){P=u.fn,u=u.next;try{P()}catch(h){throw u?m():d=void 0,h}}d=void 0,g&&g.enter()};if(s)m=function(){o.nextTick(f)};else if(r&&!(t.navigator&&t.navigator.standalone)){var _=!0,c=document.createTextNode("");new r(f).observe(c,{characterData:!0}),m=function(){c.data=_=!_}}else if(n&&n.resolve){var v=n.resolve(void 0);m=function(){v.then(f)}}else m=function(){a.call(t,f)};return function(g){var P={fn:g,next:void 0};d&&(d.next=P),u||(u=P,m()),d=P}}},function(l,i,e){var t=e(8),a=t.navigator;l.exports=a&&a.userAgent||""},function(l,i,e){var t=e(23);l.exports=function(a,r,o){for(var n in r)o&&a[n]?a[n]=r[n]:t(a,n,r[n]);return a}},function(l,i,e){var t=e(8),a=e(7),r=e(16),o=e(17),n=e(9)("species");l.exports=function(s){var u=typeof a[s]=="function"?a[s]:t[s];o&&u&&!u[n]&&r.f(u,n,{configurable:!0,get:function(){return this}})}},function(l,i,e){var t=e(11),a=e(7),r=e(8),o=e(109),n=e(112);t(t.P+t.R,"Promise",{finally:function(s){var u=o(this,a.Promise||r.Promise),d=typeof s=="function";return this.then(d?function(m){return n(u,s()).then(function(){return m})}:s,d?function(m){return n(u,s()).then(function(){throw m})}:s)}})},function(l,i,e){var t=e(11),a=e(78),r=e(111);t(t.S,"Promise",{try:function(o){var n=a.f(this),s=r(o);return(s.e?n.reject:n.resolve)(s.v),n.promise}})},function(l,i,e){l.exports={default:e(229),__esModule:!0}},function(l,i,e){e(230),l.exports=e(7).Object.assign},function(l,i,e){var t=e(11);t(t.S+t.F,"Object",{assign:e(231)})},function(l,i,e){var t=e(17),a=e(42),r=e(79),o=e(55),n=e(33),s=e(104),u=Object.assign;l.exports=!u||e(30)(function(){var d={},m={},f=Symbol(),_="abcdefghijklmnopqrst";return d[f]=7,_.split("").forEach(function(c){m[c]=c}),u({},d)[f]!=7||Object.keys(u({},m)).join("")!=_})?function(m,f){for(var _=n(m),c=arguments.length,v=1,g=r.f,P=o.f;c>v;)for(var h=s(arguments[v++]),y=g?a(h).concat(g(h)):a(h),W=y.length,T=0,j;W>T;)j=y[T++],(!t||P.call(h,j))&&(_[j]=h[j]);return _}:u},function(l,i,e){e(233),l.exports=e(7).Object.getPrototypeOf},function(l,i,e){var t=e(33),a=e(106);e(115)("getPrototypeOf",function(){return function(o){return a(t(o))}})},function(l,i,e){l.exports={default:e(235),__esModule:!0}},function(l,i,e){e(40),e(54),l.exports=e(80).f("iterator")},function(l,i,e){l.exports={default:e(237),__esModule:!0}},function(l,i,e){e(238),e(100),e(243),e(244),l.exports=e(7).Symbol},function(l,i,e){var t=e(8),a=e(24),r=e(17),o=e(11),n=e(102),s=e(239).KEY,u=e(30),d=e(74),m=e(53),f=e(52),_=e(9),c=e(80),v=e(81),g=e(240),P=e(241),h=e(14),y=e(20),W=e(33),T=e(32),j=e(67),b=e(39),C=e(71),I=e(242),M=e(119),D=e(79),p=e(16),w=e(42),L=M.f,z=p.f,ne=I.f,te=t.Symbol,de=t.JSON,ue=de&&de.stringify,oe="prototype",ie=_("_hidden"),le=_("toPrimitive"),F={}.propertyIsEnumerable,S=d("symbol-registry"),X=d("symbols"),J=d("op-symbols"),V=Object[oe],E=typeof te=="function"&&!!D.f,O=t.QObject,B=!O||!O[oe]||!O[oe].findChild,A=r&&u(function(){return C(z({},"a",{get:function(){return z(this,"a",{value:7}).a}})).a!=7})?function($,Q,ae){var me=L(V,Q);me&&delete V[Q],z($,Q,ae),me&&$!==V&&z(V,Q,me)}:z,k=function($){var Q=X[$]=C(te[oe]);return Q._k=$,Q},U=E&&typeof te.iterator=="symbol"?function($){return typeof $=="symbol"}:function($){return $ instanceof te},G=function(Q,ae,me){return Q===V&&G(J,ae,me),h(Q),ae=j(ae,!0),h(me),a(X,ae)?(me.enumerable?(a(Q,ie)&&Q[ie][ae]&&(Q[ie][ae]=!1),me=C(me,{enumerable:b(0,!1)})):(a(Q,ie)||z(Q,ie,b(1,{})),Q[ie][ae]=!0),A(Q,ae,me)):z(Q,ae,me)},ee=function(Q,ae){h(Q);for(var me=g(ae=T(ae)),ve=0,pe=me.length,K;pe>ve;)G(Q,K=me[ve++],ae[K]);return Q},q=function(Q,ae){return ae===void 0?C(Q):ee(C(Q),ae)},re=function(Q){var ae=F.call(this,Q=j(Q,!0));return this===V&&a(X,Q)&&!a(J,Q)?!1:ae||!a(this,Q)||!a(X,Q)||a(this,ie)&&this[ie][Q]?ae:!0},ce=function(Q,ae){if(Q=T(Q),ae=j(ae,!0),!(Q===V&&a(X,ae)&&!a(J,ae))){var me=L(Q,ae);return me&&a(X,ae)&&!(a(Q,ie)&&Q[ie][ae])&&(me.enumerable=!0),me}},he=function(Q){for(var ae=ne(T(Q)),me=[],ve=0,pe;ae.length>ve;)!a(X,pe=ae[ve++])&&pe!=ie&&pe!=s&&me.push(pe);return me},fe=function(Q){for(var ae=Q===V,me=ne(ae?J:T(Q)),ve=[],pe=0,K;me.length>pe;)a(X,K=me[pe++])&&(!ae||a(V,K))&&ve.push(X[K]);return ve};E||(te=function(){if(this instanceof te)throw TypeError("Symbol is not a constructor!");var Q=f(arguments.length>0?arguments[0]:void 0),ae=function(me){this===V&&ae.call(J,me),a(this,ie)&&a(this[ie],Q)&&(this[ie][Q]=!1),A(this,Q,b(1,me))};return r&&B&&A(V,Q,{configurable:!0,set:ae}),k(Q)},n(te[oe],"toString",function(){return this._k}),M.f=ce,p.f=G,e(118).f=I.f=he,e(55).f=re,D.f=fe,r&&!e(41)&&n(V,"propertyIsEnumerable",re,!0),c.f=function($){return k(_($))}),o(o.G+o.W+o.F*!E,{Symbol:te});for(var ge="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Ee=0;ge.length>Ee;)_(ge[Ee++]);for(var x=w(_.store),N=0;x.length>N;)v(x[N++]);o(o.S+o.F*!E,"Symbol",{for:function($){return a(S,$+="")?S[$]:S[$]=te($)},keyFor:function(Q){if(!U(Q))throw TypeError(Q+" is not a symbol!");for(var ae in S)if(S[ae]===Q)return ae},useSetter:function(){B=!0},useSimple:function(){B=!1}}),o(o.S+o.F*!E,"Object",{create:q,defineProperty:G,defineProperties:ee,getOwnPropertyDescriptor:ce,getOwnPropertyNames:he,getOwnPropertySymbols:fe});var Y=u(function(){D.f(1)});o(o.S+o.F*Y,"Object",{getOwnPropertySymbols:function(Q){return D.f(W(Q))}}),de&&o(o.S+o.F*(!E||u(function(){var $=te();return ue([$])!="[null]"||ue({a:$})!="{}"||ue(Object($))!="{}"})),"JSON",{stringify:function(Q){for(var ae=[Q],me=1,ve,pe;arguments.length>me;)ae.push(arguments[me++]);if(pe=ve=ae[1],!(!y(ve)&&Q===void 0||U(Q)))return P(ve)||(ve=function(K,Z){if(typeof pe=="function"&&(Z=pe.call(this,K,Z)),!U(Z))return Z}),ae[1]=ve,ue.apply(de,ae)}}),te[oe][le]||e(23)(te[oe],le,te[oe].valueOf),m(te,"Symbol"),m(Math,"Math",!0),m(t.JSON,"JSON",!0)},function(l,i,e){var t=e(52)("meta"),a=e(20),r=e(24),o=e(16).f,n=0,s=Object.isExtensible||function(){return!0},u=!e(30)(function(){return s(Object.preventExtensions({}))}),d=function(v){o(v,t,{value:{i:"O"+ ++n,w:{}}})},m=function(v,g){if(!a(v))return typeof v=="symbol"?v:(typeof v=="string"?"S":"P")+v;if(!r(v,t)){if(!s(v))return"F";if(!g)return"E";d(v)}return v[t].i},f=function(v,g){if(!r(v,t)){if(!s(v))return!0;if(!g)return!1;d(v)}return v[t].w},_=function(v){return u&&c.NEED&&s(v)&&!r(v,t)&&d(v),v},c=l.exports={KEY:t,NEED:!1,fastKey:m,getWeak:f,onFreeze:_}},function(l,i,e){var t=e(42),a=e(79),r=e(55);l.exports=function(o){var n=t(o),s=a.f;if(s)for(var u=s(o),d=r.f,m=0,f;u.length>m;)d.call(o,f=u[m++])&&n.push(f);return n}},function(l,i,e){var t=e(43);l.exports=Array.isArray||function(r){return t(r)=="Array"}},function(l,i,e){var t=e(32),a=e(118).f,r={}.toString,o=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],n=function(s){try{return a(s)}catch{return o.slice()}};l.exports.f=function(u){return o&&r.call(u)=="[object Window]"?n(u):a(t(u))}},function(l,i,e){e(81)("asyncIterator")},function(l,i,e){e(81)("observable")},function(l,i,e){l.exports={default:e(246),__esModule:!0}},function(l,i,e){e(247),l.exports=e(7).Object.setPrototypeOf},function(l,i,e){var t=e(11);t(t.S,"Object",{setPrototypeOf:e(248).set})},function(l,i,e){var t=e(20),a=e(14),r=function(o,n){if(a(o),!t(n)&&n!==null)throw TypeError(n+": can't set as prototype!")};l.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(o,n,s){try{s=e(29)(Function.call,e(119).f(Object.prototype,"__proto__").set,2),s(o,[]),n=!(o instanceof Array)}catch{n=!0}return function(d,m){return r(d,m),n?d.__proto__=m:s(d,m),d}}({},!1):void 0),check:r}},function(l,i,e){l.exports={default:e(250),__esModule:!0}},function(l,i,e){e(251);var t=e(7).Object;l.exports=function(r,o){return t.create(r,o)}},function(l,i,e){var t=e(11);t(t.S,"Object",{create:e(71)})},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(253),a=r(t);function r(o){return o&&o.__esModule?o:{default:o}}i.default=a.default,l.exports=i.default},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=function(){function W(T,j){var b=[],C=!0,I=!1,M=void 0;try{for(var D=T[Symbol.iterator](),p;!(C=(p=D.next()).done)&&(b.push(p.value),!(j&&b.length===j));C=!0);}catch(w){I=!0,M=w}finally{try{!C&&D.return&&D.return()}finally{if(I)throw M}}return b}return function(T,j){if(Array.isArray(T))return T;if(Symbol.iterator in Object(T))return W(T,j);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=Object.assign||function(W){for(var T=1;T>>0,o=arguments[1],n=void 0,s=0;s>>0;if(typeof t!="function")throw new TypeError;for(arguments.length>1&&(r=a),o=0;o"u"});M||(0,u.statelessFunctionalComponentSupplied)()}}},{key:"convertProps",value:function(C){var I={children:C.children,easing:C.easing,onStart:C.onStart,onFinish:C.onFinish,onStartAll:C.onStartAll,onFinishAll:C.onFinishAll,typeName:C.typeName,disableAllAnimations:C.disableAllAnimations,getPosition:C.getPosition,maintainContainerHeight:C.maintainContainerHeight,verticalAlignment:C.verticalAlignment,duration:this.convertTimingProp("duration"),delay:this.convertTimingProp("delay"),staggerDurationBy:this.convertTimingProp("staggerDurationBy"),staggerDelayBy:this.convertTimingProp("staggerDelayBy"),appearAnimation:this.convertAnimationProp(C.appearAnimation,d.appearPresets),enterAnimation:this.convertAnimationProp(C.enterAnimation,d.enterPresets),leaveAnimation:this.convertAnimationProp(C.leaveAnimation,d.leavePresets),delegated:{}};this.checkForStatelessFunctionalComponents(I.children),typeof C.disableAnimations<"u"&&(g!=="production"&&(0,u.deprecatedDisableAnimations)(),I.disableAllAnimations=C.disableAnimations);var M=Object.keys(I),D=(0,m.omit)(this.props,M);return D.style=r({position:"relative"},D.style),I.delegated=D,I}},{key:"convertTimingProp",value:function(C){var I=this.props[C],M=typeof I=="number"?I:parseInt(I,10);if(isNaN(M)){var D=j.defaultProps[C];return g!=="production"&&(0,u.invalidTypeForTimingProp)({prop:C,value:I,defaultValue:D}),D}return M}},{key:"convertAnimationProp",value:function(C,I){switch(typeof C>"u"?"undefined":a(C)){case"boolean":return I[C?d.defaultPreset:d.disablePreset];case"string":{var M=Object.keys(I);return M.indexOf(C)===-1?(g!=="production"&&(0,u.invalidEnterLeavePreset)({value:C,acceptableValues:M.join(", "),defaultValue:d.defaultPreset}),I[d.defaultPreset]):I[C]}default:return C}}},{key:"render",value:function(){return s.default.createElement(h,this.convertProps(this.props))}}]),j}(n.Component),y.defaultProps={easing:"ease-in-out",duration:350,delay:0,staggerDurationBy:0,staggerDelayBy:0,typeName:"div",enterAnimation:d.defaultPreset,leaveAnimation:d.defaultPreset,disableAllAnimations:!1,getPosition:function(j){return j.getBoundingClientRect()},maintainContainerHeight:!1,verticalAlignment:"top"},W}i.default=P,l.exports=i.default}).call(i,e(18))},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});function t(a){var r=!1;return function(){r||(console.warn(a),r=!0)}}i.statelessFunctionalComponentSupplied=t(` +>> Error, via react-flip-move << + +You provided a stateless functional component as a child to . Unfortunately, SFCs aren't supported, because Flip Move needs access to the backing instances via refs, and SFCs don't have a public instance that holds that info. + +Please wrap your components in a native element (eg.
), or a non-functional component. +`),i.invalidTypeForTimingProp=function(r){return console.error(` +>> Error, via react-flip-move << + +The prop you provided for '`+r.prop+"' is invalid. It needs to be a positive integer, or a string that can be resolved to a number. The value you provided is '"+r.value+`'. + +As a result, the default value for this parameter will be used, which is '`+r.defaultValue+`'. +`)},i.deprecatedDisableAnimations=t(` +>> Warning, via react-flip-move << + +The 'disableAnimations' prop you provided is deprecated. Please switch to use 'disableAllAnimations'. + +This will become a silent error in future versions of react-flip-move. +`),i.invalidEnterLeavePreset=function(r){return console.error(` +>> Error, via react-flip-move << + +The enter/leave preset you provided is invalid. We don't currently have a '`+r.value+` preset.' + +Acceptable values are `+r.acceptableValues+". The default value of '"+r.defaultValue+`' will be used. +`)}},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=i.enterPresets={elevator:{from:{transform:"scale(0)",opacity:"0"},to:{transform:"",opacity:""}},fade:{from:{opacity:"0"},to:{opacity:""}},accordionVertical:{from:{transform:"scaleY(0)",transformOrigin:"center top"},to:{transform:"",transformOrigin:"center top"}},accordionHorizontal:{from:{transform:"scaleX(0)",transformOrigin:"left center"},to:{transform:"",transformOrigin:"left center"}},none:null},a=i.leavePresets={elevator:{from:{transform:"scale(1)",opacity:"1"},to:{transform:"scale(0)",opacity:"0"}},fade:{from:{opacity:"1"},to:{opacity:"0"}},accordionVertical:{from:{transform:"scaleY(1)",transformOrigin:"center top"},to:{transform:"scaleY(0)",transformOrigin:"center top"}},accordionHorizontal:{from:{transform:"scaleX(1)",transformOrigin:"left center"},to:{transform:"scaleX(0)",transformOrigin:"left center"}},none:null};i.appearPresets=t,t.accordianVertical=t.accordionVertical,t.accordianHorizontal=t.accordionHorizontal,a.accordianVertical=a.accordionVertical,a.accordianHorizontal=a.accordionHorizontal,i.defaultPreset="elevator",i.disablePreset="none"},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0}),i.createTransitionString=i.getNativeNode=i.updateHeightPlaceholder=i.removeNodeFromDOMFlow=i.getPositionDelta=i.getRelativeBoundingBox=void 0;var t=Object.assign||function(u){for(var d=1;d"u")return"";var d=document.createElement("fakeelement"),m=Object.keys(u).find(function(f){return d.style.getPropertyValue(f)!==void 0});return m?u[m]:""}i.getRelativeBoundingBox=function(d){var m=d.childDomNode,f=d.parentDomNode,_=d.getPosition,c=_(f),v=_(m),g=v.top,P=v.left,h=v.right,y=v.bottom,W=v.width,T=v.height;return{top:g-c.top,left:P-c.left,right:c.right-h,bottom:c.bottom-y,width:W,height:T}},i.getPositionDelta=function(d){var m=d.childDomNode,f=d.childBoundingBox,_=d.parentBoundingBox,c=d.getPosition,v={top:0,left:0,right:0,bottom:0,height:0,width:0},g=f||v,P=_||v,h=c(m),y={top:h.top-P.top,left:h.left-P.left};return[g.left-y.left,g.top-y.top]},i.removeNodeFromDOMFlow=function(d,m){var f=d.domNode,_=d.boundingBox;if(!(!f||!_)){var c=window.getComputedStyle(f),v=["margin-top","margin-left","margin-right"],g=v.reduce(function(y,W){var T=c.getPropertyValue(W);return t({},y,o({},W,Number(T.replace("px",""))))},{}),P=m==="bottom"?_.top-_.height:_.top,h={position:"absolute",top:P-g["margin-top"]+"px",left:_.left-g["margin-left"]+"px",right:_.right-g["margin-right"]+"px"};n({domNode:f,styles:h})}},i.updateHeightPlaceholder=function(d){var m=d.domNode,f=d.parentData,_=d.getPosition,c=f.domNode,v=f.boundingBox;if(!(!c||!v)){n({domNode:m,styles:{height:"0"}});var g=v.height,P=_(c).height,h=g-P,y={height:h>0?h+"px":"0"};n({domNode:m,styles:y})}},i.getNativeNode=function(d){if(typeof HTMLElement>"u")return null;if(d instanceof HTMLElement)return d;var m=(0,a.findDOMNode)(d);return m instanceof HTMLElement?m:null},i.createTransitionString=function(d,m){var f=m.delay,_=m.duration,c=m.staggerDurationBy,v=m.staggerDelayBy,g=m.easing;f+=d*v,_+=d*c;var P=["transform","opacity"];return P.map(function(h){return h+" "+_+"ms "+g+" "+f+"ms"}).join(", ")}},function(l,i,e){var t,a,r;/*! + Autosize 3.0.21 + license: MIT + http://www.jacklmoore.com/autosize +*/(function(o,n){a=[i,l],t=n,r=typeof t=="function"?t.apply(i,a):t,r!==void 0&&(l.exports=r)})(this,function(o,n){var s=typeof Map=="function"?new Map:function(){var c=[],v=[];return{has:function(P){return c.indexOf(P)>-1},get:function(P){return v[c.indexOf(P)]},set:function(P,h){c.indexOf(P)===-1&&(c.push(P),v.push(h))},delete:function(P){var h=c.indexOf(P);h>-1&&(c.splice(h,1),v.splice(h,1))}}}(),u=function(v){return new Event(v,{bubbles:!0})};try{new Event("test")}catch{u=function(v){var g=document.createEvent("Event");return g.initEvent(v,!0,!1),g}}function d(c){if(!c||!c.nodeName||c.nodeName!=="TEXTAREA"||s.has(c))return;var v=null,g=c.clientWidth,P=null;function h(){var I=window.getComputedStyle(c,null);I.resize==="vertical"?c.style.resize="none":I.resize==="both"&&(c.style.resize="horizontal"),I.boxSizing==="content-box"?v=-(parseFloat(I.paddingTop)+parseFloat(I.paddingBottom)):v=parseFloat(I.borderTopWidth)+parseFloat(I.borderBottomWidth),isNaN(v)&&(v=0),j()}function y(I){{var M=c.style.width;c.style.width="0px",c.offsetWidth,c.style.width=M}c.style.overflowY=I}function W(I){for(var M=[];I&&I.parentNode&&I.parentNode instanceof Element;)I.parentNode.scrollTop&&M.push({node:I.parentNode,scrollTop:I.parentNode.scrollTop}),I=I.parentNode;return M}function T(){var I=c.style.height,M=W(c),D=document.documentElement&&document.documentElement.scrollTop;c.style.height="auto";var p=c.scrollHeight+v;if(c.scrollHeight===0){c.style.height=I;return}c.style.height=p+"px",g=c.clientWidth,M.forEach(function(w){w.node.scrollTop=w.scrollTop}),D&&(document.documentElement.scrollTop=D)}function j(){T();var I=Math.round(parseFloat(c.style.height)),M=window.getComputedStyle(c,null),D=M.boxSizing==="content-box"?Math.round(parseFloat(M.height)):c.offsetHeight;if(D!==I?M.overflowY==="hidden"&&(y("scroll"),T(),D=M.boxSizing==="content-box"?Math.round(parseFloat(window.getComputedStyle(c,null).height)):c.offsetHeight):M.overflowY!=="hidden"&&(y("hidden"),T(),D=M.boxSizing==="content-box"?Math.round(parseFloat(window.getComputedStyle(c,null).height)):c.offsetHeight),P!==D){P=D;var p=u("autosize:resized");try{c.dispatchEvent(p)}catch{}}}var b=function(){c.clientWidth!==g&&j()},C=(function(I){window.removeEventListener("resize",b,!1),c.removeEventListener("input",j,!1),c.removeEventListener("keyup",j,!1),c.removeEventListener("autosize:destroy",C,!1),c.removeEventListener("autosize:update",j,!1),Object.keys(I).forEach(function(M){c.style[M]=I[M]}),s.delete(c)}).bind(c,{height:c.style.height,resize:c.style.resize,overflowY:c.style.overflowY,overflowX:c.style.overflowX,wordWrap:c.style.wordWrap});c.addEventListener("autosize:destroy",C,!1),"onpropertychange"in c&&"oninput"in c&&c.addEventListener("keyup",j,!1),window.addEventListener("resize",b,!1),c.addEventListener("input",j,!1),c.addEventListener("autosize:update",j,!1),c.style.overflowX="hidden",c.style.wordWrap="break-word",s.set(c,{destroy:C,update:j}),h()}function m(c){var v=s.get(c);v&&v.destroy()}function f(c){var v=s.get(c);v&&v.update()}var _=null;typeof window>"u"||typeof window.getComputedStyle!="function"?(_=function(c){return c},_.destroy=function(c){return c},_.update=function(c){return c}):(_=function(c,v){return c&&Array.prototype.forEach.call(c.length?c:[c],function(g){return d(g)}),c},_.destroy=function(c){return c&&Array.prototype.forEach.call(c.length?c:[c],m),c},_.update=function(c){return c&&Array.prototype.forEach.call(c.length?c:[c],f),c}),n.exports=_})},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0}),i.default=function(w){return new a.default({phrases:p[w]||p.en,locale:w})};var t=e(261),a=D(t),r=e(262),o=D(r),n=e(263),s=D(n),u=e(264),d=D(u),m=e(265),f=D(m),_=e(266),c=D(_),v=e(267),g=D(v),P=e(268),h=D(P),y=e(269),W=D(y),T=e(270),j=D(T),b=e(271),C=D(b),I=e(272),M=D(I);function D(w){return w&&w.__esModule?w:{default:w}}var p={zh:o.default,"zh-CN":o.default,"zh-TW":s.default,en:d.default,"es-ES":f.default,fr:c.default,ru:g.default,de:h.default,pl:W.default,ko:j.default,fa:C.default,ja:M.default}},function(l,i,e){var t,a;(function(r,o){t=[],a=(function(){return o(r)}).apply(i,t),a!==void 0&&(l.exports=a)})(this,function(r){function o(h){h=h||{},this.phrases={},this.extend(h.phrases||{}),this.currentLocale=h.locale||"en",this.allowMissing=!!h.allowMissing,this.warn=h.warn||g}o.VERSION="0.4.3",o.prototype.locale=function(h){return h&&(this.currentLocale=h),this.currentLocale},o.prototype.extend=function(h,y){var W;for(var T in h)h.hasOwnProperty(T)&&(W=h[T],y&&(T=y+"."+T),typeof W=="object"?this.extend(W,T):this.phrases[T]=W)},o.prototype.clear=function(){this.phrases={}},o.prototype.replace=function(h){this.clear(),this.extend(h)},o.prototype.t=function(h,y){var W,T;return y=y??{},typeof y=="number"&&(y={smart_count:y}),typeof this.phrases[h]=="string"?W=this.phrases[h]:typeof y._=="string"?W=y._:this.allowMissing?W=h:(this.warn('Missing translation for key: "'+h+'"'),T=h),typeof W=="string"&&(y=P(y),T=f(W,this.currentLocale,y.smart_count),T=v(T,y)),T},o.prototype.has=function(h){return h in this.phrases};var n="||||",s={chinese:function(h){return 0},german:function(h){return h!==1?1:0},french:function(h){return h>1?1:0},russian:function(h){return h%10===1&&h%100!==11?0:h%10>=2&&h%10<=4&&(h%100<10||h%100>=20)?1:2},czech:function(h){return h===1?0:h>=2&&h<=4?1:2},polish:function(h){return h===1?0:h%10>=2&&h%10<=4&&(h%100<10||h%100>=20)?1:2},icelandic:function(h){return h%10!==1||h%100===11?1:0}},u={chinese:["fa","id","ja","ko","lo","ms","th","tr","zh"],german:["da","de","en","es","fi","el","he","hu","it","nl","no","pt","sv"],french:["fr","tl","pt-br"],russian:["hr","ru"],czech:["cs"],polish:["pl"],icelandic:["is"]};function d(h){var y,W,T,j={};for(y in h)if(h.hasOwnProperty(y)){W=h[y];for(T in W)j[W[T]]=y}return j}function m(h){var y=/^\s+|\s+$/g;return h.replace(y,"")}function f(h,y,W){var T,j,b;return W!=null&&h?(j=h.split(n),b=j[c(y,W)]||j[0],T=m(b)):T=h,T}function _(h){var y=d(u);return y[h]||y.en}function c(h,y){return s[_(h)](y)}function v(h,y){for(var W in y)W!=="_"&&y.hasOwnProperty(W)&&(h=h.replace(new RegExp("%\\{"+W+"\\}","g"),y[W]));return h}function g(h){r.console&&r.console.warn&&r.console.warn("WARNING: "+h)}function P(h){var y={};for(var W in h)y[W]=h[W];return y}return o})},function(l,i){l.exports={init:"Gitalk 加载中 ...","no-found-related":"未找到相关的 %{link} 进行评论","please-contact":"请联系 %{user} 初始化创建","init-issue":"初始化 Issue","leave-a-comment":"说点什么",preview:"预览",edit:"编辑",comment:"评论","support-markdown":"支持 Markdown 语法","login-with-github":"使用 GitHub 登录","first-comment-person":"来做第一个留言的人吧!",commented:"发表于","load-more":"加载更多",counts:"%{counts} 条评论","sort-asc":"从旧到新排序","sort-desc":"从新到旧排序",logout:"注销",anonymous:"未登录用户"}},function(l,i){l.exports={init:"Gitalk 載入中…","no-found-related":"未找到相關的 %{link}","please-contact":"請聯絡 %{user} 初始化評論","init-issue":"初始化 Issue","leave-a-comment":"寫點什麼",preview:"預覽",edit:"編輯",comment:"評論","support-markdown":"支援 Markdown 語法","login-with-github":"使用 GitHub 登入","first-comment-person":"成為首個留言的人吧!",commented:"評論於","load-more":"載入更多",counts:"%{counts} 筆評論","sort-asc":"從舊至新排序","sort-desc":"從新至舊排序",logout:"登出",anonymous:"訪客"}},function(l,i){l.exports={init:"Gitalking ...","no-found-related":"Related %{link} not found","please-contact":"Please contact %{user} to initialize the comment","init-issue":"Init Issue","leave-a-comment":"Leave a comment",preview:"Preview",edit:"Edit",comment:"Comment","support-markdown":"Markdown is supported","login-with-github":"Login with GitHub","first-comment-person":"Be the first person to leave a comment!",commented:"commented","load-more":"Load more",counts:"%{counts} comment |||| %{counts} comments","sort-asc":"Sort by Oldest","sort-desc":"Sort by Latest",logout:"Logout",anonymous:"Anonymous"}},function(l,i){l.exports={init:"Gitalking ...","no-found-related":"Link %{link} no encontrado","please-contact":"Por favor contacta con %{user} para inicializar el comentario","init-issue":"Iniciar Issue","leave-a-comment":"Deja un comentario",preview:"Avance",edit:"Editar",comment:"Comentario","support-markdown":"Markdown es soportado","login-with-github":"Entrar con GitHub","first-comment-person":"Sé el primero en dejar un comentario!",commented:"comentó","load-more":"Cargar más",counts:"%{counts} comentario |||| %{counts} comentarios","sort-asc":"Ordenar por Antiguos","sort-desc":"Ordenar por Recientes",logout:"Salir",anonymous:"Anónimo"}},function(l,i){l.exports={init:"Gitalking ...","no-found-related":"Lien %{link} non trouvé","please-contact":"S’il vous plaît contactez %{user} pour initialiser les commentaires","init-issue":"Initialisation des issues","leave-a-comment":"Laisser un commentaire",preview:"Aperçu",edit:"Modifier",comment:"Commentaire","support-markdown":"Markdown est supporté","login-with-github":"Se connecter avec GitHub","first-comment-person":"Être le premier à laisser un commentaire !",commented:"commenter","load-more":"Charger plus",counts:"%{counts} commentaire |||| %{counts} commentaires","sort-asc":"Trier par plus ancien","sort-desc":"Trier par plus récent",logout:"Déconnexion",anonymous:"Anonyme"}},function(l,i){l.exports={init:"Gitalking ...","no-found-related":"Связанные %{link} не найдены","please-contact":"Пожалуйста, свяжитесь с %{user} чтобы инициализировать комментарий","init-issue":"Выпуск инициализации","leave-a-comment":"Оставить комментарий",preview:"Предварительный просмотр",edit:"Pедактировать",comment:"Комментарий","support-markdown":"Поддерживается Markdown","login-with-github":"Вход через GitHub","first-comment-person":"Будьте первым, кто оставил комментарий",commented:"прокомментированный","load-more":"Загрузить ещё",counts:"%{counts} комментарий |||| %{counts} комментариев","sort-asc":"Сортировать по старым","sort-desc":"Сортировать по последним",logout:"Выход",anonymous:"Анонимный"}},function(l,i){l.exports={init:"Gitalking ...","no-found-related":"Zugehöriger %{link} nicht gefunden","please-contact":"Bitte kontaktiere %{user} um den Kommentar zu initialisieren","init-issue":"Initialisiere Issue","leave-a-comment":"Hinterlasse einen Kommentar",preview:"Vorschau",edit:"Editieren",comment:"Kommentieren","support-markdown":"Markdown wird unterstützt","login-with-github":"Mit GitHub-Account anmelden","first-comment-person":"Sei die erste Person, welche einen Kommentar hinterlässt!",commented:"kommentierte","load-more":"Zeige mehr",counts:"%{counts} Kommentar |||| %{counts} Kommentare","sort-asc":"Älteste zuerst","sort-desc":"Neuste zuerst",logout:"Abmelden",anonymous:"Anonym"}},function(l,i){l.exports={init:"Gitalking ...","no-found-related":"Nie znaleziono powiązanego zgłoszenia: %{link}","please-contact":"Skontaktuj się z %{user}, aby umożliwić komentowanie","init-issue":"Utwórz zgłoszenie (GitHub Issue)","leave-a-comment":"Skomentuj",preview:"Podgląd",edit:"Edytuj",comment:"Wyślij","support-markdown":"Możesz użyć składni Markdown","login-with-github":"Zaloguj się poprzez GitHub","first-comment-person":"Skomentuj jako pierwszy!",commented:"skomentowany","load-more":"Załaduj więcej",counts:"%{counts} komentarz |||| %{counts} komentarze |||| %{counts} komentarzy","sort-asc":"Sortuj od najstarszych","sort-desc":"Sortuj od najnowszych",logout:"Wyloguj",anonymous:"Anonimowy"}},function(l,i){l.exports={init:"초기화 중 ...","no-found-related":"관련 링크를 찾을 수 없습니다: %{link} ","please-contact":"초기화를 위해 %{user} 에게 연락해 주세요","init-issue":"이슈 초기화","leave-a-comment":"댓글을 남겨보세요",preview:"미리보기",edit:"수정하기",comment:"댓글 달기","support-markdown":"마크다운(Markdown) 문법 지원","login-with-github":"GitHub로 로그인하기","first-comment-person":"첫 번째로 댓글을 남겨보세요!",commented:"님이 작성함","load-more":"더 보기",counts:"댓글 %{counts} 개","sort-asc":"오래된 댓글 먼저","sort-desc":"최신 댓글 먼저",logout:"로그아웃",anonymous:"익명"}},function(l,i){l.exports={init:"بارگزاری ...","no-found-related":"%{link} مرتبط پیدا نشد.","please-contact":"لطفاً با %{user} اطلاع دهید تا اضافه کند.","init-issue":"شروع نظرات","leave-a-comment":"نظرتان را بنویسید",preview:"پیش‌نمایش",edit:"ویرایش",comment:"ثبت","support-markdown":"پشتیبانی از مارک‌داون","login-with-github":"ورود با گیت‌هاب","first-comment-person":"اولین نظر را شما بنویسید!",commented:" - ","load-more":"نظرات بیشتر",counts:"%{counts} نظر |||| %{counts} نظر","sort-asc":"مرتب‌سازی از قدیمی‌ترین","sort-desc":"مرتب‌سازی از جدیدترین",logout:"خروج",anonymous:"بی‌نام"}},function(l,i){l.exports={init:"Gitalk を読み込んでいます...","no-found-related":"%{link} に関連するものが見当たりません","please-contact":"コメントを初期化するために %{user} に連絡してください","init-issue":"イシューを初期化する","leave-a-comment":"コメントを残す",preview:"プレビュー",edit:"編集する",comment:"コメント","support-markdown":"Markdown 記法をサポートしています","login-with-github":"GitHub にログインする","first-comment-person":"最初にコメントを残しましょう!",commented:"によるコメント","load-more":"もっと見る",counts:"%{counts} つのコメント","sort-asc":"投稿順に並び替え","sort-desc":"最新順で並び替え",logout:"ログアウト",anonymous:"匿名"}},function(l,i){},function(l,i,e){l.exports={default:e(275),__esModule:!0}},function(l,i,e){e(276),l.exports=e(7).Object.keys},function(l,i,e){var t=e(33),a=e(42);e(115)("keys",function(){return function(o){return a(t(o))}})},function(l,i,e){i.__esModule=!0;var t=e(278),a=n(t),r=e(281),o=n(r);function n(s){return s&&s.__esModule?s:{default:s}}i.default=function(){function s(u,d){var m=[],f=!0,_=!1,c=void 0;try{for(var v=(0,o.default)(u),g;!(f=(g=v.next()).done)&&(m.push(g.value),!(d&&m.length===d));f=!0);}catch(P){_=!0,c=P}finally{try{!f&&v.return&&v.return()}finally{if(_)throw c}}return m}return function(u,d){if(Array.isArray(u))return u;if((0,a.default)(Object(u)))return s(u,d);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(l,i,e){l.exports={default:e(279),__esModule:!0}},function(l,i,e){e(54),e(40),l.exports=e(280)},function(l,i,e){var t=e(76),a=e(9)("iterator"),r=e(31);l.exports=e(7).isIterable=function(o){var n=Object(o);return n[a]!==void 0||"@@iterator"in n||r.hasOwnProperty(t(n))}},function(l,i,e){l.exports={default:e(282),__esModule:!0}},function(l,i,e){e(54),e(40),l.exports=e(283)},function(l,i,e){var t=e(14),a=e(77);l.exports=e(7).getIterator=function(r){var o=a(r);if(typeof o!="function")throw TypeError(r+" is not iterable!");return t(o.call(r))}},function(l,i,e){l.exports=e(285)},function(l,i,e){var t=e(10),a=e(122),r=e(286),o=e(128),n=e(125);function s(d){var m=new r(d),f=a(r.prototype.request,m);return t.extend(f,r.prototype,m),t.extend(f,m),f}var u=s(n);u.Axios=r,u.create=function(m){return s(o(u.defaults,m))},u.Cancel=e(129),u.CancelToken=e(299),u.isCancel=e(124),u.all=function(m){return Promise.all(m)},u.spread=e(300),l.exports=u,l.exports.default=u},function(l,i,e){var t=e(10),a=e(123),r=e(287),o=e(288),n=e(128);function s(u){this.defaults=u,this.interceptors={request:new r,response:new r}}s.prototype.request=function(d){typeof d=="string"?(d=arguments[1]||{},d.url=arguments[0]):d=d||{},d=n(this.defaults,d),d.method?d.method=d.method.toLowerCase():this.defaults.method?d.method=this.defaults.method.toLowerCase():d.method="get";var m=[o,void 0],f=Promise.resolve(d);for(this.interceptors.request.forEach(function(c){m.unshift(c.fulfilled,c.rejected)}),this.interceptors.response.forEach(function(c){m.push(c.fulfilled,c.rejected)});m.length;)f=f.then(m.shift(),m.shift());return f},s.prototype.getUri=function(d){return d=n(this.defaults,d),a(d.url,d.params,d.paramsSerializer).replace(/^\?/,"")},t.forEach(["delete","get","head","options"],function(d){s.prototype[d]=function(m,f){return this.request(t.merge(f||{},{method:d,url:m}))}}),t.forEach(["post","put","patch"],function(d){s.prototype[d]=function(m,f,_){return this.request(t.merge(_||{},{method:d,url:m,data:f}))}}),l.exports=s},function(l,i,e){var t=e(10);function a(){this.handlers=[]}a.prototype.use=function(o,n){return this.handlers.push({fulfilled:o,rejected:n}),this.handlers.length-1},a.prototype.eject=function(o){this.handlers[o]&&(this.handlers[o]=null)},a.prototype.forEach=function(o){t.forEach(this.handlers,function(s){s!==null&&o(s)})},l.exports=a},function(l,i,e){var t=e(10),a=e(289),r=e(124),o=e(125);function n(s){s.cancelToken&&s.cancelToken.throwIfRequested()}l.exports=function(u){n(u),u.headers=u.headers||{},u.data=a(u.data,u.headers,u.transformRequest),u.headers=t.merge(u.headers.common||{},u.headers[u.method]||{},u.headers),t.forEach(["delete","get","head","post","put","patch","common"],function(f){delete u.headers[f]});var d=u.adapter||o.adapter;return d(u).then(function(f){return n(u),f.data=a(f.data,f.headers,u.transformResponse),f},function(f){return r(f)||(n(u),f&&f.response&&(f.response.data=a(f.response.data,f.response.headers,u.transformResponse))),Promise.reject(f)})}},function(l,i,e){var t=e(10);l.exports=function(r,o,n){return t.forEach(n,function(u){r=u(r,o)}),r}},function(l,i,e){var t=e(10);l.exports=function(r,o){t.forEach(r,function(s,u){u!==o&&u.toUpperCase()===o.toUpperCase()&&(r[o]=s,delete r[u])})}},function(l,i,e){var t=e(127);l.exports=function(r,o,n){var s=n.config.validateStatus;!s||s(n.status)?r(n):o(t("Request failed with status code "+n.status,n.config,null,n.request,n))}},function(l,i,e){l.exports=function(a,r,o,n,s){return a.config=r,o&&(a.code=o),a.request=n,a.response=s,a.isAxiosError=!0,a.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},a}},function(l,i,e){var t=e(294),a=e(295);l.exports=function(o,n){return o&&!t(n)?a(o,n):n}},function(l,i,e){l.exports=function(a){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(a)}},function(l,i,e){l.exports=function(a,r){return r?a.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):a}},function(l,i,e){var t=e(10),a=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];l.exports=function(o){var n={},s,u,d;return o&&t.forEach(o.split(` +`),function(f){if(d=f.indexOf(":"),s=t.trim(f.substr(0,d)).toLowerCase(),u=t.trim(f.substr(d+1)),s){if(n[s]&&a.indexOf(s)>=0)return;s==="set-cookie"?n[s]=(n[s]?n[s]:[]).concat([u]):n[s]=n[s]?n[s]+", "+u:u}}),n}},function(l,i,e){var t=e(10);l.exports=t.isStandardBrowserEnv()?function(){var r=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a"),n;function s(u){var d=u;return r&&(o.setAttribute("href",d),d=o.href),o.setAttribute("href",d),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:o.pathname.charAt(0)==="/"?o.pathname:"/"+o.pathname}}return n=s(window.location.href),function(d){var m=t.isString(d)?s(d):d;return m.protocol===n.protocol&&m.host===n.host}}():function(){return function(){return!0}}()},function(l,i,e){var t=e(10);l.exports=t.isStandardBrowserEnv()?function(){return{write:function(o,n,s,u,d,m){var f=[];f.push(o+"="+encodeURIComponent(n)),t.isNumber(s)&&f.push("expires="+new Date(s).toGMTString()),t.isString(u)&&f.push("path="+u),t.isString(d)&&f.push("domain="+d),m===!0&&f.push("secure"),document.cookie=f.join("; ")},read:function(o){var n=document.cookie.match(new RegExp("(^|;\\s*)("+o+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(o){this.write(o,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(l,i,e){var t=e(129);function a(r){if(typeof r!="function")throw new TypeError("executor must be a function.");var o;this.promise=new Promise(function(u){o=u});var n=this;r(function(u){n.reason||(n.reason=new t(u),o(n.reason))})}a.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},a.source=function(){var o,n=new a(function(u){o=u});return{token:n,cancel:o}},l.exports=a},function(l,i,e){l.exports=function(a){return function(o){return a.apply(null,o)}}},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(12),a=r(t);function r(o){return o&&o.__esModule?o:{default:o}}i.default=function(o){var n=o.className,s=o.getRef,u=o.onClick,d=o.onMouseDown,m=o.text,f=o.isLoading;return a.default.createElement("button",{ref:function(c){return s&&s(c)},className:"gt-btn "+n,onClick:u,onMouseDown:d},a.default.createElement("span",{className:"gt-btn-text"},m),f&&a.default.createElement("span",{className:"gt-btn-loading gt-spinner"}))}},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(12),a=r(t);function r(o){return o&&o.__esModule?o:{default:o}}i.default=function(o){var n=o.className,s=o.onClick,u=o.text;return a.default.createElement("a",{className:"gt-action "+n,onClick:s},a.default.createElement("span",{className:"gt-action-text"},u))}},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(114),a=T(t),r=e(64),o=T(r),n=e(65),s=T(n),u=e(116),d=T(u),m=e(120),f=T(m),_=e(12),c=T(_),v=e(130),g=T(v),P=e(131),h=T(P),y=e(312),W=e(441);e(857);function T(b){return b&&b.__esModule?b:{default:b}}typeof window<"u"&&(window.GT_i18n_LocaleMap={zh:W.zhCN,"zh-CN":W.zhCN,"zh-TW":W.zhTW,"es-ES":W.es,fr:W.fr,ru:W.ru,pl:W.pl,ko:W.ko,de:W.de});var j=function(b){(0,f.default)(C,b);function C(){return(0,o.default)(this,C),(0,d.default)(this,(C.__proto__||(0,a.default)(C)).apply(this,arguments))}return(0,s.default)(C,[{key:"shouldComponentUpdate",value:function(M){var D=M.comment;return D!==this.props.comment}},{key:"componentDidMount",value:function(){var M=this.node,D=M.querySelector(".email-hidden-toggle>a");D&&D.addEventListener("click",function(p){p.preventDefault(),M.querySelector(".email-hidden-reply").classList.toggle("expanded")},!0)}},{key:"render",value:function(){var M=this,D=this.props,p=D.comment,w=D.user,L=D.language,z=D.commentedText,ne=z===void 0?"":z,te=D.admin,de=te===void 0?[]:te,ue=D.replyCallback,oe=D.likeCallback,ie=w&&p.user.login===w.login,le=~[].concat(de).map(function(X){return X.toLowerCase()}).indexOf(p.user.login.toLowerCase()),F=p.reactions,S="";return F&&F.totalCount&&(S=F.totalCount,F.totalCount===100&&F.pageInfo&&F.pageInfo.hasNextPage&&(S="100+")),c.default.createElement("div",{ref:function(J){M.node=J},className:"gt-comment "+(le?"gt-comment-admin":"")},c.default.createElement(g.default,{className:"gt-comment-avatar",src:p.user&&p.user.avatar_url,alt:p.user&&p.user.login}),c.default.createElement("div",{className:"gt-comment-content"},c.default.createElement("div",{className:"gt-comment-header"},c.default.createElement("div",{className:"gt-comment-block-"+(w?"2":"1")}),c.default.createElement("a",{className:"gt-comment-username",href:p.user&&p.user.html_url},p.user&&p.user.login),c.default.createElement("span",{className:"gt-comment-text"},ne),c.default.createElement("span",{className:"gt-comment-date"},(0,y.formatDistanceToNow)((0,y.parseISO)(p.created_at),{addSuffix:!0,locale:window.GT_i18n_LocaleMap[L]})),F&&c.default.createElement("a",{className:"gt-comment-like",title:"Like",onClick:oe},F.viewerHasReacted?c.default.createElement(h.default,{className:"gt-ico-heart",name:"heart_on",text:S}):c.default.createElement(h.default,{className:"gt-ico-heart",name:"heart",text:S})),ie?c.default.createElement("a",{href:p.html_url,className:"gt-comment-edit",title:"Edit",target:"_blank",rel:"noopener noreferrer"},c.default.createElement(h.default,{className:"gt-ico-edit",name:"edit"})):c.default.createElement("a",{className:"gt-comment-reply",title:"Reply",onClick:ue},c.default.createElement(h.default,{className:"gt-ico-reply",name:"reply"}))),c.default.createElement("div",{className:"gt-comment-body markdown-body",dangerouslySetInnerHTML:{__html:p.body_html}})))}}]),C}(_.Component);i.default=j},function(l,i,e){var t={"./arrow_down.svg":305,"./edit.svg":306,"./github.svg":307,"./heart.svg":308,"./heart_on.svg":309,"./reply.svg":310,"./tip.svg":311};function a(o){return e(r(o))}function r(o){var n=t[o];if(!(n+1))throw new Error("Cannot find module '"+o+"'.");return n}a.keys=function(){return Object.keys(t)},a.resolve=r,l.exports=a,a.id=304},function(l,i){l.exports=''},function(l,i){l.exports=` + + +`},function(l,i){l.exports=` + + +`},function(l,i){l.exports=` + + +`},function(l,i){l.exports=` + + +`},function(l,i){l.exports=` + + +`},function(l,i){l.exports=` + + + + +`},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(313);e.d(i,"add",function(){return t.a});var a=e(132);e.d(i,"addBusinessDays",function(){return a.a});var r=e(21);e.d(i,"addDays",function(){return r.a});var o=e(84);e.d(i,"addHours",function(){return o.a});var n=e(134);e.d(i,"addISOWeekYears",function(){return n.a});var s=e(45);e.d(i,"addMilliseconds",function(){return s.a});var u=e(136);e.d(i,"addMinutes",function(){return u.a});var d=e(44);e.d(i,"addMonths",function(){return d.a});var m=e(85);e.d(i,"addQuarters",function(){return m.a});var f=e(137);e.d(i,"addSeconds",function(){return f.a});var _=e(58);e.d(i,"addWeeks",function(){return _.a});var c=e(138);e.d(i,"addYears",function(){return c.a});var v=e(314);e.d(i,"areIntervalsOverlapping",function(){return v.a});var g=e(315);e.d(i,"closestIndexTo",function(){return g.a});var P=e(316);e.d(i,"closestTo",function(){return P.a});var h=e(27);e.d(i,"compareAsc",function(){return h.a});var y=e(317);e.d(i,"compareDesc",function(){return y.a});var W=e(318);e.d(i,"differenceInBusinessDays",function(){return W.a});var T=e(26);e.d(i,"differenceInCalendarDays",function(){return T.a});var j=e(139);e.d(i,"differenceInCalendarISOWeekYears",function(){return j.a});var b=e(319);e.d(i,"differenceInCalendarISOWeeks",function(){return b.a});var C=e(140);e.d(i,"differenceInCalendarMonths",function(){return C.a});var I=e(320);e.d(i,"differenceInCalendarQuarters",function(){return I.a});var M=e(142);e.d(i,"differenceInCalendarWeeks",function(){return M.a});var D=e(143);e.d(i,"differenceInCalendarYears",function(){return D.a});var p=e(86);e.d(i,"differenceInDays",function(){return p.a});var w=e(144);e.d(i,"differenceInHours",function(){return w.a});var L=e(321);e.d(i,"differenceInISOWeekYears",function(){return L.a});var z=e(59);e.d(i,"differenceInMilliseconds",function(){return z.a});var ne=e(146);e.d(i,"differenceInMinutes",function(){return ne.a});var te=e(60);e.d(i,"differenceInMonths",function(){return te.a});var de=e(322);e.d(i,"differenceInQuarters",function(){return de.a});var ue=e(61);e.d(i,"differenceInSeconds",function(){return ue.a});var oe=e(323);e.d(i,"differenceInWeeks",function(){return oe.a});var ie=e(147);e.d(i,"differenceInYears",function(){return ie.a});var le=e(148);e.d(i,"eachDayOfInterval",function(){return le.a});var F=e(324);e.d(i,"eachHourOfInterval",function(){return F.a});var S=e(325);e.d(i,"eachMonthOfInterval",function(){return S.a});var X=e(326);e.d(i,"eachQuarterOfInterval",function(){return X.a});var J=e(327);e.d(i,"eachWeekOfInterval",function(){return J.a});var V=e(88);e.d(i,"eachWeekendOfInterval",function(){return V.a});var E=e(328);e.d(i,"eachWeekendOfMonth",function(){return E.a});var O=e(329);e.d(i,"eachWeekendOfYear",function(){return O.a});var B=e(330);e.d(i,"eachYearOfInterval",function(){return B.a});var A=e(91);e.d(i,"endOfDay",function(){return A.a});var k=e(331);e.d(i,"endOfDecade",function(){return k.a});var U=e(332);e.d(i,"endOfHour",function(){return U.a});var G=e(333);e.d(i,"endOfISOWeek",function(){return G.a});var ee=e(334);e.d(i,"endOfISOWeekYear",function(){return ee.a});var q=e(335);e.d(i,"endOfMinute",function(){return q.a});var re=e(89);e.d(i,"endOfMonth",function(){return re.a});var ce=e(336);e.d(i,"endOfQuarter",function(){return ce.a});var he=e(337);e.d(i,"endOfSecond",function(){return he.a});var fe=e(338);e.d(i,"endOfToday",function(){return fe.a});var ge=e(339);e.d(i,"endOfTomorrow",function(){return ge.a});var Ee=e(150);e.d(i,"endOfWeek",function(){return Ee.a});var x=e(149);e.d(i,"endOfYear",function(){return x.a});var N=e(340);e.d(i,"endOfYesterday",function(){return N.a});var Y=e(151);e.d(i,"format",function(){return Y.a});var $=e(158);e.d(i,"formatDistance",function(){return $.a});var Q=e(161);e.d(i,"formatDistanceStrict",function(){return Q.a});var ae=e(346);e.d(i,"formatDistanceToNow",function(){return ae.a});var me=e(347);e.d(i,"formatDistanceToNowStrict",function(){return me.a});var ve=e(348);e.d(i,"formatDuration",function(){return ve.a});var pe=e(349);e.d(i,"formatISO",function(){return pe.a});var K=e(350);e.d(i,"formatISO9075",function(){return K.a});var Z=e(351);e.d(i,"formatISODuration",function(){return Z.a});var se=e(352);e.d(i,"formatRFC3339",function(){return se.a});var _e=e(353);e.d(i,"formatRFC7231",function(){return _e.a});var Pe=e(354);e.d(i,"formatRelative",function(){return Pe.a});var Me=e(355);e.d(i,"fromUnixTime",function(){return Me.a});var De=e(162);e.d(i,"getDate",function(){return De.a});var We=e(163);e.d(i,"getDay",function(){return We.a});var we=e(356);e.d(i,"getDayOfYear",function(){return we.a});var Ue=e(164);e.d(i,"getDaysInMonth",function(){return Ue.a});var mt=e(357);e.d(i,"getDaysInYear",function(){return mt.a});var ft=e(358);e.d(i,"getDecade",function(){return ft.a});var ct=e(359);e.d(i,"getHours",function(){return ct.a});var _t=e(166);e.d(i,"getISODay",function(){return _t.a});var ht=e(167);e.d(i,"getISOWeek",function(){return ht.a});var vt=e(34);e.d(i,"getISOWeekYear",function(){return vt.a});var gt=e(360);e.d(i,"getISOWeeksInYear",function(){return gt.a});var Pt=e(361);e.d(i,"getMilliseconds",function(){return Pt.a});var Mt=e(362);e.d(i,"getMinutes",function(){return Mt.a});var Et=e(363);e.d(i,"getMonth",function(){return Et.a});var pt=e(364);e.d(i,"getOverlappingDaysInIntervals",function(){return pt.a});var Dt=e(141);e.d(i,"getQuarter",function(){return Dt.a});var yt=e(365);e.d(i,"getSeconds",function(){return yt.a});var Ot=e(168);e.d(i,"getTime",function(){return Ot.a});var bt=e(366);e.d(i,"getUnixTime",function(){return bt.a});var Wt=e(169);e.d(i,"getWeek",function(){return Wt.a});var Tt=e(367);e.d(i,"getWeekOfMonth",function(){return Tt.a});var wt=e(170);e.d(i,"getWeekYear",function(){return wt.a});var Ct=e(368);e.d(i,"getWeeksInMonth",function(){return Ct.a});var xt=e(369);e.d(i,"getYear",function(){return xt.a});var jt=e(370);e.d(i,"intervalToDuration",function(){return jt.a});var It=e(371);e.d(i,"isAfter",function(){return It.a});var At=e(372);e.d(i,"isBefore",function(){return At.a});var Lt=e(373);e.d(i,"isDate",function(){return Lt.a});var Rt=e(374);e.d(i,"isEqual",function(){return Rt.a});var Ut=e(375);e.d(i,"isExists",function(){return Ut.a});var Bt=e(376);e.d(i,"isFirstDayOfMonth",function(){return Bt.a});var Kt=e(377);e.d(i,"isFriday",function(){return Kt.a});var St=e(378);e.d(i,"isFuture",function(){return St.a});var Nt=e(379);e.d(i,"isLastDayOfMonth",function(){return Nt.a});var zt=e(165);e.d(i,"isLeapYear",function(){return zt.a});var Ft=e(380);e.d(i,"isMatch",function(){return Ft.a});var kt=e(386);e.d(i,"isMonday",function(){return kt.a});var Ht=e(387);e.d(i,"isPast",function(){return Ht.a});var Yt=e(47);e.d(i,"isSameDay",function(){return Yt.a});var Vt=e(175);e.d(i,"isSameHour",function(){return Vt.a});var Xt=e(177);e.d(i,"isSameISOWeek",function(){return Xt.a});var Gt=e(388);e.d(i,"isSameISOWeekYear",function(){return Gt.a});var Qt=e(178);e.d(i,"isSameMinute",function(){return Qt.a});var $t=e(180);e.d(i,"isSameMonth",function(){return $t.a});var Jt=e(181);e.d(i,"isSameQuarter",function(){return Jt.a});var Zt=e(182);e.d(i,"isSameSecond",function(){return Zt.a});var qt=e(95);e.d(i,"isSameWeek",function(){return qt.a});var ea=e(184);e.d(i,"isSameYear",function(){return ea.a});var ta=e(133);e.d(i,"isSaturday",function(){return ta.a});var aa=e(83);e.d(i,"isSunday",function(){return aa.a});var na=e(389);e.d(i,"isThisHour",function(){return na.a});var ra=e(390);e.d(i,"isThisISOWeek",function(){return ra.a});var ia=e(391);e.d(i,"isThisMinute",function(){return ia.a});var oa=e(392);e.d(i,"isThisMonth",function(){return oa.a});var sa=e(393);e.d(i,"isThisQuarter",function(){return sa.a});var ua=e(394);e.d(i,"isThisSecond",function(){return ua.a});var da=e(395);e.d(i,"isThisWeek",function(){return da.a});var la=e(396);e.d(i,"isThisYear",function(){return la.a});var ma=e(397);e.d(i,"isThursday",function(){return ma.a});var fa=e(398);e.d(i,"isToday",function(){return fa.a});var ca=e(399);e.d(i,"isTomorrow",function(){return ca.a});var _a=e(400);e.d(i,"isTuesday",function(){return _a.a});var ha=e(15);e.d(i,"isValid",function(){return ha.a});var va=e(401);e.d(i,"isWednesday",function(){return va.a});var ga=e(56);e.d(i,"isWeekend",function(){return ga.a});var Pa=e(402);e.d(i,"isWithinInterval",function(){return Pa.a});var Ma=e(403);e.d(i,"isYesterday",function(){return Ma.a});var Ea=e(404);e.d(i,"lastDayOfDecade",function(){return Ea.a});var pa=e(405);e.d(i,"lastDayOfISOWeek",function(){return pa.a});var Da=e(406);e.d(i,"lastDayOfISOWeekYear",function(){return Da.a});var ya=e(171);e.d(i,"lastDayOfMonth",function(){return ya.a});var Oa=e(407);e.d(i,"lastDayOfQuarter",function(){return Oa.a});var ba=e(185);e.d(i,"lastDayOfWeek",function(){return ba.a});var Wa=e(408);e.d(i,"lastDayOfYear",function(){return Wa.a});var Ta=e(409);e.d(i,"lightFormat",function(){return Ta.a});var wa=e(410);e.d(i,"max",function(){return wa.a});var Ca=e(411);e.d(i,"min",function(){return Ca.a});var xa=e(174);e.d(i,"parse",function(){return xa.a});var ja=e(412);e.d(i,"parseISO",function(){return ja.a});var Ia=e(413);e.d(i,"parseJSON",function(){return Ia.a});var Aa=e(414);e.d(i,"roundToNearestMinutes",function(){return Aa.a});var La=e(415);e.d(i,"set",function(){return La.a});var Ra=e(416);e.d(i,"setDate",function(){return Ra.a});var Ua=e(417);e.d(i,"setDay",function(){return Ua.a});var Ba=e(418);e.d(i,"setDayOfYear",function(){return Ba.a});var Ka=e(419);e.d(i,"setHours",function(){return Ka.a});var Sa=e(420);e.d(i,"setISODay",function(){return Sa.a});var Na=e(421);e.d(i,"setISOWeek",function(){return Na.a});var za=e(135);e.d(i,"setISOWeekYear",function(){return za.a});var Fa=e(422);e.d(i,"setMilliseconds",function(){return Fa.a});var ka=e(423);e.d(i,"setMinutes",function(){return ka.a});var Ha=e(96);e.d(i,"setMonth",function(){return Ha.a});var Ya=e(424);e.d(i,"setQuarter",function(){return Ya.a});var Va=e(425);e.d(i,"setSeconds",function(){return Va.a});var Xa=e(426);e.d(i,"setWeek",function(){return Xa.a});var Ga=e(427);e.d(i,"setWeekYear",function(){return Ga.a});var Qa=e(428);e.d(i,"setYear",function(){return Qa.a});var $a=e(57);e.d(i,"startOfDay",function(){return $a.a});var Ja=e(429);e.d(i,"startOfDecade",function(){return Ja.a});var Za=e(176);e.d(i,"startOfHour",function(){return Za.a});var qa=e(25);e.d(i,"startOfISOWeek",function(){return qa.a});var en=e(46);e.d(i,"startOfISOWeekYear",function(){return en.a});var tn=e(179);e.d(i,"startOfMinute",function(){return tn.a});var an=e(62);e.d(i,"startOfMonth",function(){return an.a});var nn=e(87);e.d(i,"startOfQuarter",function(){return nn.a});var rn=e(183);e.d(i,"startOfSecond",function(){return rn.a});var on=e(430);e.d(i,"startOfToday",function(){return on.a});var sn=e(431);e.d(i,"startOfTomorrow",function(){return sn.a});var un=e(22);e.d(i,"startOfWeek",function(){return un.a});var dn=e(93);e.d(i,"startOfWeekYear",function(){return dn.a});var ln=e(90);e.d(i,"startOfYear",function(){return ln.a});var mn=e(432);e.d(i,"startOfYesterday",function(){return mn.a});var fn=e(172);e.d(i,"sub",function(){return fn.a});var cn=e(433);e.d(i,"subBusinessDays",function(){return cn.a});var _n=e(94);e.d(i,"subDays",function(){return _n.a});var hn=e(434);e.d(i,"subHours",function(){return hn.a});var vn=e(145);e.d(i,"subISOWeekYears",function(){return vn.a});var gn=e(49);e.d(i,"subMilliseconds",function(){return gn.a});var Pn=e(435);e.d(i,"subMinutes",function(){return Pn.a});var Mn=e(173);e.d(i,"subMonths",function(){return Mn.a});var En=e(436);e.d(i,"subQuarters",function(){return En.a});var pn=e(437);e.d(i,"subSeconds",function(){return pn.a});var Dn=e(438);e.d(i,"subWeeks",function(){return Dn.a});var yn=e(439);e.d(i,"subYears",function(){return yn.a});var On=e(1);e.d(i,"toDate",function(){return On.a});var $e=e(440);e.d(i,"maxTime",function(){return $e.a}),e.d(i,"minTime",function(){return $e.b})},function(l,i,e){i.a=s;var t=e(21),a=e(44),r=e(1),o=e(0),n=e(6);function s(u,d){if(o.a(2,arguments),!d||typeof d!="object")return new Date(NaN);var m="years"in d?n.a(d.years):0,f="months"in d?n.a(d.months):0,_="weeks"in d?n.a(d.weeks):0,c="days"in d?n.a(d.days):0,v="hours"in d?n.a(d.hours):0,g="minutes"in d?n.a(d.minutes):0,P="seconds"in d?n.a(d.seconds):0,h=r.a(u),y=f||m?a.a(h,f+m*12):h,W=c||_?t.a(y,c+_*7):y,T=g+v*60,j=P+T*60,b=j*1e3,C=new Date(W.getTime()+b);return C}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o,n){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};a.a(2,arguments);var u=o||{},d=n||{},m=t.a(u.start).getTime(),f=t.a(u.end).getTime(),_=t.a(d.start).getTime(),c=t.a(d.end).getTime();if(!(m<=f&&_<=c))throw new RangeError("Invalid interval");return s.inclusive?m<=c&&_<=f:m0?-1:d<0?1:d}},function(l,i,e){i.a=m;var t=e(15),a=e(56),r=e(1),o=e(26),n=e(21),s=e(47),u=e(6),d=e(0);function m(f,_){d.a(2,arguments);var c=r.a(f),v=r.a(_);if(!t.a(c)||!t.a(v))return new Date(NaN);var g=o.a(c,v),P=g<0?-1:1,h=u.a(g/7),y=h*5;for(v=n.a(v,h*7);!s.a(c,v);)y+=a.a(v)?0:P,v=n.a(v,P);return y===0?0:y}},function(l,i,e){i.a=n;var t=e(19),a=e(25),r=e(0),o=6048e5;function n(s,u){r.a(2,arguments);var d=a.a(s),m=a.a(u),f=d.getTime()-t.a(d),_=m.getTime()-t.a(m);return Math.round((f-_)/o)}},function(l,i,e){i.a=o;var t=e(141),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=a.a(s),m=u.getFullYear()-d.getFullYear(),f=t.a(u)-t.a(d);return m*4+f}},function(l,i,e){i.a=s;var t=e(1),a=e(139),r=e(27),o=e(145),n=e(0);function s(u,d){n.a(2,arguments);var m=t.a(u),f=t.a(d),_=r.a(m,f),c=Math.abs(a.a(m,f));m=o.a(m,_*c);var v=r.a(m,f)===-_,g=_*(c-v);return g===0?0:g}},function(l,i,e){i.a=r;var t=e(60),a=e(0);function r(o,n){a.a(2,arguments);var s=t.a(o,n)/3;return s>0?Math.floor(s):Math.ceil(s)}},function(l,i,e){i.a=r;var t=e(86),a=e(0);function r(o,n){a.a(2,arguments);var s=t.a(o,n)/7;return s>0?Math.floor(s):Math.ceil(s)}},function(l,i,e){i.a=o;var t=e(84),a=e(1),r=e(0);function o(n,s){r.a(1,arguments);var u=n||{},d=a.a(u.start),m=a.a(u.end),f=d.getTime(),_=m.getTime();if(!(f<=_))throw new RangeError("Invalid interval");var c=[],v=d;v.setMinutes(0,0,0);var g=s&&"step"in s?Number(s.step):1;if(g<1||isNaN(g))throw new RangeError("`options.step` must be a number greater than 1");for(;v.getTime()<=_;)c.push(a.a(v)),v=t.a(v,g);return c}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=o||{},s=t.a(n.start),u=t.a(n.end),d=u.getTime();if(!(s.getTime()<=d))throw new RangeError("Invalid interval");var m=[],f=s;for(f.setHours(0,0,0,0),f.setDate(1);f.getTime()<=d;)m.push(t.a(f)),f.setMonth(f.getMonth()+1);return m}},function(l,i,e){i.a=n;var t=e(85),a=e(87),r=e(1),o=e(0);function n(s){o.a(1,arguments);var u=s||{},d=r.a(u.start),m=r.a(u.end),f=m.getTime();if(!(d.getTime()<=f))throw new RangeError("Invalid interval");var _=a.a(d),c=a.a(m);f=c.getTime();for(var v=[],g=_;g.getTime()<=f;)v.push(r.a(g)),g=t.a(g,1);return v}},function(l,i,e){i.a=n;var t=e(58),a=e(22),r=e(1),o=e(0);function n(s,u){o.a(1,arguments);var d=s||{},m=r.a(d.start),f=r.a(d.end),_=f.getTime();if(!(m.getTime()<=_))throw new RangeError("Invalid interval");var c=a.a(m,u),v=a.a(f,u);c.setHours(15),v.setHours(15),_=v.getTime();for(var g=[],P=c;P.getTime()<=_;)P.setHours(0),g.push(r.a(P)),P=t.a(P,1),P.setHours(15);return g}},function(l,i,e){i.a=n;var t=e(88),a=e(62),r=e(89),o=e(0);function n(s){o.a(1,arguments);var u=a.a(s);if(isNaN(u))throw new RangeError("The passed date is invalid");var d=r.a(s);return t.a({start:u,end:d})}},function(l,i,e){i.a=n;var t=e(88),a=e(90),r=e(149),o=e(0);function n(s){o.a(1,arguments);var u=a.a(s);if(isNaN(u))throw new RangeError("The passed date is invalid");var d=r.a(s);return t.a({start:u,end:d})}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=o||{},s=t.a(n.start),u=t.a(n.end),d=u.getTime();if(!(s.getTime()<=d))throw new RangeError("Invalid interval");var m=[],f=s;for(f.setHours(0,0,0,0),f.setMonth(0,1);f.getTime()<=d;)m.push(t.a(f)),f.setFullYear(f.getFullYear()+1);return m}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getFullYear(),u=9+Math.floor(s/10)*10;return n.setFullYear(u,11,31),n.setHours(23,59,59,999),n}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o);return n.setMinutes(59,59,999),n}},function(l,i,e){i.a=r;var t=e(150),a=e(0);function r(o){return a.a(1,arguments),t.a(o,{weekStartsOn:1})}},function(l,i,e){i.a=o;var t=e(34),a=e(25),r=e(0);function o(n){r.a(1,arguments);var s=t.a(n),u=new Date(0);u.setFullYear(s+1,0,4),u.setHours(0,0,0,0);var d=a.a(u);return d.setMilliseconds(d.getMilliseconds()-1),d}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o);return n.setSeconds(59,999),n}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getMonth(),u=s-s%3+3;return n.setMonth(u,0),n.setHours(23,59,59,999),n}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o);return n.setMilliseconds(999),n}},function(l,i,e){i.a=a;var t=e(91);function a(){return t.a(Date.now())}},function(l,i,e){i.a=t;function t(){var a=new Date,r=a.getFullYear(),o=a.getMonth(),n=a.getDate(),s=new Date(0);return s.setFullYear(r,o,n+1),s.setHours(23,59,59,999),s}},function(l,i,e){i.a=t;function t(){var a=new Date,r=a.getFullYear(),o=a.getMonth(),n=a.getDate(),s=new Date(0);return s.setFullYear(r,o,n-1),s.setHours(23,59,59,999),s}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){var t=e(152),a=e(343),r=e(153),o=e(154),n=e(155),s=e(92),u=e(38),d={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},m={G:function(v,g,P){var h=v.getUTCFullYear()>0?1:0;switch(g){case"G":case"GG":case"GGG":return P.era(h,{width:"abbreviated"});case"GGGGG":return P.era(h,{width:"narrow"});case"GGGG":default:return P.era(h,{width:"wide"})}},y:function(v,g,P){if(g==="yo"){var h=v.getUTCFullYear(),y=h>0?h:1-h;return P.ordinalNumber(y,{unit:"year"})}return t.a.y(v,g)},Y:function(v,g,P,h){var y=s.a(v,h),W=y>0?y:1-y;if(g==="YY"){var T=W%100;return u.a(T,2)}return g==="Yo"?P.ordinalNumber(W,{unit:"year"}):u.a(W,g.length)},R:function(v,g){var P=o.a(v);return u.a(P,g.length)},u:function(v,g){var P=v.getUTCFullYear();return u.a(P,g.length)},Q:function(v,g,P){var h=Math.ceil((v.getUTCMonth()+1)/3);switch(g){case"Q":return String(h);case"QQ":return u.a(h,2);case"Qo":return P.ordinalNumber(h,{unit:"quarter"});case"QQQ":return P.quarter(h,{width:"abbreviated",context:"formatting"});case"QQQQQ":return P.quarter(h,{width:"narrow",context:"formatting"});case"QQQQ":default:return P.quarter(h,{width:"wide",context:"formatting"})}},q:function(v,g,P){var h=Math.ceil((v.getUTCMonth()+1)/3);switch(g){case"q":return String(h);case"qq":return u.a(h,2);case"qo":return P.ordinalNumber(h,{unit:"quarter"});case"qqq":return P.quarter(h,{width:"abbreviated",context:"standalone"});case"qqqqq":return P.quarter(h,{width:"narrow",context:"standalone"});case"qqqq":default:return P.quarter(h,{width:"wide",context:"standalone"})}},M:function(v,g,P){var h=v.getUTCMonth();switch(g){case"M":case"MM":return t.a.M(v,g);case"Mo":return P.ordinalNumber(h+1,{unit:"month"});case"MMM":return P.month(h,{width:"abbreviated",context:"formatting"});case"MMMMM":return P.month(h,{width:"narrow",context:"formatting"});case"MMMM":default:return P.month(h,{width:"wide",context:"formatting"})}},L:function(v,g,P){var h=v.getUTCMonth();switch(g){case"L":return String(h+1);case"LL":return u.a(h+1,2);case"Lo":return P.ordinalNumber(h+1,{unit:"month"});case"LLL":return P.month(h,{width:"abbreviated",context:"standalone"});case"LLLLL":return P.month(h,{width:"narrow",context:"standalone"});case"LLLL":default:return P.month(h,{width:"wide",context:"standalone"})}},w:function(v,g,P,h){var y=n.a(v,h);return g==="wo"?P.ordinalNumber(y,{unit:"week"}):u.a(y,g.length)},I:function(v,g,P){var h=r.a(v);return g==="Io"?P.ordinalNumber(h,{unit:"week"}):u.a(h,g.length)},d:function(v,g,P){return g==="do"?P.ordinalNumber(v.getUTCDate(),{unit:"date"}):t.a.d(v,g)},D:function(v,g,P){var h=a.a(v);return g==="Do"?P.ordinalNumber(h,{unit:"dayOfYear"}):u.a(h,g.length)},E:function(v,g,P){var h=v.getUTCDay();switch(g){case"E":case"EE":case"EEE":return P.day(h,{width:"abbreviated",context:"formatting"});case"EEEEE":return P.day(h,{width:"narrow",context:"formatting"});case"EEEEEE":return P.day(h,{width:"short",context:"formatting"});case"EEEE":default:return P.day(h,{width:"wide",context:"formatting"})}},e:function(v,g,P,h){var y=v.getUTCDay(),W=(y-h.weekStartsOn+8)%7||7;switch(g){case"e":return String(W);case"ee":return u.a(W,2);case"eo":return P.ordinalNumber(W,{unit:"day"});case"eee":return P.day(y,{width:"abbreviated",context:"formatting"});case"eeeee":return P.day(y,{width:"narrow",context:"formatting"});case"eeeeee":return P.day(y,{width:"short",context:"formatting"});case"eeee":default:return P.day(y,{width:"wide",context:"formatting"})}},c:function(v,g,P,h){var y=v.getUTCDay(),W=(y-h.weekStartsOn+8)%7||7;switch(g){case"c":return String(W);case"cc":return u.a(W,g.length);case"co":return P.ordinalNumber(W,{unit:"day"});case"ccc":return P.day(y,{width:"abbreviated",context:"standalone"});case"ccccc":return P.day(y,{width:"narrow",context:"standalone"});case"cccccc":return P.day(y,{width:"short",context:"standalone"});case"cccc":default:return P.day(y,{width:"wide",context:"standalone"})}},i:function(v,g,P){var h=v.getUTCDay(),y=h===0?7:h;switch(g){case"i":return String(y);case"ii":return u.a(y,g.length);case"io":return P.ordinalNumber(y,{unit:"day"});case"iii":return P.day(h,{width:"abbreviated",context:"formatting"});case"iiiii":return P.day(h,{width:"narrow",context:"formatting"});case"iiiiii":return P.day(h,{width:"short",context:"formatting"});case"iiii":default:return P.day(h,{width:"wide",context:"formatting"})}},a:function(v,g,P){var h=v.getUTCHours(),y=h/12>=1?"pm":"am";switch(g){case"a":case"aa":case"aaa":return P.dayPeriod(y,{width:"abbreviated",context:"formatting"});case"aaaaa":return P.dayPeriod(y,{width:"narrow",context:"formatting"});case"aaaa":default:return P.dayPeriod(y,{width:"wide",context:"formatting"})}},b:function(v,g,P){var h=v.getUTCHours(),y;switch(h===12?y=d.noon:h===0?y=d.midnight:y=h/12>=1?"pm":"am",g){case"b":case"bb":case"bbb":return P.dayPeriod(y,{width:"abbreviated",context:"formatting"});case"bbbbb":return P.dayPeriod(y,{width:"narrow",context:"formatting"});case"bbbb":default:return P.dayPeriod(y,{width:"wide",context:"formatting"})}},B:function(v,g,P){var h=v.getUTCHours(),y;switch(h>=17?y=d.evening:h>=12?y=d.afternoon:h>=4?y=d.morning:y=d.night,g){case"B":case"BB":case"BBB":return P.dayPeriod(y,{width:"abbreviated",context:"formatting"});case"BBBBB":return P.dayPeriod(y,{width:"narrow",context:"formatting"});case"BBBB":default:return P.dayPeriod(y,{width:"wide",context:"formatting"})}},h:function(v,g,P){if(g==="ho"){var h=v.getUTCHours()%12;return h===0&&(h=12),P.ordinalNumber(h,{unit:"hour"})}return t.a.h(v,g)},H:function(v,g,P){return g==="Ho"?P.ordinalNumber(v.getUTCHours(),{unit:"hour"}):t.a.H(v,g)},K:function(v,g,P){var h=v.getUTCHours()%12;return g==="Ko"?P.ordinalNumber(h,{unit:"hour"}):u.a(h,g.length)},k:function(v,g,P){var h=v.getUTCHours();return h===0&&(h=24),g==="ko"?P.ordinalNumber(h,{unit:"hour"}):u.a(h,g.length)},m:function(v,g,P){return g==="mo"?P.ordinalNumber(v.getUTCMinutes(),{unit:"minute"}):t.a.m(v,g)},s:function(v,g,P){return g==="so"?P.ordinalNumber(v.getUTCSeconds(),{unit:"second"}):t.a.s(v,g)},S:function(v,g){return t.a.S(v,g)},X:function(v,g,P,h){var y=h._originalDate||v,W=y.getTimezoneOffset();if(W===0)return"Z";switch(g){case"X":return _(W);case"XXXX":case"XX":return c(W);case"XXXXX":case"XXX":default:return c(W,":")}},x:function(v,g,P,h){var y=h._originalDate||v,W=y.getTimezoneOffset();switch(g){case"x":return _(W);case"xxxx":case"xx":return c(W);case"xxxxx":case"xxx":default:return c(W,":")}},O:function(v,g,P,h){var y=h._originalDate||v,W=y.getTimezoneOffset();switch(g){case"O":case"OO":case"OOO":return"GMT"+f(W,":");case"OOOO":default:return"GMT"+c(W,":")}},z:function(v,g,P,h){var y=h._originalDate||v,W=y.getTimezoneOffset();switch(g){case"z":case"zz":case"zzz":return"GMT"+f(W,":");case"zzzz":default:return"GMT"+c(W,":")}},t:function(v,g,P,h){var y=h._originalDate||v,W=Math.floor(y.getTime()/1e3);return u.a(W,g.length)},T:function(v,g,P,h){var y=h._originalDate||v,W=y.getTime();return u.a(W,g.length)}};function f(v,g){var P=v>0?"-":"+",h=Math.abs(v),y=Math.floor(h/60),W=h%60;if(W===0)return P+String(y);var T=g||"";return P+String(y)+T+u.a(W,2)}function _(v,g){if(v%60===0){var P=v>0?"-":"+";return P+u.a(Math.abs(v)/60,2)}return c(v,g)}function c(v,g){var P=g||"",h=v>0?"-":"+",y=Math.abs(v),W=u.a(Math.floor(y/60),2),T=u.a(y%60,2);return h+W+P+T}i.a=m},function(l,i,e){i.a=o;var t=e(1),a=e(0),r=864e5;function o(n){a.a(1,arguments);var s=t.a(n),u=s.getTime();s.setUTCMonth(0,1),s.setUTCHours(0,0,0,0);var d=s.getTime(),m=u-d;return Math.floor(m/r)+1}},function(l,i,e){i.a=o;var t=e(154),a=e(63),r=e(0);function o(n){r.a(1,arguments);var s=t.a(n),u=new Date(0);u.setUTCFullYear(s,0,4),u.setUTCHours(0,0,0,0);var d=a.a(u);return d}},function(l,i,e){i.a=n;var t=e(6),a=e(92),r=e(50),o=e(0);function n(s,u){o.a(1,arguments);var d=u||{},m=d.locale,f=m&&m.options&&m.options.firstWeekContainsDate,_=f==null?1:t.a(f),c=d.firstWeekContainsDate==null?_:t.a(d.firstWeekContainsDate),v=a.a(s,u),g=new Date(0);g.setUTCFullYear(v,0,c),g.setUTCHours(0,0,0,0);var P=r.a(g,u);return P}},function(l,i,e){i.a=r;var t=e(158),a=e(0);function r(o,n){return a.a(1,arguments),t.a(o,Date.now(),n)}},function(l,i,e){i.a=r;var t=e(161),a=e(0);function r(o,n){return a.a(1,arguments),t.a(o,Date.now(),n)}},function(l,i,e){i.a=r;var t=e(28),a=["years","months","weeks","days","hours","minutes","seconds"];function r(o){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(arguments.length<1)throw new TypeError("1 argument required, but only ".concat(arguments.length," present"));var s=n.format||a,u=n.locale||t.a,d=n.zero||!1,m=n.delimiter||" ",f=s.reduce(function(_,c){var v="x".concat(c.replace(/(^.)/,function(P){return P.toUpperCase()})),g=typeof o[c]=="number"&&(d||o[c]);return g?_.concat(u.formatDistance(v,o[c])):_},[]).join(m);return f}},function(l,i,e){i.a=o;var t=e(1),a=e(15),r=e(38);function o(n,s){if(arguments.length<1)throw new TypeError("1 argument required, but only ".concat(arguments.length," present"));var u=t.a(n);if(!a.a(u))throw new RangeError("Invalid time value");var d=s||{},m=d.format==null?"extended":String(d.format),f=d.representation==null?"complete":String(d.representation);if(m!=="extended"&&m!=="basic")throw new RangeError("format must be 'extended' or 'basic'");if(f!=="date"&&f!=="time"&&f!=="complete")throw new RangeError("representation must be 'date', 'time', or 'complete'");var _="",c="",v=m==="extended"?"-":"",g=m==="extended"?":":"";if(f!=="time"){var P=r.a(u.getDate(),2),h=r.a(u.getMonth()+1,2),y=r.a(u.getFullYear(),4);_="".concat(y).concat(v).concat(h).concat(v).concat(P)}if(f!=="date"){var W=u.getTimezoneOffset();if(W!==0){var T=Math.abs(W),j=r.a(Math.floor(T/60),2),b=r.a(T%60,2),C=W<0?"+":"-";c="".concat(C).concat(j,":").concat(b)}else c="Z";var I=r.a(u.getHours(),2),M=r.a(u.getMinutes(),2),D=r.a(u.getSeconds(),2),p=_===""?"":"T",w=[I,M,D].join(g);_="".concat(_).concat(p).concat(w).concat(c)}return _}},function(l,i,e){i.a=o;var t=e(1),a=e(15),r=e(38);function o(n,s){if(arguments.length<1)throw new TypeError("1 argument required, but only ".concat(arguments.length," present"));var u=t.a(n);if(!a.a(u))throw new RangeError("Invalid time value");var d=s||{},m=d.format==null?"extended":String(d.format),f=d.representation==null?"complete":String(d.representation);if(m!=="extended"&&m!=="basic")throw new RangeError("format must be 'extended' or 'basic'");if(f!=="date"&&f!=="time"&&f!=="complete")throw new RangeError("representation must be 'date', 'time', or 'complete'");var _="",c=m==="extended"?"-":"",v=m==="extended"?":":"";if(f!=="time"){var g=r.a(u.getDate(),2),P=r.a(u.getMonth()+1,2),h=r.a(u.getFullYear(),4);_="".concat(h).concat(c).concat(P).concat(c).concat(g)}if(f!=="date"){var y=r.a(u.getHours(),2),W=r.a(u.getMinutes(),2),T=r.a(u.getSeconds(),2),j=_===""?"":" ";_="".concat(_).concat(j).concat(y).concat(v).concat(W).concat(v).concat(T)}return _}},function(l,i,e){i.a=a;var t=e(0);function a(r){if(t.a(1,arguments),typeof r!="object")throw new Error("Duration must be an object");var o=r.years,n=o===void 0?0:o,s=r.months,u=s===void 0?0:s,d=r.days,m=d===void 0?0:d,f=r.hours,_=f===void 0?0:f,c=r.minutes,v=c===void 0?0:c,g=r.seconds,P=g===void 0?0:g;return"P".concat(n,"Y").concat(u,"M").concat(m,"DT").concat(_,"H").concat(v,"M").concat(P,"S")}},function(l,i,e){i.a=n;var t=e(1),a=e(15),r=e(38),o=e(6);function n(s,u){if(arguments.length<1)throw new TypeError("1 arguments required, but only ".concat(arguments.length," present"));var d=t.a(s);if(!a.a(d))throw new RangeError("Invalid time value");var m=u||{},f=m.fractionDigits==null?0:o.a(m.fractionDigits);if(!(f>=0&&f<=3))throw new RangeError("fractionDigits must be between 0 and 3 inclusively");var _=r.a(d.getDate(),2),c=r.a(d.getMonth()+1,2),v=d.getFullYear(),g=r.a(d.getHours(),2),P=r.a(d.getMinutes(),2),h=r.a(d.getSeconds(),2),y="";if(f>0){var W=d.getMilliseconds(),T=Math.floor(W*Math.pow(10,f-3));y="."+r.a(T,f)}var j="",b=d.getTimezoneOffset();if(b!==0){var C=Math.abs(b),I=r.a(o.a(C/60),2),M=r.a(C%60,2),D=b<0?"+":"-";j="".concat(D).concat(I,":").concat(M)}else j="Z";return"".concat(v,"-").concat(c,"-").concat(_,"T").concat(g,":").concat(P,":").concat(h).concat(y).concat(j)}},function(l,i,e){i.a=s;var t=e(1),a=e(15),r=e(38),o=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function s(u){if(arguments.length<1)throw new TypeError("1 arguments required, but only ".concat(arguments.length," present"));var d=t.a(u);if(!a.a(d))throw new RangeError("Invalid time value");var m=o[d.getUTCDay()],f=r.a(d.getUTCDate(),2),_=n[d.getUTCMonth()],c=d.getUTCFullYear(),v=r.a(d.getUTCHours(),2),g=r.a(d.getUTCMinutes(),2),P=r.a(d.getUTCSeconds(),2);return"".concat(m,", ").concat(f," ").concat(_," ").concat(c," ").concat(v,":").concat(g,":").concat(P," GMT")}},function(l,i,e){i.a=d;var t=e(26),a=e(151),r=e(28),o=e(49),n=e(1),s=e(19),u=e(0);function d(m,f,_){u.a(2,arguments);var c=n.a(m),v=n.a(f),g=_||{},P=g.locale||r.a;if(!P.localize)throw new RangeError("locale must contain localize property");if(!P.formatLong)throw new RangeError("locale must contain formatLong property");if(!P.formatRelative)throw new RangeError("locale must contain formatRelative property");var h=t.a(c,v);if(isNaN(h))throw new RangeError("Invalid time value");var y;h<-6?y="other":h<-1?y="lastWeek":h<0?y="yesterday":h<1?y="today":h<2?y="tomorrow":h<7?y="nextWeek":y="other";var W=o.a(c,s.a(c)),T=o.a(v,s.a(v)),j=P.formatRelative(y,W,T,g);return a.a(c,j,g)}},function(l,i,e){i.a=o;var t=e(1),a=e(6),r=e(0);function o(n){r.a(1,arguments);var s=a.a(n);return t.a(s*1e3)}},function(l,i,e){i.a=n;var t=e(1),a=e(90),r=e(26),o=e(0);function n(s){o.a(1,arguments);var u=t.a(s),d=r.a(u,a.a(u)),m=d+1;return m}},function(l,i,e){i.a=o;var t=e(1),a=e(165),r=e(0);function o(n){r.a(1,arguments);var s=t.a(n);return isNaN(s)?NaN:a.a(s)?366:365}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getFullYear(),u=Math.floor(s/10)*10;return u}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getHours();return s}},function(l,i,e){i.a=n;var t=e(46),a=e(58),r=e(0),o=6048e5;function n(s){r.a(1,arguments);var u=t.a(s),d=t.a(a.a(u,60)),m=d.valueOf()-u.valueOf();return Math.round(m/o)}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getMilliseconds();return s}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getMinutes();return s}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getMonth();return s}},function(l,i,e){i.a=o;var t=e(1),a=e(0),r=24*60*60*1e3;function o(n,s){a.a(2,arguments);var u=n||{},d=s||{},m=t.a(u.start).getTime(),f=t.a(u.end).getTime(),_=t.a(d.start).getTime(),c=t.a(d.end).getTime();if(!(m<=f&&_<=c))throw new RangeError("Invalid interval");var v=mf?f:c,h=P-g;return Math.ceil(h/r)}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getSeconds();return s}},function(l,i,e){i.a=r;var t=e(168),a=e(0);function r(o){return a.a(1,arguments),Math.floor(t.a(o)/1e3)}},function(l,i,e){i.a=s;var t=e(162),a=e(163),r=e(62),o=e(6),n=e(0);function s(u,d){n.a(1,arguments);var m=d||{},f=m.locale,_=f&&f.options&&f.options.weekStartsOn,c=_==null?0:o.a(_),v=m.weekStartsOn==null?c:o.a(m.weekStartsOn);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=t.a(u);if(isNaN(g))return g;var P=a.a(r.a(u)),h=0;P>=v?h=v+7-P:h=v-P;var y=1;if(g>h){var W=g-h;y=y+Math.ceil(W/7)}return y}},function(l,i,e){i.a=n;var t=e(142),a=e(171),r=e(62),o=e(0);function n(s,u){return o.a(1,arguments),t.a(a.a(s),r.a(s),u)+1}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getFullYear();return s}},function(l,i,e){i.a=c;var t=e(27),a=e(147),r=e(60),o=e(86),n=e(144),s=e(146),u=e(61),d=e(15),m=e(0),f=e(1),_=e(172);function c(v){var g=v.start,P=v.end;m.a(1,arguments);var h=f.a(g),y=f.a(P);if(!d.a(h))throw new RangeError("Start Date is invalid");if(!d.a(y))throw new RangeError("End Date is invalid");var W={years:0,months:0,days:0,hours:0,minutes:0,seconds:0},T=t.a(h,y);W.years=Math.abs(a.a(h,y));var j=_.a(h,{years:T*W.years});W.months=Math.abs(r.a(j,y));var b=_.a(j,{months:T*W.months});W.days=Math.abs(o.a(b,y));var C=_.a(b,{days:T*W.days});W.hours=Math.abs(n.a(C,y));var I=_.a(C,{hours:T*W.hours});W.minutes=Math.abs(s.a(I,y));var M=_.a(I,{minutes:T*W.minutes});return W.seconds=Math.abs(u.a(M,y)),W}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o,n){a.a(2,arguments);var s=t.a(o),u=t.a(n);return s.getTime()>u.getTime()}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o,n){a.a(2,arguments);var s=t.a(o),u=t.a(n);return s.getTime()Date.now()}},function(l,i,e){i.a=n;var t=e(1),a=e(91),r=e(89),o=e(0);function n(s){o.a(1,arguments);var u=t.a(s);return a.a(u).getTime()===r.a(u).getTime()}},function(l,i,e){i.a=o;var t=e(174),a=e(15),r=e(0);function o(n,s,u){return r.a(2,arguments),a.a(t.a(n,s,new Date,u))}},function(l,i,e){var t=e(92),a=e(382),r=e(383),o=e(384),n=e(385),s=e(63),u=e(50),d=36e5,m=6e4,f=1e3,_={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},c={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function v(M,D,p){var w=D.match(M);if(!w)return null;var L=parseInt(w[0],10);return{value:p?p(L):L,rest:D.slice(w[0].length)}}function g(M,D){var p=D.match(M);if(!p)return null;if(p[0]==="Z")return{value:0,rest:D.slice(1)};var w=p[1]==="+"?1:-1,L=p[2]?parseInt(p[2],10):0,z=p[3]?parseInt(p[3],10):0,ne=p[5]?parseInt(p[5],10):0;return{value:w*(L*d+z*m+ne*f),rest:D.slice(p[0].length)}}function P(M,D){return v(_.anyDigitsSigned,M,D)}function h(M,D,p){switch(M){case 1:return v(_.singleDigit,D,p);case 2:return v(_.twoDigits,D,p);case 3:return v(_.threeDigits,D,p);case 4:return v(_.fourDigits,D,p);default:return v(new RegExp("^\\d{1,"+M+"}"),D,p)}}function y(M,D,p){switch(M){case 1:return v(_.singleDigitSigned,D,p);case 2:return v(_.twoDigitsSigned,D,p);case 3:return v(_.threeDigitsSigned,D,p);case 4:return v(_.fourDigitsSigned,D,p);default:return v(new RegExp("^-?\\d{1,"+M+"}"),D,p)}}function W(M){switch(M){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;case"am":case"midnight":case"night":default:return 0}}function T(M,D){var p=D>0,w=p?D:1-D,L;if(w<=50)L=M||100;else{var z=w+50,ne=Math.floor(z/100)*100,te=M>=z%100;L=M+ne-(te?100:0)}return p?L:1-L}var j=[31,28,31,30,31,30,31,31,30,31,30,31],b=[31,29,31,30,31,30,31,31,30,31,30,31];function C(M){return M%400===0||M%4===0&&M%100!==0}var I={G:{priority:140,parse:function(M,D,p,w){switch(D){case"G":case"GG":case"GGG":return p.era(M,{width:"abbreviated"})||p.era(M,{width:"narrow"});case"GGGGG":return p.era(M,{width:"narrow"});case"GGGG":default:return p.era(M,{width:"wide"})||p.era(M,{width:"abbreviated"})||p.era(M,{width:"narrow"})}},set:function(M,D,p,w){return D.era=p,M.setUTCFullYear(p,0,1),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["R","u","t","T"]},y:{priority:130,parse:function(M,D,p,w){var L=function(z){return{year:z,isTwoDigitYear:D==="yy"}};switch(D){case"y":return h(4,M,L);case"yo":return p.ordinalNumber(M,{unit:"year",valueCallback:L});default:return h(D.length,M,L)}},validate:function(M,D,p){return D.isTwoDigitYear||D.year>0},set:function(M,D,p,w){var L=M.getUTCFullYear();if(p.isTwoDigitYear){var z=T(p.year,L);return M.setUTCFullYear(z,0,1),M.setUTCHours(0,0,0,0),M}var ne=!("era"in D)||D.era===1?p.year:1-p.year;return M.setUTCFullYear(ne,0,1),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["Y","R","u","w","I","i","e","c","t","T"]},Y:{priority:130,parse:function(M,D,p,w){var L=function(z){return{year:z,isTwoDigitYear:D==="YY"}};switch(D){case"Y":return h(4,M,L);case"Yo":return p.ordinalNumber(M,{unit:"year",valueCallback:L});default:return h(D.length,M,L)}},validate:function(M,D,p){return D.isTwoDigitYear||D.year>0},set:function(M,D,p,w){var L=t.a(M,w);if(p.isTwoDigitYear){var z=T(p.year,L);return M.setUTCFullYear(z,0,w.firstWeekContainsDate),M.setUTCHours(0,0,0,0),u.a(M,w)}var ne=!("era"in D)||D.era===1?p.year:1-p.year;return M.setUTCFullYear(ne,0,w.firstWeekContainsDate),M.setUTCHours(0,0,0,0),u.a(M,w)},incompatibleTokens:["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:{priority:130,parse:function(M,D,p,w){return y(D==="R"?4:D.length,M)},set:function(M,D,p,w){var L=new Date(0);return L.setUTCFullYear(p,0,4),L.setUTCHours(0,0,0,0),s.a(L)},incompatibleTokens:["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:{priority:130,parse:function(M,D,p,w){return y(D==="u"?4:D.length,M)},set:function(M,D,p,w){return M.setUTCFullYear(p,0,1),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["G","y","Y","R","w","I","i","e","c","t","T"]},Q:{priority:120,parse:function(M,D,p,w){switch(D){case"Q":case"QQ":return h(D.length,M);case"Qo":return p.ordinalNumber(M,{unit:"quarter"});case"QQQ":return p.quarter(M,{width:"abbreviated",context:"formatting"})||p.quarter(M,{width:"narrow",context:"formatting"});case"QQQQQ":return p.quarter(M,{width:"narrow",context:"formatting"});case"QQQQ":default:return p.quarter(M,{width:"wide",context:"formatting"})||p.quarter(M,{width:"abbreviated",context:"formatting"})||p.quarter(M,{width:"narrow",context:"formatting"})}},validate:function(M,D,p){return D>=1&&D<=4},set:function(M,D,p,w){return M.setUTCMonth((p-1)*3,1),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:{priority:120,parse:function(M,D,p,w){switch(D){case"q":case"qq":return h(D.length,M);case"qo":return p.ordinalNumber(M,{unit:"quarter"});case"qqq":return p.quarter(M,{width:"abbreviated",context:"standalone"})||p.quarter(M,{width:"narrow",context:"standalone"});case"qqqqq":return p.quarter(M,{width:"narrow",context:"standalone"});case"qqqq":default:return p.quarter(M,{width:"wide",context:"standalone"})||p.quarter(M,{width:"abbreviated",context:"standalone"})||p.quarter(M,{width:"narrow",context:"standalone"})}},validate:function(M,D,p){return D>=1&&D<=4},set:function(M,D,p,w){return M.setUTCMonth((p-1)*3,1),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:{priority:110,parse:function(M,D,p,w){var L=function(z){return z-1};switch(D){case"M":return v(_.month,M,L);case"MM":return h(2,M,L);case"Mo":return p.ordinalNumber(M,{unit:"month",valueCallback:L});case"MMM":return p.month(M,{width:"abbreviated",context:"formatting"})||p.month(M,{width:"narrow",context:"formatting"});case"MMMMM":return p.month(M,{width:"narrow",context:"formatting"});case"MMMM":default:return p.month(M,{width:"wide",context:"formatting"})||p.month(M,{width:"abbreviated",context:"formatting"})||p.month(M,{width:"narrow",context:"formatting"})}},validate:function(M,D,p){return D>=0&&D<=11},set:function(M,D,p,w){return M.setUTCMonth(p,1),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]},L:{priority:110,parse:function(M,D,p,w){var L=function(z){return z-1};switch(D){case"L":return v(_.month,M,L);case"LL":return h(2,M,L);case"Lo":return p.ordinalNumber(M,{unit:"month",valueCallback:L});case"LLL":return p.month(M,{width:"abbreviated",context:"standalone"})||p.month(M,{width:"narrow",context:"standalone"});case"LLLLL":return p.month(M,{width:"narrow",context:"standalone"});case"LLLL":default:return p.month(M,{width:"wide",context:"standalone"})||p.month(M,{width:"abbreviated",context:"standalone"})||p.month(M,{width:"narrow",context:"standalone"})}},validate:function(M,D,p){return D>=0&&D<=11},set:function(M,D,p,w){return M.setUTCMonth(p,1),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:{priority:100,parse:function(M,D,p,w){switch(D){case"w":return v(_.week,M);case"wo":return p.ordinalNumber(M,{unit:"week"});default:return h(D.length,M)}},validate:function(M,D,p){return D>=1&&D<=53},set:function(M,D,p,w){return u.a(n.a(M,p,w),w)},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:{priority:100,parse:function(M,D,p,w){switch(D){case"I":return v(_.week,M);case"Io":return p.ordinalNumber(M,{unit:"week"});default:return h(D.length,M)}},validate:function(M,D,p){return D>=1&&D<=53},set:function(M,D,p,w){return s.a(o.a(M,p,w),w)},incompatibleTokens:["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:{priority:90,subPriority:1,parse:function(M,D,p,w){switch(D){case"d":return v(_.date,M);case"do":return p.ordinalNumber(M,{unit:"date"});default:return h(D.length,M)}},validate:function(M,D,p){var w=M.getUTCFullYear(),L=C(w),z=M.getUTCMonth();return L?D>=1&&D<=b[z]:D>=1&&D<=j[z]},set:function(M,D,p,w){return M.setUTCDate(p),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:{priority:90,subPriority:1,parse:function(M,D,p,w){switch(D){case"D":case"DD":return v(_.dayOfYear,M);case"Do":return p.ordinalNumber(M,{unit:"date"});default:return h(D.length,M)}},validate:function(M,D,p){var w=M.getUTCFullYear(),L=C(w);return L?D>=1&&D<=366:D>=1&&D<=365},set:function(M,D,p,w){return M.setUTCMonth(0,p),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:{priority:90,parse:function(M,D,p,w){switch(D){case"E":case"EE":case"EEE":return p.day(M,{width:"abbreviated",context:"formatting"})||p.day(M,{width:"short",context:"formatting"})||p.day(M,{width:"narrow",context:"formatting"});case"EEEEE":return p.day(M,{width:"narrow",context:"formatting"});case"EEEEEE":return p.day(M,{width:"short",context:"formatting"})||p.day(M,{width:"narrow",context:"formatting"});case"EEEE":default:return p.day(M,{width:"wide",context:"formatting"})||p.day(M,{width:"abbreviated",context:"formatting"})||p.day(M,{width:"short",context:"formatting"})||p.day(M,{width:"narrow",context:"formatting"})}},validate:function(M,D,p){return D>=0&&D<=6},set:function(M,D,p,w){return M=a.a(M,p,w),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["D","i","e","c","t","T"]},e:{priority:90,parse:function(M,D,p,w){var L=function(z){var ne=Math.floor((z-1)/7)*7;return(z+w.weekStartsOn+6)%7+ne};switch(D){case"e":case"ee":return h(D.length,M,L);case"eo":return p.ordinalNumber(M,{unit:"day",valueCallback:L});case"eee":return p.day(M,{width:"abbreviated",context:"formatting"})||p.day(M,{width:"short",context:"formatting"})||p.day(M,{width:"narrow",context:"formatting"});case"eeeee":return p.day(M,{width:"narrow",context:"formatting"});case"eeeeee":return p.day(M,{width:"short",context:"formatting"})||p.day(M,{width:"narrow",context:"formatting"});case"eeee":default:return p.day(M,{width:"wide",context:"formatting"})||p.day(M,{width:"abbreviated",context:"formatting"})||p.day(M,{width:"short",context:"formatting"})||p.day(M,{width:"narrow",context:"formatting"})}},validate:function(M,D,p){return D>=0&&D<=6},set:function(M,D,p,w){return M=a.a(M,p,w),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:{priority:90,parse:function(M,D,p,w){var L=function(z){var ne=Math.floor((z-1)/7)*7;return(z+w.weekStartsOn+6)%7+ne};switch(D){case"c":case"cc":return h(D.length,M,L);case"co":return p.ordinalNumber(M,{unit:"day",valueCallback:L});case"ccc":return p.day(M,{width:"abbreviated",context:"standalone"})||p.day(M,{width:"short",context:"standalone"})||p.day(M,{width:"narrow",context:"standalone"});case"ccccc":return p.day(M,{width:"narrow",context:"standalone"});case"cccccc":return p.day(M,{width:"short",context:"standalone"})||p.day(M,{width:"narrow",context:"standalone"});case"cccc":default:return p.day(M,{width:"wide",context:"standalone"})||p.day(M,{width:"abbreviated",context:"standalone"})||p.day(M,{width:"short",context:"standalone"})||p.day(M,{width:"narrow",context:"standalone"})}},validate:function(M,D,p){return D>=0&&D<=6},set:function(M,D,p,w){return M=a.a(M,p,w),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:{priority:90,parse:function(M,D,p,w){var L=function(z){return z===0?7:z};switch(D){case"i":case"ii":return h(D.length,M);case"io":return p.ordinalNumber(M,{unit:"day"});case"iii":return p.day(M,{width:"abbreviated",context:"formatting",valueCallback:L})||p.day(M,{width:"short",context:"formatting",valueCallback:L})||p.day(M,{width:"narrow",context:"formatting",valueCallback:L});case"iiiii":return p.day(M,{width:"narrow",context:"formatting",valueCallback:L});case"iiiiii":return p.day(M,{width:"short",context:"formatting",valueCallback:L})||p.day(M,{width:"narrow",context:"formatting",valueCallback:L});case"iiii":default:return p.day(M,{width:"wide",context:"formatting",valueCallback:L})||p.day(M,{width:"abbreviated",context:"formatting",valueCallback:L})||p.day(M,{width:"short",context:"formatting",valueCallback:L})||p.day(M,{width:"narrow",context:"formatting",valueCallback:L})}},validate:function(M,D,p){return D>=1&&D<=7},set:function(M,D,p,w){return M=r.a(M,p,w),M.setUTCHours(0,0,0,0),M},incompatibleTokens:["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:{priority:80,parse:function(M,D,p,w){switch(D){case"a":case"aa":case"aaa":return p.dayPeriod(M,{width:"abbreviated",context:"formatting"})||p.dayPeriod(M,{width:"narrow",context:"formatting"});case"aaaaa":return p.dayPeriod(M,{width:"narrow",context:"formatting"});case"aaaa":default:return p.dayPeriod(M,{width:"wide",context:"formatting"})||p.dayPeriod(M,{width:"abbreviated",context:"formatting"})||p.dayPeriod(M,{width:"narrow",context:"formatting"})}},set:function(M,D,p,w){return M.setUTCHours(W(p),0,0,0),M},incompatibleTokens:["b","B","H","K","k","t","T"]},b:{priority:80,parse:function(M,D,p,w){switch(D){case"b":case"bb":case"bbb":return p.dayPeriod(M,{width:"abbreviated",context:"formatting"})||p.dayPeriod(M,{width:"narrow",context:"formatting"});case"bbbbb":return p.dayPeriod(M,{width:"narrow",context:"formatting"});case"bbbb":default:return p.dayPeriod(M,{width:"wide",context:"formatting"})||p.dayPeriod(M,{width:"abbreviated",context:"formatting"})||p.dayPeriod(M,{width:"narrow",context:"formatting"})}},set:function(M,D,p,w){return M.setUTCHours(W(p),0,0,0),M},incompatibleTokens:["a","B","H","K","k","t","T"]},B:{priority:80,parse:function(M,D,p,w){switch(D){case"B":case"BB":case"BBB":return p.dayPeriod(M,{width:"abbreviated",context:"formatting"})||p.dayPeriod(M,{width:"narrow",context:"formatting"});case"BBBBB":return p.dayPeriod(M,{width:"narrow",context:"formatting"});case"BBBB":default:return p.dayPeriod(M,{width:"wide",context:"formatting"})||p.dayPeriod(M,{width:"abbreviated",context:"formatting"})||p.dayPeriod(M,{width:"narrow",context:"formatting"})}},set:function(M,D,p,w){return M.setUTCHours(W(p),0,0,0),M},incompatibleTokens:["a","b","t","T"]},h:{priority:70,parse:function(M,D,p,w){switch(D){case"h":return v(_.hour12h,M);case"ho":return p.ordinalNumber(M,{unit:"hour"});default:return h(D.length,M)}},validate:function(M,D,p){return D>=1&&D<=12},set:function(M,D,p,w){var L=M.getUTCHours()>=12;return L&&p<12?M.setUTCHours(p+12,0,0,0):!L&&p===12?M.setUTCHours(0,0,0,0):M.setUTCHours(p,0,0,0),M},incompatibleTokens:["H","K","k","t","T"]},H:{priority:70,parse:function(M,D,p,w){switch(D){case"H":return v(_.hour23h,M);case"Ho":return p.ordinalNumber(M,{unit:"hour"});default:return h(D.length,M)}},validate:function(M,D,p){return D>=0&&D<=23},set:function(M,D,p,w){return M.setUTCHours(p,0,0,0),M},incompatibleTokens:["a","b","h","K","k","t","T"]},K:{priority:70,parse:function(M,D,p,w){switch(D){case"K":return v(_.hour11h,M);case"Ko":return p.ordinalNumber(M,{unit:"hour"});default:return h(D.length,M)}},validate:function(M,D,p){return D>=0&&D<=11},set:function(M,D,p,w){var L=M.getUTCHours()>=12;return L&&p<12?M.setUTCHours(p+12,0,0,0):M.setUTCHours(p,0,0,0),M},incompatibleTokens:["a","b","h","H","k","t","T"]},k:{priority:70,parse:function(M,D,p,w){switch(D){case"k":return v(_.hour24h,M);case"ko":return p.ordinalNumber(M,{unit:"hour"});default:return h(D.length,M)}},validate:function(M,D,p){return D>=1&&D<=24},set:function(M,D,p,w){var L=p<=24?p%24:p;return M.setUTCHours(L,0,0,0),M},incompatibleTokens:["a","b","h","H","K","t","T"]},m:{priority:60,parse:function(M,D,p,w){switch(D){case"m":return v(_.minute,M);case"mo":return p.ordinalNumber(M,{unit:"minute"});default:return h(D.length,M)}},validate:function(M,D,p){return D>=0&&D<=59},set:function(M,D,p,w){return M.setUTCMinutes(p,0,0),M},incompatibleTokens:["t","T"]},s:{priority:50,parse:function(M,D,p,w){switch(D){case"s":return v(_.second,M);case"so":return p.ordinalNumber(M,{unit:"second"});default:return h(D.length,M)}},validate:function(M,D,p){return D>=0&&D<=59},set:function(M,D,p,w){return M.setUTCSeconds(p,0),M},incompatibleTokens:["t","T"]},S:{priority:30,parse:function(M,D,p,w){var L=function(z){return Math.floor(z*Math.pow(10,-D.length+3))};return h(D.length,M,L)},set:function(M,D,p,w){return M.setUTCMilliseconds(p),M},incompatibleTokens:["t","T"]},X:{priority:10,parse:function(M,D,p,w){switch(D){case"X":return g(c.basicOptionalMinutes,M);case"XX":return g(c.basic,M);case"XXXX":return g(c.basicOptionalSeconds,M);case"XXXXX":return g(c.extendedOptionalSeconds,M);case"XXX":default:return g(c.extended,M)}},set:function(M,D,p,w){return D.timestampIsSet?M:new Date(M.getTime()-p)},incompatibleTokens:["t","T","x"]},x:{priority:10,parse:function(M,D,p,w){switch(D){case"x":return g(c.basicOptionalMinutes,M);case"xx":return g(c.basic,M);case"xxxx":return g(c.basicOptionalSeconds,M);case"xxxxx":return g(c.extendedOptionalSeconds,M);case"xxx":default:return g(c.extended,M)}},set:function(M,D,p,w){return D.timestampIsSet?M:new Date(M.getTime()-p)},incompatibleTokens:["t","T","X"]},t:{priority:40,parse:function(M,D,p,w){return P(M)},set:function(M,D,p,w){return[new Date(p*1e3),{timestampIsSet:!0}]},incompatibleTokens:"*"},T:{priority:20,parse:function(M,D,p,w){return P(M)},set:function(M,D,p,w){return[new Date(p),{timestampIsSet:!0}]},incompatibleTokens:"*"}};i.a=I},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s,u){r.a(2,arguments);var d=u||{},m=d.locale,f=m&&m.options&&m.options.weekStartsOn,_=f==null?0:t.a(f),c=d.weekStartsOn==null?_:t.a(d.weekStartsOn);if(!(c>=0&&c<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var v=a.a(n),g=t.a(s),P=v.getUTCDay(),h=g%7,y=(h+7)%7,W=(y=d&&u<=m}},function(l,i,e){i.a=o;var t=e(47),a=e(94),r=e(0);function o(n){return r.a(1,arguments),t.a(n,a.a(Date.now(),1))}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getFullYear(),u=9+Math.floor(s/10)*10;return n.setFullYear(u+1,0,0),n.setHours(0,0,0,0),n}},function(l,i,e){i.a=r;var t=e(185),a=e(0);function r(o){return a.a(1,arguments),t.a(o,{weekStartsOn:1})}},function(l,i,e){i.a=o;var t=e(34),a=e(25),r=e(0);function o(n){r.a(1,arguments);var s=t.a(n),u=new Date(0);u.setFullYear(s+1,0,4),u.setHours(0,0,0,0);var d=a.a(u);return d.setDate(d.getDate()-1),d}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getMonth(),u=s-s%3+3;return n.setMonth(u,0),n.setHours(0,0,0,0),n}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getFullYear();return n.setFullYear(s+1,0,0),n.setHours(0,0,0,0),n}},function(l,i,e){i.a=_;var t=e(1),a=e(152),r=e(19),o=e(15),n=e(49),s=e(0),u=/(\w)\1*|''|'(''|[^'])+('|$)|./g,d=/^'([^]*?)'?$/,m=/''/g,f=/[a-zA-Z]/;function _(v,g){s.a(2,arguments);var P=String(g),h=t.a(v);if(!o.a(h))throw new RangeError("Invalid time value");var y=r.a(h),W=n.a(h,y),T=P.match(u).map(function(j){if(j==="''")return"'";var b=j[0];if(b==="'")return c(j);var C=a.a[b];if(C)return C(W,j,null,{});if(b.match(f))throw new RangeError("Format string contains an unescaped latin alphabet character `"+b+"`");return j}).join("");return T}function c(v){return v.match(d)[1].replace(m,"'")}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n;if(o&&typeof o.forEach=="function")n=o;else if(typeof o=="object"&&o!==null)n=Array.prototype.slice.call(o);else return new Date(NaN);var s;return n.forEach(function(u){var d=t.a(u);(s===void 0||sd||isNaN(d))&&(s=d)}),s||new Date(NaN)}},function(l,i,e){i.a=f;var t=e(6),a=e(0),r=36e5,o=6e4,n=2,s={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},u=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,d=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,m=/^([+-])(\d{2})(?::?(\d{2}))?$/;function f(p,w){a.a(1,arguments);var L=w||{},z=L.additionalDigits==null?n:t.a(L.additionalDigits);if(z!==2&&z!==1&&z!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(!(typeof p=="string"||Object.prototype.toString.call(p)==="[object String]"))return new Date(NaN);var ne=_(p),te;if(ne.date){var de=c(ne.date,z);te=v(de.restDateString,de.year)}if(isNaN(te)||!te)return new Date(NaN);var ue=te.getTime(),oe=0,ie;if(ne.time&&(oe=P(ne.time),isNaN(oe)||oe===null))return new Date(NaN);if(ne.timezone){if(ie=y(ne.timezone),isNaN(ie))return new Date(NaN)}else{var le=new Date(ue+oe),F=new Date(le.getUTCFullYear(),le.getUTCMonth(),le.getUTCDate(),le.getUTCHours(),le.getUTCMinutes(),le.getUTCSeconds(),le.getUTCMilliseconds());return F.setFullYear(le.getUTCFullYear()),F}return new Date(ue+oe+ie)}function _(p){var w={},L=p.split(s.dateTimeDelimiter),z;if(L.length>2)return w;if(/:/.test(L[0])?(w.date=null,z=L[0]):(w.date=L[0],z=L[1],s.timeZoneDelimiter.test(w.date)&&(w.date=p.split(s.timeZoneDelimiter)[0],z=p.substr(w.date.length,p.length))),z){var ne=s.timezone.exec(z);ne?(w.time=z.replace(ne[1],""),w.timezone=ne[1]):w.time=z}return w}function c(p,w){var L=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+w)+"})|(\\d{2}|[+-]\\d{"+(2+w)+"})$)"),z=p.match(L);if(!z)return{year:null};var ne=z[1]&&parseInt(z[1]),te=z[2]&&parseInt(z[2]);return{year:te==null?ne:te*100,restDateString:p.slice((z[1]||z[2]).length)}}function v(p,w){if(w===null)return null;var L=p.match(u);if(!L)return null;var z=!!L[4],ne=g(L[1]),te=g(L[2])-1,de=g(L[3]),ue=g(L[4]),oe=g(L[5])-1;if(z)return I(w,ue,oe)?W(w,ue,oe):new Date(NaN);var ie=new Date(0);return!b(w,te,de)||!C(w,ne)?new Date(NaN):(ie.setUTCFullYear(w,te,Math.max(ne,de)),ie)}function g(p){return p?parseInt(p):1}function P(p){var w=p.match(d);if(!w)return null;var L=h(w[1]),z=h(w[2]),ne=h(w[3]);return M(L,z,ne)?L*r+z*o+ne*1e3:NaN}function h(p){return p&&parseFloat(p.replace(",","."))||0}function y(p){if(p==="Z")return 0;var w=p.match(m);if(!w)return 0;var L=w[1]==="+"?-1:1,z=parseInt(w[2]),ne=w[3]&&parseInt(w[3])||0;return D(z,ne)?L*(z*r+ne*o):NaN}function W(p,w,L){var z=new Date(0);z.setUTCFullYear(p,0,4);var ne=z.getUTCDay()||7,te=(w-1)*7+L+1-ne;return z.setUTCDate(z.getUTCDate()+te),z}var T=[31,null,31,30,31,30,31,31,30,31,30,31];function j(p){return p%400===0||p%4===0&&p%100}function b(p,w,L){return w>=0&&w<=11&&L>=1&&L<=(T[w]||(j(p)?29:28))}function C(p,w){return w>=1&&w<=(j(p)?366:365)}function I(p,w,L){return w>=1&&w<=53&&L>=0&&L<=6}function M(p,w,L){return p===24?w===0&&L===0:L>=0&&L<60&&w>=0&&w<60&&p>=0&&p<25}function D(p,w){return w>=0&&w<=59}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){if(a.a(1,arguments),typeof o=="string"){var n=o.match(/(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(?:\.(\d{0,7}))?(?:Z|\+00:?00)?/);return n?new Date(Date.UTC(+n[1],n[2]-1,+n[3],+n[4],+n[5],+n[6],+((n[7]||"0")+"00").substring(0,3))):new Date(NaN)}return t.a(o)}},function(l,i,e){i.a=r;var t=e(1),a=e(6);function r(o,n){if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var s=n&&"nearestTo"in n?a.a(n.nearestTo):1;if(s<1||s>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var u=t.a(o),d=u.getSeconds(),m=u.getMinutes()+d/60,f=Math.floor(m/s)*s,_=m%s,c=Math.round(_/s)*s;return new Date(u.getFullYear(),u.getMonth(),u.getDate(),u.getHours(),f+c)}},function(l,i,e){i.a=n;var t=e(1),a=e(96),r=e(6),o=e(0);function n(s,u){if(o.a(2,arguments),typeof u!="object"||u===null)throw new RangeError("values parameter must be an object");var d=t.a(s);return isNaN(d)?new Date(NaN):(u.year!=null&&d.setFullYear(u.year),u.month!=null&&(d=a.a(d,u.month)),u.date!=null&&d.setDate(r.a(u.date)),u.hours!=null&&d.setHours(r.a(u.hours)),u.minutes!=null&&d.setMinutes(r.a(u.minutes)),u.seconds!=null&&d.setSeconds(r.a(u.seconds)),u.milliseconds!=null&&d.setMilliseconds(r.a(u.milliseconds)),d)}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);return u.setDate(d),u}},function(l,i,e){i.a=n;var t=e(21),a=e(1),r=e(6),o=e(0);function n(s,u,d){o.a(2,arguments);var m=d||{},f=m.locale,_=f&&f.options&&f.options.weekStartsOn,c=_==null?0:r.a(_),v=m.weekStartsOn==null?c:r.a(m.weekStartsOn);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=a.a(s,m),P=r.a(u),h=g.getDay(),y=P%7,W=(y+7)%7,T=7-v,j=P<0||P>6?P-(h+T)%7:(W+T)%7-(h+T)%7;return t.a(g,j,m)}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);return u.setMonth(0),u.setDate(d),u}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);return u.setHours(d),u}},function(l,i,e){i.a=s;var t=e(6),a=e(1),r=e(21),o=e(166),n=e(0);function s(u,d){n.a(2,arguments);var m=a.a(u),f=t.a(d),_=o.a(m),c=f-_;return r.a(m,c)}},function(l,i,e){i.a=n;var t=e(6),a=e(1),r=e(167),o=e(0);function n(s,u){o.a(2,arguments);var d=a.a(s),m=t.a(u),f=r.a(d)-m;return d.setDate(d.getDate()-f*7),d}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);return u.setMilliseconds(d),u}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);return u.setMinutes(d),u}},function(l,i,e){i.a=n;var t=e(6),a=e(1),r=e(96),o=e(0);function n(s,u){o.a(2,arguments);var d=a.a(s),m=t.a(u),f=Math.floor(d.getMonth()/3)+1,_=m-f;return r.a(d,d.getMonth()+_*3)}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);return u.setSeconds(d),u}},function(l,i,e){i.a=n;var t=e(169),a=e(1),r=e(6),o=e(0);function n(s,u,d){o.a(2,arguments);var m=a.a(s),f=r.a(u),_=t.a(m,d)-f;return m.setDate(m.getDate()-_*7),m}},function(l,i,e){i.a=s;var t=e(26),a=e(93),r=e(1),o=e(6),n=e(0);function s(u,d,m){n.a(2,arguments);var f=m||{},_=f.locale,c=_&&_.options&&_.options.firstWeekContainsDate,v=c==null?1:o.a(c),g=f.firstWeekContainsDate==null?v:o.a(f.firstWeekContainsDate),P=r.a(u),h=o.a(d),y=t.a(P,a.a(P,m)),W=new Date(0);return W.setFullYear(h,0,g),W.setHours(0,0,0,0),P=a.a(W,m),P.setDate(P.getDate()+y),P}},function(l,i,e){i.a=o;var t=e(6),a=e(1),r=e(0);function o(n,s){r.a(2,arguments);var u=a.a(n),d=t.a(s);return isNaN(u)?new Date(NaN):(u.setFullYear(d),u)}},function(l,i,e){i.a=r;var t=e(1),a=e(0);function r(o){a.a(1,arguments);var n=t.a(o),s=n.getFullYear(),u=Math.floor(s/10)*10;return n.setFullYear(u,0,1),n.setHours(0,0,0,0),n}},function(l,i,e){i.a=a;var t=e(57);function a(){return t.a(Date.now())}},function(l,i,e){i.a=t;function t(){var a=new Date,r=a.getFullYear(),o=a.getMonth(),n=a.getDate(),s=new Date(0);return s.setFullYear(r,o,n+1),s.setHours(0,0,0,0),s}},function(l,i,e){i.a=t;function t(){var a=new Date,r=a.getFullYear(),o=a.getMonth(),n=a.getDate(),s=new Date(0);return s.setFullYear(r,o,n-1),s.setHours(0,0,0,0),s}},function(l,i,e){i.a=o;var t=e(6),a=e(132),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=o;var t=e(6),a=e(84),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=o;var t=e(6),a=e(136),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=o;var t=e(6),a=e(85),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=o;var t=e(6),a=e(137),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=o;var t=e(6),a=e(58),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){i.a=o;var t=e(6),a=e(138),r=e(0);function o(n,s){r.a(2,arguments);var u=t.a(s);return a.a(n,-u)}},function(l,i,e){e.d(i,"a",function(){return t}),e.d(i,"b",function(){return a});var t=Math.pow(10,8)*24*60*60*1e3,a=-t},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(442);e.d(i,"af",function(){return t.a});var a=e(448);e.d(i,"arDZ",function(){return a.a});var r=e(454);e.d(i,"arMA",function(){return r.a});var o=e(460);e.d(i,"arSA",function(){return o.a});var n=e(466);e.d(i,"az",function(){return n.a});var s=e(472);e.d(i,"be",function(){return s.a});var u=e(478);e.d(i,"bg",function(){return u.a});var d=e(484);e.d(i,"bn",function(){return d.a});var m=e(489);e.d(i,"ca",function(){return m.a});var f=e(495);e.d(i,"cs",function(){return f.a});var _=e(501);e.d(i,"cy",function(){return _.a});var c=e(507);e.d(i,"da",function(){return c.a});var v=e(513);e.d(i,"de",function(){return v.a});var g=e(519);e.d(i,"el",function(){return g.a});var P=e(525);e.d(i,"enAU",function(){return P.a});var h=e(527);e.d(i,"enCA",function(){return h.a});var y=e(530);e.d(i,"enGB",function(){return y.a});var W=e(532);e.d(i,"enIN",function(){return W.a});var T=e(534);e.d(i,"enNZ",function(){return T.a});var j=e(28);e.d(i,"enUS",function(){return j.a});var b=e(536);e.d(i,"eo",function(){return b.a});var C=e(542);e.d(i,"es",function(){return C.a});var I=e(548);e.d(i,"et",function(){return I.a});var M=e(554);e.d(i,"eu",function(){return M.a});var D=e(560);e.d(i,"faIR",function(){return D.a});var p=e(566);e.d(i,"fi",function(){return p.a});var w=e(572);e.d(i,"fr",function(){return w.a});var L=e(574);e.d(i,"frCA",function(){return L.a});var z=e(576);e.d(i,"frCH",function(){return z.a});var ne=e(582);e.d(i,"gd",function(){return ne.a});var te=e(588);e.d(i,"gl",function(){return te.a});var de=e(594);e.d(i,"gu",function(){return de.a});var ue=e(600);e.d(i,"he",function(){return ue.a});var oe=e(606);e.d(i,"hi",function(){return oe.a});var ie=e(611);e.d(i,"hr",function(){return ie.a});var le=e(617);e.d(i,"hu",function(){return le.a});var F=e(623);e.d(i,"hy",function(){return F.a});var S=e(629);e.d(i,"id",function(){return S.a});var X=e(635);e.d(i,"is",function(){return X.a});var J=e(641);e.d(i,"it",function(){return J.a});var V=e(647);e.d(i,"ja",function(){return V.a});var E=e(653);e.d(i,"ka",function(){return E.a});var O=e(659);e.d(i,"kk",function(){return O.a});var B=e(665);e.d(i,"kn",function(){return B.a});var A=e(671);e.d(i,"ko",function(){return A.a});var k=e(677);e.d(i,"lb",function(){return k.a});var U=e(683);e.d(i,"lt",function(){return U.a});var G=e(689);e.d(i,"lv",function(){return G.a});var ee=e(695);e.d(i,"mk",function(){return ee.a});var q=e(701);e.d(i,"ms",function(){return q.a});var re=e(707);e.d(i,"mt",function(){return re.a});var ce=e(713);e.d(i,"nb",function(){return ce.a});var he=e(719);e.d(i,"nl",function(){return he.a});var fe=e(725);e.d(i,"nlBE",function(){return fe.a});var ge=e(731);e.d(i,"nn",function(){return ge.a});var Ee=e(737);e.d(i,"pl",function(){return Ee.a});var x=e(743);e.d(i,"pt",function(){return x.a});var N=e(749);e.d(i,"ptBR",function(){return N.a});var Y=e(755);e.d(i,"ro",function(){return Y.a});var $=e(761);e.d(i,"ru",function(){return $.a});var Q=e(767);e.d(i,"sk",function(){return Q.a});var ae=e(773);e.d(i,"sl",function(){return ae.a});var me=e(779);e.d(i,"sr",function(){return me.a});var ve=e(785);e.d(i,"srLatn",function(){return ve.a});var pe=e(791);e.d(i,"sv",function(){return pe.a});var K=e(797);e.d(i,"ta",function(){return K.a});var Z=e(803);e.d(i,"te",function(){return Z.a});var se=e(809);e.d(i,"th",function(){return se.a});var _e=e(815);e.d(i,"tr",function(){return _e.a});var Pe=e(821);e.d(i,"ug",function(){return Pe.a});var Me=e(827);e.d(i,"uk",function(){return Me.a});var De=e(833);e.d(i,"uz",function(){return De.a});var We=e(839);e.d(i,"vi",function(){return We.a});var we=e(845);e.d(i,"zhCN",function(){return we.a});var Ue=e(851);e.d(i,"zhTW",function(){return Ue.a})},function(l,i,e){var t=e(443),a=e(444),r=e(445),o=e(446),n=e(447),s={code:"af",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"minder as 'n sekonde",other:"minder as {{count}} sekondes"},xSeconds:{one:"1 sekonde",other:"{{count}} sekondes"},halfAMinute:"'n halwe minuut",lessThanXMinutes:{one:"minder as 'n minuut",other:"minder as {{count}} minute"},xMinutes:{one:"'n minuut",other:"{{count}} minute"},aboutXHours:{one:"ongeveer 1 uur",other:"ongeveer {{count}} ure"},xHours:{one:"1 uur",other:"{{count}} ure"},xDays:{one:"1 dag",other:"{{count}} dae"},aboutXWeeks:{one:"ongeveer 1 week",other:"ongeveer {{count}} weke"},xWeeks:{one:"1 week",other:"{{count}} weke"},aboutXMonths:{one:"ongeveer 1 maand",other:"ongeveer {{count}} maande"},xMonths:{one:"1 maand",other:"{{count}} maande"},aboutXYears:{one:"ongeveer 1 jaar",other:"ongeveer {{count}} jaar"},xYears:{one:"1 jaar",other:"{{count}} jaar"},overXYears:{one:"meer as 1 jaar",other:"meer as {{count}} jaar"},almostXYears:{one:"byna 1 jaar",other:"byna {{count}} jaar"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"oor "+s:s+" gelede":s}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"yyyy/MM/dd"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'om' {{time}}",long:"{{date}} 'om' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'verlede' eeee 'om' p",yesterday:"'gister om' p",today:"'vandag om' p",tomorrow:"'môre om' p",nextWeek:"eeee 'om' p",other:"P"};function a(r){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["vC","nC"],abbreviated:["vC","nC"],wide:["voor Christus","na Christus"]},r={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["1ste kwartaal","2de kwartaal","3de kwartaal","4de kwartaal"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],wide:["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember"]},n={narrow:["S","M","D","W","D","V","S"],short:["So","Ma","Di","Wo","Do","Vr","Sa"],abbreviated:["Son","Maa","Din","Woe","Don","Vry","Sat"],wide:["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"]},s={narrow:{am:"vm",pm:"nm",midnight:"middernag",noon:"middaguur",morning:"oggend",afternoon:"middag",evening:"laat middag",night:"aand"},abbreviated:{am:"vm",pm:"nm",midnight:"middernag",noon:"middaguur",morning:"oggend",afternoon:"middag",evening:"laat middag",night:"aand"},wide:{am:"vm",pm:"nm",midnight:"middernag",noon:"middaguur",morning:"oggend",afternoon:"middag",evening:"laat middag",night:"aand"}},u={narrow:{am:"vm",pm:"nm",midnight:"middernag",noon:"uur die middag",morning:"uur die oggend",afternoon:"uur die middag",evening:"uur die aand",night:"uur die aand"},abbreviated:{am:"vm",pm:"nm",midnight:"middernag",noon:"uur die middag",morning:"uur die oggend",afternoon:"uur die middag",evening:"uur die aand",night:"uur die aand"},wide:{am:"vm",pm:"nm",midnight:"middernag",noon:"uur die middag",morning:"uur die oggend",afternoon:"uur die middag",evening:"uur die aand",night:"uur die aand"}};function d(f){var _=Number(f),c=_%100;if(c<20)switch(c){case 1:case 8:return _+"ste";default:return _+"de"}return _+"ste"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(ste|de)?/i,o=/\d+/i,n={narrow:/^([vn]\.? ?C\.?)/,abbreviated:/^([vn]\. ?C\.?)/,wide:/^((voor|na) Christus)/},s={any:[/^v/,/^n/]},u={narrow:/^[1234]/i,abbreviated:/^K[1234]/i,wide:/^[1234](st|d)e kwartaal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(Jan|Feb|Mrt|Apr|Mei|Jun|Jul|Aug|Sep|Okt|Nov|Dec)\.?/i,wide:/^(Januarie|Februarie|Maart|April|Mei|Junie|Julie|Augustus|September|Oktober|November|Desember)/i},f={narrow:[/^J/i,/^F/i,/^M/i,/^A/i,/^M/i,/^J/i,/^J/i,/^A/i,/^S/i,/^O/i,/^N/i,/^D/i],any:[/^Jan/i,/^Feb/i,/^Mrt/i,/^Apr/i,/^Mei/i,/^Jun/i,/^Jul/i,/^Aug/i,/^Sep/i,/^Okt/i,/^Nov/i,/^Dec/i]},_={narrow:/^[smdwv]/i,short:/^(So|Ma|Di|Wo|Do|Vr|Sa)/i,abbreviated:/^(Son|Maa|Din|Woe|Don|Vry|Sat)/i,wide:/^(Sondag|Maandag|Dinsdag|Woensdag|Donderdag|Vrydag|Saterdag)/i},c={narrow:[/^S/i,/^M/i,/^D/i,/^W/i,/^D/i,/^V/i,/^S/i],any:[/^So/i,/^Ma/i,/^Di/i,/^Wo/i,/^Do/i,/^Vr/i,/^Sa/i]},v={any:/^(vm|nm|middernag|(?:uur )?die (oggend|middag|aand))/i},g={any:{am:/^vm/i,pm:/^nm/i,midnight:/^middernag/i,noon:/^middaguur/i,morning:/oggend/i,afternoon:/middag/i,evening:/laat middag/i,night:/aand/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(449),a=e(450),r=e(451),o=e(452),n=e(453),s={code:"ar-DZ",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"أقل من ثانية واحدة",two:"أقل من ثانتين",threeToTen:"أقل من {{count}} ثواني",other:"أقل من {{count}} ثانية"},xSeconds:{one:"ثانية واحدة",two:"ثانتين",threeToTen:"{{count}} ثواني",other:"{{count}} ثانية"},halfAMinute:"نصف دقيقة",lessThanXMinutes:{one:"أقل من دقيقة",two:"أقل من دقيقتين",threeToTen:"أقل من {{count}} دقائق",other:"أقل من {{count}} دقيقة"},xMinutes:{one:"دقيقة واحدة",two:"دقيقتين",threeToTen:"{{count}} دقائق",other:"{{count}} دقيقة"},aboutXHours:{one:"ساعة واحدة تقريباً",two:"ساعتين تقريباً",threeToTen:"{{count}} ساعات تقريباً",other:"{{count}} ساعة تقريباً"},xHours:{one:"ساعة واحدة",two:"ساعتين",threeToTen:"{{count}} ساعات",other:"{{count}} ساعة"},xDays:{one:"يوم واحد",two:"يومين",threeToTen:"{{count}} أيام",other:"{{count}} يوم"},aboutXWeeks:{one:"أسبوع واحد تقريباً",two:"أسبوعين تقريباً",threeToTen:"{{count}} أسابيع تقريباً",other:"{{count}} أسبوع تقريباً"},xWeeks:{one:"أسبوع واحد",two:"أسبوعين",threeToTen:"{{count}} أسابيع",other:"{{count}} أسبوع"},aboutXMonths:{one:"شهر واحد تقريباً",two:"شهرين تقريباً",threeToTen:"{{count}} أشهر تقريباً",other:"{{count}} شهر تقريباً"},xMonths:{one:"شهر واحد",two:"شهرين",threeToTen:"{{count}} أشهر",other:"{{count}} شهر"},aboutXYears:{one:"عام واحد تقريباً",two:"عامين تقريباً",threeToTen:"{{count}} أعوام تقريباً",other:"{{count}} عام تقريباً"},xYears:{one:"عام واحد",two:"عامين",threeToTen:"{{count}} أعوام",other:"{{count}} عام"},overXYears:{one:"أكثر من عام",two:"أكثر من عامين",threeToTen:"أكثر من {{count}} أعوام",other:"أكثر من {{count}} عام"},almostXYears:{one:"عام واحد تقريباً",two:"عامين تقريباً",threeToTen:"{{count}} أعوام تقريباً",other:"{{count}} عام تقريباً"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:o===2?s=t[r].two:o<=10?s=t[r].threeToTen.replace("{{count}}",o):s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"في خلال "+s:"منذ "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'عند' {{time}}",long:"{{date}} 'عند' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'أخر' eeee 'عند' p",yesterday:"'أمس عند' p",today:"'اليوم عند' p",tomorrow:"'غداً عند' p",nextWeek:"eeee 'عند' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["ق","ب"],abbreviated:["ق.م.","ب.م."],wide:["قبل الميلاد","بعد الميلاد"]},r={narrow:["1","2","3","4"],abbreviated:["ر1","ر2","ر3","ر4"],wide:["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"]},o={narrow:["ج","ف","م","أ","م","ج","ج","أ","س","أ","ن","د"],abbreviated:["جانـ","فيفـ","مارس","أفريل","مايـ","جوانـ","جويـ","أوت","سبتـ","أكتـ","نوفـ","ديسـ"],wide:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"]},n={narrow:["ح","ن","ث","ر","خ","ج","س"],short:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],abbreviated:["أحد","اثنـ","ثلا","أربـ","خميـ","جمعة","سبت"],wide:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]},s={narrow:{am:"ص",pm:"م",midnight:"ن",noon:"ظ",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"},abbreviated:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"},wide:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"}},u={narrow:{am:"ص",pm:"م",midnight:"ن",noon:"ظ",morning:"في الصباح",afternoon:"بعد الظـهر",evening:"في المساء",night:"في الليل"},abbreviated:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"في الصباح",evening:"في المساء",night:"في الليل"},wide:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",afternoon:"بعد الظـهر",evening:"في المساء",night:"في الليل"}};function d(f){return String(f)}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,n={narrow:/^(ق|ب)/i,abbreviated:/^(ق\.?\s?م\.?|ق\.?\s?م\.?\s?|a\.?\s?d\.?|c\.?\s?)/i,wide:/^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i},s={any:[/^قبل/i,/^بعد/i]},u={narrow:/^[1234]/i,abbreviated:/^ر[1234]/i,wide:/^الربع [1234]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[جفمأسند]/i,abbreviated:/^(جان|فيف|مار|أفر|ماي|جوا|جوي|أوت|سبت|أكت|نوف|ديس)/i,wide:/^(جانفي|فيفري|مارس|أفريل|ماي|جوان|جويلية|أوت|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/i},f={narrow:[/^ج/i,/^ف/i,/^م/i,/^أ/i,/^م/i,/^ج/i,/^ج/i,/^أ/i,/^س/i,/^أ/i,/^ن/i,/^د/i],any:[/^جان/i,/^فيف/i,/^مار/i,/^أفر/i,/^ماي/i,/^جوا/i,/^جوي/i,/^أوت/i,/^سبت/i,/^أكت/i,/^نوف/i,/^ديس/i]},_={narrow:/^[حنثرخجس]/i,short:/^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,abbreviated:/^(أحد|اثن|ثلا|أرب|خمي|جمعة|سبت)/i,wide:/^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i},c={narrow:[/^ح/i,/^ن/i,/^ث/i,/^ر/i,/^خ/i,/^ج/i,/^س/i],wide:[/^الأحد/i,/^الاثنين/i,/^الثلاثاء/i,/^الأربعاء/i,/^الخميس/i,/^الجمعة/i,/^السبت/i],any:[/^أح/i,/^اث/i,/^ث/i,/^أر/i,/^خ/i,/^ج/i,/^س/i]},v={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(455),a=e(456),r=e(457),o=e(458),n=e(459),s={code:"ar-MA",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"أقل من ثانية واحدة",two:"أقل من ثانتين",threeToTen:"أقل من {{count}} ثواني",other:"أقل من {{count}} ثانية"},xSeconds:{one:"ثانية واحدة",two:"ثانتين",threeToTen:"{{count}} ثواني",other:"{{count}} ثانية"},halfAMinute:"نصف دقيقة",lessThanXMinutes:{one:"أقل من دقيقة",two:"أقل من دقيقتين",threeToTen:"أقل من {{count}} دقائق",other:"أقل من {{count}} دقيقة"},xMinutes:{one:"دقيقة واحدة",two:"دقيقتين",threeToTen:"{{count}} دقائق",other:"{{count}} دقيقة"},aboutXHours:{one:"ساعة واحدة تقريباً",two:"ساعتين تقريباً",threeToTen:"{{count}} ساعات تقريباً",other:"{{count}} ساعة تقريباً"},xHours:{one:"ساعة واحدة",two:"ساعتين",threeToTen:"{{count}} ساعات",other:"{{count}} ساعة"},xDays:{one:"يوم واحد",two:"يومين",threeToTen:"{{count}} أيام",other:"{{count}} يوم"},aboutXWeeks:{one:"أسبوع واحد تقريباً",two:"أسبوعين تقريباً",threeToTen:"{{count}} أسابيع تقريباً",other:"{{count}} أسبوع تقريباً"},xWeeks:{one:"أسبوع واحد",two:"أسبوعين",threeToTen:"{{count}} أسابيع",other:"{{count}} أسبوع"},aboutXMonths:{one:"شهر واحد تقريباً",two:"شهرين تقريباً",threeToTen:"{{count}} أشهر تقريباً",other:"{{count}} شهر تقريباً"},xMonths:{one:"شهر واحد",two:"شهرين",threeToTen:"{{count}} أشهر",other:"{{count}} شهر"},aboutXYears:{one:"عام واحد تقريباً",two:"عامين تقريباً",threeToTen:"{{count}} أعوام تقريباً",other:"{{count}} عام تقريباً"},xYears:{one:"عام واحد",two:"عامين",threeToTen:"{{count}} أعوام",other:"{{count}} عام"},overXYears:{one:"أكثر من عام",two:"أكثر من عامين",threeToTen:"أكثر من {{count}} أعوام",other:"أكثر من {{count}} عام"},almostXYears:{one:"عام واحد تقريباً",two:"عامين تقريباً",threeToTen:"{{count}} أعوام تقريباً",other:"{{count}} عام تقريباً"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:o===2?s=t[r].two:o<=10?s=t[r].threeToTen.replace("{{count}}",o):s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"في خلال "+s:"منذ "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'عند' {{time}}",long:"{{date}} 'عند' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'أخر' eeee 'عند' p",yesterday:"'أمس عند' p",today:"'اليوم عند' p",tomorrow:"'غداً عند' p",nextWeek:"eeee 'عند' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["ق","ب"],abbreviated:["ق.م.","ب.م."],wide:["قبل الميلاد","بعد الميلاد"]},r={narrow:["1","2","3","4"],abbreviated:["ر1","ر2","ر3","ر4"],wide:["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"]},o={narrow:["ي","ف","م","أ","م","ي","ي","غ","ش","أ","ن","د"],abbreviated:["ينا","فبر","مارس","أبريل","ماي","يونـ","يولـ","غشت","شتنـ","أكتـ","نونـ","دجنـ"],wide:["يناير","فبراير","مارس","أبريل","ماي","يونيو","يوليوز","غشت","شتنبر","أكتوبر","نونبر","دجنبر"]},n={narrow:["ح","ن","ث","ر","خ","ج","س"],short:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],abbreviated:["أحد","اثنـ","ثلا","أربـ","خميـ","جمعة","سبت"],wide:["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]},s={narrow:{am:"ص",pm:"م",midnight:"ن",noon:"ظ",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"},abbreviated:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"},wide:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"}},u={narrow:{am:"ص",pm:"م",midnight:"ن",noon:"ظ",morning:"في الصباح",afternoon:"بعد الظـهر",evening:"في المساء",night:"في الليل"},abbreviated:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"في الصباح",evening:"في المساء",night:"في الليل"},wide:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",afternoon:"بعد الظـهر",evening:"في المساء",night:"في الليل"}};function d(f){return String(f)}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,n={narrow:/^(ق|ب)/i,abbreviated:/^(ق\.?\s?م\.?|ق\.?\s?م\.?\s?|a\.?\s?d\.?|c\.?\s?)/i,wide:/^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i},s={any:[/^قبل/i,/^بعد/i]},u={narrow:/^[1234]/i,abbreviated:/^ر[1234]/i,wide:/^الربع [1234]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[يفمأمسند]/i,abbreviated:/^(ين|ف|مار|أب|ماي|يون|يول|غش|شت|أك|ن|د)/i,wide:/^(ين|ف|مار|أب|ماي|يون|يول|غش|شت|أك|ن|د)/i},f={narrow:[/^ي/i,/^ف/i,/^م/i,/^أ/i,/^م/i,/^ي/i,/^ي/i,/^غ/i,/^ش/i,/^أ/i,/^ن/i,/^د/i],any:[/^ين/i,/^فب/i,/^مار/i,/^أب/i,/^ماي/i,/^يون/i,/^يول/i,/^غشت/i,/^ش/i,/^أك/i,/^ن/i,/^د/i]},_={narrow:/^[حنثرخجس]/i,short:/^(أحد|إثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,abbreviated:/^(أحد|إثن|ثلا|أرب|خمي|جمعة|سبت)/i,wide:/^(الأحد|الإثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i},c={narrow:[/^ح/i,/^ن/i,/^ث/i,/^ر/i,/^خ/i,/^ج/i,/^س/i],wide:[/^الأحد/i,/^الإثنين/i,/^الثلاثاء/i,/^الأربعاء/i,/^الخميس/i,/^الجمعة/i,/^السبت/i],any:[/^أح/i,/^إث/i,/^ث/i,/^أر/i,/^خ/i,/^ج/i,/^س/i]},v={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(461),a=e(462),r=e(463),o=e(464),n=e(465),s={code:"ar-SA",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"أقل من ثانية واحدة",two:"أقل من ثانتين",threeToTen:"أقل من {{count}} ثواني",other:"أقل من {{count}} ثانية"},xSeconds:{one:"ثانية واحدة",two:"ثانتين",threeToTen:"{{count}} ثواني",other:"{{count}} ثانية"},halfAMinute:"نصف دقيقة",lessThanXMinutes:{one:"أقل من دقيقة",two:"أقل من دقيقتين",threeToTen:"أقل من {{count}} دقائق",other:"أقل من {{count}} دقيقة"},xMinutes:{one:"دقيقة واحدة",two:"دقيقتين",threeToTen:"{{count}} دقائق",other:"{{count}} دقيقة"},aboutXHours:{one:"ساعة واحدة تقريباً",two:"ساعتين تقريباً",threeToTen:"{{count}} ساعات تقريباً",other:"{{count}} ساعة تقريباً"},xHours:{one:"ساعة واحدة",two:"ساعتين",threeToTen:"{{count}} ساعات",other:"{{count}} ساعة"},xDays:{one:"يوم واحد",two:"يومين",threeToTen:"{{count}} أيام",other:"{{count}} يوم"},aboutXWeeks:{one:"أسبوع واحد تقريباً",two:"أسبوعين تقريباً",threeToTen:"{{count}} أسابيع تقريباً",other:"{{count}} أسبوع تقريباً"},xWeeks:{one:"أسبوع واحد",two:"أسبوعين",threeToTen:"{{count}} أسابيع",other:"{{count}} أسبوع"},aboutXMonths:{one:"شهر واحد تقريباً",two:"شهرين تقريباً",threeToTen:"{{count}} أشهر تقريباً",other:"{{count}} شهر تقريباً"},xMonths:{one:"شهر واحد",two:"شهرين",threeToTen:"{{count}} أشهر",other:"{{count}} شهر"},aboutXYears:{one:"عام واحد تقريباً",two:"عامين تقريباً",threeToTen:"{{count}} أعوام تقريباً",other:"{{count}} عام تقريباً"},xYears:{one:"عام واحد",two:"عامين",threeToTen:"{{count}} أعوام",other:"{{count}} عام"},overXYears:{one:"أكثر من عام",two:"أكثر من عامين",threeToTen:"أكثر من {{count}} أعوام",other:"أكثر من {{count}} عام"},almostXYears:{one:"عام واحد تقريباً",two:"عامين تقريباً",threeToTen:"{{count}} أعوام تقريباً",other:"{{count}} عام تقريباً"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:o===2?s=t[r].two:o<=10?s=t[r].threeToTen.replace("{{count}}",o):s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"في خلال "+s:"منذ "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'عند' {{time}}",long:"{{date}} 'عند' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'أخر' eeee 'عند' p",yesterday:"'أمس عند' p",today:"'اليوم عند' p",tomorrow:"'غداً عند' p",nextWeek:"eeee 'عند' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["ق","ب"],abbreviated:["ق.م.","ب.م."],wide:["قبل الميلاد","بعد الميلاد"]},r={narrow:["1","2","3","4"],abbreviated:["ر1","ر2","ر3","ر4"],wide:["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"]},o={narrow:["ي","ف","م","أ","م","ي","ي","أ","س","أ","ن","د"],abbreviated:["ينا","فبر","مارس","أبريل","مايو","يونـ","يولـ","أغسـ","سبتـ","أكتـ","نوفـ","ديسـ"],wide:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"]},n={narrow:["ح","ن","ث","ر","خ","ج","س"],short:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],abbreviated:["أحد","اثنـ","ثلا","أربـ","خميـ","جمعة","سبت"],wide:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]},s={narrow:{am:"ص",pm:"م",midnight:"ن",noon:"ظ",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"},abbreviated:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"},wide:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"صباحاً",afternoon:"بعد الظهر",evening:"مساءاً",night:"ليلاً"}},u={narrow:{am:"ص",pm:"م",midnight:"ن",noon:"ظ",morning:"في الصباح",afternoon:"بعد الظـهر",evening:"في المساء",night:"في الليل"},abbreviated:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",morning:"في الصباح",evening:"في المساء",night:"في الليل"},wide:{am:"ص",pm:"م",midnight:"نصف الليل",noon:"ظهر",afternoon:"بعد الظـهر",evening:"في المساء",night:"في الليل"}};function d(f){return String(f)}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,n={narrow:/^(ق|ب)/i,abbreviated:/^(ق\.?\s?م\.?|ق\.?\s?م\.?\s?|a\.?\s?d\.?|c\.?\s?)/i,wide:/^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i},s={any:[/^قبل/i,/^بعد/i]},u={narrow:/^[1234]/i,abbreviated:/^ر[1234]/i,wide:/^الربع [1234]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[يفمأمسند]/i,abbreviated:/^(ين|ف|مار|أب|ماي|يون|يول|أغ|س|أك|ن|د)/i,wide:/^(ين|ف|مار|أب|ماي|يون|يول|أغ|س|أك|ن|د)/i},f={narrow:[/^ي/i,/^ف/i,/^م/i,/^أ/i,/^م/i,/^ي/i,/^ي/i,/^أ/i,/^س/i,/^أ/i,/^ن/i,/^د/i],any:[/^ين/i,/^ف/i,/^مار/i,/^أب/i,/^ماي/i,/^يون/i,/^يول/i,/^أغ/i,/^س/i,/^أك/i,/^ن/i,/^د/i]},_={narrow:/^[حنثرخجس]/i,short:/^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,abbreviated:/^(أحد|اثن|ثلا|أرب|خمي|جمعة|سبت)/i,wide:/^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i},c={narrow:[/^ح/i,/^ن/i,/^ث/i,/^ر/i,/^خ/i,/^ج/i,/^س/i],wide:[/^الأحد/i,/^الاثنين/i,/^الثلاثاء/i,/^الأربعاء/i,/^الخميس/i,/^الجمعة/i,/^السبت/i],any:[/^أح/i,/^اث/i,/^ث/i,/^أر/i,/^خ/i,/^ج/i,/^س/i]},v={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(467),a=e(468),r=e(469),o=e(470),n=e(471),s={code:"az",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"bir saniyədən az",other:"{{count}} bir saniyədən az"},xSeconds:{one:"1 saniyə",other:"{{count}} saniyə"},halfAMinute:"yarım dəqiqə",lessThanXMinutes:{one:"bir dəqiqədən az",other:"{{count}} bir dəqiqədən az"},xMinutes:{one:"bir dəqiqə",other:"{{count}} dəqiqə"},aboutXHours:{one:"təxminən 1 saat",other:"təxminən {{count}} saat"},xHours:{one:"1 saat",other:"{{count}} saat"},xDays:{one:"1 gün",other:"{{count}} gün"},aboutXWeeks:{one:"təxminən 1 həftə",other:"təxminən {{count}} həftə"},xWeeks:{one:"1 həftə",other:"{{count}} həftə"},aboutXMonths:{one:"təxminən 1 ay",other:"təxminən {{count}} ay"},xMonths:{one:"1 ay",other:"{{count}} ay"},aboutXYears:{one:"təxminən 1 il",other:"təxminən {{count}} il"},xYears:{one:"1 il",other:"{{count}} il"},overXYears:{one:"1 ildən çox",other:"{{count}} ildən çox"},almostXYears:{one:"demək olar ki 1 il",other:"demək olar ki {{count}} il"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+" əvvəl":s+" sonra":s}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM y 'il'",long:"do MMMM y 'il'",medium:"d MMM y 'il'",short:"dd.MM.yyyy"},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={full:"{{date}} {{time}} - 'də'",long:"{{date}} {{time}} - 'də'",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'sonuncu' eeee p -'də'",yesterday:"'dünən' p -'də'",today:"'bugün' p -'də'",tomorrow:"'sabah' p -'də'",nextWeek:"eeee p -'də'",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Hz. İsa'dan öncə","Anno Domini"]},r={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["1ci kvartal","2ci kvartal","3cü kvartal","4cü kvartal"]},o={narrow:["Y","F","M","A","M","I","I","A","S","O","N","D"],abbreviated:["Yan","Fev","Mar","Apr","May","İyun","İyul","Avq","Sen","Okt","Noy","Dek"],wide:["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"]},n={narrow:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],short:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],abbreviated:["Baz","Baz.e","Çər.a","Çər","Cüm.a","Cüm","Şə"],wide:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"]},s={narrow:{am:"am",pm:"pm",midnight:"gecəyarı",noon:"gün",morning:"səhər",afternoon:"gündüz",evening:"axşam",night:"gecə"},abbreviated:{am:"AM",pm:"PM",midnight:"gecəyarı",noon:"gün",morning:"səhər",afternoon:"gündüz",evening:"axşam",night:"gecə"},wide:{am:"a.m.",pm:"p.m.",midnight:"gecəyarı",noon:"gün",morning:"səhər",afternoon:"gündüz",evening:"axşam",night:"gecə"}},u={narrow:{am:"a",pm:"p",midnight:"gecəyarı",noon:"gün",morning:"səhər",afternoon:"gündüz",evening:"axşam",night:"gecə"},abbreviated:{am:"AM",pm:"PM",midnight:"gecəyarı",noon:"gün",morning:"səhər",afternoon:"gündüz",evening:"axşam",night:"gecə"},wide:{am:"a.m.",pm:"p.m.",midnight:"gecəyarı",noon:"gün",morning:"səhər",afternoon:"gündüz",evening:"axşam",night:"gecə"}},d={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};function m(c){if(c===0)return c+"-ıncı";var v=c%10,g=c%100-v,P=c>=100?100:null;return d[v]||d[g]||d[P]}function f(c,v){var g=Number(c),P=m(g);return g+P}var _={ordinalNumber:f,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(c){return Number(c)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=_},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(-?(ci|inci|nci|uncu|üncü|ncı))?/i,o=/\d+/i,n={narrow:/^(b|a)$/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)$/i,wide:/^(Hz. İsa'dan öncə|ümumi eradan əvvəl|anno domini|ümumi dövr)$/i},s={any:[/^b$/i,/^(a|c)$/i]},u={narrow:/^[1234]$/i,abbreviated:/^K[1234]$/i,wide:/^[1234](ci)? kvartal$/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[(?-i)yfmaisond]$/i,abbreviated:/^(Yan|Fev|Mar|Apr|May|İyun|İyul|Avq|Sen|Okt|Noy|Dek)$/i,wide:/^(Yanvar|Fevral|Mart|Aprel|May|İyun|İyul|Avgust|Sentyabr|Oktyabr|Noyabr|Dekabr)$/i},f={narrow:[/^[(?-i)y]$/i,/^[(?-i)f]$/i,/^[(?-i)m]$/i,/^[(?-i)a]$/i,/^[(?-i)m]$/i,/^[(?-i)i]$/i,/^[(?-i)i]$/i,/^[(?-i)a]$/i,/^[(?-i)s]$/i,/^[(?-i)o]$/i,/^[(?-i)n]$/i,/^[(?-i)d]$/i],abbreviated:[/^Yan$/i,/^Fev$/i,/^Mar$/i,/^Apr$/i,/^May$/i,/^İyun$/i,/^İyul$/i,/^Avg$/i,/^Sen$/i,/^Okt$/i,/^Noy$/i,/^Dek$/i],wide:[/^Yanvar$/i,/^Fevral$/i,/^Mart$/i,/^Aprel$/i,/^May$/i,/^İyun$/i,/^İyul$/i,/^Avgust$/i,/^Sentyabr$/i,/^Oktyabr$/i,/^Noyabr$/i,/^Dekabr$/i]},_={narrow:/^(B\.|B\.e|Ç\.a|Ç\.|C\.a|C\.|Ş\.)$/i,short:/^(B\.|B\.e|Ç\.a|Ç\.|C\.a|C\.|Ş\.)$/i,abbreviated:/^(Baz\.e|Çər|Çər\.a|Cüm|Cüm\.a|Şə)$/i,wide:/^(Bazar|Bazar ertəsi|Çərşənbə axşamı|Çərşənbə|Cümə axşamı|Cümə|Şənbə)$/i},c={narrow:[/^B\.$/i,/^B\.e$/i,/^Ç\.a$/i,/^Ç\.$/i,/^C\.a$/i,/^C\.$/i,/^Ş\.$/i],abbreviated:[/^Baz\.e$/i,/^Çər$/i,/^Çər\.a$/i,/^Cüm$/i,/^Cüm\.a$/i,/^Şə$/i],wide:[/^Bazar$/i,/^Bazar ertəsi$/i,/^Çərşənbə axşamı$/i,/^Çərşənbə$/i,/^Cümə axşamı$/i,/^Cümə$/i,/^Şənbə$/i],any:[/^B\.$/i,/^B\.e$/i,/^Ç\.a$/i,/^Ç\.$/i,/^C\.a$/i,/^C\.$/i,/^Ş\.$/i]},v={narrow:/^(a|p|gecəyarı|gün|səhər|gündüz|axşam|gecə)$/i,any:/^(am|pm|a\.m\.|p\.m\.|AM|PM|gecəyarı|gün|səhər|gündüz|axşam|gecə)$/i},g={any:{am:/^a$/i,pm:/^p$/i,midnight:/^gecəyarı$/i,noon:/^gün$/i,morning:/səhər$/i,afternoon:/gündüz$/i,evening:/axşam$/i,night:/gecə$/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(473),a=e(474),r=e(475),o=e(476),n=e(477),s={code:"be",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=o;function t(n,s){if(n.one!==void 0&&s===1)return n.one;var u=s%10,d=s%100;return u===1&&d!==11?n.singularNominative.replace("{{count}}",s):u>=2&&u<=4&&(d<10||d>20)?n.singularGenitive.replace("{{count}}",s):n.pluralGenitive.replace("{{count}}",s)}function a(n){return function(s,u){return u.addSuffix?u.comparison>0?n.future?t(n.future,s):"праз "+t(n.regular,s):n.past?t(n.past,s):t(n.regular,s)+" таму":t(n.regular,s)}}var r={lessThanXSeconds:a({regular:{one:"менш за секунду",singularNominative:"менш за {{count}} секунду",singularGenitive:"менш за {{count}} секунды",pluralGenitive:"менш за {{count}} секунд"},future:{one:"менш, чым праз секунду",singularNominative:"менш, чым праз {{count}} секунду",singularGenitive:"менш, чым праз {{count}} секунды",pluralGenitive:"менш, чым праз {{count}} секунд"}}),xSeconds:a({regular:{singularNominative:"{{count}} секунда",singularGenitive:"{{count}} секунды",pluralGenitive:"{{count}} секунд"},past:{singularNominative:"{{count}} секунду таму",singularGenitive:"{{count}} секунды таму",pluralGenitive:"{{count}} секунд таму"},future:{singularNominative:"праз {{count}} секунду",singularGenitive:"праз {{count}} секунды",pluralGenitive:"праз {{count}} секунд"}}),halfAMinute:function(n,s){return s.addSuffix?s.comparison>0?"праз паўхвіліны":"паўхвіліны таму":"паўхвіліны"},lessThanXMinutes:a({regular:{one:"менш за хвіліну",singularNominative:"менш за {{count}} хвіліну",singularGenitive:"менш за {{count}} хвіліны",pluralGenitive:"менш за {{count}} хвілін"},future:{one:"менш, чым праз хвіліну",singularNominative:"менш, чым праз {{count}} хвіліну",singularGenitive:"менш, чым праз {{count}} хвіліны",pluralGenitive:"менш, чым праз {{count}} хвілін"}}),xMinutes:a({regular:{singularNominative:"{{count}} хвіліна",singularGenitive:"{{count}} хвіліны",pluralGenitive:"{{count}} хвілін"},past:{singularNominative:"{{count}} хвіліну таму",singularGenitive:"{{count}} хвіліны таму",pluralGenitive:"{{count}} хвілін таму"},future:{singularNominative:"праз {{count}} хвіліну",singularGenitive:"праз {{count}} хвіліны",pluralGenitive:"праз {{count}} хвілін"}}),aboutXHours:a({regular:{singularNominative:"каля {{count}} гадзіны",singularGenitive:"каля {{count}} гадзін",pluralGenitive:"каля {{count}} гадзін"},future:{singularNominative:"прыблізна праз {{count}} гадзіну",singularGenitive:"прыблізна праз {{count}} гадзіны",pluralGenitive:"прыблізна праз {{count}} гадзін"}}),xHours:a({regular:{singularNominative:"{{count}} гадзіна",singularGenitive:"{{count}} гадзіны",pluralGenitive:"{{count}} гадзін"},past:{singularNominative:"{{count}} гадзіну таму",singularGenitive:"{{count}} гадзіны таму",pluralGenitive:"{{count}} гадзін таму"},future:{singularNominative:"праз {{count}} гадзіну",singularGenitive:"праз {{count}} гадзіны",pluralGenitive:"праз {{count}} гадзін"}}),xDays:a({regular:{singularNominative:"{{count}} дзень",singularGenitive:"{{count}} дні",pluralGenitive:"{{count}} дзён"}}),aboutXWeeks:a({regular:{singularNominative:"каля {{count}} месяца",singularGenitive:"каля {{count}} месяцаў",pluralGenitive:"каля {{count}} месяцаў"},future:{singularNominative:"прыблізна праз {{count}} месяц",singularGenitive:"прыблізна праз {{count}} месяцы",pluralGenitive:"прыблізна праз {{count}} месяцаў"}}),xWeeks:a({regular:{singularNominative:"{{count}} месяц",singularGenitive:"{{count}} месяцы",pluralGenitive:"{{count}} месяцаў"}}),aboutXMonths:a({regular:{singularNominative:"каля {{count}} месяца",singularGenitive:"каля {{count}} месяцаў",pluralGenitive:"каля {{count}} месяцаў"},future:{singularNominative:"прыблізна праз {{count}} месяц",singularGenitive:"прыблізна праз {{count}} месяцы",pluralGenitive:"прыблізна праз {{count}} месяцаў"}}),xMonths:a({regular:{singularNominative:"{{count}} месяц",singularGenitive:"{{count}} месяцы",pluralGenitive:"{{count}} месяцаў"}}),aboutXYears:a({regular:{singularNominative:"каля {{count}} года",singularGenitive:"каля {{count}} гадоў",pluralGenitive:"каля {{count}} гадоў"},future:{singularNominative:"прыблізна праз {{count}} год",singularGenitive:"прыблізна праз {{count}} гады",pluralGenitive:"прыблізна праз {{count}} гадоў"}}),xYears:a({regular:{singularNominative:"{{count}} год",singularGenitive:"{{count}} гады",pluralGenitive:"{{count}} гадоў"}}),overXYears:a({regular:{singularNominative:"больш за {{count}} год",singularGenitive:"больш за {{count}} гады",pluralGenitive:"больш за {{count}} гадоў"},future:{singularNominative:"больш, чым праз {{count}} год",singularGenitive:"больш, чым праз {{count}} гады",pluralGenitive:"больш, чым праз {{count}} гадоў"}}),almostXYears:a({regular:{singularNominative:"амаль {{count}} год",singularGenitive:"амаль {{count}} гады",pluralGenitive:"амаль {{count}} гадоў"},future:{singularNominative:"амаль праз {{count}} год",singularGenitive:"амаль праз {{count}} гады",pluralGenitive:"амаль праз {{count}} гадоў"}})};function o(n,s,u){return u=u||{},r[n](s,u)}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM y 'г.'",long:"d MMMM y 'г.'",medium:"d MMM y 'г.'",short:"dd.MM.y"},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={any:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"any"})};i.a=n},function(l,i,e){i.a=u;var t=e(13),a=["нядзелю","панядзелак","аўторак","сераду","чацвер","пятніцу","суботу"];function r(d){var m=a[d];switch(d){case 0:case 3:case 5:case 6:return"'у мінулую "+m+" а' p";case 1:case 2:case 4:return"'у мінулы "+m+" а' p"}}function o(d){var m=a[d];return"'у "+m+" а' p"}function n(d){var m=a[d];switch(d){case 0:case 3:case 5:case 6:return"'у наступную "+m+" а' p";case 1:case 2:case 4:return"'у наступны "+m+" а' p"}}var s={lastWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):r(_)},yesterday:"'учора а' p",today:"'сёння а' p",tomorrow:"'заўтра а' p",nextWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):n(_)},other:"P"};function u(d,m,f,_){var c=s[d];return typeof c=="function"?c(m,f,_):c}},function(l,i,e){var t=e(3),a={narrow:["да н.э.","н.э."],abbreviated:["да н. э.","н. э."],wide:["да нашай эры","нашай эры"]},r={narrow:["1","2","3","4"],abbreviated:["1-ы кв.","2-і кв.","3-і кв.","4-ы кв."],wide:["1-ы квартал","2-і квартал","3-і квартал","4-ы квартал"]},o={narrow:["С","Л","С","К","М","Ч","Л","Ж","В","К","Л","С"],abbreviated:["студз.","лют.","сак.","крас.","май","чэрв.","ліп.","жн.","вер.","кастр.","ліст.","снеж."],wide:["студзень","люты","сакавік","красавік","май","чэрвень","ліпень","жнівень","верасень","кастрычнік","лістапад","снежань"]},n={narrow:["С","Л","С","К","М","Ч","Л","Ж","В","К","Л","С"],abbreviated:["студз.","лют.","сак.","крас.","мая","чэрв.","ліп.","жн.","вер.","кастр.","ліст.","снеж."],wide:["студзеня","лютага","сакавіка","красавіка","мая","чэрвеня","ліпеня","жніўня","верасня","кастрычніка","лістапада","снежня"]},s={narrow:["Н","П","А","С","Ч","П","С"],short:["нд","пн","аў","ср","чц","пт","сб"],abbreviated:["нядз","пан","аўт","сер","чац","пят","суб"],wide:["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"]},u={narrow:{am:"ДП",pm:"ПП",midnight:"поўн.",noon:"поўд.",morning:"ран.",afternoon:"дзень",evening:"веч.",night:"ноч"},abbreviated:{am:"ДП",pm:"ПП",midnight:"поўн.",noon:"поўд.",morning:"ран.",afternoon:"дзень",evening:"веч.",night:"ноч"},wide:{am:"ДП",pm:"ПП",midnight:"поўнач",noon:"поўдзень",morning:"раніца",afternoon:"дзень",evening:"вечар",night:"ноч"}},d={narrow:{am:"ДП",pm:"ПП",midnight:"поўн.",noon:"поўд.",morning:"ран.",afternoon:"дня",evening:"веч.",night:"ночы"},abbreviated:{am:"ДП",pm:"ПП",midnight:"поўн.",noon:"поўд.",morning:"ран.",afternoon:"дня",evening:"веч.",night:"ночы"},wide:{am:"ДП",pm:"ПП",midnight:"поўнач",noon:"поўдзень",morning:"раніцы",afternoon:"дня",evening:"вечара",night:"ночы"}};function m(_,c){var v=c||{},g=String(v.unit),P=Number(_),h;return g==="date"?h="-га":g==="hour"||g==="minute"||g==="second"?h="-я":h=(P%10===2||P%10===3)&&P%100!==12&&P%100!==13?"-і":"-ы",P+h}var f={ordinalNumber:m,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"any",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(-?(е|я|га|і|ы|ае|ая|яя|шы|гі|ці|ты|мы))?/i,o=/\d+/i,n={narrow:/^((да )?н\.?\s?э\.?)/i,abbreviated:/^((да )?н\.?\s?э\.?)/i,wide:/^(да нашай эры|нашай эры|наша эра)/i},s={any:[/^д/i,/^н/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыі]?)? кв.?/i,wide:/^[1234](-?[ыі]?)? квартал/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[слкмчжв]/i,abbreviated:/^(студз|лют|сак|крас|ма[йя]|чэрв|ліп|жн|вер|кастр|ліст|снеж)\.?/i,wide:/^(студзен[ья]|лют(ы|ага)|сакавіка?|красавіка?|ма[йя]|чэрвен[ья]|ліпен[ья]|жні(вень|ўня)|верас(ень|ня)|кастрычніка?|лістапада?|снеж(ань|ня))/i},f={narrow:[/^с/i,/^л/i,/^с/i,/^к/i,/^м/i,/^ч/i,/^л/i,/^ж/i,/^в/i,/^к/i,/^л/i,/^с/i],any:[/^ст/i,/^лю/i,/^са/i,/^кр/i,/^ма/i,/^ч/i,/^ліп/i,/^ж/i,/^в/i,/^ка/i,/^ліс/i,/^сн/i]},_={narrow:/^[нпасч]/i,short:/^(нд|ня|пн|па|аў|ат|ср|се|чц|ча|пт|пя|сб|су)\.?/i,abbreviated:/^(нядз?|ндз|пнд|пан|аўт|срд|сер|чцв|чац|птн|пят|суб).?/i,wide:/^(нядзел[яі]|панядзел(ак|ка)|аўтор(ак|ка)|серад[аы]|чацв(ер|ярга)|пятніц[аы]|субот[аы])/i},c={narrow:[/^н/i,/^п/i,/^а/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^н/i,/^п[ан]/i,/^а/i,/^с[ер]/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},v={narrow:/^([дп]п|поўн\.?|поўд\.?|ран\.?|дзень|дня|веч\.?|ночы?)/i,abbreviated:/^([дп]п|поўн\.?|поўд\.?|ран\.?|дзень|дня|веч\.?|ночы?)/i,wide:/^([дп]п|поўнач|поўдзень|раніц[аы]|дзень|дня|вечара?|ночы?)/i},g={any:{am:/^дп/i,pm:/^пп/i,midnight:/^поўн/i,noon:/^поўд/i,morning:/^р/i,afternoon:/^д[зн]/i,evening:/^в/i,night:/^н/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"wide",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(479),a=e(480),r=e(481),o=e(482),n=e(483),s={code:"bg",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"по-малко от секунда",other:"по-малко от {{count}} секунди"},xSeconds:{one:"1 секунда",other:"{{count}} секунди"},halfAMinute:"половин минута",lessThanXMinutes:{one:"по-малко от минута",other:"по-малко от {{count}} минути"},xMinutes:{one:"1 минута",other:"{{count}} минути"},aboutXHours:{one:"около час",other:"около {{count}} часа"},xHours:{one:"1 час",other:"{{count}} часа"},xDays:{one:"1 ден",other:"{{count}} дни"},aboutXWeeks:{one:"около седмица",other:"около {{count}} седмици"},xWeeks:{one:"1 седмица",other:"{{count}} седмици"},aboutXMonths:{one:"около месец",other:"около {{count}} месеца"},xMonths:{one:"1 месец",other:"{{count}} месеца"},aboutXYears:{one:"около година",other:"около {{count}} години"},xYears:{one:"1 година",other:"{{count}} години"},overXYears:{one:"над година",other:"над {{count}} години"},almostXYears:{one:"почти година",other:"почти {{count}} години"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"след "+s:"преди "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, dd MMMM yyyy",long:"dd MMMM yyyy",medium:"dd MMM yyyy",short:"dd/MM/yyyy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"H:mm"},o={any:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"any"})};i.a=n},function(l,i,e){i.a=u;var t=e(13),a=["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"];function r(d){var m=a[d];switch(d){case 0:case 3:case 6:return"'миналата "+m+" в' p";case 1:case 2:case 4:case 5:return"'миналия "+m+" в' p"}}function o(d){var m=a[d];return d===2?"'във "+m+" в' p":"'в "+m+" в' p"}function n(d){var m=a[d];switch(d){case 0:case 3:case 6:return"'следващата "+m+" в' p";case 1:case 2:case 4:case 5:return"'следващия "+m+" в' p"}}var s={lastWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):r(_)},yesterday:"'вчера в' p",today:"'днес в' p",tomorrow:"'утре в' p",nextWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):n(_)},other:"P"};function u(d,m,f,_){var c=s[d];return typeof c=="function"?c(m,f,_):c}},function(l,i,e){var t=e(3),a={narrow:["пр.н.е.","н.е."],abbreviated:["преди н. е.","н. е."],wide:["преди новата ера","новата ера"]},r={narrow:["1","2","3","4"],abbreviated:["1-во тримес.","2-ро тримес.","3-то тримес.","4-то тримес."],wide:["1-во тримесечие","2-ро тримесечие","3-то тримесечие","4-то тримесечие"]},o={abbreviated:["яну","фев","мар","апр","май","юни","юли","авг","сеп","окт","ное","дек"],wide:["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември"]},n={narrow:["Н","П","В","С","Ч","П","С"],short:["нд","пн","вт","ср","чт","пт","сб"],abbreviated:["нед","пон","вто","сря","чет","пет","съб"],wide:["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"]},s={wide:{am:"преди обяд",pm:"след обяд",midnight:"в полунощ",noon:"на обяд",morning:"сутринта",afternoon:"следобед",evening:"вечерта",night:"през нощта"}};function u(c){return c==="year"||c==="week"||c==="minute"||c==="second"}function d(c){return c==="quarter"}function m(c,v,g,P,h){var y=d(v)?h:u(v)?P:g;return c+"-"+y}function f(c,v){var g=v||{},P=String(g.unit),h=Number(c);if(h===0)return m(0,P,"ев","ева","ево");if(h%1e3===0)return m(h,P,"ен","на","но");if(h%100===0)return m(h,P,"тен","тна","тно");var y=h%100;if(y>20||y<10)switch(y%10){case 1:return m(h,P,"ви","ва","во");case 2:return m(h,P,"ри","ра","ро");case 7:case 8:return m(h,P,"ми","ма","мо")}return m(h,P,"ти","та","то")}var _={ordinalNumber:f,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(c){return Number(c)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=_},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)(-?[врмт][аи]|-?т?(ен|на)|-?(ев|ева))?/i,o=/\d+/i,n={narrow:/^((пр)?н\.?\s?е\.?)/i,abbreviated:/^((пр)?н\.?\s?е\.?)/i,wide:/^(преди новата ера|новата ера|нова ера)/i},s={any:[/^п/i,/^н/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234](-?[врт]?o?)? тримес.?/i,wide:/^[1234](-?[врт]?о?)? тримесечие/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[нпвсч]/i,short:/^(нд|пн|вт|ср|чт|пт|сб)/i,abbreviated:/^(нед|пон|вто|сря|чет|пет|съб)/i,wide:/^(неделя|понеделник|вторник|сряда|четвъртък|петък|събота)/i},f={narrow:[/^н/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^н[ед]/i,/^п[он]/i,/^вт/i,/^ср/i,/^ч[ет]/i,/^п[ет]/i,/^с[ъб]/i]},_={abbreviated:/^(яну|фев|мар|апр|май|юни|юли|авг|сеп|окт|ное|дек)/i,wide:/^(януари|февруари|март|април|май|юни|юли|август|септември|октомври|ноември|декември)/i},c={any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^май/i,/^юн/i,/^юл/i,/^ав/i,/^се/i,/^окт/i,/^но/i,/^де/i]},v={any:/^(преди о|след о|в по|на о|през|веч|сут|следо)/i},g={any:{am:/^преди о/i,pm:/^след о/i,midnight:/^в пол/i,noon:/^на об/i,morning:/^сут/i,afternoon:/^следо/i,evening:/^веч/i,night:/^през н/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),day:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(485),a=e(486),r=e(487),o=e(186),n=e(488),s={code:"bn",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=r;var t=e(186),a={lessThanXSeconds:{one:"প্রায় ১ সেকেন্ড",other:"প্রায় {{count}} সেকেন্ড"},xSeconds:{one:"১ সেকেন্ড",other:"{{count}} সেকেন্ড"},halfAMinute:"আধ মিনিট",lessThanXMinutes:{one:"প্রায় ১ মিনিট",other:"প্রায় {{count}} মিনিট"},xMinutes:{one:"১ মিনিট",other:"{{count}} মিনিট"},aboutXHours:{one:"প্রায় ১ ঘন্টা",other:"প্রায় {{count}} ঘন্টা"},xHours:{one:"১ ঘন্টা",other:"{{count}} ঘন্টা"},xDays:{one:"১ দিন",other:"{{count}} দিন"},aboutXWeeks:{one:"প্রায় ১ সপ্তাহ",other:"প্রায় {{count}} সপ্তাহ"},xWeeks:{one:"১ সপ্তাহ",other:"{{count}} সপ্তাহ"},aboutXMonths:{one:"প্রায় ১ মাস",other:"প্রায় {{count}} মাস"},xMonths:{one:"১ মাস",other:"{{count}} মাস"},aboutXYears:{one:"প্রায় ১ বছর",other:"প্রায় {{count}} বছর"},xYears:{one:"১ বছর",other:"{{count}} বছর"},overXYears:{one:"১ বছরের বেশি",other:"{{count}} বছরের বেশি"},almostXYears:{one:"প্রায় ১ বছর",other:"প্রায় {{count}} বছর"}};function r(o,n,s){s=s||{};var u;return typeof a[o]=="string"?u=a[o]:n===1?u=a[o].one:u=a[o].other.replace("{{count}}",t.a.numberToLocale(n)),s.addSuffix?s.comparison>0?u+" এর মধ্যে":u+" আগে":u}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} {{time}} 'সময়'",long:"{{date}} {{time}} 'সময়'",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'গত' eeee 'সময়' p",yesterday:"'গতকাল' 'সময়' p",today:"'আজ' 'সময়' p",tomorrow:"'আগামীকাল' 'সময়' p",nextWeek:"eeee 'সময়' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(ম|য়|র্থ|ষ্ঠ|শে|ই|তম)?/i,o=/\d+/i,n={narrow:/^(খ্রিঃপূঃ|খ্রিঃ)/i,abbreviated:/^(খ্রিঃপূর্ব|খ্রিঃ)/i,wide:/^(খ্রিস্টপূর্ব|খ্রিস্টাব্দ)/i},s={narrow:[/^খ্রিঃপূঃ/i,/^খ্রিঃ/i],abbreviated:[/^খ্রিঃপূর্ব/i,/^খ্রিঃ/i],wide:[/^খ্রিস্টপূর্ব/i,/^খ্রিস্টাব্দ/i]},u={narrow:/^[১২৩৪]/i,abbreviated:/^[১২৩৪]ত্রৈ/i,wide:/^[১২৩৪](ম|য়|র্থ)? ত্রৈমাসিক/i},d={any:[/১/i,/২/i,/৩/i,/৪/i]},m={narrow:/^(জানু|ফেব্রু|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্ট|অক্টো|নভে|ডিসে)/i,abbreviated:/^(জানু|ফেব্রু|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্ট|অক্টো|নভে|ডিসে)/i,wide:/^(জানুয়ারি|ফেব্রুয়ারি|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্টেম্বর|অক্টোবর|নভেম্বর|ডিসেম্বর)/i},f={any:[/^জানু/i,/^ফেব্রু/i,/^মার্চ/i,/^এপ্রিল/i,/^মে/i,/^জুন/i,/^জুলাই/i,/^আগস্ট/i,/^সেপ্ট/i,/^অক্টো/i,/^নভে/i,/^ডিসে/i]},_={narrow:/^(র|সো|ম|বু|বৃ|শু|শ)+/i,short:/^(রবি|সোম|মঙ্গল|বুধ|বৃহ|শুক্র|শনি)+/i,abbreviated:/^(রবি|সোম|মঙ্গল|বুধ|বৃহ|শুক্র|শনি)+/i,wide:/^(রবিবার|সোমবার|মঙ্গলবার|বুধবার|বৃহস্পতিবার |শুক্রবার|শনিবার)+/i},c={narrow:[/^র/i,/^সো/i,/^ম/i,/^বু/i,/^বৃ/i,/^শু/i,/^শ/i],short:[/^রবি/i,/^সোম/i,/^মঙ্গল/i,/^বুধ/i,/^বৃহ/i,/^শুক্র/i,/^শনি/i],abbreviated:[/^রবি/i,/^সোম/i,/^মঙ্গল/i,/^বুধ/i,/^বৃহ/i,/^শুক্র/i,/^শনি/i],wide:[/^রবিবার/i,/^সোমবার/i,/^মঙ্গলবার/i,/^বুধবার/i,/^বৃহস্পতিবার /i,/^শুক্রবার/i,/^শনিবার/i]},v={narrow:/^(পূ|অপ|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i,abbreviated:/^(পূর্বাহ্ন|অপরাহ্ন|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i,wide:/^(পূর্বাহ্ন|অপরাহ্ন|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i},g={any:{am:/^পূ/i,pm:/^অপ/i,midnight:/^মধ্যরাত/i,noon:/^মধ্যাহ্ন/i,morning:/সকাল/i,afternoon:/বিকাল/i,evening:/সন্ধ্যা/i,night:/রাত/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(490),a=e(491),r=e(492),o=e(493),n=e(494),s={code:"ca",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"menys d'un segon",eleven:"menys d'onze segons",other:"menys de {{count}} segons"},xSeconds:{one:"1 segon",other:"{{count}} segons"},halfAMinute:"mig minut",lessThanXMinutes:{one:"menys d'un minut",eleven:"menys d'onze minuts",other:"menys de {{count}} minuts"},xMinutes:{one:"1 minut",other:"{{count}} minuts"},aboutXHours:{one:"aproximadament una hora",other:"aproximadament {{count}} hores"},xHours:{one:"1 hora",other:"{{count}} hores"},xDays:{one:"1 dia",other:"{{count}} dies"},aboutXWeeks:{one:"aproximadament una setmana",other:"aproximadament {{count}} setmanes"},xWeeks:{one:"1 setmana",other:"{{count}} setmanes"},aboutXMonths:{one:"aproximadament un mes",other:"aproximadament {{count}} mesos"},xMonths:{one:"1 mes",other:"{{count}} mesos"},aboutXYears:{one:"aproximadament un any",other:"aproximadament {{count}} anys"},xYears:{one:"1 any",other:"{{count}} anys"},overXYears:{one:"més d'un any",eleven:"més d'onze anys",other:"més de {{count}} anys"},almostXYears:{one:"gairebé un any",other:"gairebé {{count}} anys"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:o===11&&t[r].eleven?s=t[r].eleven:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"en "+s:"fa "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d 'de' MMMM y",long:"d 'de' MMMM y",medium:"d MMM y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'a les' {{time}}",long:"{{date}} 'a les' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=r;var t={lastWeek:"'el' eeee 'passat a la' LT",yesterday:"'ahir a la' p",today:"'avui a la' p",tomorrow:"'demà a la' p",nextWeek:"eeee 'a la' p",other:"P"},a={lastWeek:"'el' eeee 'passat a les' p",yesterday:"'ahir a les' p",today:"'avui a les' p",tomorrow:"'demà a les' p",nextWeek:"eeee 'a les' p",other:"P"};function r(o,n,s,u){return n.getUTCHours()!==1?a[o]:t[o]}},function(l,i,e){var t=e(3),a={narrow:["aC","dC"],abbreviated:["a. de C.","d. de C."],wide:["abans de Crist","després de Crist"]},r={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1r trimestre","2n trimestre","3r trimestre","4t trimestre"]},o={narrow:["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],abbreviated:["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],wide:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"]},n={narrow:["dg.","dl.","dt.","dm.","dj.","dv.","ds."],short:["dg.","dl.","dt.","dm.","dj.","dv.","ds."],abbreviated:["dg.","dl.","dt.","dm.","dj.","dv.","ds."],wide:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},s={narrow:{am:"am",pm:"pm",midnight:"mitjanit",noon:"migdia",morning:"matí",afternoon:"tarda",evening:"vespre",night:"nit"},abbreviated:{am:"a.m.",pm:"p.m.",midnight:"mitjanit",noon:"migdia",morning:"matí",afternoon:"tarda",evening:"vespre",night:"nit"},wide:{am:"ante meridiem",pm:"post meridiem",midnight:"mitjanit",noon:"migdia",morning:"matí",afternoon:"tarda",evening:"vespre",night:"nit"}},u={narrow:{am:"am",pm:"pm",midnight:"de la mitjanit",noon:"del migdia",morning:"del matí",afternoon:"de la tarda",evening:"del vespre",night:"de la nit"},abbreviated:{am:"AM",pm:"PM",midnight:"de la mitjanit",noon:"del migdia",morning:"del matí",afternoon:"de la tarda",evening:"del vespre",night:"de la nit"},wide:{am:"ante meridiem",pm:"post meridiem",midnight:"de la mitjanit",noon:"del migdia",morning:"del matí",afternoon:"de la tarda",evening:"del vespre",night:"de la nit"}};function d(f,_){var c=Number(f),v=c%100;if(v>20||v<10)switch(v%10){case 1:return c+"r";case 2:return c+"n";case 3:return c+"r";case 4:return c+"t"}return c+"è"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)(è|r|n|r|t)?/i,o=/\d+/i,n={narrow:/^(aC|dC)/i,abbreviated:/^(a. de C.|d. de C.)/i,wide:/^(abans de Crist|despr[eé]s de Crist)/i},s={narrow:[/^aC/i,/^dC/i],abbreviated:[/^(a. de C.)/i,/^(d. de C.)/i],wide:[/^(abans de Crist)/i,/^(despr[eé]s de Crist)/i]},u={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](è|r|n|r|t)? trimestre/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(GN|FB|MÇ|AB|MG|JN|JL|AG|ST|OC|NV|DS)/i,abbreviated:/^(gen.|febr.|març|abr.|maig|juny|jul.|ag.|set.|oct.|nov.|des.)/i,wide:/^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre)/i},f={narrow:[/^GN/i,/^FB/i,/^MÇ/i,/^AB/i,/^MG/i,/^JN/i,/^JL/i,/^AG/i,/^ST/i,/^OC/i,/^NV/i,/^DS/i],abbreviated:[/^gen./i,/^febr./i,/^març/i,/^abr./i,/^maig/i,/^juny/i,/^jul./i,/^ag./i,/^set./i,/^oct./i,/^nov./i,/^des./i],wide:[/^gener/i,/^febrer/i,/^març/i,/^abril/i,/^maig/i,/^juny/i,/^juliol/i,/^agost/i,/^setembre/i,/^octubre/i,/^novembre/i,/^desembre/i]},_={narrow:/^(dg\.|dl\.|dt\.|dm\.|dj\.|dv\.|ds\.)/i,short:/^(dg\.|dl\.|dt\.|dm\.|dj\.|dv\.|ds\.)/i,abbreviated:/^(dg\.|dl\.|dt\.|dm\.|dj\.|dv\.|ds\.)/i,wide:/^(diumenge|dilluns|dimarts|dimecres|dijous|divendres|dissabte)/i},c={narrow:[/^dg./i,/^dl./i,/^dt./i,/^dm./i,/^dj./i,/^dv./i,/^ds./i],abbreviated:[/^dg./i,/^dl./i,/^dt./i,/^dm./i,/^dj./i,/^dv./i,/^ds./i],wide:[/^diumenge/i,/^dilluns/i,/^dimarts/i,/^dimecres/i,/^dijous/i,/^divendres/i,/^disssabte/i]},v={narrow:/^(a|p|mn|md|(del|de la) (matí|tarda|vespre|nit))/i,abbreviated:/^([ap]\.?\s?m\.?|mitjanit|migdia|(del|de la) (matí|tarda|vespre|nit))/i,wide:/^(ante meridiem|post meridiem|mitjanit|migdia|(del|de la) (matí|tarda|vespre|nit))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mitjanit/i,noon:/^migdia/i,morning:/matí/i,afternoon:/tarda/i,evening:/vespre/i,night:/nit/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(496),a=e(497),r=e(498),o=e(499),n=e(500),s={code:"cs",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:{regular:"méně než vteřina",past:"před méně než vteřinou",future:"za méně než vteřinu"},few:{regular:"méně než {{count}} vteřiny",past:"před méně než {{count}} vteřinami",future:"za méně než {{count}} vteřiny"},many:{regular:"méně než {{count}} vteřin",past:"před méně než {{count}} vteřinami",future:"za méně než {{count}} vteřin"}},xSeconds:{one:{regular:"vteřina",past:"před vteřinou",future:"za vteřinu"},few:{regular:"{{count}} vteřiny",past:"před {{count}} vteřinami",future:"za {{count}} vteřiny"},many:{regular:"{{count}} vteřin",past:"před {{count}} vteřinami",future:"za {{count}} vteřin"}},halfAMinute:{other:{regular:"půl minuty",past:"před půl minutou",future:"za půl minuty"}},lessThanXMinutes:{one:{regular:"méně než minuta",past:"před méně než minutou",future:"za méně než minutu"},few:{regular:"méně než {{count}} minuty",past:"před méně než {{count}} minutami",future:"za méně než {{count}} minuty"},many:{regular:"méně než {{count}} minut",past:"před méně než {{count}} minutami",future:"za méně než {{count}} minut"}},xMinutes:{one:{regular:"minuta",past:"před minutou",future:"za minutu"},few:{regular:"{{count}} minuty",past:"před {{count}} minutami",future:"za {{count}} minuty"},many:{regular:"{{count}} minut",past:"před {{count}} minutami",future:"za {{count}} minut"}},aboutXHours:{one:{regular:"přibližně hodina",past:"přibližně před hodinou",future:"přibližně za hodinu"},few:{regular:"přibližně {{count}} hodiny",past:"přibližně před {{count}} hodinami",future:"přibližně za {{count}} hodiny"},many:{regular:"přibližně {{count}} hodin",past:"přibližně před {{count}} hodinami",future:"přibližně za {{count}} hodin"}},xHours:{one:{regular:"hodina",past:"před hodinou",future:"za hodinu"},few:{regular:"{{count}} hodiny",past:"před {{count}} hodinami",future:"za {{count}} hodiny"},many:{regular:"{{count}} hodin",past:"před {{count}} hodinami",future:"za {{count}} hodin"}},xDays:{one:{regular:"den",past:"před dnem",future:"za den"},few:{regular:"{{count}} dny",past:"před {{count}} dny",future:"za {{count}} dny"},many:{regular:"{{count}} dní",past:"před {{count}} dny",future:"za {{count}} dní"}},aboutXWeeks:{one:{regular:"přibližně týden",past:"přibližně před týdnem",future:"přibližně za týden"},few:{regular:"přibližně {{count}} týdny",past:"přibližně před {{count}} týdny",future:"přibližně za {{count}} týdny"},many:{regular:"přibližně {{count}} týdnů",past:"přibližně před {{count}} týdny",future:"přibližně za {{count}} týdnů"}},xWeeks:{one:{regular:"týden",past:"před týdnem",future:"za týden"},few:{regular:"{{count}} týdny",past:"před {{count}} týdny",future:"za {{count}} týdny"},many:{regular:"{{count}} týdnů",past:"před {{count}} týdny",future:"za {{count}} týdnů"}},aboutXMonths:{one:{regular:"přibližně měsíc",past:"přibližně před měsícem",future:"přibližně za měsíc"},few:{regular:"přibližně {{count}} měsíce",past:"přibližně před {{count}} měsíci",future:"přibližně za {{count}} měsíce"},many:{regular:"přibližně {{count}} měsíců",past:"přibližně před {{count}} měsíci",future:"přibližně za {{count}} měsíců"}},xMonths:{one:{regular:"měsíc",past:"před měsícem",future:"za měsíc"},few:{regular:"{{count}} měsíce",past:"před {{count}} měsíci",future:"za {{count}} měsíce"},many:{regular:"{{count}} měsíců",past:"před {{count}} měsíci",future:"za {{count}} měsíců"}},aboutXYears:{one:{regular:"přibližně rok",past:"přibližně před rokem",future:"přibližně za rok"},few:{regular:"přibližně {{count}} roky",past:"přibližně před {{count}} roky",future:"přibližně za {{count}} roky"},many:{regular:"přibližně {{count}} roků",past:"přibližně před {{count}} roky",future:"přibližně za {{count}} roků"}},xYears:{one:{regular:"rok",past:"před rokem",future:"za rok"},few:{regular:"{{count}} roky",past:"před {{count}} roky",future:"za {{count}} roky"},many:{regular:"{{count}} roků",past:"před {{count}} roky",future:"za {{count}} roků"}},overXYears:{one:{regular:"více než rok",past:"před více než rokem",future:"za více než rok"},few:{regular:"více než {{count}} roky",past:"před více než {{count}} roky",future:"za více než {{count}} roky"},many:{regular:"více než {{count}} roků",past:"před více než {{count}} roky",future:"za více než {{count}} roků"}},almostXYears:{one:{regular:"skoro rok",past:"skoro před rokem",future:"skoro za rok"},few:{regular:"skoro {{count}} roky",past:"skoro před {{count}} roky",future:"skoro za {{count}} roky"},many:{regular:"skoro {{count}} roků",past:"skoro před {{count}} roky",future:"skoro za {{count}} roků"}}};function a(r,o,n){n=n||{};var s=t[r],u;typeof s.other=="object"?u="other":o===1?u="one":o>1&&o<5||o===0?u="few":u="many";var d=n.addSuffix===!0,m=n.comparison,f;return d&&m===-1?f="past":d&&m===1?f="future":f="regular",s[u][f].replace("{{count}}",o)}},function(l,i,e){var t=e(2),a={full:"EEEE, d. MMMM yyyy",long:"d. MMMM yyyy",medium:"d.M.yyyy",short:"d.M.yy"},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={full:"{{date}} 'v' {{time}}",long:"{{date}} 'v' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=r;var t=["neděli","pondělí","úterý","středu","čtvrtek","pátek","sobotu"],a={lastWeek:"'poslední' eeee 've' p",yesterday:"'včera v' p",today:"'dnes v' p",tomorrow:"'zítra v' p",nextWeek:function(o,n,s){var u=o.getUTCDay();return"'v "+t[u]+" o' p"},other:"P"};function r(o,n,s,u){var d=a[o];return typeof d=="function"?d(n,s,u):d}},function(l,i,e){var t=e(3),a={narrow:["př. n. l.","n. l."],abbreviated:["př. n. l.","n. l."],wide:["před naším letopočtem","našeho letopočtu"]},r={narrow:["1","2","3","4"],abbreviated:["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],wide:["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"]},o={narrow:["L","Ú","B","D","K","Č","Č","S","Z","Ř","L","P"],abbreviated:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],wide:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"]},n={narrow:["L","Ú","B","D","K","Č","Č","S","Z","Ř","L","P"],abbreviated:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],wide:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"]},s={narrow:["ne","po","út","st","čt","pá","so"],short:["ne","po","út","st","čt","pá","so"],abbreviated:["ned","pon","úte","stř","čtv","pát","sob"],wide:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},u={narrow:{am:"dop.",pm:"odp.",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"},abbreviated:{am:"dop.",pm:"odp.",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"},wide:{am:"dopoledne",pm:"odpoledne",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"}},d={narrow:{am:"dop.",pm:"odp.",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"},abbreviated:{am:"dop.",pm:"odp.",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"},wide:{am:"dopoledne",pm:"odpoledne",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"}};function m(_){var c=Number(_);return c+"."}var f={ordinalNumber:m,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)\.?/i,o=/\d+/i,n={narrow:/^(p[řr]ed Kr\.|pred n\. l\.|po Kr\.|n\. l\.)/i,abbreviated:/^(pe[řr]ed Kr\.|pe[řr]ed n\. l\.|po Kr\.|n\. l\.)/i,wide:/^(p[řr]ed Kristem|pred na[šs][íi]m letopo[čc]tem|po Kristu|na[šs]eho letopo[čc]tu)/i},s={any:[/^p[řr]/i,/^(po|n)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]\. [čc]tvrtlet[íi]/i,wide:/^[1234]\. [čc]tvrtlet[íi]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[lúubdkčcszřrlp]/i,abbreviated:/^(led|[úu]no|b[řr]e|dub|kv[ěe]|[čc]vn|[čc]vc|srp|z[áa][řr]|[řr][íi]j|lis|pro)/i,wide:/^(leden|ledna|[úu]nora?|b[řr]ezen|b[řr]ezna|duben|dubna|kv[ěe]ten|kv[ěe]tna|[čc]erven(ec|ce)?|[čc]ervna|srpen|srpna|z[áa][řr][íi]|[řr][íi]jen|[řr][íi]jna|listopad(a|u)?|prosinec|prosince)/i},f={narrow:[/^l/i,/^[úu]/i,/^b/i,/^d/i,/^k/i,/^[čc]/i,/^[čc]/i,/^s/i,/^z/i,/^[řr]/i,/^l/i,/^p/i],any:[/^led/i,/^[úu]n/i,/^b[řr]e/i,/^dub/i,/^kv[ěe]/i,/^[čc]vn|[čc]erven(?!\w)|[čc]ervna/i,/^[čc]vc|[čc]erven(ec|ce)/i,/^srp/i,/^z[áa][řr]/i,/^[řr][íi]j/i,/^lis/i,/^pro/i]},_={narrow:/^[npuúsčps]/i,short:/^(ne|po|[úu]t|st|[čc]t|p[áa]|so)/i,abbreviated:/^(ne|po|[úu]t|st|[čc]t|p[áa]|so)/i,wide:/^(ned[ěe]le|pond[ěe]l[íi]|[úu]ter[ýy]|st[řr]eda|[čc]tvrtek|p[áa]tek|sobota)/i},c={narrow:[/^n/i,/^p/i,/^[úu]/i,/^s/i,/^[čc]/i,/^p/i,/^s/i],any:[/^ne/i,/^po/i,/^ut/i,/^st/i,/^[čc]t/i,/^p/i,/^so/i]},v={any:/^dopoledne|dop\.?|odpoledne|odp\.?|půlnoc|poledne|r[áa]no|odpoledne|ve[čc]er|(v )?noci/i},g={any:{am:/^dop/i,pm:/^odp/i,midnight:/^p[ůu]lnoc/i,noon:/^poledne/i,morning:/r[áa]no/i,afternoon:/odpoledne/i,evening:/ve[čc]er/i,night:/noc/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(502),a=e(503),r=e(504),o=e(505),n=e(506),s={code:"cy",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"llai na eiliad",other:"llai na {{count}} eiliad"},xSeconds:{one:"1 eiliad",other:"{{count}} eiliad"},halfAMinute:"hanner munud",lessThanXMinutes:{one:"llai na munud",two:"llai na 2 funud",other:"llai na {{count}} munud"},xMinutes:{one:"1 munud",two:"2 funud",other:"{{count}} munud"},aboutXHours:{one:"tua 1 awr",other:"tua {{count}} awr"},xHours:{one:"1 awr",other:"{{count}} awr"},xDays:{one:"1 diwrnod",two:"2 ddiwrnod",other:"{{count}} diwrnod"},aboutXWeeks:{one:"tua 1 wythnos",two:"tua pythefnos",other:"tua {{count}} wythnos"},xWeeks:{one:"1 wythnos",two:"pythefnos",other:"{{count}} wythnos"},aboutXMonths:{one:"tua 1 mis",two:"tua 2 fis",other:"tua {{count}} mis"},xMonths:{one:"1 mis",two:"2 fis",other:"{{count}} mis"},aboutXYears:{one:"tua 1 flwyddyn",two:"tua 2 flynedd",other:"tua {{count}} mlynedd"},xYears:{one:"1 flwyddyn",two:"2 flynedd",other:"{{count}} mlynedd"},overXYears:{one:"dros 1 flwyddyn",two:"dros 2 flynedd",other:"dros {{count}} mlynedd"},almostXYears:{one:"bron 1 flwyddyn",two:"bron 2 flynedd",other:"bron {{count}} mlynedd"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:o===2&&t[r].two?s=t[r].two:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"mewn "+s:s+" yn ôl":s}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"dd/MM/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'am' {{time}}",long:"{{date}} 'am' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'diwethaf am' p",yesterday:"'ddoe am' p",today:"'heddiw am' p",tomorrow:"'yfory am' p",nextWeek:"eeee 'am' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["C","O"],abbreviated:["CC","OC"],wide:["Cyn Crist","Ar ôl Crist"]},r={narrow:["1","2","3","4"],abbreviated:["Ch1","Ch2","Ch3","Ch4"],wide:["Chwarter 1af","2ail chwarter","3ydd chwarter","4ydd chwarter"]},o={narrow:["I","Ch","Ma","E","Mi","Me","G","A","Md","H","T","Rh"],abbreviated:["Ion","Chwe","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rhag"],wide:["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"]},n={narrow:["S","Ll","M","M","I","G","S"],short:["Su","Ll","Ma","Me","Ia","Gw","Sa"],abbreviated:["Sul","Llun","Maw","Mer","Iau","Gwe","Sad"],wide:["dydd Sul","dydd Llun","dydd Mawrth","dydd Mercher","dydd Iau","dydd Gwener","dydd Sadwrn"]},s={narrow:{am:"b",pm:"h",midnight:"hn",noon:"hd",morning:"bore",afternoon:"prynhawn",evening:"gyda'r nos",night:"nos"},abbreviated:{am:"yb",pm:"yh",midnight:"hanner nos",noon:"hanner dydd",morning:"bore",afternoon:"prynhawn",evening:"gyda'r nos",night:"nos"},wide:{am:"y.b.",pm:"y.h.",midnight:"hanner nos",noon:"hanner dydd",morning:"bore",afternoon:"prynhawn",evening:"gyda'r nos",night:"nos"}},u={narrow:{am:"b",pm:"h",midnight:"hn",noon:"hd",morning:"yn y bore",afternoon:"yn y prynhawn",evening:"gyda'r nos",night:"yn y nos"},abbreviated:{am:"yb",pm:"yh",midnight:"hanner nos",noon:"hanner dydd",morning:"yn y bore",afternoon:"yn y prynhawn",evening:"gyda'r nos",night:"yn y nos"},wide:{am:"y.b.",pm:"y.h.",midnight:"hanner nos",noon:"hanner dydd",morning:"yn y bore",afternoon:"yn y prynhawn",evening:"gyda'r nos",night:"yn y nos"}};function d(f,_){var c=Number(f);if(c<20)switch(c){case 0:return c+"fed";case 1:return c+"af";case 2:return c+"ail";case 3:case 4:return c+"ydd";case 5:case 6:return c+"ed";case 7:case 8:case 9:case 10:case 12:case 15:case 18:return c+"fed";case 11:case 13:case 14:case 16:case 17:case 19:return c+"eg"}else if(c>=50&&c<=60||c===80||c>=100)return c+"fed";return c+"ain"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(af|ail|ydd|ed|fed|eg|ain)?/i,o=/\d+/i,n={narrow:/^(c|o)/i,abbreviated:/^(c\.?\s?c\.?|o\.?\s?c\.?)/i,wide:/^(cyn christ|ar ôl crist|ar ol crist)/i},s={wide:[/^c/i,/^(ar ôl crist|ar ol crist)/i],any:[/^c/i,/^o/i]},u={narrow:/^[1234]/i,abbreviated:/^ch[1234]/i,wide:/^(chwarter 1af)|([234](ail|ydd)? chwarter)/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(i|ch|m|e|g|a|h|t|rh)/i,abbreviated:/^(ion|chwe|maw|ebr|mai|meh|gor|aws|med|hyd|tach|rhag)/i,wide:/^(ionawr|chwefror|mawrth|ebrill|mai|mehefin|gorffennaf|awst|medi|hydref|tachwedd|rhagfyr)/i},f={narrow:[/^i/i,/^ch/i,/^m/i,/^e/i,/^m/i,/^m/i,/^g/i,/^a/i,/^m/i,/^h/i,/^t/i,/^rh/i],any:[/^io/i,/^ch/i,/^maw/i,/^e/i,/^mai/i,/^meh/i,/^g/i,/^a/i,/^med/i,/^h/i,/^t/i,/^rh/i]},_={narrow:/^(s|ll|m|i|g)/i,short:/^(su|ll|ma|me|ia|gw|sa)/i,abbreviated:/^(sul|llun|maw|mer|iau|gwe|sad)/i,wide:/^dydd (sul|llun|mawrth|mercher|iau|gwener|sadwrn)/i},c={narrow:[/^s/i,/^ll/i,/^m/i,/^m/i,/^i/i,/^g/i,/^s/i],wide:[/^dydd su/i,/^dydd ll/i,/^dydd ma/i,/^dydd me/i,/^dydd i/i,/^dydd g/i,/^dydd sa/i],any:[/^su/i,/^ll/i,/^ma/i,/^me/i,/^i/i,/^g/i,/^sa/i]},v={narrow:/^(b|h|hn|hd|(yn y|y|yr|gyda'r) (bore|prynhawn|nos|hwyr))/i,any:/^(y\.?\s?[bh]\.?|hanner nos|hanner dydd|(yn y|y|yr|gyda'r) (bore|prynhawn|nos|hwyr))/i},g={any:{am:/^b|(y\.?\s?b\.?)/i,pm:/^h|(y\.?\s?h\.?)|(yr hwyr)/i,midnight:/^hn|hanner nos/i,noon:/^hd|hanner dydd/i,morning:/bore/i,afternoon:/prynhawn/i,evening:/^gyda'r nos$/i,night:/blah/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(508),a=e(509),r=e(510),o=e(511),n=e(512),s={code:"da",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"mindre end ét sekund",other:"mindre end {{count}} sekunder"},xSeconds:{one:"1 sekund",other:"{{count}} sekunder"},halfAMinute:"ét halvt minut",lessThanXMinutes:{one:"mindre end ét minut",other:"mindre end {{count}} minutter"},xMinutes:{one:"1 minut",other:"{{count}} minutter"},aboutXHours:{one:"cirka 1 time",other:"cirka {{count}} timer"},xHours:{one:"1 time",other:"{{count}} timer"},xDays:{one:"1 dag",other:"{{count}} dage"},aboutXWeeks:{one:"cirka 1 uge",other:"cirka {{count}} uger"},xWeeks:{one:"1 uge",other:"{{count}} uger"},aboutXMonths:{one:"cirka 1 måned",other:"cirka {{count}} måneder"},xMonths:{one:"1 måned",other:"{{count}} måneder"},aboutXYears:{one:"cirka 1 år",other:"cirka {{count}} år"},xYears:{one:"1 år",other:"{{count}} år"},overXYears:{one:"over 1 år",other:"over {{count}} år"},almostXYears:{one:"næsten 1 år",other:"næsten {{count}} år"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"om "+s:s+" siden":s}},function(l,i,e){var t=e(2),a={full:"EEEE 'den' d. MMMM y",long:"d. MMMM y",medium:"d. MMM y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'kl'. {{time}}",long:"{{date}} 'kl'. {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'sidste' eeee 'kl.' p",yesterday:"'i går kl.' p",today:"'i dag kl.' p",tomorrow:"'i morgen kl.' p",nextWeek:"'på' eeee 'kl.' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["fvt","vt"],abbreviated:["f.v.t.","v.t."],wide:["før vesterlandsk tidsregning","vesterlandsk tidsregning"]},r={narrow:["1","2","3","4"],abbreviated:["1. kvt.","2. kvt.","3. kvt.","4. kvt."],wide:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],wide:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"]},n={narrow:["S","M","T","O","T","F","L"],short:["sø","ma","ti","on","to","fr","lø"],abbreviated:["søn.","man.","tir.","ons.","tor.","fre.","lør."],wide:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},s={narrow:{am:"a",pm:"p",midnight:"midnat",noon:"middag",morning:"morgen",afternoon:"eftermiddag",evening:"aften",night:"nat"},abbreviated:{am:"AM",pm:"PM",midnight:"midnat",noon:"middag",morning:"morgen",afternoon:"eftermiddag",evening:"aften",night:"nat"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnat",noon:"middag",morning:"morgen",afternoon:"eftermiddag",evening:"aften",night:"nat"}},u={narrow:{am:"a",pm:"p",midnight:"midnat",noon:"middag",morning:"om morgenen",afternoon:"om eftermiddagen",evening:"om aftenen",night:"om natten"},abbreviated:{am:"AM",pm:"PM",midnight:"midnat",noon:"middag",morning:"om morgenen",afternoon:"om eftermiddagen",evening:"om aftenen",night:"om natten"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnat",noon:"middag",morning:"om morgenen",afternoon:"om eftermiddagen",evening:"om aftenen",night:"om natten"}};function d(f){var _=Number(f);return _+"."}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)(\.)?/i,o=/\d+/i,n={narrow:/^(fKr|fvt|eKr|vt)/i,abbreviated:/^(f\.Kr\.?|f\.v\.t\.?|e\.Kr\.?|v\.t\.)/i,wide:/^(f.Kr.|før vesterlandsk tidsregning|e.Kr.|vesterlandsk tidsregning)/i},s={any:[/^f/i,/^(v|e)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]. kvt\./i,wide:/^[1234]\.? kvartal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan.|feb.|mar.|apr.|maj|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,wide:/^(januar|februar|marts|april|maj|juni|juli|august|september|oktober|november|december)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^maj/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[smtofl]/i,short:/^(søn.|man.|tir.|ons.|tor.|fre.|lør.)/i,abbreviated:/^(søn|man|tir|ons|tor|fre|lør)/i,wide:/^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i},c={narrow:[/^s/i,/^m/i,/^t/i,/^o/i,/^t/i,/^f/i,/^l/i],any:[/^s/i,/^m/i,/^ti/i,/^o/i,/^to/i,/^f/i,/^l/i]},v={narrow:/^(a|p|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,any:/^([ap]\.?\s?m\.?|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/midnat/i,noon:/middag/i,morning:/morgen/i,afternoon:/eftermiddag/i,evening:/aften/i,night:/nat/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(514),a=e(515),r=e(516),o=e(517),n=e(518),s={code:"de",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{standalone:{one:"weniger als eine Sekunde",other:"weniger als {{count}} Sekunden"},withPreposition:{one:"weniger als einer Sekunde",other:"weniger als {{count}} Sekunden"}},xSeconds:{standalone:{one:"eine Sekunde",other:"{{count}} Sekunden"},withPreposition:{one:"einer Sekunde",other:"{{count}} Sekunden"}},halfAMinute:{standalone:"eine halbe Minute",withPreposition:"einer halben Minute"},lessThanXMinutes:{standalone:{one:"weniger als eine Minute",other:"weniger als {{count}} Minuten"},withPreposition:{one:"weniger als einer Minute",other:"weniger als {{count}} Minuten"}},xMinutes:{standalone:{one:"eine Minute",other:"{{count}} Minuten"},withPreposition:{one:"einer Minute",other:"{{count}} Minuten"}},aboutXHours:{standalone:{one:"etwa eine Stunde",other:"etwa {{count}} Stunden"},withPreposition:{one:"etwa einer Stunde",other:"etwa {{count}} Stunden"}},xHours:{standalone:{one:"eine Stunde",other:"{{count}} Stunden"},withPreposition:{one:"einer Stunde",other:"{{count}} Stunden"}},xDays:{standalone:{one:"ein Tag",other:"{{count}} Tage"},withPreposition:{one:"einem Tag",other:"{{count}} Tagen"}},aboutXWeeks:{standalone:{one:"etwa ein Woche",other:"etwa {{count}} Wochen"},withPreposition:{one:"etwa einem Woche",other:"etwa {{count}} Wochen"}},xWeeks:{standalone:{one:"ein Woche",other:"{{count}} Wochen"},withPreposition:{one:"einem Woche",other:"{{count}} Wochen"}},aboutXMonths:{standalone:{one:"etwa ein Monat",other:"etwa {{count}} Monate"},withPreposition:{one:"etwa einem Monat",other:"etwa {{count}} Monaten"}},xMonths:{standalone:{one:"ein Monat",other:"{{count}} Monate"},withPreposition:{one:"einem Monat",other:"{{count}} Monaten"}},aboutXYears:{standalone:{one:"etwa ein Jahr",other:"etwa {{count}} Jahre"},withPreposition:{one:"etwa einem Jahr",other:"etwa {{count}} Jahren"}},xYears:{standalone:{one:"ein Jahr",other:"{{count}} Jahre"},withPreposition:{one:"einem Jahr",other:"{{count}} Jahren"}},overXYears:{standalone:{one:"mehr als ein Jahr",other:"mehr als {{count}} Jahre"},withPreposition:{one:"mehr als einem Jahr",other:"mehr als {{count}} Jahren"}},almostXYears:{standalone:{one:"fast ein Jahr",other:"fast {{count}} Jahre"},withPreposition:{one:"fast einem Jahr",other:"fast {{count}} Jahren"}}};function a(r,o,n){n=n||{};var s=n.addSuffix?t[r].withPreposition:t[r].standalone,u;return typeof s=="string"?u=s:o===1?u=s.one:u=s.other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"in "+u:"vor "+u:u}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM. y",short:"dd.MM.y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'um' {{time}}",long:"{{date}} 'um' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'letzten' eeee 'um' p",yesterday:"'gestern um' p",today:"'heute um' p",tomorrow:"'morgen um' p",nextWeek:"eeee 'um' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["v.Chr.","n.Chr."],abbreviated:["v.Chr.","n.Chr."],wide:["vor Christus","nach Christus"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. Quartal","2. Quartal","3. Quartal","4. Quartal"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],wide:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},n={narrow:["S","M","D","M","D","F","S"],short:["So","Mo","Di","Mi","Do","Fr","Sa"],abbreviated:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],wide:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},s={narrow:{am:"vm.",pm:"nm.",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachm.",evening:"Abend",night:"Nacht"},abbreviated:{am:"vorm.",pm:"nachm.",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachmittag",evening:"Abend",night:"Nacht"},wide:{am:"vormittags",pm:"nachmittags",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachmittag",evening:"Abend",night:"Nacht"}},u={narrow:{am:"vm.",pm:"nm.",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachm.",evening:"abends",night:"nachts"},abbreviated:{am:"vorm.",pm:"nachm.",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachmittags",evening:"abends",night:"nachts"},wide:{am:"vormittags",pm:"nachmittags",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachmittags",evening:"abends",night:"nachts"}};function d(f,_){var c=Number(f);return c+"."}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(\.)?/i,o=/\d+/i,n={narrow:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,abbreviated:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,wide:/^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i},s={any:[/^v/i,/^n/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? Quartal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mär|apr|mai|jun|jul|aug|sep|okt|nov|dez)/i,wide:/^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mär/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[smdmf]/i,short:/^(so|mo|di|mi|do|fr|sa)/i,abbreviated:/^(son?|mon?|die?|mit?|don?|fre?|sam?)\.?/i,wide:/^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i},c={any:[/^so/i,/^mo/i,/^di/i,/^mi/i,/^do/i,/^f/i,/^sa/i]},v={narrow:/^(vm\.?|nm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,abbreviated:/^(vorm\.?|nachm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,wide:/^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i},g={any:{am:/^v/i,pm:/^n/i,midnight:/^Mitte/i,noon:/^Mitta/i,morning:/morgens/i,afternoon:/nachmittags/i,evening:/abends/i,night:/nachts/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"wide",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(520),a=e(521),r=e(522),o=e(523),n=e(524),s={code:"el",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"λιγότερο από ένα δευτερόλεπτο",other:"λιγότερο από {{count}} δευτερόλεπτα"},xSeconds:{one:"1 δευτερόλεπτο",other:"{{count}} δευτερόλεπτα"},halfAMinute:"μισό λεπτό",lessThanXMinutes:{one:"λιγότερο από ένα λεπτό",other:"λιγότερο από {{count}} λεπτά"},xMinutes:{one:"1 λεπτό",other:"{{count}} λεπτά"},aboutXHours:{one:"περίπου 1 ώρα",other:"περίπου {{count}} ώρες"},xHours:{one:"1 ώρα",other:"{{count}} ώρες"},xDays:{one:"1 ημέρα",other:"{{count}} ημέρες"},aboutXWeeks:{one:"περίπου 1 εβδομάδα",other:"περίπου {{count}} εβδομάδες"},xWeeks:{one:"1 εβδομάδα",other:"{{count}} εβδομάδες"},aboutXMonths:{one:"περίπου 1 μήνας",other:"περίπου {{count}} μήνες"},xMonths:{one:"1 μήνας",other:"{{count}} μήνες"},aboutXYears:{one:"περίπου 1 χρόνο",other:"περίπου {{count}} χρόνια"},xYears:{one:"1 χρόνο",other:"{{count}} χρόνια"},overXYears:{one:"πάνω από 1 χρόνο",other:"πάνω από {{count}} χρόνια"},almostXYears:{one:"περίπου 1 χρόνο",other:"περίπου {{count}} χρόνια"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"σε "+s:s+" πριν":s}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"d/M/yy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} - {{time}}",long:"{{date}} - {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:function(r){switch(r.getUTCDay()){case 6:return"'το προηγούμενο' eeee 'στις' p";default:return"'την προηγούμενη' eeee 'στις' p"}},yesterday:"'χθες στις' p",today:"'σήμερα στις' p",tomorrow:"'αύριο στις' p",nextWeek:"eeee 'στις' p",other:"P"};function a(r,o,n,s){var u=t[r];return typeof u=="function"?u(o,n,s):u}},function(l,i,e){var t=e(3),a={narrow:["πΧ","μΧ"],abbreviated:["π.Χ.","μ.Χ."],wide:["προ Χριστού","μετά Χριστόν"]},r={narrow:["1","2","3","4"],abbreviated:["Τ1","Τ2","Τ3","Τ4"],wide:["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"]},o={narrow:["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],abbreviated:["Ιαν","Φεβ","Μάρ","Απρ","Μάι","Ιούν","Ιούλ","Αύγ","Σεπ","Οκτ","Νοέ","Δεκ"],wide:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"]},n={narrow:["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],abbreviated:["Ιαν","Φεβ","Μαρ","Απρ","Μαΐ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],wide:["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"]},s={narrow:["Κ","Δ","T","Τ","Π","Π","Σ"],short:["Κυ","Δε","Τρ","Τε","Πέ","Πα","Σά"],abbreviated:["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],wide:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]},u={narrow:{am:"πμ",pm:"μμ",midnight:"μεσάνυχτα",noon:"μεσημέρι",morning:"πρωί",afternoon:"απόγευμα",evening:"βράδυ",night:"νύχτα"},abbreviated:{am:"π.μ.",pm:"μ.μ.",midnight:"μεσάνυχτα",noon:"μεσημέρι",morning:"πρωί",afternoon:"απόγευμα",evening:"βράδυ",night:"νύχτα"},wide:{am:"π.μ.",pm:"μ.μ.",midnight:"μεσάνυχτα",noon:"μεσημέρι",morning:"πρωί",afternoon:"απόγευμα",evening:"βράδυ",night:"νύχτα"}};function d(f,_){var c=_||{},v=String(c.unit),g;return v==="year"||v==="month"?g="ος":v==="week"||v==="dayOfYear"||v==="day"||v==="hour"||v==="date"?g="η":g="ο",f+g}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(ος|η|ο)?/i,o=/\d+/i,n={narrow:/^(πΧ|μΧ)/i,abbreviated:/^(π\.?\s?χ\.?|π\.?\s?κ\.?\s?χ\.?|μ\.?\s?χ\.?|κ\.?\s?χ\.?)/i,wide:/^(προ Χριστο(ύ|υ)|πριν απ(ό|ο) την Κοιν(ή|η) Χρονολογ(ί|ι)α|μετ(ά|α) Χριστ(ό|ο)ν|Κοιν(ή|η) Χρονολογ(ί|ι)α)/i},s={any:[/^π/i,/^(μ|κ)/i]},u={narrow:/^[1234]/i,abbreviated:/^τ[1234]/i,wide:/^[1234]ο? τρ(ί|ι)μηνο/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[ιφμαμιιασονδ]/i,abbreviated:/^(ιαν|φεβ|μ[άα]ρ|απρ|μ[άα][ιΐ]|ιο[ύυ]ν|ιο[ύυ]λ|α[ύυ]γ|σεπ|οκτ|νο[έε]|δεκ)/i,wide:/^(μ[άα][ιΐ]|α[ύυ]γο[υύ]στ)(ος|ου)|(ιανου[άα]ρ|φεβρου[άα]ρ|μ[άα]ρτ|απρ[ίι]λ|ιο[ύυ]ν|ιο[ύυ]λ|σεπτ[έε]μβρ|οκτ[ώω]βρ|νο[έε]μβρ|δεκ[έε]μβρ)(ιος|ίου)/i},f={narrow:[/^ι/i,/^φ/i,/^μ/i,/^α/i,/^μ/i,/^ι/i,/^ι/i,/^α/i,/^σ/i,/^ο/i,/^ν/i,/^δ/i],any:[/^ια/i,/^φ/i,/^μ[άα]ρ/i,/^απ/i,/^μ[άα][ιΐ]/i,/^ιο[ύυ]ν/i,/^ιο[ύυ]λ/i,/^α[ύυ]/i,/^σ/i,/^ο/i,/^ν/i,/^δ/i]},_={narrow:/^[κδτπσ]/i,short:/^(κυ|δε|τρ|τε|π[εέ]|π[αά]|σ[αά])/i,abbreviated:/^(κυρ|δευ|τρι|τετ|πεμ|παρ|σαβ)/i,wide:/^(κυριακ(ή|η)|δευτ(έ|ε)ρα|τρ(ί|ι)τη|τετ(ά|α)ρτη|π(έ|ε)μπτη|παρασκευ(ή|η)|σ(ά|α)ββατο)/i},c={narrow:[/^κ/i,/^δ/i,/^τ/i,/^τ/i,/^π/i,/^π/i,/^σ/i],any:[/^κ/i,/^δ/i,/^τρ/i,/^τε/i,/^π[εέ]/i,/^π[αά]/i,/^σ/i]},v={narrow:/^(πμ|μμ|μεσ(ά|α)νυχτα|μεσημ(έ|ε)ρι|πρω(ί|ι)|απ(ό|ο)γευμα|βρ(ά|α)δυ|ν(ύ|υ)χτα)/i,any:/^([πμ]\.?\s?μ\.?|μεσ(ά|α)νυχτα|μεσημ(έ|ε)ρι|πρω(ί|ι)|απ(ό|ο)γευμα|βρ(ά|α)δυ|ν(ύ|υ)χτα)/i},g={any:{am:/^πμ|π\.\s?μ\./i,pm:/^μμ|μ\.\s?μ\./i,midnight:/^μεσάν/i,noon:/^μεσημ(έ|ε)/i,morning:/πρω(ί|ι)/i,afternoon:/απ(ό|ο)γευμα/i,evening:/βρ(ά|α)δυ/i,night:/ν(ύ|υ)χτα/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(48),a=e(526),r=e(35),o=e(36),n=e(37),s={code:"en-AU",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"dd/MM/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){var t=e(528),a=e(529),r=e(35),o=e(36),n=e(37),s={code:"en-CA",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"a second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"a minute",other:"{{count}} minutes"},aboutXHours:{one:"about an hour",other:"about {{count}} hours"},xHours:{one:"an hour",other:"{{count}} hours"},xDays:{one:"a day",other:"{{count}} days"},aboutXWeeks:{one:"about a week",other:"about {{count}} weeks"},xWeeks:{one:"a week",other:"{{count}} weeks"},aboutXMonths:{one:"about a month",other:"about {{count}} months"},xMonths:{one:"a month",other:"{{count}} months"},aboutXYears:{one:"about a year",other:"about {{count}} years"},xYears:{one:"a year",other:"{{count}} years"},overXYears:{one:"over a year",other:"over {{count}} years"},almostXYears:{one:"almost a year",other:"almost {{count}} years"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"in "+s:s+" ago":s}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM do, yyyy",long:"MMMM do, yyyy",medium:"MMM d, yyyy",short:"yyyy-MM-dd"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){var t=e(48),a=e(531),r=e(35),o=e(36),n=e(37),s={code:"en-GB",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"dd/MM/yyyy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){var t=e(48),a=e(533),r=e(35),o=e(36),n=e(37),s={code:"en-IN",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM, yyyy",medium:"d MMM, yyyy",short:"dd/MM/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){var t=e(48),a=e(535),r=e(35),o=e(36),n=e(37),s={code:"en-NZ",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"dd/MM/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){var t=e(537),a=e(538),r=e(539),o=e(540),n=e(541),s={code:"eo",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"malpli ol sekundo",other:"malpli ol {{count}} sekundoj"},xSeconds:{one:"1 sekundo",other:"{{count}} sekundoj"},halfAMinute:"duonminuto",lessThanXMinutes:{one:"malpli ol minuto",other:"malpli ol {{count}} minutoj"},xMinutes:{one:"1 minuto",other:"{{count}} minutoj"},aboutXHours:{one:"proksimume 1 horo",other:"proksimume {{count}} horoj"},xHours:{one:"1 horo",other:"{{count}} horoj"},xDays:{one:"1 tago",other:"{{count}} tagoj"},aboutXMonths:{one:"proksimume 1 monato",other:"proksimume {{count}} monatoj"},xWeeks:{one:"1 semajno",other:"{{count}} semajnoj"},aboutXWeeks:{one:"proksimume 1 semajno",other:"proksimume {{count}} semajnoj"},xMonths:{one:"1 monato",other:"{{count}} monatoj"},aboutXYears:{one:"proksimume 1 jaro",other:"proksimume {{count}} jaroj"},xYears:{one:"1 jaro",other:"{{count}} jaroj"},overXYears:{one:"pli ol 1 jaro",other:"pli ol {{count}} jaroj"},almostXYears:{one:"preskaŭ 1 jaro",other:"preskaŭ {{count}} jaroj"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"post "+s:"antaŭ "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, do 'de' MMMM y",long:"y-MMMM-dd",medium:"y-MMM-dd",short:"yyyy-MM-dd"},r={full:"Ho 'horo kaj' m:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={any:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"any"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'pasinta' eeee 'je' p",yesterday:"'hieraŭ je' p",today:"'hodiaŭ je' p",tomorrow:"'morgaŭ je' p",nextWeek:"eeee 'je' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["aK","pK"],abbreviated:["a.K.E.","p.K.E."],wide:["antaŭ Komuna Erao","Komuna Erao"]},r={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["1-a kvaronjaro","2-a kvaronjaro","3-a kvaronjaro","4-a kvaronjaro"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan","feb","mar","apr","maj","jun","jul","aŭg","sep","okt","nov","dec"],wide:["januaro","februaro","marto","aprilo","majo","junio","julio","aŭgusto","septembro","oktobro","novembro","decembro"]},n={narrow:["D","L","M","M","Ĵ","V","S"],short:["di","lu","ma","me","ĵa","ve","sa"],abbreviated:["dim","lun","mar","mer","ĵaŭ","ven","sab"],wide:["dimanĉo","lundo","mardo","merkredo","ĵaŭdo","vendredo","sabato"]},s={narrow:{am:"a",pm:"p",midnight:"noktomezo",noon:"tagmezo",morning:"matene",afternoon:"posttagmeze",evening:"vespere",night:"nokte"},abbreviated:{am:"a.t.m.",pm:"p.t.m.",midnight:"noktomezo",noon:"tagmezo",morning:"matene",afternoon:"posttagmeze",evening:"vespere",night:"nokte"},wide:{am:"antaŭtagmeze",pm:"posttagmeze",midnight:"noktomezo",noon:"tagmezo",morning:"matene",afternoon:"posttagmeze",evening:"vespere",night:"nokte"}};function u(m){var f=Number(m);return f+"-a"}var d={ordinalNumber:u,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(m){return Number(m)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=d},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(-?a)?/i,o=/\d+/i,n={narrow:/^([ap]k)/i,abbreviated:/^([ap]\.?\s?k\.?\s?e\.?)/i,wide:/^((antaǔ |post )?komuna erao)/i},s={any:[/^a/i,/^[kp]/i]},u={narrow:/^[1234]/i,abbreviated:/^k[1234]/i,wide:/^[1234](-?a)? kvaronjaro/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|maj|jun|jul|a(ŭ|ux|uh|u)g|sep|okt|nov|dec)/i,wide:/^(januaro|februaro|marto|aprilo|majo|junio|julio|a(ŭ|ux|uh|u)gusto|septembro|oktobro|novembro|decembro)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^maj/i,/^jun/i,/^jul/i,/^a(u|ŭ)/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[dlmĵjvs]/i,short:/^(di|lu|ma|me|(ĵ|jx|jh|j)a|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|(ĵ|jx|jh|j)a(ŭ|ux|uh|u)|ven|sab)/i,wide:/^(diman(ĉ|cx|ch|c)o|lundo|mardo|merkredo|(ĵ|jx|jh|j)a(ŭ|ux|uh|u)do|vendredo|sabato)/i},c={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^(j|ĵ)/i,/^v/i,/^s/i],any:[/^d/i,/^l/i,/^ma/i,/^me/i,/^(j|ĵ)/i,/^v/i,/^s/i]},v={narrow:/^([ap]|(posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo])/i,abbreviated:/^([ap][.\s]?t[.\s]?m[.\s]?|(posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo])/i,wide:/^(anta(ŭ|ux)tagmez|posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo]/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^noktom/i,noon:/^t/i,morning:/^m/i,afternoon:/^posttagmeze/i,evening:/^v/i,night:/^n/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"wide",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(543),a=e(544),r=e(545),o=e(546),n=e(547),s={code:"es",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"menos de un segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"medio minuto",lessThanXMinutes:{one:"menos de un minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"alrededor de 1 hora",other:"alrededor de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 día",other:"{{count}} días"},aboutXWeeks:{one:"alrededor de 1 semana",other:"alrededor de {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"alrededor de 1 mes",other:"alrededor de {{count}} meses"},xMonths:{one:"1 mes",other:"{{count}} meses"},aboutXYears:{one:"alrededor de 1 año",other:"alrededor de {{count}} años"},xYears:{one:"1 año",other:"{{count}} años"},overXYears:{one:"más de 1 año",other:"más de {{count}} años"},almostXYears:{one:"casi 1 año",other:"casi {{count}} años"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"en "+s:"hace "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d MMM y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'a las' {{time}}",long:"{{date}} 'a las' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=r;var t={lastWeek:"'el' eeee 'pasado a la' LT",yesterday:"'ayer a la' p",today:"'hoy a la' p",tomorrow:"'mañana a la' p",nextWeek:"eeee 'a la' p",other:"P"},a={lastWeek:"'el' eeee 'pasado a las' p",yesterday:"'ayer a las' p",today:"'hoy a las' p",tomorrow:"'mañana a las' p",nextWeek:"eeee 'a las' p",other:"P"};function r(o,n,s,u){return n.getUTCHours()!==1?a[o]:t[o]}},function(l,i,e){var t=e(3),a={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","después de cristo"]},r={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},o={narrow:["e","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],wide:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},n={narrow:["d","l","m","m","j","v","s"],short:["do","lu","ma","mi","ju","vi","sa"],abbreviated:["dom","lun","mar","mié","jue","vie","sáb"],wide:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},s={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"mañana",afternoon:"tarde",evening:"tarde",night:"noche"},abbreviated:{am:"AM",pm:"PM",midnight:"medianoche",noon:"mediodia",morning:"mañana",afternoon:"tarde",evening:"tarde",night:"noche"},wide:{am:"a.m.",pm:"p.m.",midnight:"medianoche",noon:"mediodia",morning:"mañana",afternoon:"tarde",evening:"tarde",night:"noche"}},u={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"de la mañana",afternoon:"de la tarde",evening:"de la tarde",night:"de la noche"},abbreviated:{am:"AM",pm:"PM",midnight:"medianoche",noon:"mediodia",morning:"de la mañana",afternoon:"de la tarde",evening:"de la tarde",night:"de la noche"},wide:{am:"a.m.",pm:"p.m.",midnight:"medianoche",noon:"mediodia",morning:"de la mañana",afternoon:"de la tarde",evening:"de la tarde",night:"de la noche"}};function d(f){var _=Number(f);return _+"º"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(º)?/i,o=/\d+/i,n={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i},s={any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes de la era com[uú]n)/i,/^(despu[eé]s de cristo|era com[uú]n)/i]},u={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[efmajsond]/i,abbreviated:/^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,wide:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i},f={narrow:[/^e/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^en/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i]},_={narrow:/^[dlmjvs]/i,short:/^(do|lu|ma|mi|ju|vi|sa)/i,abbreviated:/^(dom|lun|mar|mie|jue|vie|sab)/i,wide:/^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i},c={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^do/i,/^lu/i,/^ma/i,/^mi/i,/^ju/i,/^vi/i,/^sa/i]},v={narrow:/^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,any:/^([ap]\.?\s?m\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mn/i,noon:/^md/i,morning:/mañana/i,afternoon:/tarde/i,evening:/tarde/i,night:/noche/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(549),a=e(550),r=e(551),o=e(552),n=e(553),s={code:"et",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{standalone:{one:"vähem kui üks sekund",other:"vähem kui {{count}} sekundit"},withPreposition:{one:"vähem kui ühe sekundi",other:"vähem kui {{count}} sekundi"}},xSeconds:{standalone:{one:"üks sekund",other:"{{count}} sekundit"},withPreposition:{one:"ühe sekundi",other:"{{count}} sekundi"}},halfAMinute:{standalone:"pool minutit",withPreposition:"poole minuti"},lessThanXMinutes:{standalone:{one:"vähem kui üks minut",other:"vähem kui {{count}} minutit"},withPreposition:{one:"vähem kui ühe minuti",other:"vähem kui {{count}} minuti"}},xMinutes:{standalone:{one:"üks minut",other:"{{count}} minutit"},withPreposition:{one:"ühe minuti",other:"{{count}} minuti"}},aboutXHours:{standalone:{one:"umbes üks tund",other:"umbes {{count}} tundi"},withPreposition:{one:"umbes ühe tunni",other:"umbes {{count}} tunni"}},xHours:{standalone:{one:"üks tund",other:"{{count}} tundi"},withPreposition:{one:"ühe tunni",other:"{{count}} tunni"}},xDays:{standalone:{one:"üks päev",other:"{{count}} päeva"},withPreposition:{one:"ühe päeva",other:"{{count}} päeva"}},aboutXWeeks:{standalone:{one:"umbes üks nädal",other:"umbes {{count}} nädalat"},withPreposition:{one:"umbes ühe nädala",other:"umbes {{count}} nädala"}},xWeeks:{standalone:{one:"üks nädal",other:"{{count}} nädalat"},withPreposition:{one:"ühe nädala",other:"{{count}} nädala"}},aboutXMonths:{standalone:{one:"umbes üks kuu",other:"umbes {{count}} kuud"},withPreposition:{one:"umbes ühe kuu",other:"umbes {{count}} kuu"}},xMonths:{standalone:{one:"üks kuu",other:"{{count}} kuud"},withPreposition:{one:"ühe kuu",other:"{{count}} kuu"}},aboutXYears:{standalone:{one:"umbes üks aasta",other:"umbes {{count}} aastat"},withPreposition:{one:"umbes ühe aasta",other:"umbes {{count}} aasta"}},xYears:{standalone:{one:"üks aasta",other:"{{count}} aastat"},withPreposition:{one:"ühe aasta",other:"{{count}} aasta"}},overXYears:{standalone:{one:"rohkem kui üks aasta",other:"rohkem kui {{count}} aastat"},withPreposition:{one:"rohkem kui ühe aasta",other:"rohkem kui {{count}} aasta"}},almostXYears:{standalone:{one:"peaaegu üks aasta",other:"peaaegu {{count}} aastat"},withPreposition:{one:"peaaegu ühe aasta",other:"peaaegu {{count}} aasta"}}};function a(r,o,n){n=n||{};var s=n.addSuffix?t[r].withPreposition:t[r].standalone,u;return typeof s=="string"?u=s:o===1?u=s.one:u=s.other.replace("{{count}}",o),n.addSuffix?n.comparison>0?u+" pärast":u+" eest":u}},function(l,i,e){var t=e(2),a={full:"eeee, d. MMMM y",long:"d. MMMM y",medium:"d. MMM y",short:"dd.MM.y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'kell' {{time}}",long:"{{date}} 'kell' {{time}}",medium:"{{date}}. {{time}}",short:"{{date}}. {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'eelmine' eeee 'kell' p",yesterday:"'eile kell' p",today:"'täna kell' p",tomorrow:"'homme kell' p",nextWeek:"'järgmine' eeee 'kell' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["e.m.a","m.a.j"],abbreviated:["e.m.a","m.a.j"],wide:["enne meie ajaarvamist","meie ajaarvamise järgi"]},r={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"]},o={narrow:["J","V","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],wide:["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"]},n={narrow:["P","E","T","K","N","R","L"],short:["P","E","T","K","N","R","L"],abbreviated:["pühap.","esmasp.","teisip.","kolmap.","neljap.","reede.","laup."],wide:["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"]},s={narrow:{am:"AM",pm:"PM",midnight:"kesköö",noon:"keskpäev",morning:"hommik",afternoon:"pärastlõuna",evening:"õhtu",night:"öö"},abbreviated:{am:"AM",pm:"PM",midnight:"kesköö",noon:"keskpäev",morning:"hommik",afternoon:"pärastlõuna",evening:"õhtu",night:"öö"},wide:{am:"AM",pm:"PM",midnight:"kesköö",noon:"keskpäev",morning:"hommik",afternoon:"pärastlõuna",evening:"õhtu",night:"öö"}},u={narrow:{am:"AM",pm:"PM",midnight:"keskööl",noon:"keskpäeval",morning:"hommikul",afternoon:"pärastlõunal",evening:"õhtul",night:"öösel"},abbreviated:{am:"AM",pm:"PM",midnight:"keskööl",noon:"keskpäeval",morning:"hommikul",afternoon:"pärastlõunal",evening:"õhtul",night:"öösel"},wide:{am:"AM",pm:"PM",midnight:"keskööl",noon:"keskpäeval",morning:"hommikul",afternoon:"pärastlõunal",evening:"õhtul",night:"öösel"}};function d(f){var _=Number(f);return _+"."}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,formattingValues:o,defaultWidth:"wide"}),day:t.a({values:n,formattingValues:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,formattingValues:u,defaultWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^\d+\./i,o=/\d+/i,n={narrow:/^(e\.m\.a|m\.a\.j|eKr|pKr)/i,abbreviated:/^(e\.m\.a|m\.a\.j|eKr|pKr)/i,wide:/^(enne meie ajaarvamist|meie ajaarvamise järgi|enne Kristust|pärast Kristust)/i},s={any:[/^e/i,/^(m|p)/i]},u={narrow:/^[1234]/i,abbreviated:/^K[1234]/i,wide:/^[1234](\.)? kvartal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jvmasond]/i,abbreviated:/^('jaan|veebr|märts|apr|mai|juuni|juuli|aug|sept|okt|nov|dets')/i,wide:/^('jaanuar|veebruar|märts|aprill|mai|juuni|juuli|august|september|oktoober|november|detsember')/i},f={narrow:[/^j/i,/^v/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^v/i,/^mär/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[petknrl]/i,short:/^[petknrl]/i,abbreviated:/^(püh?|esm?|tei?|kolm?|nel?|ree?|laup?)\.?/i,wide:/^('pühapäev|esmaspäev|teisipäev|kolmapäev|neljapäev|reede|laupäev')/i},c={any:[/^p/i,/^e/i,/^t/i,/^k/i,/^n/i,/^r/i,/^l/i]},v={any:/^(am|pm|kesköö|keskpäev|hommik|pärastlõuna|õhtu|öö)/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^keskö/i,noon:/^keskp/i,morning:/hommik/i,afternoon:/pärastlõuna/i,evening:/õhtu/i,night:/öö/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(555),a=e(556),r=e(557),o=e(558),n=e(559),s={code:"eu",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"segundo bat baino gutxiago",other:"{{count}} segundo baino gutxiago"},xSeconds:{one:"1 segundo",other:"{{count}} segundo"},halfAMinute:"minutu erdi",lessThanXMinutes:{one:"minutu bat baino gutxiago",other:"{{count}} minutu baino gutxiago"},xMinutes:{one:"1 minutu",other:"{{count}} minutu"},aboutXHours:{one:"1 ordu gutxi gorabehera",other:"{{count}} ordu gutxi gorabehera"},xHours:{one:"1 ordu",other:"{{count}} ordu"},xDays:{one:"1 egun",other:"{{count}} egun"},aboutXWeeks:{one:"aste 1 inguru",other:"{{count}} aste inguru"},xWeeks:{one:"1 aste",other:"{{count}} astean"},aboutXMonths:{one:"1 hilabete gutxi gorabehera",other:"{{count}} hilabete gutxi gorabehera"},xMonths:{one:"1 hilabete",other:"{{count}} hilabete"},aboutXYears:{one:"1 urte gutxi gorabehera",other:"{{count}} urte gutxi gorabehera"},xYears:{one:"1 urte",other:"{{count}} urte"},overXYears:{one:"1 urte baino gehiago",other:"{{count}} urte baino gehiago"},almostXYears:{one:"ia 1 urte",other:"ia {{count}} urte"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"en "+s:"duela "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d 'de' MMMM y",long:"d 'de' MMMM y",medium:"d MMM y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'tan' {{time}}",long:"{{date}} 'tan' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=r;var t={lastWeek:"'joan den' eeee, LT",yesterday:"'atzo,' p",today:"'gaur,' p",tomorrow:"'bihar,' p",nextWeek:"eeee, p",other:"P"},a={lastWeek:"'joan den' eeee, p",yesterday:"'atzo,' p",today:"'gaur,' p",tomorrow:"'bihar,' p",nextWeek:"eeee, p",other:"P"};function r(o,n,s,u){return n.getUTCHours()!==1?a[o]:t[o]}},function(l,i,e){var t=e(3),a={narrow:["k.a.","k.o."],abbreviated:["k.a.","k.o."],wide:["kristo aurretik","kristo ondoren"]},r={narrow:["1","2","3","4"],abbreviated:["1H","2H","3H","4H"],wide:["1. hiruhilekoa","2. hiruhilekoa","3. hiruhilekoa","4. hiruhilekoa"]},o={narrow:["u","o","m","a","m","e","u","a","i","u","a","a"],abbreviated:["urt","ots","mar","api","mai","eka","uzt","abu","ira","urr","aza","abe"],wide:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"]},n={narrow:["i","a","a","a","o","o","l"],short:["ig","al","as","az","og","or","lr"],abbreviated:["iga","ast","ast","ast","ost","ost","lar"],wide:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"]},s={narrow:{am:"a",pm:"p",midnight:"ge",noon:"eg",morning:"goiza",afternoon:"arratsaldea",evening:"arratsaldea",night:"gaua"},abbreviated:{am:"AM",pm:"PM",midnight:"gauerdia",noon:"eguerdia",morning:"goiza",afternoon:"arratsaldea",evening:"arratsaldea",night:"gaua"},wide:{am:"a.m.",pm:"p.m.",midnight:"gauerdia",noon:"eguerdia",morning:"goiza",afternoon:"arratsaldea",evening:"arratsaldea",night:"gaua"}},u={narrow:{am:"a",pm:"p",midnight:"ge",noon:"eg",morning:"goizean",afternoon:"arratsaldean",evening:"arratsaldean",night:"gauean"},abbreviated:{am:"AM",pm:"PM",midnight:"gauerdia",noon:"eguerdia",morning:"goizean",afternoon:"arratsaldean",evening:"arratsaldean",night:"gauean"},wide:{am:"a.m.",pm:"p.m.",midnight:"gauerdia",noon:"eguerdia",morning:"goizean",afternoon:"arratsaldean",evening:"arratsaldean",night:"gauean"}};function d(f){var _=Number(f);return _+"."}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(.)?/i,o=/\d+/i,n={narrow:/^(k.a.|k.o.)/i,abbreviated:/^(k.a.|k.o.)/i,wide:/^(kristo aurretik|kristo ondoren)/i},s={narrow:[/^k.a./i,/^k.o./i],abbreviated:[/^(k.a.)/i,/^(k.o.)/i],wide:[/^(kristo aurretik)/i,/^(kristo ondoren)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]H/i,wide:/^[1234](.)? hiruhilekoa/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[uomaei]/i,abbreviated:/^(urt|ots|mar|api|mai|eka|uzt|abu|ira|urr|aza|abe)/i,wide:/^(urtarrila|otsaila|martxoa|apirila|maiatza|ekaina|uztaila|abuztua|iraila|urria|azaroa|abendua)/i},f={narrow:[/^u/i,/^o/i,/^m/i,/^a/i,/^m/i,/^e/i,/^u/i,/^a/i,/^i/i,/^u/i,/^a/i,/^a/i],any:[/^urt/i,/^ots/i,/^mar/i,/^api/i,/^mai/i,/^eka/i,/^uzt/i,/^abu/i,/^ira/i,/^urr/i,/^aza/i,/^abe/i]},_={narrow:/^[iaol]/i,short:/^(ig|al|as|az|og|or|lr)/i,abbreviated:/^(iga|ast|ast|ast|ost|ost|lar)/i,wide:/^(igandea|astelehena|asteartea|asteazkena|osteguna|ostirala|larunbata)/i},c={narrow:[/^i/i,/^a/i,/^a/i,/^a/i,/^o/i,/^o/i,/^l/i],short:[/^ig/i,/^al/i,/^as/i,/^az/i,/^og/i,/^or/i,/^lr/i],abbreviated:[/^iga/i,/^ast/i,/^ast/i,/^ast/i,/^ost/i,/^ost/i,/^lar/i],wide:[/^igandea/i,/^astelehena/i,/^asteartea/i,/^asteazkena/i,/^osteguna/i,/^ostirala/i,/^larunbata/i]},v={narrow:/^(a|p|ge|eg|((goiza|goizean)|arratsaldea|(gaua|gauean)))/i,any:/^([ap]\.?\s?m\.?|gauerdia|eguerdia|((goiza|goizean)|arratsaldea|(gaua|gauean)))/i},g={narrow:{am:/^a/i,pm:/^p/i,midnight:/^ge/i,noon:/^eg/i,morning:/goiz/i,afternoon:/arratsaldea/i,evening:/arratsaldea/i,night:/gau/i},any:{am:/^a/i,pm:/^p/i,midnight:/^gauerdia/i,noon:/^eguerdia/i,morning:/goiz/i,afternoon:/arratsaldea/i,evening:/arratsaldea/i,night:/gau/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(561),a=e(562),r=e(563),o=e(564),n=e(565),s={code:"fa-IR",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"کمتر از یک ثانیه",other:"کمتر از {{count}} ثانیه"},xSeconds:{one:"1 ثانیه",other:"{{count}} ثانیه"},halfAMinute:"نیم دقیقه",lessThanXMinutes:{one:"کمتر از یک دقیقه",other:"کمتر از {{count}} دقیقه"},xMinutes:{one:"1 دقیقه",other:"{{count}} دقیقه"},aboutXHours:{one:"حدود 1 ساعت",other:"حدود {{count}} ساعت"},xHours:{one:"1 ساعت",other:"{{count}} ساعت"},xDays:{one:"1 روز",other:"{{count}} روز"},aboutXWeeks:{one:"حدود 1 هفته",other:"حدود {{count}} هفته"},xWeeks:{one:"1 هفته",other:"{{count}} هفته"},aboutXMonths:{one:"حدود 1 ماه",other:"حدود {{count}} ماه"},xMonths:{one:"1 ماه",other:"{{count}} ماه"},aboutXYears:{one:"حدود 1 سال",other:"حدود {{count}} سال"},xYears:{one:"1 سال",other:"{{count}} سال"},overXYears:{one:"بیشتر از 1 سال",other:"بیشتر از {{count}} سال"},almostXYears:{one:"نزدیک 1 سال",other:"نزدیک {{count}} سال"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"در "+s:s+" قبل":s}},function(l,i,e){var t=e(2),a={full:"EEEE do MMMM y",long:"do MMMM y",medium:"d MMM y",short:"yyyy/MM/dd"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'در' {{time}}",long:"{{date}} 'در' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'گذشته در' p",yesterday:"'دیروز در' p",today:"'امروز در' p",tomorrow:"'فردا در' p",nextWeek:"eeee 'در' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["ق","ب"],abbreviated:["ق.م.","ب.م."],wide:["قبل از میلاد","بعد از میلاد"]},r={narrow:["1","2","3","4"],abbreviated:["س‌م1","س‌م2","س‌م3","س‌م4"],wide:["سه‌ماهه 1","سه‌ماهه 2","سه‌ماهه 3","سه‌ماهه 4"]},o={narrow:["ژ","ف","م","آ","م","ج","ج","آ","س","ا","ن","د"],abbreviated:["ژانـ","فور","مارس","آپر","می","جون","جولـ","آگو","سپتـ","اکتـ","نوامـ","دسامـ"],wide:["ژانویه","فوریه","مارس","آپریل","می","جون","جولای","آگوست","سپتامبر","اکتبر","نوامبر","دسامبر"]},n={narrow:["ی","د","س","چ","پ","ج","ش"],short:["1ش","2ش","3ش","4ش","5ش","ج","ش"],abbreviated:["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],wide:["یکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"]},s={narrow:{am:"ق",pm:"ب",midnight:"ن",noon:"ظ",morning:"ص",afternoon:"ب.ظ.",evening:"ع",night:"ش"},abbreviated:{am:"ق.ظ.",pm:"ب.ظ.",midnight:"نیمه‌شب",noon:"ظهر",morning:"صبح",afternoon:"بعدازظهر",evening:"عصر",night:"شب"},wide:{am:"قبل‌ازظهر",pm:"بعدازظهر",midnight:"نیمه‌شب",noon:"ظهر",morning:"صبح",afternoon:"بعدازظهر",evening:"عصر",night:"شب"}},u={narrow:{am:"ق",pm:"ب",midnight:"ن",noon:"ظ",morning:"ص",afternoon:"ب.ظ.",evening:"ع",night:"ش"},abbreviated:{am:"ق.ظ.",pm:"ب.ظ.",midnight:"نیمه‌شب",noon:"ظهر",morning:"صبح",afternoon:"بعدازظهر",evening:"عصر",night:"شب"},wide:{am:"قبل‌ازظهر",pm:"بعدازظهر",midnight:"نیمه‌شب",noon:"ظهر",morning:"صبح",afternoon:"بعدازظهر",evening:"عصر",night:"شب"}};function d(f){return String(f)}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,n={narrow:/^(ق|ب)/i,abbreviated:/^(ق\.?\s?م\.?|ق\.?\s?د\.?\s?م\.?|م\.?\s?|د\.?\s?م\.?)/i,wide:/^(قبل از میلاد|قبل از دوران مشترک|میلادی|دوران مشترک|بعد از میلاد)/i},s={any:[/^قبل/i,/^بعد/i]},u={narrow:/^[1234]/i,abbreviated:/^س‌م[1234]/i,wide:/^سه‌ماهه [1234]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[جژفمآاماسند]/i,abbreviated:/^(جنو|ژانـ|ژانویه|فوریه|فور|مارس|آوریل|آپر|مه|می|ژوئن|جون|جول|جولـ|ژوئیه|اوت|آگو|سپتمبر|سپتامبر|اکتبر|اکتوبر|نوامبر|نوامـ|دسامبر|دسامـ|دسم)/i,wide:/^(ژانویه|جنوری|فبروری|فوریه|مارچ|مارس|آپریل|اپریل|ایپریل|آوریل|مه|می|ژوئن|جون|جولای|ژوئیه|آگست|اگست|آگوست|اوت|سپتمبر|سپتامبر|اکتبر|اکتوبر|نوامبر|نومبر|دسامبر|دسمبر)/i},f={narrow:[/^(ژ|ج)/i,/^ف/i,/^م/i,/^(آ|ا)/i,/^م/i,/^(ژ|ج)/i,/^(ج|ژ)/i,/^(آ|ا)/i,/^س/i,/^ا/i,/^ن/i,/^د/i],any:[/^ژا/i,/^ف/i,/^ما/i,/^آپ/i,/^(می|مه)/i,/^(ژوئن|جون)/i,/^(ژوئی|جول)/i,/^(اوت|آگ)/i,/^س/i,/^(اوک|اک)/i,/^ن/i,/^د/i]},_={narrow:/^[شیدسچپج]/i,short:/^(ش|ج|1ش|2ش|3ش|4ش|5ش)/i,abbreviated:/^(یکشنبه|دوشنبه|سه‌شنبه|چهارشنبه|پنج‌شنبه|جمعه|شنبه)/i,wide:/^(یکشنبه|دوشنبه|سه‌شنبه|چهارشنبه|پنج‌شنبه|جمعه|شنبه)/i},c={narrow:[/^ی/i,/^دو/i,/^س/i,/^چ/i,/^پ/i,/^ج/i,/^ش/i],any:[/^(ی|1ش|یکشنبه)/i,/^(د|2ش|دوشنبه)/i,/^(س|3ش|سه‌شنبه)/i,/^(چ|4ش|چهارشنبه)/i,/^(پ|5ش|پنجشنبه)/i,/^(ج|جمعه)/i,/^(ش|شنبه)/i]},v={narrow:/^(ب|ق|ن|ظ|ص|ب.ظ.|ع|ش)/i,abbreviated:/^(ق.ظ.|ب.ظ.|نیمه‌شب|ظهر|صبح|بعدازظهر|عصر|شب)/i,wide:/^(قبل‌ازظهر|نیمه‌شب|ظهر|صبح|بعدازظهر|عصر|شب)/i},g={any:{am:/^(ق|ق.ظ.|قبل‌ازظهر)/i,pm:/^(ب|ب.ظ.|بعدازظهر)/i,midnight:/^(‌نیمه‌شب|ن)/i,noon:/^(ظ|ظهر)/i,morning:/(ص|صبح)/i,afternoon:/(ب|ب.ظ.|بعدازظهر)/i,evening:/(ع|عصر)/i,night:/(ش|شب)/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(567),a=e(568),r=e(569),o=e(570),n=e(571),s={code:"fi",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=m;function t(f){return f.replace(/sekuntia?/,"sekunnin")}function a(f){return f.replace(/minuuttia?/,"minuutin")}function r(f){return f.replace(/tuntia?/,"tunnin")}function o(f){return f.replace(/päivää?/,"päivän")}function n(f){return f.replace(/(viikko|viikkoa)/,"viikon")}function s(f){return f.replace(/(kuukausi|kuukautta)/,"kuukauden")}function u(f){return f.replace(/(vuosi|vuotta)/,"vuoden")}var d={lessThanXSeconds:{one:"alle sekunti",other:"alle {{count}} sekuntia",futureTense:t},xSeconds:{one:"sekunti",other:"{{count}} sekuntia",futureTense:t},halfAMinute:{one:"puoli minuuttia",other:"puoli minuuttia",futureTense:function(f){return"puolen minuutin"}},lessThanXMinutes:{one:"alle minuutti",other:"alle {{count}} minuuttia",futureTense:a},xMinutes:{one:"minuutti",other:"{{count}} minuuttia",futureTense:a},aboutXHours:{one:"noin tunti",other:"noin {{count}} tuntia",futureTense:r},xHours:{one:"tunti",other:"{{count}} tuntia",futureTense:r},xDays:{one:"päivä",other:"{{count}} päivää",futureTense:o},aboutXWeeks:{one:"noin viikko",other:"noin {{count}} viikkoa",futureTense:n},xWeeks:{one:"viikko",other:"{{count}} viikkoa",futureTense:n},aboutXMonths:{one:"noin kuukausi",other:"noin {{count}} kuukautta",futureTense:s},xMonths:{one:"kuukausi",other:"{{count}} kuukautta",futureTense:s},aboutXYears:{one:"noin vuosi",other:"noin {{count}} vuotta",futureTense:u},xYears:{one:"vuosi",other:"{{count}} vuotta",futureTense:u},overXYears:{one:"yli vuosi",other:"yli {{count}} vuotta",futureTense:u},almostXYears:{one:"lähes vuosi",other:"lähes {{count}} vuotta",futureTense:u}};function m(f,_,c){c=c||{};var v=d[f],g=_===1?v.one:v.other.replace("{{count}}",_);return c.addSuffix?c.comparison>0?v.futureTense(g)+" kuluttua":g+" sitten":g}},function(l,i,e){var t=e(2),a={full:"eeee d. MMMM y",long:"d. MMMM y",medium:"d. MMM y",short:"d.M.y"},r={full:"HH.mm.ss zzzz",long:"HH.mm.ss z",medium:"HH.mm.ss",short:"HH.mm"},o={full:"{{date}} 'klo' {{time}}",long:"{{date}} 'klo' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'viime' eeee 'klo' p",yesterday:"'eilen klo' p",today:"'tänään klo' p",tomorrow:"'huomenna klo' p",nextWeek:"'ensi' eeee 'klo' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["eaa.","jaa."],abbreviated:["eaa.","jaa."],wide:["ennen ajanlaskun alkua","jälkeen ajanlaskun alun"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. kvartaali","2. kvartaali","3. kvartaali","4. kvartaali"]},o={narrow:["T","H","M","H","T","K","H","E","S","L","M","J"],abbreviated:["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],wide:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"]},n={narrow:o.narrow,abbreviated:o.abbreviated,wide:o.wide.map(function(_){return _+"ta"})},s={narrow:["S","M","T","K","T","P","L"],short:["su","ma","ti","ke","to","pe","la"],abbreviated:["sunn.","maan.","tiis.","kesk.","torst.","perj.","la"],wide:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},u={narrow:s.narrow,short:s.short,abbreviated:s.abbreviated,wide:s.wide.map(function(_){return _+"na"})},d={narrow:{am:"ap",pm:"ip",midnight:"keskiyö",noon:"keskipäivä",morning:"ap",afternoon:"ip",evening:"illalla",night:"yöllä"},abbreviated:{am:"ap",pm:"ip",midnight:"keskiyö",noon:"keskipäivä",morning:"ap",afternoon:"ip",evening:"illalla",night:"yöllä"},wide:{am:"ap",pm:"ip",midnight:"keskiyöllä",noon:"keskipäivällä",morning:"aamupäivällä",afternoon:"iltapäivällä",evening:"illalla",night:"yöllä"}};function m(_){var c=Number(_);return c+"."}var f={ordinalNumber:m,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,formattingValues:n,defaultWidth:"wide"}),day:t.a({values:s,formattingValues:u,defaultWidth:"wide"}),dayPeriod:t.a({values:d,defaultWidth:"wide"})};i.a=f},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(\.)/i,o=/\d+/i,n={narrow:/^(e|j)/i,abbreviated:/^(eaa.|jaa.)/i,wide:/^(ennen ajanlaskun alkua|jälkeen ajanlaskun alun)/i},s={any:[/^e/i,/^j/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]\.? kvartaali/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[thmkeslj]/i,abbreviated:/^(tammi|helmi|maalis|huhti|touko|kesä|heinä|elo|syys|loka|marras|joulu)/i,wide:/^(tammikuu|helmikuu|maaliskuu|huhtikuu|toukokuu|kesäkuu|heinäkuu|elokuu|syyskuu|lokakuu|marraskuu|joulukuu)(ta)?/i},f={narrow:[/^t/i,/^h/i,/^m/i,/^h/i,/^t/i,/^k/i,/^h/i,/^e/i,/^s/i,/^l/i,/^m/i,/^j/i],any:[/^ta/i,/^hel/i,/^maa/i,/^hu/i,/^to/i,/^k/i,/^hei/i,/^e/i,/^s/i,/^l/i,/^mar/i,/^j/i]},_={narrow:/^[smtkpl]/i,short:/^(su|ma|ti|ke|to|pe|la)/i,abbreviated:/^(sunn.|maan.|tiis.|kesk.|torst.|perj.|la)/i,wide:/^(sunnuntai|maanantai|tiistai|keskiviikko|torstai|perjantai|lauantai)(na)?/i},c={narrow:[/^s/i,/^m/i,/^t/i,/^k/i,/^t/i,/^p/i,/^l/i],any:[/^s/i,/^m/i,/^ti/i,/^k/i,/^to/i,/^p/i,/^l/i]},v={narrow:/^(ap|ip|keskiyö|keskipäivä|aamupäivällä|iltapäivällä|illalla|yöllä)/i,any:/^(ap|ip|keskiyöllä|keskipäivällä|aamupäivällä|iltapäivällä|illalla|yöllä)/i},g={any:{am:/^ap/i,pm:/^ip/i,midnight:/^keskiyö/i,noon:/^keskipäivä/i,morning:/aamupäivällä/i,afternoon:/iltapäivällä/i,evening:/illalla/i,night:/yöllä/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(187),a=e(573),r=e(188),o=e(189),n=e(190),s={code:"fr",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){var t=e(2),a={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'à' {{time}}",long:"{{date}} 'à' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){var t=e(187),a=e(188),r=e(189),o=e(190),n=e(575),s={code:"fr-CA",formatDistance:t.a,formatLong:n.a,formatRelative:a.a,localize:r.a,match:o.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){var t=e(2),a={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"yy-MM-dd"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'à' {{time}}",long:"{{date}} 'à' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){var t=e(577),a=e(578),r=e(579),o=e(580),n=e(581),s={code:"fr-CH",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"moins d’une seconde",other:"moins de {{count}} secondes"},xSeconds:{one:"1 seconde",other:"{{count}} secondes"},halfAMinute:"30 secondes",lessThanXMinutes:{one:"moins d’une minute",other:"moins de {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"environ 1 heure",other:"environ {{count}} heures"},xHours:{one:"1 heure",other:"{{count}} heures"},xDays:{one:"1 jour",other:"{{count}} jours"},aboutXWeeks:{one:"environ 1 semaine",other:"environ {{count}} semaines"},xWeeks:{one:"1 semaine",other:"{{count}} semaines"},aboutXMonths:{one:"environ 1 mois",other:"environ {{count}} mois"},xMonths:{one:"1 mois",other:"{{count}} mois"},aboutXYears:{one:"environ 1 an",other:"environ {{count}} ans"},xYears:{one:"1 an",other:"{{count}} ans"},overXYears:{one:"plus d’un an",other:"plus de {{count}} ans"},almostXYears:{one:"presqu’un an",other:"presque {{count}} ans"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"dans "+s:"il y a "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd.MM.y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'à' {{time}}",long:"{{date}} 'à' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'la semaine dernière à' p",yesterday:"'hier à' p",today:"'aujourd’hui à' p",tomorrow:"'demain à' p'",nextWeek:"eeee 'la semaine prochaine à' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["av. J.-C","ap. J.-C"],abbreviated:["av. J.-C","ap. J.-C"],wide:["avant Jésus-Christ","après Jésus-Christ"]},r={narrow:["T1","T2","T3","T4"],abbreviated:["1er trim.","2ème trim.","3ème trim.","4ème trim."],wide:["1er trimestre","2ème trimestre","3ème trimestre","4ème trimestre"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],wide:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},n={narrow:["D","L","M","M","J","V","S"],short:["di","lu","ma","me","je","ve","sa"],abbreviated:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],wide:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},s={narrow:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"mat.",afternoon:"ap.m.",evening:"soir",night:"mat."},abbreviated:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"matin",afternoon:"après-midi",evening:"soir",night:"matin"},wide:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"du matin",afternoon:"de l’après-midi",evening:"du soir",night:"du matin"}};function u(m,f){var _=Number(m),c=f||{},v=String(c.unit),g;return _===0?_:(v==="year"||v==="hour"||v==="week"?_===1?g="ère":g="ème":_===1?g="er":g="ème",_+g)}var d={ordinalNumber:u,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(m){return Number(m)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=d},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(ième|ère|ème|er|e)?/i,o=/\d+/i,n={narrow:/^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,abbreviated:/^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,wide:/^(avant Jésus-Christ|après Jésus-Christ)/i},s={any:[/^av/i,/^ap/i]},u={narrow:/^[1234]/i,abbreviated:/^t[1234]/i,wide:/^[1234](er|ème|e)? trimestre/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,wide:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^av/i,/^ma/i,/^juin/i,/^juil/i,/^ao/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[lmjvsd]/i,short:/^(di|lu|ma|me|je|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,wide:/^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i},c={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^di/i,/^lu/i,/^ma/i,/^me/i,/^je/i,/^ve/i,/^sa/i]},v={narrow:/^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,any:/^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^min/i,noon:/^mid/i,morning:/mat/i,afternoon:/ap/i,evening:/soir/i,night:/nuit/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(583),a=e(584),r=e(585),o=e(586),n=e(587),s={code:"gd",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"nas lugha na diog",other:"nas lugha na {{count}} diogan"},xSeconds:{one:"1 diog",two:"2 dhiog",twenty:"20 diog",other:"{{count}} diogan"},halfAMinute:"leth mhionaid",lessThanXMinutes:{one:"nas lugha na mionaid",other:"nas lugha na {{count}} mionaidean"},xMinutes:{one:"1 mionaid",two:"2 mhionaid",twenty:"20 mionaid",other:"{{count}} mionaidean"},aboutXHours:{one:"mu uair de thìde",other:"mu {{count}} uairean de thìde"},xHours:{one:"1 uair de thìde",two:"2 uair de thìde",twenty:"20 uair de thìde",other:"{{count}} uairean de thìde"},xDays:{one:"1 là",other:"{{count}} là"},aboutXWeeks:{one:"mu 1 seachdain",other:"mu {{count}} seachdainean"},xWeeks:{one:"1 seachdain",other:"{{count}} seachdainean"},aboutXMonths:{one:"mu mhìos",other:"mu {{count}} mìosan"},xMonths:{one:"1 mìos",other:"{{count}} mìosan"},aboutXYears:{one:"mu bhliadhna",other:"mu {{count}} bliadhnaichean"},xYears:{one:"1 bhliadhna",other:"{{count}} bliadhna"},overXYears:{one:"còrr is bliadhna",other:"còrr is {{count}} bliadhnaichean"},almostXYears:{one:"cha mhòr bliadhna",other:"cha mhòr {{count}} bliadhnaichean"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:o===2&&t[r].two?s=t[r].two:o===9&&t[r].nine?s=t[r].nine:o===20&&t[r].twenty?s=t[r].twenty:o===30&&t[r].thirty?s=t[r].thirty:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"ann an "+s:"o chionn "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'aig' {{time}}",long:"{{date}} 'aig' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'mu dheireadh' eeee 'aig' p",yesterday:"'an-dè aig' p",today:"'an-diugh aig' p",tomorrow:"'a-màireach aig' p",nextWeek:"eeee 'aig' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["R","A"],abbreviated:["RC","AD"],wide:["ro Chrìosta","anno domini"]},r={narrow:["1","2","3","4"],abbreviated:["C1","C2","C3","C4"],wide:["a' chiad chairteal","an dàrna cairteal","an treas cairteal","an ceathramh cairteal"]},o={narrow:["F","G","M","G","C","Ò","I","L","S","D","S","D"],abbreviated:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],wide:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"]},n={narrow:["D","L","M","C","A","H","S"],short:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],abbreviated:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],wide:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"]},s={narrow:{am:"m",pm:"f",midnight:"m.o.",noon:"m.l.",morning:"madainn",afternoon:"feasgar",evening:"feasgar",night:"oidhche"},abbreviated:{am:"M.",pm:"F.",midnight:"meadhan oidhche",noon:"meadhan là",morning:"madainn",afternoon:"feasgar",evening:"feasgar",night:"oidhche"},wide:{am:"m.",pm:"f.",midnight:"meadhan oidhche",noon:"meadhan là",morning:"madainn",afternoon:"feasgar",evening:"feasgar",night:"oidhche"}},u={narrow:{am:"m",pm:"f",midnight:"m.o.",noon:"m.l.",morning:"sa mhadainn",afternoon:"feasgar",evening:"feasgar",night:"air an oidhche"},abbreviated:{am:"M.",pm:"F.",midnight:"meadhan oidhche",noon:"meadhan là",morning:"sa mhadainn",afternoon:"feasgar",evening:"feasgar",night:"air an oidhche"},wide:{am:"m.",pm:"f.",midnight:"meadhan oidhche",noon:"meadhan là",morning:"sa mhadainn",afternoon:"feasgar",evening:"feasgar",night:"air an oidhche"}};function d(f,_){var c=Number(f),v=c%100;if(v>20||v<10)switch(v%10){case 1:return c+"d";case 2:return c+"na"}return v===12?c+"na":c+"mh"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(d|na|tr|mh)?/i,o=/\d+/i,n={narrow:/^(r|a)/i,abbreviated:/^(r\.?\s?c\.?|r\.?\s?a\.?\s?c\.?|a\.?\s?d\.?|a\.?\s?c\.?)/i,wide:/^(ro Chrìosta|ron aois choitchinn|anno domini|aois choitcheann)/i},s={any:[/^b/i,/^(a|c)/i]},u={narrow:/^[1234]/i,abbreviated:/^c[1234]/i,wide:/^[1234](cd|na|tr|mh)? cairteal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[fgmcòilsd]/i,abbreviated:/^(faoi|gear|màrt|gibl|cèit|ògmh|iuch|lùn|sult|dàmh|samh|dùbh)/i,wide:/^(am faoilleach|an gearran|am màrt|an giblean|an cèitean|an t-Ògmhios|an t-Iuchar|an lùnastal|an t-Sultain|an dàmhair|an t-Samhain|an dùbhlachd)/i},f={narrow:[/^f/i,/^g/i,/^m/i,/^g/i,/^c/i,/^ò/i,/^i/i,/^l/i,/^s/i,/^d/i,/^s/i,/^d/i],any:[/^fa/i,/^ge/i,/^mà/i,/^gi/i,/^c/i,/^ò/i,/^i/i,/^l/i,/^su/i,/^d/i,/^sa/i,/^d/i]},_={narrow:/^[dlmcahs]/i,short:/^(dò|lu|mà|ci|ar|ha|sa)/i,abbreviated:/^(did|dil|dim|dic|dia|dih|dis)/i,wide:/^(didòmhnaich|diluain|dimàirt|diciadain|diardaoin|dihaoine|disathairne)/i},c={narrow:[/^d/i,/^l/i,/^m/i,/^c/i,/^a/i,/^h/i,/^s/i],any:[/^d/i,/^l/i,/^m/i,/^c/i,/^a/i,/^h/i,/^s/i]},v={narrow:/^(a|p|mi|n|(san|aig) (madainn|feasgar|feasgar|oidhche))/i,any:/^([ap]\.?\s?m\.?|meadhan oidhche|meadhan là|(san|aig) (madainn|feasgar|feasgar|oidhche))/i},g={any:{am:/^m/i,pm:/^f/i,midnight:/^meadhan oidhche/i,noon:/^meadhan là/i,morning:/sa mhadainn/i,afternoon:/feasgar/i,evening:/feasgar/i,night:/air an oidhche/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(589),a=e(590),r=e(591),o=e(592),n=e(593),s={code:"gl",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"menos dun segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"medio minuto",lessThanXMinutes:{one:"menos dun minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"arredor dunha hora",other:"arredor de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 día",other:"{{count}} días"},aboutXWeeks:{one:"arredor dunha semana",other:"arredor de {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"arredor de 1 mes",other:"arredor de {{count}} meses"},xMonths:{one:"1 mes",other:"{{count}} meses"},aboutXYears:{one:"arredor dun ano",other:"arredor de {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"máis dun ano",other:"máis de {{count}} anos"},almostXYears:{one:"case un ano",other:"case {{count}} anos"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"en "+s:"hai "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d 'de' MMMM y",long:"d 'de' MMMM y",medium:"d MMM y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'ás' {{time}}",long:"{{date}} 'ás' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=r;var t={lastWeek:"'o' eeee 'pasado á' LT",yesterday:"'onte á' p",today:"'hoxe á' p",tomorrow:"'mañá á' p",nextWeek:"eeee 'á' p",other:"P"},a={lastWeek:"'o' eeee 'pasado ás' p",yesterday:"'onte ás' p",today:"'hoxe ás' p",tomorrow:"'mañá ás' p",nextWeek:"eeee 'ás' p",other:"P"};function r(o,n,s,u){return n.getUTCHours()!==1?a[o]:t[o]}},function(l,i,e){var t=e(3),a={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","despois de cristo"]},r={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},o={narrow:["e","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["xan","feb","mar","abr","mai","xun","xul","ago","set","out","nov","dec"],wide:["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro"]},n={narrow:["d","l","m","m","j","v","s"],short:["do","lu","ma","me","xo","ve","sa"],abbreviated:["dom","lun","mar","mer","xov","ven","sab"],wide:["domingo","luns","martes","mércores","xoves","venres","sábado"]},s={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"mañá",afternoon:"tarde",evening:"tarde",night:"noite"},abbreviated:{am:"AM",pm:"PM",midnight:"medianoite",noon:"mediodía",morning:"mañá",afternoon:"tarde",evening:"tardiña",night:"noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"medianoite",noon:"mediodía",morning:"mañá",afternoon:"tarde",evening:"tardiña",night:"noite"}},u={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"da mañá",afternoon:"da tarde",evening:"da tardiña",night:"da noite"},abbreviated:{am:"AM",pm:"PM",midnight:"medianoite",noon:"mediodía",morning:"da mañá",afternoon:"da tarde",evening:"da tardiña",night:"da noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"medianoite",noon:"mediodía",morning:"da mañá",afternoon:"da tarde",evening:"da tardiña",night:"da noite"}};function d(f){var _=Number(f);return _+"º"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(º)?/i,o=/\d+/i,n={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes da era com[uú]n|despois de cristo|era com[uú]n)/i},s={any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes da era com[uú]n)/i,/^(despois de cristo|era com[uú]n)/i]},u={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[xfmasond]/i,abbreviated:/^(xan|feb|mar|abr|mai|xun|xul|ago|set|out|nov|dec)/i,wide:/^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i},f={narrow:[/^x/i,/^f/i,/^m/i,/^a/i,/^m/i,/^x/i,/^x/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^xan/i,/^feb/i,/^mar/i,/^abr/i,/^mai/i,/^xun/i,/^xul/i,/^ago/i,/^set/i,/^out/i,/^nov/i,/^dec/i]},_={narrow:/^[dlmxvs]/i,short:/^(do|lu|ma|me|xo|ve|sa)/i,abbreviated:/^(dom|lun|mar|mer|xov|ven|sab)/i,wide:/^(domingo|luns|martes|m[eé]rcores|xoves|venres|s[áa]bado)/i},c={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^x/i,/^v/i,/^s/i],any:[/^do/i,/^lu/i,/^ma/i,/^me/i,/^xo/i,/^ve/i,/^sa/i]},v={narrow:/^(a|p|mn|md|(da|[aá]s) (mañ[aá]|tarde|noite))/i,any:/^([ap]\.?\s?m\.?|medianoite|mediod[ií]a|(da|[aá]s) (mañ[aá]|tarde|noite))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mn/i,noon:/^md/i,morning:/mañ[aá]/i,afternoon:/tarde/i,evening:/tardiña/i,night:/noite/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(595),a=e(596),r=e(597),o=e(598),n=e(599),s={code:"gu",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"હમણાં",other:"​આશરે {{count}} સેકંડ"},xSeconds:{one:"1 સેકંડ",other:"{{count}} સેકંડ"},halfAMinute:"અડધી મિનિટ",lessThanXMinutes:{one:"આ મિનિટ",other:"​આશરે {{count}} મિનિટ"},xMinutes:{one:"1 મિનિટ",other:"{{count}} મિનિટ"},aboutXHours:{one:"​આશરે 1 કલાક",other:"​આશરે {{count}} કલાક"},xHours:{one:"1 કલાક",other:"{{count}} કલાક"},xDays:{one:"1 દિવસ",other:"{{count}} દિવસ"},aboutXWeeks:{one:"આશરે 1 અઠવાડિયું",other:"આશરે {{count}} અઠવાડિયા"},xWeeks:{one:"1 અઠવાડિયું",other:"{{count}} અઠવાડિયા"},aboutXMonths:{one:"આશરે 1 મહિનો",other:"આશરે {{count}} મહિના"},xMonths:{one:"1 મહિનો",other:"{{count}} મહિના"},aboutXYears:{one:"આશરે 1 વર્ષ",other:"આશરે {{count}} વર્ષ"},xYears:{one:"1 વર્ષ",other:"{{count}} વર્ષ"},overXYears:{one:"1 વર્ષથી વધુ",other:"{{count}} વર્ષથી વધુ"},almostXYears:{one:"લગભગ 1 વર્ષ",other:"લગભગ {{count}} વર્ષ"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+"માં":s+" પહેલાં":s}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM, y",long:"d MMMM, y",medium:"d MMM, y",short:"d/M/yy"},r={full:"hh:mm:ss a zzzz",long:"hh:mm:ss a z",medium:"hh:mm:ss a",short:"hh:mm a"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'પાછલા' eeee p",yesterday:"'ગઈકાલે' p",today:"'આજે' p",tomorrow:"'આવતીકાલે' p",nextWeek:"eeee p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["ઈસપૂ","ઈસ"],abbreviated:["ઈ.સ.પૂર્વે","ઈ.સ."],wide:["ઈસવીસન પૂર્વે","ઈસવીસન"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1લો ત્રિમાસ","2જો ત્રિમાસ","3જો ત્રિમાસ","4થો ત્રિમાસ"]},o={narrow:["જા","ફે","મા","એ","મે","જૂ","જુ","ઓ","સ","ઓ","ન","ડિ"],abbreviated:["જાન્યુ","ફેબ્રુ","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઈ","ઑગસ્ટ","સપ્ટે","ઓક્ટો","નવે","ડિસે"],wide:["જાન્યુઆરી","ફેબ્રુઆરી","માર્ચ","એપ્રિલ","મે","જૂન","જુલાઇ","ઓગસ્ટ","સપ્ટેમ્બર","ઓક્ટોબર","નવેમ્બર","ડિસેમ્બર"]},n={narrow:["ર","સો","મં","બુ","ગુ","શુ","શ"],short:["ર","સો","મં","બુ","ગુ","શુ","શ"],abbreviated:["રવિ","સોમ","મંગળ","બુધ","ગુરુ","શુક્ર","શનિ"],wide:["રવિવાર","સોમવાર","મંગળવાર","બુધવાર","ગુરુવાર","શુક્રવાર","શનિવાર"]},s={narrow:{am:"AM",pm:"PM",midnight:"મ.રાત્રિ",noon:"બ.",morning:"સવારે",afternoon:"બપોરે",evening:"સાંજે",night:"રાત્રે"},abbreviated:{am:"AM",pm:"PM",midnight:"​મધ્યરાત્રિ",noon:"બપોરે",morning:"સવારે",afternoon:"બપોરે",evening:"સાંજે",night:"રાત્રે"},wide:{am:"AM",pm:"PM",midnight:"​મધ્યરાત્રિ",noon:"બપોરે",morning:"સવારે",afternoon:"બપોરે",evening:"સાંજે",night:"રાત્રે"}},u={narrow:{am:"AM",pm:"PM",midnight:"મ.રાત્રિ",noon:"બપોરે",morning:"સવારે",afternoon:"બપોરે",evening:"સાંજે",night:"રાત્રે"},abbreviated:{am:"AM",pm:"PM",midnight:"મધ્યરાત્રિ",noon:"બપોરે",morning:"સવારે",afternoon:"બપોરે",evening:"સાંજે",night:"રાત્રે"},wide:{am:"AM",pm:"PM",midnight:"​મધ્યરાત્રિ",noon:"બપોરે",morning:"સવારે",afternoon:"બપોરે",evening:"સાંજે",night:"રાત્રે"}};function d(f,_){var c=Number(f);return c}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(લ|જ|થ|ઠ્ઠ|મ)?/i,o=/\d+/i,n={narrow:/^(ઈસપૂ|ઈસ)/i,abbreviated:/^(ઈ\.સ\.પૂર્વે|ઈ\.સ\.)/i,wide:/^(ઈસવીસન\sપૂર્વે|ઈસવીસન)/i},s={any:[/^(ઈસપૂ|ઈસ)/i,/^(ઈ\.સ\.પૂર્વે|ઈ\.સ\.)/i,/^(ઈસવીસન\sપૂર્વે|ઈસવીસન)/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](લો|જો|થો)? ત્રિમાસ/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[જાફેમાએમેજૂજુઓસઓનડિ]/i,abbreviated:/^(જાન્યુ|ફેબ્રુ|માર્ચ|એપ્રિલ|મે|જૂન|જુલાઈ|ઑગસ્ટ|સપ્ટે|ઓક્ટો|નવે|ડિસે)/i,wide:/^(જાન્યુઆરી|ફેબ્રુઆરી|માર્ચ|એપ્રિલ|મે|જૂન|જુલાઇ|ઓગસ્ટ|સપ્ટેમ્બર|ઓક્ટોબર|નવેમ્બર|ડિસેમ્બર)/i},f={narrow:[/^જા/i,/^ફે/i,/^મા/i,/^એ/i,/^મે/i,/^જૂ/i,/^જુ/i,/^ઑગ/i,/^સ/i,/^ઓક્ટો/i,/^ન/i,/^ડિ/i],any:[/^જા/i,/^ફે/i,/^મા/i,/^એ/i,/^મે/i,/^જૂ/i,/^જુ/i,/^ઑગ/i,/^સ/i,/^ઓક્ટો/i,/^ન/i,/^ડિ/i]},_={narrow:/^(ર|સો|મં|બુ|ગુ|શુ|શ)/i,short:/^(ર|સો|મં|બુ|ગુ|શુ|શ)/i,abbreviated:/^(રવિ|સોમ|મંગળ|બુધ|ગુરુ|શુક્ર|શનિ)/i,wide:/^(રવિવાર|સોમવાર|મંગળવાર|બુધવાર|ગુરુવાર|શુક્રવાર|શનિવાર)/i},c={narrow:[/^ર/i,/^સો/i,/^મં/i,/^બુ/i,/^ગુ/i,/^શુ/i,/^શ/i],any:[/^ર/i,/^સો/i,/^મં/i,/^બુ/i,/^ગુ/i,/^શુ/i,/^શ/i]},v={narrow:/^(a|p|મ\.?|સ|બ|સાં|રા)/i,any:/^(a|p|મ\.?|સ|બ|સાં|રા)/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^મ\.?/i,noon:/^બ/i,morning:/સ/i,afternoon:/બ/i,evening:/સાં/i,night:/રા/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(601),a=e(602),r=e(603),o=e(604),n=e(605),s={code:"he",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"פחות משנייה",two:"פחות משתי שניות",other:"פחות מ־{{count}} שניות"},xSeconds:{one:"שנייה",two:"שתי שניות",other:"{{count}} שניות"},halfAMinute:"חצי דקה",lessThanXMinutes:{one:"פחות מדקה",two:"פחות משתי דקות",other:"פחות מ־{{count}} דקות"},xMinutes:{one:"דקה",two:"שתי דקות",other:"{{count}} דקות"},aboutXHours:{one:"כשעה",two:"כשעתיים",other:"כ־{{count}} שעות"},xHours:{one:"שעה",two:"שעתיים",other:"{{count}} שעות"},xDays:{one:"יום",two:"יומיים",other:"{{count}} ימים"},aboutXWeeks:{one:"כשבוע",two:"כשבועיים",other:"כ־{{count}} שבועות"},xWeeks:{one:"שבוע",two:"שבועיים",other:"{{count}} שבועות"},aboutXMonths:{one:"כחודש",two:"כחודשיים",other:"כ־{{count}} חודשים"},xMonths:{one:"חודש",two:"חודשיים",other:"{{count}} חודשים"},aboutXYears:{one:"כשנה",two:"כשנתיים",other:"כ־{{count}} שנים"},xYears:{one:"שנה",two:"שנתיים",other:"{{count}} שנים"},overXYears:{one:"יותר משנה",two:"יותר משנתיים",other:"יותר מ־{{count}} שנים"},almostXYears:{one:"כמעט שנה",two:"כמעט שנתיים",other:"כמעט {{count}} שנים"}};function a(r,o,n){if(n=n||{},r==="xDays"&&n.addSuffix&&o<=2){var s={1:"אתמול",2:"שלשום"},u={1:"מחר",2:"מחרתיים"};return n.comparison>0?u[o]:s[o]}var d;return typeof t[r]=="string"?d=t[r]:o===1?d=t[r].one:o===2?d=t[r].two:d=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"בעוד "+d:"לפני "+d:d}},function(l,i,e){var t=e(2),a={full:"EEEE, d בMMMM y",long:"d בMMMM y",medium:"d בMMM y",short:"d.M.y"},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={full:"{{date}} 'בשעה' {{time}}",long:"{{date}} 'בשעה' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'שעבר בשעה' p",yesterday:"'אתמול בשעה' p",today:"'היום בשעה' p",tomorrow:"'מחר בשעה' p",nextWeek:"eeee 'בשעה' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["לפנה״ס","לספירה"],abbreviated:["לפנה״ס","לספירה"],wide:["לפני הספירה","לספירה"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["רבעון 1","רבעון 2","רבעון 3","רבעון 4"]},o={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["ינו׳","פבר׳","מרץ","אפר׳","מאי","יוני","יולי","אוג׳","ספט׳","אוק׳","נוב׳","דצמ׳"],wide:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"]},n={narrow:["א׳","ב׳","ג׳","ד׳","ה׳","ו׳","ש׳"],short:["א׳","ב׳","ג׳","ד׳","ה׳","ו׳","ש׳"],abbreviated:["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],wide:["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"]},s={narrow:{am:"לפנה״צ",pm:"אחה״צ",midnight:"חצות",noon:"צהריים",morning:"בוקר",afternoon:"אחר הצהריים",evening:"ערב",night:"לילה"},abbreviated:{am:"לפנה״צ",pm:"אחה״צ",midnight:"חצות",noon:"צהריים",morning:"בוקר",afternoon:"אחר הצהריים",evening:"ערב",night:"לילה"},wide:{am:"לפנה״צ",pm:"אחה״צ",midnight:"חצות",noon:"צהריים",morning:"בוקר",afternoon:"אחר הצהריים",evening:"ערב",night:"לילה"}},u={narrow:{am:"לפנה״צ",pm:"אחה״צ",midnight:"חצות",noon:"צהריים",morning:"בבוקר",afternoon:"בצהריים",evening:"בערב",night:"בלילה"},abbreviated:{am:"לפנה״צ",pm:"אחה״צ",midnight:"חצות",noon:"צהריים",morning:"בבוקר",afternoon:"אחר הצהריים",evening:"בערב",night:"בלילה"},wide:{am:"לפנה״צ",pm:"אחה״צ",midnight:"חצות",noon:"צהריים",morning:"בבוקר",afternoon:"אחר הצהריים",evening:"בערב",night:"בלילה"}};function d(f,_){var c=Number(f);if(c<=0||c>10)return c;var v=_||{},g=String(v.unit),P=["year","hour","minute","second"].indexOf(g)>=0,h=["ראשון","שני","שלישי","רביעי","חמישי","שישי","שביעי","שמיני","תשיעי","עשירי"],y=["ראשונה","שנייה","שלישית","רביעית","חמישית","שישית","שביעית","שמינית","תשיעית","עשירית"],W=c-1;return P?y[W]:h[W]}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+|(ראשון|שני|שלישי|רביעי|חמישי|שישי|שביעי|שמיני|תשיעי|עשירי|ראשונה|שנייה|שלישית|רביעית|חמישית|שישית|שביעית|שמינית|תשיעית|עשירית))/i,o=/^(\d+|רא|שנ|של|רב|ח|שי|שב|שמ|ת|ע)/i,n={narrow:/^ל(ספירה|פנה״ס)/i,abbreviated:/^ל(ספירה|פנה״ס)/i,wide:/^ל(פני ה)?ספירה/i},s={any:[/^לפ/i,/^לס/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^רבעון [1234]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^\d+/i,abbreviated:/^(ינו|פבר|מרץ|אפר|מאי|יוני|יולי|אוג|ספט|אוק|נוב|דצמ)׳?/i,wide:/^(ינואר|פברואר|מרץ|אפריל|מאי|יוני|יולי|אוגוסט|ספטמבר|אוקטובר|נובמבר|דצמבר)/i},f={narrow:[/^1$/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^7/i,/^8/i,/^9/i,/^10/i,/^11/i,/^12/i],any:[/^ינ/i,/^פ/i,/^מר/i,/^אפ/i,/^מא/i,/^יונ/i,/^יול/i,/^אוג/i,/^ס/i,/^אוק/i,/^נ/i,/^ד/i]},_={narrow:/^[אבגדהוש]׳/i,short:/^[אבגדהוש]׳/i,abbreviated:/^(שבת|יום (א|ב|ג|ד|ה|ו)׳)/i,wide:/^יום (ראשון|שני|שלישי|רביעי|חמישי|שישי|שבת)/i},c={abbreviated:[/א׳$/i,/ב׳$/i,/ג׳$/i,/ד׳$/i,/ה׳$/i,/ו׳$/i,/^ש/i],wide:[/ן$/i,/ני$/i,/לישי$/i,/עי$/i,/מישי$/i,/שישי$/i,/ת$/i],any:[/^א/i,/^ב/i,/^ג/i,/^ד/i,/^ה/i,/^ו/i,/^ש/i]},v={any:/^(אחר ה|ב)?(חצות|צהריים|בוקר|ערב|לילה|אחה״צ|לפנה״צ)/i},g={any:{am:/^לפ/i,pm:/^אחה/i,midnight:/^ח/i,noon:/^צ/i,morning:/בוקר/i,afternoon:/בצ|אחר/i,evening:/ערב/i,night:/לילה/i}},P=["רא","שנ","של","רב","ח","שי","שב","שמ","ת","ע"],h={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(y){var W=parseInt(y,10);return isNaN(W)?P.indexOf(y)+1:W}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(y){return y+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=h},function(l,i,e){var t=e(607),a=e(608),r=e(609),o=e(97),n=e(610),s={code:"hi",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=r;var t=e(97),a={lessThanXSeconds:{one:"१ सेकंड से कम",other:"{{count}} सेकंड से कम"},xSeconds:{one:"१ सेकंड",other:"{{count}} सेकंड"},halfAMinute:"आधा मिनट",lessThanXMinutes:{one:"१ मिनट से कम",other:"{{count}} मिनट से कम"},xMinutes:{one:"१ मिनट",other:"{{count}} मिनट"},aboutXHours:{one:"लगभग १ घंटा",other:"लगभग {{count}} घंटे"},xHours:{one:"१ घंटा",other:"{{count}} घंटे"},xDays:{one:"१ दिन",other:"{{count}} दिन"},aboutXWeeks:{one:"लगभग १ सप्ताह",other:"लगभग {{count}} सप्ताह"},xWeeks:{one:"१ सप्ताह",other:"{{count}} सप्ताह"},aboutXMonths:{one:"लगभग १ महीना",other:"लगभग {{count}} महीने"},xMonths:{one:"१ महीना",other:"{{count}} महीने"},aboutXYears:{one:"लगभग १ वर्ष",other:"लगभग {{count}} वर्ष"},xYears:{one:"१ वर्ष",other:"{{count}} वर्ष"},overXYears:{one:"१ वर्ष से अधिक",other:"{{count}} वर्ष से अधिक"},almostXYears:{one:"लगभग १ वर्ष",other:"लगभग {{count}} वर्ष"}};function r(o,n,s){s=s||{};var u;return typeof a[o]=="string"?u=a[o]:n===1?u=a[o].one:u=a[o].other.replace("{{count}}",t.a.numberToLocale(n)),s.addSuffix?s.comparison>0?u+"मे ":u+" पहले":u}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM, y",long:"do MMMM, y",medium:"d MMM, y",short:"dd/MM/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'को' {{time}}",long:"{{date}} 'को' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'पिछले' eeee p",yesterday:"'कल' p",today:"'आज' p",tomorrow:"'कल' p",nextWeek:"eeee 'को' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(4),a=e(5),r=e(97),o=/^[०१२३४५६७८९]+/i,n=/^[०१२३४५६७८९]+/i,s={narrow:/^(ईसा-पूर्व|ईस्वी)/i,abbreviated:/^(ईसा\.?\s?पूर्व\.?|ईसा\.?)/i,wide:/^(ईसा-पूर्व|ईसवी पूर्व|ईसवी सन|ईसवी)/i},u={any:[/^b/i,/^(a|c)/i]},d={narrow:/^[1234]/i,abbreviated:/^ति[1234]/i,wide:/^[1234](पहली|दूसरी|तीसरी|चौथी)? तिमाही/i},m={any:[/1/i,/2/i,/3/i,/4/i]},f={narrow:/^[जफ़माअप्मईजूनजुअगसिअक्तनदि]/i,abbreviated:/^(जन|फ़र|मार्च|अप्|मई|जून|जुल|अग|सित|अक्तू|नव|दिस)/i,wide:/^(जनवरी|फ़रवरी|मार्च|अप्रैल|मई|जून|जुलाई|अगस्त|सितंबर|अक्तूबर|नवंबर|दिसंबर)/i},_={narrow:[/^ज/i,/^फ़/i,/^मा/i,/^अप्/i,/^मई/i,/^जू/i,/^जु/i,/^अग/i,/^सि/i,/^अक्तू/i,/^न/i,/^दि/i],any:[/^जन/i,/^फ़/i,/^मा/i,/^अप्/i,/^मई/i,/^जू/i,/^जु/i,/^अग/i,/^सि/i,/^अक्तू/i,/^नव/i,/^दिस/i]},c={narrow:/^[रविसोममंगलबुधगुरुशुक्रशनि]/i,short:/^(रवि|सोम|मंगल|बुध|गुरु|शुक्र|शनि)/i,abbreviated:/^(रवि|सोम|मंगल|बुध|गुरु|शुक्र|शनि)/i,wide:/^(रविवार|सोमवार|मंगलवार|बुधवार|गुरुवार|शुक्रवार|शनिवार)/i},v={narrow:[/^रवि/i,/^सोम/i,/^मंगल/i,/^बुध/i,/^गुरु/i,/^शुक्र/i,/^शनि/i],any:[/^रवि/i,/^सोम/i,/^मंगल/i,/^बुध/i,/^गुरु/i,/^शुक्र/i,/^शनि/i]},g={narrow:/^(पू|अ|म|द.\?|सु|दो|शा|रा)/i,any:/^(पूर्वाह्न|अपराह्न|म|द.\?|सु|दो|शा|रा)/i},P={any:{am:/^पूर्वाह्न/i,pm:/^अपराह्न/i,midnight:/^मध्य/i,noon:/^दो/i,morning:/सु/i,afternoon:/दो/i,evening:/शा/i,night:/रा/i}},h={ordinalNumber:t.a({matchPattern:o,parsePattern:n,valueCallback:r.a.localeToNumber}),era:a.a({matchPatterns:s,defaultMatchWidth:"wide",parsePatterns:u,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:d,defaultMatchWidth:"wide",parsePatterns:m,defaultParseWidth:"any",valueCallback:function(y){return y+1}}),month:a.a({matchPatterns:f,defaultMatchWidth:"wide",parsePatterns:_,defaultParseWidth:"any"}),day:a.a({matchPatterns:c,defaultMatchWidth:"wide",parsePatterns:v,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:g,defaultMatchWidth:"any",parsePatterns:P,defaultParseWidth:"any"})};i.a=h},function(l,i,e){var t=e(612),a=e(613),r=e(614),o=e(615),n=e(616),s={code:"hr",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:{standalone:"manje od 1 sekunde",withPrepositionAgo:"manje od 1 sekunde",withPrepositionIn:"manje od 1 sekundu"},dual:"manje od {{count}} sekunde",other:"manje od {{count}} sekundi"},xSeconds:{one:{standalone:"1 sekunda",withPrepositionAgo:"1 sekunde",withPrepositionIn:"1 sekundu"},dual:"{{count}} sekunde",other:"{{count}} sekundi"},halfAMinute:"pola minute",lessThanXMinutes:{one:{standalone:"manje od 1 minute",withPrepositionAgo:"manje od 1 minute",withPrepositionIn:"manje od 1 minutu"},dual:"manje od {{count}} minute",other:"manje od {{count}} minuta"},xMinutes:{one:{standalone:"1 minuta",withPrepositionAgo:"1 minute",withPrepositionIn:"1 minutu"},dual:"{{count}} minute",other:"{{count}} minuta"},aboutXHours:{one:{standalone:"oko 1 sat",withPrepositionAgo:"oko 1 sat",withPrepositionIn:"oko 1 sat"},dual:"oko {{count}} sata",other:"oko {{count}} sati"},xHours:{one:{standalone:"1 sat",withPrepositionAgo:"1 sat",withPrepositionIn:"1 sat"},dual:"{{count}} sata",other:"{{count}} sati"},xDays:{one:{standalone:"1 dan",withPrepositionAgo:"1 dan",withPrepositionIn:"1 dan"},dual:"{{count}} dana",other:"{{count}} dana"},aboutXWeeks:{one:{standalone:"oko 1 tjedan",withPrepositionAgo:"oko 1 tjedan",withPrepositionIn:"oko 1 tjedan"},dual:"oko {{count}} tjedna",other:"oko {{count}} tjedana"},xWeeks:{one:{standalone:"1 tjedan",withPrepositionAgo:"1 tjedan",withPrepositionIn:"1 tjedan"},dual:"{{count}} tjedna",other:"{{count}} tjedana"},aboutXMonths:{one:{standalone:"oko 1 mjesec",withPrepositionAgo:"oko 1 mjesec",withPrepositionIn:"oko 1 mjesec"},dual:"oko {{count}} mjeseca",other:"oko {{count}} mjeseci"},xMonths:{one:{standalone:"1 mjesec",withPrepositionAgo:"1 mjesec",withPrepositionIn:"1 mjesec"},dual:"{{count}} mjeseca",other:"{{count}} mjeseci"},aboutXYears:{one:{standalone:"oko 1 godinu",withPrepositionAgo:"oko 1 godinu",withPrepositionIn:"oko 1 godinu"},dual:"oko {{count}} godine",other:"oko {{count}} godina"},xYears:{one:{standalone:"1 godina",withPrepositionAgo:"1 godine",withPrepositionIn:"1 godinu"},dual:"{{count}} godine",other:"{{count}} godina"},overXYears:{one:{standalone:"preko 1 godinu",withPrepositionAgo:"preko 1 godinu",withPrepositionIn:"preko 1 godinu"},dual:"preko {{count}} godine",other:"preko {{count}} godina"},almostXYears:{one:{standalone:"gotovo 1 godinu",withPrepositionAgo:"gotovo 1 godinu",withPrepositionIn:"gotovo 1 godinu"},dual:"gotovo {{count}} godine",other:"gotovo {{count}} godina"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?n.addSuffix?n.comparison>0?s=t[r].one.withPrepositionIn:s=t[r].one.withPrepositionAgo:s=t[r].one.standalone:o%10>1&&o%10<5&&String(o).substr(-2,1)!=="1"?s=t[r].dual.replace("{{count}}",o):s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"za "+s:"prije "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d. MMMM y.",long:"d. MMMM y.",medium:"d. MMM y.",short:"dd. MM. y."},r={full:"HH:mm:ss (zzzz)",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'u' {{time}}",long:"{{date}} 'u' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:function(r){var o=r.getUTCDay();switch(o){case 0:return"'prošlu nedjelju u' p";case 3:return"'prošlu srijedu u' p";case 6:return"'prošlu subotu u' p";default:return"'prošli' EEEE 'u' p"}},yesterday:"'jučer u' p",today:"'danas u' p",tomorrow:"'sutra u' p",nextWeek:function(r){var o=r.getUTCDay();switch(o){case 0:return"'iduću nedjelju u' p";case 3:return"'iduću srijedu u' p";case 6:return"'iduću subotu u' p";default:return"'prošli' EEEE 'u' p"}},other:"P"};function a(r,o,n,s){var u=t[r];return typeof u=="function"?u(o):u}},function(l,i,e){var t=e(3);function a(_){var c=Number(_);return String(c).concat(".")}var r={narrow:["pr.n.e.","AD"],abbreviated:["pr. Kr.","po. Kr."],wide:["Prije Krista","Poslije Krista"]},o={narrow:["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],abbreviated:["sij","velj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro"],wide:["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac"]},n={narrow:["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],abbreviated:["sij","velj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro"],wide:["siječnja","veljače","ožujka","travnja","svibnja","lipnja","srpnja","kolovoza","rujna","listopada","studenog","prosinca"]},s={narrow:["1.","2.","3.","4."],abbreviated:["1. kv.","2. kv.","3. kv.","4. kv."],wide:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"]},u={narrow:["N","P","U","S","Č","P","S"],short:["ned","pon","uto","sri","čet","pet","sub"],abbreviated:["ned","pon","uto","sri","čet","pet","sub"],wide:["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"]},d={narrow:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutro",afternoon:"popodne",evening:"navečer",night:"noću"},abbreviated:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutro",afternoon:"popodne",evening:"navečer",night:"noću"},wide:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutro",afternoon:"poslije podne",evening:"navečer",night:"noću"}},m={narrow:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutro",afternoon:"popodne",evening:"navečer",night:"noću"},abbreviated:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutro",afternoon:"popodne",evening:"navečer",night:"noću"},wide:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutro",afternoon:"poslije podne",evening:"navečer",night:"noću"}},f={ordinalNumber:a,era:t.a({values:r,defaultWidth:"wide"}),quarter:t.a({values:s,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:u,defaultWidth:"wide"}),dayPeriod:t.a({values:m,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)\./i,o=/\d+/i,n={narrow:/^(pr\.n\.e\.|AD)/i,abbreviated:/^(pr\.\s?Kr\.|po\.\s?Kr\.)/i,wide:/^(Prije Krista|prije nove ere|Poslije Krista|nova era)/i},s={any:[/^pr/i,/^(po|nova)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]\.\s?kv\.?/i,wide:/^[1234]\. kvartal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(10|11|12|[123456789])\./i,abbreviated:/^(sij|velj|(ožu|ozu)|tra|svi|lip|srp|kol|ruj|lis|stu|pro)/i,wide:/^((siječanj|siječnja|sijecanj|sijecnja)|(veljača|veljače|veljaca|veljace)|(ožujak|ožujka|ozujak|ozujka)|(travanj|travnja)|(svibanj|svibnja)|(lipanj|lipnja)|(srpanj|srpnja)|(kolovoz|kolovoza)|(rujan|rujna)|(listopad|listopada)|(studeni|studenog)|(prosinac|prosinca))/i},f={narrow:[/(10|11|12|[123456789])/i],abbreviated:[/^sij/i,/^velj/i,/^(ožu|ozu)/i,/^tra/i,/^svi/i,/^lip/i,/^srp/i,/^kol/i,/^ruj/i,/^lis/i,/^stu/i,/^pro/i],wide:[/^sij/i,/^velj/i,/^(ožu|ozu)/i,/^tra/i,/^svi/i,/^lip/i,/^srp/i,/^kol/i,/^ruj/i,/^lis/i,/^stu/i,/^pro/i]},_={narrow:/^[npusčc]/i,short:/^(ned|pon|uto|sri|(čet|cet)|pet|sub)/i,abbreviated:/^(ned|pon|uto|sri|(čet|cet)|pet|sub)/i,wide:/^(nedjelja|ponedjeljak|utorak|srijeda|(četvrtak|cetvrtak)|petak|subota)/i},c={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},v={any:/^(am|pm|ponoc|ponoć|(po)?podne|navecer|navečer|noću|poslije podne|ujutro)/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^pono/i,noon:/^pod/i,morning:/jutro/i,afternoon:/(poslije\s|po)+podne/i,evening:/(navece|naveče)/i,night:/(nocu|noću)/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"wide"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(618),a=e(619),r=e(620),o=e(621),n=e(622),s={code:"hu",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=n;var t={about:"körülbelül",over:"több mint",almost:"majdnem",lessthan:"kevesebb mint"},a={xseconds:" másodperc",halfaminute:"fél perc",xminutes:" perc",xhours:" óra",xdays:" nap",xweeks:" hét",xmonths:" hónap",xyears:" év"},r={xseconds:{"-1":" másodperccel ezelőtt",1:" másodperc múlva",0:" másodperce"},halfaminute:{"-1":"fél perccel ezelőtt",1:"fél perc múlva",0:"fél perce"},xminutes:{"-1":" perccel ezelőtt",1:" perc múlva",0:" perce"},xhours:{"-1":" órával ezelőtt",1:" óra múlva",0:" órája"},xdays:{"-1":" nappal ezelőtt",1:" nap múlva",0:" napja"},xweeks:{"-1":" héttel ezelőtt",1:" hét múlva",0:" hete"},xmonths:{"-1":" hónappal ezelőtt",1:" hónap múlva",0:" hónapja"},xyears:{"-1":" évvel ezelőtt",1:" év múlva",0:" éve"}};function o(s,u,d,m){var f=u?r[d][m]:a[d];return d==="halfaminute"?f:s+f}function n(s,u,d){d=d||{};var m=s.match(/about|over|almost|lessthan/i),f=s.replace(m,""),_;return _=o(u,d.addSuffix,f.toLowerCase(),d.comparison),m&&(_=t[m[0].toLowerCase()]+" "+_),_}},function(l,i,e){var t=e(2),a={full:"y. MMMM d., EEEE",long:"y. MMMM d.",medium:"y. MMM d.",short:"y. MM. dd."},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=o;var t=["vasárnap","hétfőn","kedden","szerdán","csütörtökön","pénteken","szombaton"];function a(n){return function(s,u,d){var m=s.getUTCDay();return(n?"":"'múlt' ")+"'"+t[m]+"' p'-kor'"}}var r={lastWeek:a(!1),yesterday:"'tegnap' p'-kor'",today:"'ma' p'-kor'",tomorrow:"'holnap' p'-kor'",nextWeek:a(!0),other:"P"};function o(n,s,u,d){var m=r[n];return typeof m=="function"?m(s,u,d):m}},function(l,i,e){var t=e(3),a={narrow:["ie.","isz."],abbreviated:["i. e.","i. sz."],wide:["Krisztus előtt","időszámításunk szerint"]},r={narrow:["1.","2.","3.","4."],abbreviated:["1. n.év","2. n.év","3. n.év","4. n.év"],wide:["1. negyedév","2. negyedév","3. negyedév","4. negyedév"]},o={narrow:["I.","II.","III.","IV."],abbreviated:["I. n.év","II. n.év","III. n.év","IV. n.év"],wide:["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"]},n={narrow:["J","F","M","Á","M","J","J","A","Sz","O","N","D"],abbreviated:["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],wide:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"]},s={narrow:["V","H","K","Sz","Cs","P","Sz"],short:["V","H","K","Sze","Cs","P","Szo"],abbreviated:["V","H","K","Sze","Cs","P","Szo"],wide:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"]},u={narrow:{am:"de.",pm:"du.",midnight:"éjfél",noon:"dél",morning:"reggel",afternoon:"du.",evening:"este",night:"éjjel"},abbreviated:{am:"de.",pm:"du.",midnight:"éjfél",noon:"dél",morning:"reggel",afternoon:"du.",evening:"este",night:"éjjel"},wide:{am:"de.",pm:"du.",midnight:"éjfél",noon:"dél",morning:"reggel",afternoon:"délután",evening:"este",night:"éjjel"}};function d(f,_){var c=Number(f);return c+"."}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",formattingValues:o,argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:n,defaultWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"wide",defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)\.?/i,o=/\d+/i,n={narrow:/^(ie\.|isz\.)/i,abbreviated:/^(i\.\s?e\.?|b?\s?c\s?e|i\.\s?sz\.?)/i,wide:/^(Krisztus előtt|időszámításunk előtt|időszámításunk szerint|i\. sz\.)/i},s={narrow:[/ie/i,/isz/i],abbreviated:[/^(i\.?\s?e\.?|b\s?ce)/i,/^(i\.?\s?sz\.?|c\s?e)/i],any:[/előtt/i,/(szerint|i. sz.)/i]},u={narrow:/^[1234]\.?/i,abbreviated:/^[1234]?\.?\s?n\.év/i,wide:/^([1234]|I|II|III|IV)?\.?\s?negyedév/i},d={any:[/1|I$/i,/2|II$/i,/3|III/i,/4|IV/i]},m={narrow:/^[jfmaásond]|sz/i,abbreviated:/^(jan\.?|febr\.?|márc\.?|ápr\.?|máj\.?|jún\.?|júl\.?|aug\.?|szept\.?|okt\.?|nov\.?|dec\.?)/i,wide:/^(január|február|március|április|május|június|július|augusztus|szeptember|október|november|december)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a|á/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s|sz/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^már/i,/^áp/i,/^máj/i,/^jún/i,/^júl/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^([vhkpc]|sz|cs|sz)/i,short:/^([vhkp]|sze|cs|szo)/i,abbreviated:/^([vhkp]|sze|cs|szo)/i,wide:/^(vasárnap|hétfő|kedd|szerda|csütörtök|péntek|szombat)/i},c={narrow:[/^v/i,/^h/i,/^k/i,/^sz/i,/^c/i,/^p/i,/^sz/i],any:[/^v/i,/^h/i,/^k/i,/^sze/i,/^c/i,/^p/i,/^szo/i]},v={any:/^((de|du)\.?|éjfél|délután|dél|reggel|este|éjjel)/i},g={any:{am:/^de\.?/i,pm:/^du\.?/i,midnight:/^éjf/i,noon:/^dé/i,morning:/reg/i,afternoon:/^délu\.?/i,evening:/es/i,night:/éjj/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(624),a=e(625),r=e(626),o=e(627),n=e(628),s={code:"hy",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"ավելի քիչ քան 1 վայրկյան",other:"ավելի քիչ քան {{count}} վայրկյան"},xSeconds:{one:"1 վայրկյան",other:"{{count}} վայրկյան"},halfAMinute:"կես րոպե",lessThanXMinutes:{one:"ավելի քիչ քան 1 րոպե",other:"ավելի քիչ քան {{count}} րոպե"},xMinutes:{one:"1 րոպե",other:"{{count}} րոպե"},aboutXHours:{one:"մոտ 1 ժամ",other:"մոտ {{count}} ժամ"},xHours:{one:"1 ժամ",other:"{{count}} ժամ"},xDays:{one:"1 օր",other:"{{count}} օր"},aboutXWeeks:{one:"մոտ 1 շաբաթ",other:"մոտ {{count}} շաբաթ"},xWeeks:{one:"1 շաբաթ",other:"{{count}} շաբաթ"},aboutXMonths:{one:"մոտ 1 ամիս",other:"մոտ {{count}} ամիս"},xMonths:{one:"1 ամիս",other:"{{count}} ամիս"},aboutXYears:{one:"մոտ 1 տարի",other:"մոտ {{count}} տարի"},xYears:{one:"1 տարի",other:"{{count}} տարի"},overXYears:{one:"ավելի քան 1 տարի",other:"ավելի քան {{count}} տարի"},almostXYears:{one:"համարյա 1 տարի",other:"համարյա {{count}} տարի"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+" հետո":s+" առաջ":s}},function(l,i,e){var t=e(2),a={full:"d MMMM, y, EEEE",long:"d MMMM, y",medium:"d MMM, y",short:"dd.MM.yyyy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'ժ․'{{time}}",long:"{{date}} 'ժ․'{{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'նախորդ' eeee p'֊ին'",yesterday:"'երեկ' p'֊ին'",today:"'այսօր' p'֊ին'",tomorrow:"'վաղը' p'֊ին'",nextWeek:"'հաջորդ' eeee p'֊ին'",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["Ք","Մ"],abbreviated:["ՔԱ","ՄԹ"],wide:["Քրիստոսից առաջ","Մեր թվարկության"]},r={narrow:["1","2","3","4"],abbreviated:["Ք1","Ք2","Ք3","Ք4"],wide:["1֊ին քառորդ","2֊րդ քառորդ","3֊րդ քառորդ","4֊րդ քառորդ"]},o={narrow:["Հ","Փ","Մ","Ա","Մ","Հ","Հ","Օ","Ս","Հ","Ն","Դ"],abbreviated:["հուն","փետ","մար","ապր","մայ","հուն","հուլ","օգս","սեպ","հոկ","նոյ","դեկ"],wide:["հունվար","փետրվար","մարտ","ապրիլ","մայիս","հունիս","հուլիս","օգոստոս","սեպտեմբեր","հոկտեմբեր","նոյեմբեր","դեկտեմբեր"]},n={narrow:["Կ","Ե","Ե","Չ","Հ","Ո","Շ"],short:["կր","եր","եք","չք","հգ","ուր","շբ"],abbreviated:["կիր","երկ","երք","չոր","հնգ","ուրբ","շաբ"],wide:["կիրակի","երկուշաբթի","երեքշաբթի","չորեքշաբթի","հինգշաբթի","ուրբաթ","շաբաթ"]},s={narrow:{am:"a",pm:"p",midnight:"կեսգշ",noon:"կեսօր",morning:"առավոտ",afternoon:"ցերեկ",evening:"երեկո",night:"գիշեր"},abbreviated:{am:"AM",pm:"PM",midnight:"կեսգիշեր",noon:"կեսօր",morning:"առավոտ",afternoon:"ցերեկ",evening:"երեկո",night:"գիշեր"},wide:{am:"a.m.",pm:"p.m.",midnight:"կեսգիշեր",noon:"կեսօր",morning:"առավոտ",afternoon:"ցերեկ",evening:"երեկո",night:"գիշեր"}},u={narrow:{am:"a",pm:"p",midnight:"կեսգշ",noon:"կեսօր",morning:"առավոտը",afternoon:"ցերեկը",evening:"երեկոյան",night:"գիշերը"},abbreviated:{am:"AM",pm:"PM",midnight:"կեսգիշերին",noon:"կեսօրին",morning:"առավոտը",afternoon:"ցերեկը",evening:"երեկոյան",night:"գիշերը"},wide:{am:"a.m.",pm:"p.m.",midnight:"կեսգիշերին",noon:"կեսօրին",morning:"առավոտը",afternoon:"ցերեկը",evening:"երեկոյան",night:"գիշերը"}};function d(f,_){var c=Number(f),v=c%100;return v<10&&v%10===1?c+"֊ին":c+"֊րդ"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)((-|֊)?(ին|րդ))?/i,o=/\d+/i,n={narrow:/^(Ք|Մ)/i,abbreviated:/^(Ք\.?\s?Ա\.?|Մ\.?\s?Թ\.?\s?Ա\.?|Մ\.?\s?Թ\.?|Ք\.?\s?Հ\.?)/i,wide:/^(քրիստոսից առաջ|մեր թվարկությունից առաջ|մեր թվարկության|քրիստոսից հետո)/i},s={any:[/^(ք|մ)/i]},u={narrow:/^[1234]/i,abbreviated:/^ք[1234]/i,wide:/^[1234]((-|֊)?(ին|րդ)) քառորդ/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[հփմաօսնդ]/i,abbreviated:/^(հուն|փետ|մար|ապր|մայ|հուն|հուլ|օգս|սեպ|հոկ|նոյ|դեկ)/i,wide:/^(հունվար|փետրվար|մարտ|ապրիլ|մայիս|հունիս|հուլիս|օգոստոս|սեպտեմբեր|հոկտեմբեր|նոյեմբեր|դեկտեմբեր)/i},f={narrow:[/^հ/i,/^փ/i,/^մ/i,/^ա/i,/^մ/i,/^հ/i,/^հ/i,/^օ/i,/^ս/i,/^հ/i,/^ն/i,/^դ/i],any:[/^հու/i,/^փ/i,/^մար/i,/^ա/i,/^մայ/i,/^հուն/i,/^հուլ/i,/^օ/i,/^ս/i,/^հոկ/i,/^ն/i,/^դ/i]},_={narrow:/^[եչհոշկ]/i,short:/^(կր|եր|եք|չք|հգ|ուր|շբ)/i,abbreviated:/^(կիր|երկ|երք|չոր|հնգ|ուրբ|շաբ)/i,wide:/^(կիրակի|երկուշաբթի|երեքշաբթի|չորեքշաբթի|հինգշաբթի|ուրբաթ|շաբաթ)/i},c={narrow:[/^կ/i,/^ե/i,/^ե/i,/^չ/i,/^հ/i,/^(ո|Ո)/,/^շ/i],short:[/^կ/i,/^եր/i,/^եք/i,/^չ/i,/^հ/i,/^(ո|Ո)/,/^շ/i],abbreviated:[/^կ/i,/^երկ/i,/^երք/i,/^չ/i,/^հ/i,/^(ո|Ո)/,/^շ/i],wide:[/^կ/i,/^երկ/i,/^երե/i,/^չ/i,/^հ/i,/^(ո|Ո)/,/^շ/i]},v={narrow:/^([ap]|կեսգշ|կեսօր|(առավոտը?|ցերեկը?|երեկո(յան)?|գիշերը?))/i,any:/^([ap]\.?\s?m\.?|կեսգիշեր(ին)?|կեսօր(ին)?|(առավոտը?|ցերեկը?|երեկո(յան)?|գիշերը?))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/կեսգիշեր/i,noon:/կեսօր/i,morning:/առավոտ/i,afternoon:/ցերեկ/i,evening:/երեկո/i,night:/գիշեր/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(630),a=e(631),r=e(632),o=e(633),n=e(634),s={code:"id",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"kurang dari 1 detik",other:"kurang dari {{count}} detik"},xSeconds:{one:"1 detik",other:"{{count}} detik"},halfAMinute:"setengah menit",lessThanXMinutes:{one:"kurang dari 1 menit",other:"kurang dari {{count}} menit"},xMinutes:{one:"1 menit",other:"{{count}} menit"},aboutXHours:{one:"sekitar 1 jam",other:"sekitar {{count}} jam"},xHours:{one:"1 jam",other:"{{count}} jam"},xDays:{one:"1 hari",other:"{{count}} hari"},aboutXWeeks:{one:"sekitar 1 minggu",other:"sekitar {{count}} minggu"},xWeeks:{one:"1 minggu",other:"{{count}} minggu"},aboutXMonths:{one:"sekitar 1 bulan",other:"sekitar {{count}} bulan"},xMonths:{one:"1 bulan",other:"{{count}} bulan"},aboutXYears:{one:"sekitar 1 tahun",other:"sekitar {{count}} tahun"},xYears:{one:"1 tahun",other:"{{count}} tahun"},overXYears:{one:"lebih dari 1 tahun",other:"lebih dari {{count}} tahun"},almostXYears:{one:"hampir 1 tahun",other:"hampir {{count}} tahun"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"dalam waktu "+s:s+" yang lalu":s}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"d/M/yyyy"},r={full:"HH.mm.ss",long:"HH.mm.ss",medium:"HH.mm",short:"HH.mm"},o={full:"{{date}} 'pukul' {{time}}",long:"{{date}} 'pukul' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'lalu pukul' p",yesterday:"'Kemarin pukul' p",today:"'Hari ini pukul' p",tomorrow:"'Besok pukul' p",nextWeek:"eeee 'pukul' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["SM","M"],abbreviated:["SM","M"],wide:["Sebelum Masehi","Masehi"]},r={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["Kuartal ke-1","Kuartal ke-2","Kuartal ke-3","Kuartal ke-4"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des"],wide:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"]},n={narrow:["M","S","S","R","K","J","S"],short:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],abbreviated:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],wide:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},s={narrow:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"},abbreviated:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"},wide:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"}},u={narrow:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"},abbreviated:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"},wide:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"}};function d(f,_){var c=Number(f);switch(c){default:return"ke-"+c}}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(5),a=e(4),r=/^ke-(\d+)?/i,o=/\d+/i,n={narrow:/^(sm|m)/i,abbreviated:/^(s\.?\s?m\.?|s\.?\s?e\.?\s?u\.?|m\.?|e\.?\s?u\.?)/i,wide:/^(sebelum masehi|sebelum era umum|masehi|era umum)/i},s={any:[/^s/i,/^(m|e)/i]},u={narrow:/^[1234]/i,abbreviated:/^K-?\s[1234]/i,wide:/^Kuartal ke-?\s?[1234]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|mei|jun|jul|agt|sep|okt|nov|des)/i,wide:/^(januari|februari|maret|april|mei|juni|juli|agustus|september|oktober|november|desember)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^ma/i,/^ap/i,/^me/i,/^jun/i,/^jul/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[srkjm]/i,short:/^(min|sen|sel|rab|kam|jum|sab)/i,abbreviated:/^(min|sen|sel|rab|kam|jum|sab)/i,wide:/^(minggu|senin|selasa|rabu|kamis|jumat|sabtu)/i},c={narrow:[/^m/i,/^s/i,/^s/i,/^r/i,/^k/i,/^j/i,/^s/i],any:[/^m/i,/^sen/i,/^sel/i,/^r/i,/^k/i,/^j/i,/^sa/i]},v={narrow:/^(a|p|tengah m|tengah h|(di(\swaktu)?) (pagi|siang|sore|malam))/i,any:/^([ap]\.?\s?m\.?|tengah malam|tengah hari|(di(\swaktu)?) (pagi|siang|sore|malam))/i},g={any:{am:/^a/i,pm:/^pm/i,midnight:/^tengah m/i,noon:/^tengah h/i,morning:/pagi/i,afternoon:/siang/i,evening:/sore/i,night:/malam/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(636),a=e(637),r=e(638),o=e(639),n=e(640),s={code:"is",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"minna en 1 sekúnda",other:"minna en {{count}} sekúndur"},xSeconds:{one:"1 sekúnda",other:"{{count}} sekúndur"},halfAMinute:"hálf mínúta",lessThanXMinutes:{one:"minna en 1 mínúta",other:"minna en {{count}} mínútur"},xMinutes:{one:"1 mínúta",other:"{{count}} mínútur"},aboutXHours:{one:"u.þ.b. 1 klukkustund",other:"u.þ.b. {{count}} klukkustundir"},xHours:{one:"1 klukkustund",other:"{{count}} klukkustundir"},xDays:{one:"1 dagur",other:"{{count}} dagar"},aboutXWeeks:{one:"um viku",other:"um {{count}} vikur"},xWeeks:{one:"1 viku",other:"{{count}} vikur"},aboutXMonths:{one:"u.þ.b. 1 mánuður",other:"u.þ.b. {{count}} mánuðir"},xMonths:{one:"1 mánuður",other:"{{count}} mánuðir"},aboutXYears:{one:"u.þ.b. 1 ár",other:"u.þ.b. {{count}} ár"},xYears:{one:"1 ár",other:"{{count}} ár"},overXYears:{one:"meira en 1 ár",other:"meira en {{count}} ár"},almostXYears:{one:"næstum 1 ár",other:"næstum {{count}} ár"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"í "+s:s+" síðan":s}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM y",short:"d.MM.y"},r={full:"'kl'. HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'kl.' {{time}}",long:"{{date}} 'kl.' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'síðasta' dddd 'kl.' p",yesterday:"'í gær kl.' p",today:"'í dag kl.' p",tomorrow:"'á morgun kl.' p",nextWeek:"dddd 'kl.' p",other:"L"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["f.Kr.","e.Kr."],abbreviated:["f.Kr.","e.Kr."],wide:["fyrir Krist","eftir Krist"]},r={narrow:["1","2","3","4"],abbreviated:["1F","2F","3F","4F"],wide:["1. fjórðungur","2. fjórðungur","3. fjórðungur","4. fjórðungur"]},o={narrow:["J","F","M","A","M","J","J","Á","S","Ó","N","D"],abbreviated:["jan.","feb.","mars","apríl","maí","júní","júlí","ágúst","sept.","okt.","nóv.","des."],wide:["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember"]},n={narrow:["S","M","Þ","M","F","F","L"],short:["Su","Má","Þr","Mi","Fi","Fö","La"],abbreviated:["sun.","mán.","þri.","mið.","fim.","fös.","lau"],wide:["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"]},s={narrow:{am:"f",pm:"e",midnight:"miðnætti",noon:"hádegi",morning:"morgunn",afternoon:"síðdegi",evening:"kvöld",night:"nótt"},abbreviated:{am:"f.h.",pm:"e.h.",midnight:"miðnætti",noon:"hádegi",morning:"morgunn",afternoon:"síðdegi",evening:"kvöld",night:"nótt"},wide:{am:"fyrir hádegi",pm:"eftir hádegi",midnight:"miðnætti",noon:"hádegi",morning:"morgunn",afternoon:"síðdegi",evening:"kvöld",night:"nótt"}},u={narrow:{am:"f",pm:"e",midnight:"á miðnætti",noon:"á hádegi",morning:"að morgni",afternoon:"síðdegis",evening:"um kvöld",night:"um nótt"},abbreviated:{am:"f.h.",pm:"e.h.",midnight:"á miðnætti",noon:"á hádegi",morning:"að morgni",afternoon:"síðdegis",evening:"um kvöld",night:"um nótt"},wide:{am:"fyrir hádegi",pm:"eftir hádegi",midnight:"á miðnætti",noon:"á hádegi",morning:"að morgni",afternoon:"síðdegis",evening:"um kvöld",night:"um nótt"}};function d(f,_){var c=Number(f);return c+"."}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,n={narrow:/^(f\.Kr\.|e\.Kr\.)/i,abbreviated:/^(f\.Kr\.|e\.Kr\.)/i,wide:/^(fyrir Krist|eftir Krist)/i},s={any:[/^(f\.Kr\.|e\.Kr\.)/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234] fjórðungur/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmásónd]/i,abbreviated:/^(jan\.|feb\.|mars\.|apríl\.|maí|júní|júlí|águst|sep\.|oct\.|nov\.|dec\.)/i,wide:/^(januar|februar|mars|apríl|maí|júní|júlí|águst|september|október|nóvember|desember)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^á/i,/^s/i,/^ó/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^maí/i,/^jún/i,/^júl/i,/^áu/i,/^s/i,/^ó/i,/^n/i,/^d/i]},_={narrow:/^[smtwf]/i,short:/^(su|má|þr|mi|fi|fö|la)/i,abbreviated:/^(sun|mán|þri|mið|fim|fös|lau)\.?/i,wide:/^(sunnudagur|mánudagur|þriðjudagur|miðvikudagur|fimmtudagur|föstudagur|laugardagur)/i},c={narrow:[/^s/i,/^m/i,/^þ/i,/^m/i,/^f/i,/^f/i,/^l/i],any:[/^su/i,/^má/i,/^þr/i,/^mi/i,/^fi/i,/^fö/i,/^la/i]},v={narrow:/^(f|e|síðdegis|(á|að|um) (morgni|kvöld|nótt|miðnætti))/i,any:/^(fyrir hádegi|eftir hádegi|[ef]\.?h\.?|síðdegis|morgunn|(á|að|um) (morgni|kvöld|nótt|miðnætti))/i},g={any:{am:/^f/i,pm:/^e/i,midnight:/^mi/i,noon:/^há/i,morning:/morgunn/i,afternoon:/síðdegi/i,evening:/kvöld/i,night:/nótt/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(642),a=e(643),r=e(644),o=e(645),n=e(646),s={code:"it",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"meno di un secondo",other:"meno di {{count}} secondi"},xSeconds:{one:"un secondo",other:"{{count}} secondi"},halfAMinute:"alcuni secondi",lessThanXMinutes:{one:"meno di un minuto",other:"meno di {{count}} minuti"},xMinutes:{one:"un minuto",other:"{{count}} minuti"},aboutXHours:{one:"circa un'ora",other:"circa {{count}} ore"},xHours:{one:"un'ora",other:"{{count}} ore"},xDays:{one:"un giorno",other:"{{count}} giorni"},aboutXWeeks:{one:"circa una settimana",other:"circa {{count}} settimane"},xWeeks:{one:"una settimana",other:"{{count}} settimane"},aboutXMonths:{one:"circa un mese",other:"circa {{count}} mesi"},xMonths:{one:"un mese",other:"{{count}} mesi"},aboutXYears:{one:"circa un anno",other:"circa {{count}} anni"},xYears:{one:"un anno",other:"{{count}} anni"},overXYears:{one:"più di un anno",other:"più di {{count}} anni"},almostXYears:{one:"quasi un anno",other:"quasi {{count}} anni"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"tra "+s:s+" fa":s}},function(l,i,e){var t=e(2),a={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=u;var t=e(13),a=["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"];function r(d){switch(d){case 0:return"'domenica scorsa alle' p";default:return"'"+a[d]+" scorso alle' p"}}function o(d){return"'"+a[d]+" alle' p"}function n(d){switch(d){case 0:return"'domenica prossima alle' p";default:return"'"+a[d]+" prossimo alle' p"}}var s={lastWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):r(_)},yesterday:"'ieri alle' p",today:"'oggi alle' p",tomorrow:"'domani alle' p",nextWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):n(_)},other:"P"};function u(d,m,f,_){var c=s[d];return typeof c=="function"?c(m,f,_):c}},function(l,i,e){var t=e(3),a={narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["avanti Cristo","dopo Cristo"]},r={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},o={narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],abbreviated:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],wide:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},n={narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],abbreviated:["dom","lun","mar","mer","gio","ven","sab"],wide:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},s={narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"}},u={narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"}};function d(f){var _=Number(f);return _+"º"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(º)?/i,o=/\d+/i,n={narrow:/^(aC|dC)/i,abbreviated:/^(a\.?\s?C\.?|a\.?\s?e\.?\s?v\.?|d\.?\s?C\.?|e\.?\s?v\.?)/i,wide:/^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i},s={any:[/^a/i,/^(d|e)/i]},u={narrow:/^[1234]/i,abbreviated:/^t[1234]/i,wide:/^[1234](º)? trimestre/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[gfmalsond]/i,abbreviated:/^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,wide:/^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i},f={narrow:[/^g/i,/^f/i,/^m/i,/^a/i,/^m/i,/^g/i,/^l/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ge/i,/^f/i,/^mar/i,/^ap/i,/^mag/i,/^gi/i,/^l/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[dlmgvs]/i,short:/^(do|lu|ma|me|gi|ve|sa)/i,abbreviated:/^(dom|lun|mar|mer|gio|ven|sab)/i,wide:/^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i},c={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^g/i,/^v/i,/^s/i],any:[/^d/i,/^l/i,/^ma/i,/^me/i,/^g/i,/^v/i,/^s/i]},v={narrow:/^(a|m\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,any:/^([ap]\.?\s?m\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mezza/i,noon:/^mezzo/i,morning:/mattina/i,afternoon:/pomeriggio/i,evening:/sera/i,night:/notte/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(648),a=e(649),r=e(650),o=e(651),n=e(652),s={code:"ja",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"1秒未満",other:"{{count}}秒未満",oneWithSuffix:"約1秒",otherWithSuffix:"約{{count}}秒"},xSeconds:{one:"1秒",other:"{{count}}秒"},halfAMinute:"30秒",lessThanXMinutes:{one:"1分未満",other:"{{count}}分未満",oneWithSuffix:"約1分",otherWithSuffix:"約{{count}}分"},xMinutes:{one:"1分",other:"{{count}}分"},aboutXHours:{one:"約1時間",other:"約{{count}}時間"},xHours:{one:"1時間",other:"{{count}}時間"},xDays:{one:"1日",other:"{{count}}日"},aboutXWeeks:{one:"約1週間",other:"約{{count}}週間"},xWeeks:{one:"1週間",other:"{{count}}週間"},aboutXMonths:{one:"約1か月",other:"約{{count}}か月"},xMonths:{one:"1か月",other:"{{count}}か月"},aboutXYears:{one:"約1年",other:"約{{count}}年"},xYears:{one:"1年",other:"{{count}}年"},overXYears:{one:"1年以上",other:"{{count}}年以上"},almostXYears:{one:"1年近く",other:"{{count}}年近く"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?n.addSuffix&&t[r].oneWithSuffix?s=t[r].oneWithSuffix:s=t[r].one:n.addSuffix&&t[r].otherWithSuffix?s=t[r].otherWithSuffix.replace("{{count}}",o):s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+"後":s+"前":s}},function(l,i,e){var t=e(2),a={full:"y年M月d日EEEE",long:"y年M月d日",medium:"y/MM/dd",short:"y/MM/dd"},r={full:"H時mm分ss秒 zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"先週のeeeeのp",yesterday:"昨日のp",today:"今日のp",tomorrow:"明日のp",nextWeek:"翌週のeeeeのp",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},o={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},n={narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},s={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},u={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}};function d(f,_){var c=Number(f),v=_||{},g=String(v.unit);return g==="date"?c+"日":c}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^第?\d+(日)?/i,o=/\d+/i,n={narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},s={narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},u={narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},d={any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},m={narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},f={any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},_={narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},c={any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},v={any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},g={any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(654),a=e(655),r=e(656),o=e(657),n=e(658),s={code:"ka",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{past:"{{count}} წამზე ნაკლები ხნის წინ",present:"{{count}} წამზე ნაკლები",future:"{{count}} წამზე ნაკლებში"},xSeconds:{past:"{{count}} წამის წინ",present:"{{count}} წამი",future:"{{count}} წამში"},halfAMinute:{past:"ნახევარი წუთის წინ",present:"ნახევარი წუთი",future:"ნახევარი წუთში"},lessThanXMinutes:{past:"{{count}} წუთზე ნაკლები ხნის წინ",present:"{{count}} წუთზე ნაკლები",future:"{{count}} წუთზე ნაკლებში"},xMinutes:{past:"{{count}} წუთის წინ",present:"{{count}} წუთი",future:"{{count}} წუთში"},aboutXHours:{past:"დაახლოებით {{count}} საათის წინ",present:"დაახლოებით {{count}} საათი",future:"დაახლოებით {{count}} საათში"},xHours:{past:"{{count}} საათის წინ",present:"{{count}} საათი",future:"{{count}} საათში"},xDays:{past:"{{count}} დღის წინ",present:"{{count}} დღე",future:"{{count}} დღეში"},aboutXWeeks:{past:"დაახლოებით {{count}} კვირას წინ",present:"დაახლოებით {{count}} კვირა",future:"დაახლოებით {{count}} კვირაში"},xWeeks:{past:"{{count}} კვირას კვირა",present:"{{count}} კვირა",future:"{{count}} კვირაში"},aboutXMonths:{past:"დაახლოებით {{count}} თვის წინ",present:"დაახლოებით {{count}} თვე",future:"დაახლოებით {{count}} თვეში"},xMonths:{past:"{{count}} თვის წინ",present:"{{count}} თვე",future:"{{count}} თვეში"},aboutXYears:{past:"დაახლოებით {{count}} წლის წინ",present:"დაახლოებით {{count}} წელი",future:"დაახლოებით {{count}} წელში"},xYears:{past:"{{count}} წლის წინ",present:"{{count}} წელი",future:"{{count}} წელში"},overXYears:{past:"{{count}} წელზე მეტი ხნის წინ",present:"{{count}} წელზე მეტი",future:"{{count}} წელზე მეტი ხნის შემდეგ"},almostXYears:{past:"თითქმის {{count}} წლის წინ",present:"თითქმის {{count}} წელი",future:"თითქმის {{count}} წელში"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:n.addSuffix&&n.comparison>0?s=t[r].future.replace("{{count}}",o):n.addSuffix&&n.comparison<=0?s=t[r].past.replace("{{count}}",o):s=t[r].present.replace("{{count}}",o),s}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM, y",long:"do, MMMM, y",medium:"d, MMM, y",short:"dd/MM/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} {{time}}'-ზე'",long:"{{date}} {{time}}'-ზე'",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'წინა' eeee LT'-ზე'",yesterday:"'გუშინ' LT'-ზე'",today:"'დღეს' LT'-ზე'",tomorrow:"'ხვალ' LT'-ზე'",nextWeek:"'შემდეგი' eeee LT'-ზე'",other:"L"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["ჩ.წ-მდე","ჩ.წ"],abbreviated:["ჩვ.წ-მდე","ჩვ.წ"],wide:["ჩვენს წელთაღრიცხვამდე","ჩვენი წელთაღრიცხვით"]},r={narrow:["1","2","3","4"],abbreviated:["1-ლი კვ","2-ე კვ","3-ე კვ","4-ე კვ"],wide:["1-ლი კვარტალი","2-ე კვარტალი","3-ე კვარტალი","4-ე კვარტალი"]},o={narrow:["ია","თე","მა","აპ","მს","ვნ","ვლ","აგ","სე","ოქ","ნო","დე"],abbreviated:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],wide:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"]},n={narrow:["კვ","ორ","სა","ოთ","ხუ","პა","შა"],short:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],abbreviated:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],wide:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"]},s={narrow:{am:"a",pm:"p",midnight:"შუაღამე",noon:"შუადღე",morning:"დილა",afternoon:"საღამო",evening:"საღამო",night:"ღამე"},abbreviated:{am:"AM",pm:"PM",midnight:"შუაღამე",noon:"შუადღე",morning:"დილა",afternoon:"საღამო",evening:"საღამო",night:"ღამე"},wide:{am:"a.m.",pm:"p.m.",midnight:"შუაღამე",noon:"შუადღე",morning:"დილა",afternoon:"საღამო",evening:"საღამო",night:"ღამე"}},u={narrow:{am:"a",pm:"p",midnight:"შუაღამით",noon:"შუადღისას",morning:"დილით",afternoon:"ნაშუადღევს",evening:"საღამოს",night:"ღამით"},abbreviated:{am:"AM",pm:"PM",midnight:"შუაღამით",noon:"შუადღისას",morning:"დილით",afternoon:"ნაშუადღევს",evening:"საღამოს",night:"ღამით"},wide:{am:"a.m.",pm:"p.m.",midnight:"შუაღამით",noon:"შუადღისას",morning:"დილით",afternoon:"ნაშუადღევს",evening:"საღამოს",night:"ღამით"}};function d(f,_){var c=Number(f);return c===1?c+"-ლი":c+"-ე"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(-ლი|-ე)?/i,o=/\d+/i,n={narrow:/^(ჩვ?\.წ)/i,abbreviated:/^(ჩვ?\.წ)/i,wide:/^(ჩვენს წელთაღრიცხვამდე|ქრისტეშობამდე|ჩვენი წელთაღრიცხვით|ქრისტეშობიდან)/i},s={any:[/^(ჩვენს წელთაღრიცხვამდე|ქრისტეშობამდე)/i,/^(ჩვენი წელთაღრიცხვით|ქრისტეშობიდან)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]-(ლი|ე)? კვ/i,wide:/^[1234]-(ლი|ე)? კვარტალი/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={any:/^(ია|თე|მა|აპ|მს|ვნ|ვლ|აგ|სე|ოქ|ნო|დე)/i},f={any:[/^ია/i,/^თ/i,/^მარ/i,/^აპ/i,/^მაი/i,/^ი?ვნ/i,/^ი?ვლ/i,/^აგ/i,/^ს/i,/^ო/i,/^ნ/i,/^დ/i]},_={narrow:/^(კვ|ორ|სა|ოთ|ხუ|პა|შა)/i,short:/^(კვი|ორშ|სამ|ოთხ|ხუთ|პარ|შაბ)/i,long:/^(კვირა|ორშაბათი|სამშაბათი|ოთხშაბათი|ხუთშაბათი|პარასკევი|შაბათი)/i},c={any:[/^კვ/i,/^ორ/i,/^სა/i,/^ოთ/i,/^ხუ/i,/^პა/i,/^შა/i]},v={any:/^([ap]\.?\s?m\.?|შუაღ|დილ)/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^შუაღ/i,noon:/^შუადღ/i,morning:/^დილ/i,afternoon:/ნაშუადღევს/i,evening:/საღამო/i,night:/ღამ/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(660),a=e(661),r=e(662),o=e(663),n=e(664),s={code:"kk",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=o;function t(n,s){if(n.one!==void 0&&s===1)return n.one;var u=s%10,d=s%100;return u===1&&d!==11?n.singularNominative.replace("{{count}}",s):u>=2&&u<=4&&(d<10||d>20)?n.singularGenitive.replace("{{count}}",s):n.pluralGenitive.replace("{{count}}",s)}function a(n){return function(s,u){return u.addSuffix?u.comparison>0?n.future?t(n.future,s):t(n.regular,s)+" кейін":n.past?t(n.past,s):t(n.regular,s)+" бұрын":t(n.regular,s)}}var r={lessThanXSeconds:a({regular:{one:"1 секундтан аз",singularNominative:"{{count}} секундтан аз",singularGenitive:"{{count}} секундтан аз",pluralGenitive:"{{count}} секундтан аз"},future:{one:"бір секундтан кейін",singularNominative:"{{count}} секундтан кейін",singularGenitive:"{{count}} секундтан кейін",pluralGenitive:"{{count}} секундтан кейін"}}),xSeconds:a({regular:{singularNominative:"{{count}} секунд",singularGenitive:"{{count}} секунд",pluralGenitive:"{{count}} секунд"},past:{singularNominative:"{{count}} секунд бұрын",singularGenitive:"{{count}} секунд бұрын",pluralGenitive:"{{count}} секунд бұрын"},future:{singularNominative:"{{count}} секундтан кейін",singularGenitive:"{{count}} секундтан кейін",pluralGenitive:"{{count}} секундтан кейін"}}),halfAMinute:function(n,s){return s.addSuffix?s.comparison>0?"жарты минут ішінде":"жарты минут бұрын":"жарты минут"},lessThanXMinutes:a({regular:{one:"1 минуттан аз",singularNominative:"{{count}} минуттан аз",singularGenitive:"{{count}} минуттан аз",pluralGenitive:"{{count}} минуттан аз"},future:{one:"минуттан кем ",singularNominative:"{{count}} минуттан кем",singularGenitive:"{{count}} минуттан кем",pluralGenitive:"{{count}} минуттан кем"}}),xMinutes:a({regular:{singularNominative:"{{count}} минут",singularGenitive:"{{count}} минут",pluralGenitive:"{{count}} минут"},past:{singularNominative:"{{count}} минут бұрын",singularGenitive:"{{count}} минут бұрын",pluralGenitive:"{{count}} минут бұрын"},future:{singularNominative:"{{count}} минуттан кейін",singularGenitive:"{{count}} минуттан кейін",pluralGenitive:"{{count}} минуттан кейін"}}),aboutXHours:a({regular:{singularNominative:"шамамен {{count}} сағат",singularGenitive:"шамамен {{count}} сағат",pluralGenitive:"шамамен {{count}} сағат"},future:{singularNominative:"шамамен {{count}} сағаттан кейін",singularGenitive:"шамамен {{count}} сағаттан кейін",pluralGenitive:"шамамен {{count}} сағаттан кейін"}}),xHours:a({regular:{singularNominative:"{{count}} сағат",singularGenitive:"{{count}} сағат",pluralGenitive:"{{count}} сағат"}}),xDays:a({regular:{singularNominative:"{{count}} күн",singularGenitive:"{{count}} күн",pluralGenitive:"{{count}} күн"},future:{singularNominative:"{{count}} күннен кейін",singularGenitive:"{{count}} күннен кейін",pluralGenitive:"{{count}} күннен кейін"}}),aboutXWeeks:{one:"шамамен 1 апта",other:"шамамен {{count}} апта"},xWeeks:{one:"1 апта",other:"{{count}} апта"},aboutXMonths:a({regular:{singularNominative:"шамамен {{count}} ай",singularGenitive:"шамамен {{count}} ай",pluralGenitive:"шамамен {{count}} ай"},future:{singularNominative:"шамамен {{count}} айдан кейін",singularGenitive:"шамамен {{count}} айдан кейін",pluralGenitive:"шамамен {{count}} айдан кейін"}}),xMonths:a({regular:{singularNominative:"{{count}} ай",singularGenitive:"{{count}} ай",pluralGenitive:"{{count}} ай"}}),aboutXYears:a({regular:{singularNominative:"шамамен {{count}} жыл",singularGenitive:"шамамен {{count}} жыл",pluralGenitive:"шамамен {{count}} жыл"},future:{singularNominative:"шамамен {{count}} жылдан кейін",singularGenitive:"шамамен {{count}} жылдан кейін",pluralGenitive:"шамамен {{count}} жылдан кейін"}}),xYears:a({regular:{singularNominative:"{{count}} жыл",singularGenitive:"{{count}} жыл",pluralGenitive:"{{count}} жыл"},future:{singularNominative:"{{count}} жылдан кейін",singularGenitive:"{{count}} жылдан кейін",pluralGenitive:"{{count}} жылдан кейін"}}),overXYears:a({regular:{singularNominative:"{{count}} жылдан астам",singularGenitive:"{{count}} жылдан астам",pluralGenitive:"{{count}} жылдан астам"},future:{singularNominative:"{{count}} жылдан астам",singularGenitive:"{{count}} жылдан астам",pluralGenitive:"{{count}} жылдан астам"}}),almostXYears:a({regular:{singularNominative:"{{count}} жылға жақын",singularGenitive:"{{count}} жылға жақын",pluralGenitive:"{{count}} жылға жақын"},future:{singularNominative:"{{count}} жылдан кейін",singularGenitive:"{{count}} жылдан кейін",pluralGenitive:"{{count}} жылдан кейін"}})};function o(n,s,u){return u=u||{},r[n](s,u)}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM y 'ж.'",long:"do MMMM y 'ж.'",medium:"d MMM y 'ж.'",short:"dd.MM.yyyy"},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={any:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"any"})};i.a=n},function(l,i,e){i.a=u;var t=e(13),a=["жексенбіде","дүйсенбіде","сейсенбіде","сәрсенбіде","бейсенбіде","жұмада","сенбіде"];function r(d){var m=a[d];return"'өткен "+m+" сағат' p'-де'"}function o(d){var m=a[d];return"'"+m+" сағат' p'-де'"}function n(d){var m=a[d];return"'келесі "+m+" сағат' p'-де'"}var s={lastWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):r(_)},yesterday:"'кеше сағат' p'-де'",today:"'бүгін сағат' p'-де'",tomorrow:"'ертең сағат' p'-де'",nextWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):n(_)},other:"P"};function u(d,m,f,_){var c=s[d];return typeof c=="function"?c(m,f,_):c}},function(l,i,e){var t=e(3),a={narrow:["б.з.д.","б.з."],abbreviated:["б.з.д.","б.з."],wide:["біздің заманымызға дейін","біздің заманымыз"]},r={narrow:["1","2","3","4"],abbreviated:["1-ші тоқ.","2-ші тоқ.","3-ші тоқ.","4-ші тоқ."],wide:["1-ші тоқсан","2-ші тоқсан","3-ші тоқсан","4-ші тоқсан"]},o={narrow:["Қ","А","Н","С","М","М","Ш","Т","Қ","Қ","Қ","Ж"],abbreviated:["қаң","ақп","нау","сәу","мам","мау","шіл","там","қыр","қаз","қар","жел"],wide:["қаңтар","ақпан","наурыз","сәуір","мамыр","маусым","шілде","тамыз","қыркүйек","қазан","қараша","желтоқсан"]},n={narrow:["Қ","А","Н","С","М","М","Ш","Т","Қ","Қ","Қ","Ж"],abbreviated:["қаң","ақп","нау","сәу","мам","мау","шіл","там","қыр","қаз","қар","жел"],wide:["қаңтар","ақпан","наурыз","сәуір","мамыр","маусым","шілде","тамыз","қыркүйек","қазан","қараша","желтоқсан"]},s={narrow:["Ж","Д","С","С","Б","Ж","С"],short:["жс","дс","сс","ср","бс","жм","сб"],abbreviated:["жс","дс","сс","ср","бс","жм","сб"],wide:["жексенбі","дүйсенбі","сейсенбі","сәрсенбі","бейсенбі","жұма","сенбі"]},u={narrow:{am:"ТД",pm:"ТК",midnight:"түн ортасы",noon:"түс",morning:"таң",afternoon:"күндіз",evening:"кеш",night:"түн"},wide:{am:"ТД",pm:"ТК",midnight:"түн ортасы",noon:"түс",morning:"таң",afternoon:"күндіз",evening:"кеш",night:"түн"}},d={narrow:{am:"ТД",pm:"ТК",midnight:"түн ортасында",noon:"түс",morning:"таң",afternoon:"күн",evening:"кеш",night:"түн"},wide:{am:"ТД",pm:"ТК",midnight:"түн ортасында",noon:"түсте",morning:"таңертең",afternoon:"күндіз",evening:"кеште",night:"түнде"}};function m(_,c){var v=c||{},g=String(v.unit),P;return P="-ші",_+P}var f={ordinalNumber:m,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"any",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(-?(ші|шы))?/i,o=/\d+/i,n={narrow:/^((б )?з\.?\s?д\.?)/i,abbreviated:/^((б )?з\.?\s?д\.?)/i,wide:/^(біздің заманымызға дейін|біздің заманымыз|біздің заманымыздан)/i},s={any:[/^б/i,/^з/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234](-?ші)? тоқ.?/i,wide:/^[1234](-?ші)? тоқсан/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(қ|а|н|с|м|мау|ш|т|қыр|қаз|қар|ж)/i,abbreviated:/^(қаң|ақп|нау|сәу|мам|мау|шіл|там|қыр|қаз|қар|жел)/i,wide:/^(қаңтар|ақпан|наурыз|сәуір|мамыр|маусым|шілде|тамыз|қыркүйек|қазан|қараша|желтоқсан)/i},f={narrow:[/^қ/i,/^а/i,/^н/i,/^с/i,/^м/i,/^м/i,/^ш/i,/^т/i,/^қ/i,/^қ/i,/^қ/i,/^ж/i],abbreviated:[/^қаң/i,/^ақп/i,/^нау/i,/^сәу/i,/^мам/i,/^мау/i,/^шіл/i,/^там/i,/^қыр/i,/^қаз/i,/^қар/i,/^жел/i],any:[/^қ/i,/^а/i,/^н/i,/^с/i,/^м/i,/^м/i,/^ш/i,/^т/i,/^қ/i,/^қ/i,/^қ/i,/^ж/i]},_={narrow:/^(ж|д|с|с|б|ж|с)/i,short:/^(жс|дс|сс|ср|бс|жм|сб)/i,wide:/^(жексенбі|дүйсенбі|сейсенбі|сәрсенбі|бейсенбі|жұма|сенбі)/i},c={narrow:[/^ж/i,/^д/i,/^с/i,/^с/i,/^б/i,/^ж/i,/^с/i],short:[/^жс/i,/^дс/i,/^сс/i,/^ср/i,/^бс/i,/^жм/i,/^сб/i],any:[/^ж[ек]/i,/^д[үй]/i,/^сe[й]/i,/^сә[р]/i,/^б[ей]/i,/^ж[ұм]/i,/^се[н]/i]},v={narrow:/^Т\.?\s?[ДК]\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\.?)/i,wide:/^Т\.?\s?[ДК]\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\.?)/i,any:/^Т\.?\s?[ДК]\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\.?)/i},g={any:{am:/^ТД/i,pm:/^ТК/i,midnight:/^түн орта/i,noon:/^күндіз/i,morning:/таң/i,afternoon:/түс/i,evening:/кеш/i,night:/түн/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"wide",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(666),a=e(667),r=e(668),o=e(669),n=e(670),s={code:"kn",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=r;var t={lessThanXSeconds:{one:{default:"1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ",future:"1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ",past:"1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ"},other:{default:"{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ",future:"{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ",past:"{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ"}},xSeconds:{one:{default:"1 ಸೆಕೆಂಡ್",future:"1 ಸೆಕೆಂಡ್‌ನಲ್ಲಿ",past:"1 ಸೆಕೆಂಡ್ ಹಿಂದೆ"},other:{default:"{{count}} ಸೆಕೆಂಡುಗಳು",future:"{{count}} ಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ",past:"{{count}} ಸೆಕೆಂಡ್ ಹಿಂದೆ"}},halfAMinute:{other:{default:"ಅರ್ಧ ನಿಮಿಷ",future:"ಅರ್ಧ ನಿಮಿಷದಲ್ಲಿ",past:"ಅರ್ಧ ನಿಮಿಷದ ಹಿಂದೆ"}},lessThanXMinutes:{one:{default:"1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ",future:"1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ",past:"1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ"},other:{default:"{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ",future:"{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ",past:"{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ"}},xMinutes:{one:{default:"1 ನಿಮಿಷ",future:"1 ನಿಮಿಷದಲ್ಲಿ",past:"1 ನಿಮಿಷದ ಹಿಂದೆ"},other:{default:"{{count}} ನಿಮಿಷಗಳು",future:"{{count}} ನಿಮಿಷಗಳಲ್ಲಿ",past:"{{count}} ನಿಮಿಷಗಳ ಹಿಂದೆ"}},aboutXHours:{one:{default:"ಸುಮಾರು 1 ಗಂಟೆ",future:"ಸುಮಾರು 1 ಗಂಟೆಯಲ್ಲಿ",past:"ಸುಮಾರು 1 ಗಂಟೆ ಹಿಂದೆ"},other:{default:"ಸುಮಾರು {{count}} ಗಂಟೆಗಳು",future:"ಸುಮಾರು {{count}} ಗಂಟೆಗಳಲ್ಲಿ",past:"ಸುಮಾರು {{count}} ಗಂಟೆಗಳ ಹಿಂದೆ"}},xHours:{one:{default:"1 ಗಂಟೆ",future:"1 ಗಂಟೆಯಲ್ಲಿ",past:"1 ಗಂಟೆ ಹಿಂದೆ"},other:{default:"{{count}} ಗಂಟೆಗಳು",future:"{{count}} ಗಂಟೆಗಳಲ್ಲಿ",past:"{{count}} ಗಂಟೆಗಳ ಹಿಂದೆ"}},xDays:{one:{default:"1 ದಿನ",future:"1 ದಿನದಲ್ಲಿ",past:"1 ದಿನದ ಹಿಂದೆ"},other:{default:"{{count}} ದಿನಗಳು",future:"{{count}} ದಿನಗಳಲ್ಲಿ",past:"{{count}} ದಿನಗಳ ಹಿಂದೆ"}},aboutXMonths:{one:{default:"ಸುಮಾರು 1 ತಿಂಗಳು",future:"ಸುಮಾರು 1 ತಿಂಗಳಲ್ಲಿ",past:"ಸುಮಾರು 1 ತಿಂಗಳ ಹಿಂದೆ"},other:{default:"ಸುಮಾರು {{count}} ತಿಂಗಳು",future:"ಸುಮಾರು {{count}} ತಿಂಗಳುಗಳಲ್ಲಿ",past:"ಸುಮಾರು {{count}} ತಿಂಗಳುಗಳ ಹಿಂದೆ"}},xMonths:{one:{default:"1 ತಿಂಗಳು",future:"1 ತಿಂಗಳಲ್ಲಿ",past:"1 ತಿಂಗಳ ಹಿಂದೆ"},other:{default:"{{count}} ತಿಂಗಳು",future:"{{count}} ತಿಂಗಳುಗಳಲ್ಲಿ",past:"{{count}} ತಿಂಗಳುಗಳ ಹಿಂದೆ"}},aboutXYears:{one:{default:"ಸುಮಾರು 1 ವರ್ಷ",future:"ಸುಮಾರು 1 ವರ್ಷದಲ್ಲಿ",past:"ಸುಮಾರು 1 ವರ್ಷದ ಹಿಂದೆ"},other:{default:"ಸುಮಾರು {{count}} ವರ್ಷಗಳು",future:"ಸುಮಾರು {{count}} ವರ್ಷಗಳಲ್ಲಿ",past:"ಸುಮಾರು {{count}} ವರ್ಷಗಳ ಹಿಂದೆ"}},xYears:{one:{default:"1 ವರ್ಷ",future:"1 ವರ್ಷದಲ್ಲಿ",past:"1 ವರ್ಷದ ಹಿಂದೆ"},other:{default:"{{count}} ವರ್ಷಗಳು",future:"{{count}} ವರ್ಷಗಳಲ್ಲಿ",past:"{{count}} ವರ್ಷಗಳ ಹಿಂದೆ"}},overXYears:{one:{default:"1 ವರ್ಷದ ಮೇಲೆ",future:"1 ವರ್ಷದ ಮೇಲೆ",past:"1 ವರ್ಷದ ಮೇಲೆ"},other:{default:"{{count}} ವರ್ಷಗಳ ಮೇಲೆ",future:"{{count}} ವರ್ಷಗಳ ಮೇಲೆ",past:"{{count}} ವರ್ಷಗಳ ಮೇಲೆ"}},almostXYears:{one:{default:"ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ",future:"ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ",past:"ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ"},other:{default:"ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ",future:"ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ",past:"ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ"}}};function a(o,n){return n.addSuffix?n.comparison>0?o.future:o.past:o.default}function r(o,n,s){s=s||{};var u;return typeof t[o]=="string"?u=t[o]:n===1?u=a(t[o].one,s):u=a(t[o].other,s),u.replace("{{count}}",n)}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM d, y",long:"MMMM d, y",medium:"MMM d, y",short:"d/M/yy"},r={full:"hh:mm:ss a zzzz",long:"hh:mm:ss a z",medium:"hh:mm:ss a",short:"hh:mm a"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'ಕಳೆದ' eeee p 'ಕ್ಕೆ'",yesterday:"'ನಿನ್ನೆ' p 'ಕ್ಕೆ'",today:"'ಇಂದು' p 'ಕ್ಕೆ'",tomorrow:"'ನಾಳೆ' p 'ಕ್ಕೆ'",nextWeek:"eeee p 'ಕ್ಕೆ'",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["ಕ್ರಿ.ಪೂ","ಕ್ರಿ.ಶ"],abbreviated:["ಕ್ರಿ.ಪೂ","ಕ್ರಿ.ಶ"],wide:["ಕ್ರಿಸ್ತ ಪೂರ್ವ","ಕ್ರಿಸ್ತ ಶಕ"]},r={narrow:["1","2","3","4"],abbreviated:["ತ್ರೈ 1","ತ್ರೈ 2","ತ್ರೈ 3","ತ್ರೈ 4"],wide:["1ನೇ ತ್ರೈಮಾಸಿಕ","2ನೇ ತ್ರೈಮಾಸಿಕ","3ನೇ ತ್ರೈಮಾಸಿಕ","4ನೇ ತ್ರೈಮಾಸಿಕ"]},o={narrow:["ಜ","ಫೆ","ಮಾ","ಏ","ಮೇ","ಜೂ","ಜು","ಆ","ಸೆ","ಅ","ನ","ಡಿ"],abbreviated:["ಜನ","ಫೆಬ್ರ","ಮಾರ್ಚ್","ಏಪ್ರಿ","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗ","ಸೆಪ್ಟೆಂ","ಅಕ್ಟೋ","ನವೆಂ","ಡಿಸೆಂ"],wide:["ಜನವರಿ","ಫೆಬ್ರವರಿ","ಮಾರ್ಚ್","ಏಪ್ರಿಲ್","ಮೇ","ಜೂನ್","ಜುಲೈ","ಆಗಸ್ಟ್","ಸೆಪ್ಟೆಂಬರ್","ಅಕ್ಟೋಬರ್","ನವೆಂಬರ್","ಡಿಸೆಂಬರ್"]},n={narrow:["ಭಾ","ಸೋ","ಮಂ","ಬು","ಗು","ಶು","ಶ"],short:["ಭಾನು","ಸೋಮ","ಮಂಗಳ","ಬುಧ","ಗುರು","ಶುಕ್ರ","ಶನಿ"],abbreviated:["ಭಾನು","ಸೋಮ","ಮಂಗಳ","ಬುಧ","ಗುರು","ಶುಕ್ರ","ಶನಿ"],wide:["ಭಾನುವಾರ","ಸೋಮವಾರ","ಮಂಗಳವಾರ","ಬುಧವಾರ","ಗುರುವಾರ","ಶುಕ್ರವಾರ","ಶನಿವಾರ"]},s={narrow:{am:"ಪೂರ್ವಾಹ್ನ",pm:"ಅಪರಾಹ್ನ",midnight:"ಮಧ್ಯರಾತ್ರಿ",noon:"ಮಧ್ಯಾಹ್ನ",morning:"ಬೆಳಗ್ಗೆ",afternoon:"ಮಧ್ಯಾಹ್ನ",evening:"ಸಂಜೆ",night:"ರಾತ್ರಿ"},abbreviated:{am:"ಪೂರ್ವಾಹ್ನ",pm:"ಅಪರಾಹ್ನ",midnight:"ಮಧ್ಯರಾತ್ರಿ",noon:"ಮಧ್ಯಾನ್ಹ",morning:"ಬೆಳಗ್ಗೆ",afternoon:"ಮಧ್ಯಾನ್ಹ",evening:"ಸಂಜೆ",night:"ರಾತ್ರಿ"},wide:{am:"ಪೂರ್ವಾಹ್ನ",pm:"ಅಪರಾಹ್ನ",midnight:"ಮಧ್ಯರಾತ್ರಿ",noon:"ಮಧ್ಯಾನ್ಹ",morning:"ಬೆಳಗ್ಗೆ",afternoon:"ಮಧ್ಯಾನ್ಹ",evening:"ಸಂಜೆ",night:"ರಾತ್ರಿ"}},u={narrow:{am:"ಪೂ",pm:"ಅ",midnight:"ಮಧ್ಯರಾತ್ರಿ",noon:"ಮಧ್ಯಾನ್ಹ",morning:"ಬೆಳಗ್ಗೆ",afternoon:"ಮಧ್ಯಾನ್ಹ",evening:"ಸಂಜೆ",night:"ರಾತ್ರಿ"},abbreviated:{am:"ಪೂರ್ವಾಹ್ನ",pm:"ಅಪರಾಹ್ನ",midnight:"ಮಧ್ಯ ರಾತ್ರಿ",noon:"ಮಧ್ಯಾನ್ಹ",morning:"ಬೆಳಗ್ಗೆ",afternoon:"ಮಧ್ಯಾನ್ಹ",evening:"ಸಂಜೆ",night:"ರಾತ್ರಿ"},wide:{am:"ಪೂರ್ವಾಹ್ನ",pm:"ಅಪರಾಹ್ನ",midnight:"ಮಧ್ಯ ರಾತ್ರಿ",noon:"ಮಧ್ಯಾನ್ಹ",morning:"ಬೆಳಗ್ಗೆ",afternoon:"ಮಧ್ಯಾನ್ಹ",evening:"ಸಂಜೆ",night:"ರಾತ್ರಿ"}};function d(f,_){var c=Number(f);return c+"ನೇ"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(ನೇ|ನೆ)?/i,o=/\d+/i,n={narrow:/^(ಕ್ರಿ.ಪೂ|ಕ್ರಿ.ಶ)/i,abbreviated:/^(ಕ್ರಿ\.?\s?ಪೂ\.?|ಕ್ರಿ\.?\s?ಶ\.?|ಪ್ರ\.?\s?ಶ\.?)/i,wide:/^(ಕ್ರಿಸ್ತ ಪೂರ್ವ|ಕ್ರಿಸ್ತ ಶಕ|ಪ್ರಸಕ್ತ ಶಕ)/i},s={any:[/^ಪೂ/i,/^(ಶ|ಪ್ರ)/i]},u={narrow:/^[1234]/i,abbreviated:/^ತ್ರೈ[1234]|ತ್ರೈ [1234]| [1234]ತ್ರೈ/i,wide:/^[1234](ನೇ)? ತ್ರೈಮಾಸಿಕ/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(ಜೂ|ಜು|ಜ|ಫೆ|ಮಾ|ಏ|ಮೇ|ಆ|ಸೆ|ಅ|ನ|ಡಿ)/i,abbreviated:/^(ಜನ|ಫೆಬ್ರ|ಮಾರ್ಚ್|ಏಪ್ರಿ|ಮೇ|ಜೂನ್|ಜುಲೈ|ಆಗ|ಸೆಪ್ಟೆಂ|ಅಕ್ಟೋ|ನವೆಂ|ಡಿಸೆಂ)/i,wide:/^(ಜನವರಿ|ಫೆಬ್ರವರಿ|ಮಾರ್ಚ್|ಏಪ್ರಿಲ್|ಮೇ|ಜೂನ್|ಜುಲೈ|ಆಗಸ್ಟ್|ಸೆಪ್ಟೆಂಬರ್|ಅಕ್ಟೋಬರ್|ನವೆಂಬರ್|ಡಿಸೆಂಬರ್)/i},f={narrow:[/^ಜ$/i,/^ಫೆ/i,/^ಮಾ/i,/^ಏ/i,/^ಮೇ/i,/^ಜೂ/i,/^ಜು$/i,/^ಆ/i,/^ಸೆ/i,/^ಅ/i,/^ನ/i,/^ಡಿ/i],any:[/^ಜನ/i,/^ಫೆ/i,/^ಮಾ/i,/^ಏ/i,/^ಮೇ/i,/^ಜೂನ್/i,/^ಜುಲೈ/i,/^ಆ/i,/^ಸೆ/i,/^ಅ/i,/^ನ/i,/^ಡಿ/i]},_={narrow:/^(ಭಾ|ಸೋ|ಮ|ಬು|ಗು|ಶು|ಶ)/i,short:/^(ಭಾನು|ಸೋಮ|ಮಂಗಳ|ಬುಧ|ಗುರು|ಶುಕ್ರ|ಶನಿ)/i,abbreviated:/^(ಭಾನು|ಸೋಮ|ಮಂಗಳ|ಬುಧ|ಗುರು|ಶುಕ್ರ|ಶನಿ)/i,wide:/^(ಭಾನುವಾರ|ಸೋಮವಾರ|ಮಂಗಳವಾರ|ಬುಧವಾರ|ಗುರುವಾರ|ಶುಕ್ರವಾರ|ಶನಿವಾರ)/i},c={narrow:[/^ಭಾ/i,/^ಸೋ/i,/^ಮ/i,/^ಬು/i,/^ಗು/i,/^ಶು/i,/^ಶ/i],any:[/^ಭಾ/i,/^ಸೋ/i,/^ಮ/i,/^ಬು/i,/^ಗು/i,/^ಶು/i,/^ಶ/i]},v={narrow:/^(ಪೂ|ಅ|ಮಧ್ಯರಾತ್ರಿ|ಮಧ್ಯಾನ್ಹ|ಬೆಳಗ್ಗೆ|ಸಂಜೆ|ರಾತ್ರಿ)/i,any:/^(ಪೂರ್ವಾಹ್ನ|ಅಪರಾಹ್ನ|ಮಧ್ಯರಾತ್ರಿ|ಮಧ್ಯಾನ್ಹ|ಬೆಳಗ್ಗೆ|ಸಂಜೆ|ರಾತ್ರಿ)/i},g={any:{am:/^ಪೂ/i,pm:/^ಅ/i,midnight:/ಮಧ್ಯರಾತ್ರಿ/i,noon:/ಮಧ್ಯಾನ್ಹ/i,morning:/ಬೆಳಗ್ಗೆ/i,afternoon:/ಮಧ್ಯಾನ್ಹ/i,evening:/ಸಂಜೆ/i,night:/ರಾತ್ರಿ/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(672),a=e(673),r=e(674),o=e(675),n=e(676),s={code:"ko",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"1초 미만",other:"{{count}}초 미만"},xSeconds:{one:"1초",other:"{{count}}초"},halfAMinute:"30초",lessThanXMinutes:{one:"1분 미만",other:"{{count}}분 미만"},xMinutes:{one:"1분",other:"{{count}}분"},aboutXHours:{one:"약 1시간",other:"약 {{count}}시간"},xHours:{one:"1시간",other:"{{count}}시간"},xDays:{one:"1일",other:"{{count}}일"},aboutXWeeks:{one:"약 1주",other:"약 {{count}}주"},xWeeks:{one:"1주",other:"{{count}}주"},aboutXMonths:{one:"약 1개월",other:"약 {{count}}개월"},xMonths:{one:"1개월",other:"{{count}}개월"},aboutXYears:{one:"약 1년",other:"약 {{count}}년"},xYears:{one:"1년",other:"{{count}}년"},overXYears:{one:"1년 이상",other:"{{count}}년 이상"},almostXYears:{one:"거의 1년",other:"거의 {{count}}년"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+" 후":s+" 전":s}},function(l,i,e){var t=e(2),a={full:"y년 M월 d일 EEEE",long:"y년 M월 d일",medium:"y.MM.dd",short:"y.MM.dd"},r={full:"a H시 mm분 ss초 zzzz",long:"a H:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'지난' eeee p",yesterday:"'어제' p",today:"'오늘' p",tomorrow:"'내일' p",nextWeek:"'다음' eeee p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["BC","AD"],abbreviated:["BC","AD"],wide:["기원전","서기"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1분기","2분기","3분기","4분기"]},o={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],wide:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},n={narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],abbreviated:["일","월","화","수","목","금","토"],wide:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},s={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},u={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}};function d(f,_){var c=Number(f),v=_||{},g=String(v.unit);switch(g){case"minute":case"second":return c;case"date":return c+"일";default:return c+"번째"}}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(일|번째)?/i,o=/\d+/i,n={narrow:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(기원전|서기)/i},s={any:[/^(bc|기원전)/i,/^(ad|서기)/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]사?분기/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(1[012]|[123456789])/,abbreviated:/^(1[012]|[123456789])월/i,wide:/^(1[012]|[123456789])월/i},f={any:[/^1월?$/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},_={narrow:/^[일월화수목금토]/,short:/^[일월화수목금토]/,abbreviated:/^[일월화수목금토]/,wide:/^[일월화수목금토]요일/},c={any:[/^일/,/^월/,/^화/,/^수/,/^목/,/^금/,/^토/]},v={any:/^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i},g={any:{am:/^(am|오전)/i,pm:/^(pm|오후)/i,midnight:/^자정/i,noon:/^정오/i,morning:/^아침/i,afternoon:/^오후/i,evening:/^저녁/i,night:/^밤/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(678),a=e(679),r=e(680),o=e(681),n=e(682),s={code:"lb",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=u;var t={lessThanXSeconds:{standalone:{one:"manner wéi eng Sekonn",other:"manner wéi {{count}} Sekonnen"},withPreposition:{one:"manner wéi enger Sekonn",other:"manner wéi {{count}} Sekonnen"}},xSeconds:{standalone:{one:"eng Sekonn",other:"{{count}} Sekonnen"},withPreposition:{one:"enger Sekonn",other:"{{count}} Sekonnen"}},halfAMinute:{standalone:"eng hallef Minutt",withPreposition:"enger hallwer Minutt"},lessThanXMinutes:{standalone:{one:"manner wéi eng Minutt",other:"manner wéi {{count}} Minutten"},withPreposition:{one:"manner wéi enger Minutt",other:"manner wéi {{count}} Minutten"}},xMinutes:{standalone:{one:"eng Minutt",other:"{{count}} Minutten"},withPreposition:{one:"enger Minutt",other:"{{count}} Minutten"}},aboutXHours:{standalone:{one:"ongeféier eng Stonn",other:"ongeféier {{count}} Stonnen"},withPreposition:{one:"ongeféier enger Stonn",other:"ongeféier {{count}} Stonnen"}},xHours:{standalone:{one:"eng Stonn",other:"{{count}} Stonnen"},withPreposition:{one:"enger Stonn",other:"{{count}} Stonnen"}},xDays:{standalone:{one:"een Dag",other:"{{count}} Deeg"},withPreposition:{one:"engem Dag",other:"{{count}} Deeg"}},aboutXWeeks:{standalone:{one:"ongeféier eng Woch",other:"ongeféier {{count}} Wochen"},withPreposition:{one:"ongeféier enger Woche",other:"ongeféier {{count}} Wochen"}},xWeeks:{standalone:{one:"eng Woch",other:"{{count}} Wochen"},withPreposition:{one:"enger Woch",other:"{{count}} Wochen"}},aboutXMonths:{standalone:{one:"ongeféier ee Mount",other:"ongeféier {{count}} Méint"},withPreposition:{one:"ongeféier engem Mount",other:"ongeféier {{count}} Méint"}},xMonths:{standalone:{one:"ee Mount",other:"{{count}} Méint"},withPreposition:{one:"engem Mount",other:"{{count}} Méint"}},aboutXYears:{standalone:{one:"ongeféier ee Joer",other:"ongeféier {{count}} Joer"},withPreposition:{one:"ongeféier engem Joer",other:"ongeféier {{count}} Joer"}},xYears:{standalone:{one:"ee Joer",other:"{{count}} Joer"},withPreposition:{one:"engem Joer",other:"{{count}} Joer"}},overXYears:{standalone:{one:"méi wéi ee Joer",other:"méi wéi {{count}} Joer"},withPreposition:{one:"méi wéi engem Joer",other:"méi wéi {{count}} Joer"}},almostXYears:{standalone:{one:"bal ee Joer",other:"bal {{count}} Joer"},withPreposition:{one:"bal engem Joer",other:"bal {{count}} Joer"}}},a=["d","h","n","t","z"],r=["a,","e","i","o","u"],o=[0,1,2,3,8,9],n=[40,50,60,70];function s(d){var m=d.charAt(0).toLowerCase();if(r.indexOf(m)!=-1||a.indexOf(m)!=-1)return!0;var f=d.split(" ")[0],_=parseInt(f);return!isNaN(_)&&o.indexOf(_%10)!=-1&&n.indexOf(parseInt(f.substring(0,2)))==-1}function u(d,m,f){f=f||{};var _=f.addSuffix?t[d].withPreposition:t[d].standalone,c;return typeof _=="string"?c=_:m===1?c=_.one:c=_.other.replace("{{count}}",m),f.addSuffix?f.comparison>0?"a"+(s(c)?"n":"")+" "+c:"viru"+(s(c)?"n":"")+" "+c:c}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM y",short:"dd.MM.yy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'um' {{time}}",long:"{{date}} 'um' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:function(r){var o=r.getUTCDay(),n="'läschte";return(o===2||o===4)&&(n+="n"),n+="' eeee 'um' p",n},yesterday:"'gëschter um' p",today:"'haut um' p",tomorrow:"'moien um' p",nextWeek:"eeee 'um' p",other:"P"};function a(r,o,n,s){var u=t[r];return typeof u=="function"?u(o):u}},function(l,i,e){var t=e(3),a={narrow:["v.Chr.","n.Chr."],abbreviated:["v.Chr.","n.Chr."],wide:["viru Christus","no Christus"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. Quartal","2. Quartal","3. Quartal","4. Quartal"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],wide:["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember"]},n={narrow:["S","M","D","M","D","F","S"],short:["So","Mé","Dë","Më","Do","Fr","Sa"],abbreviated:["So.","Mé.","Dë.","Më.","Do.","Fr.","Sa."],wide:["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"]},s={narrow:{am:"mo.",pm:"nomë.",midnight:"Mëtternuecht",noon:"Mëtteg",morning:"Moien",afternoon:"Nomëtteg",evening:"Owend",night:"Nuecht"},abbreviated:{am:"moies",pm:"nomëttes",midnight:"Mëtternuecht",noon:"Mëtteg",morning:"Moien",afternoon:"Nomëtteg",evening:"Owend",night:"Nuecht"},wide:{am:"moies",pm:"nomëttes",midnight:"Mëtternuecht",noon:"Mëtteg",morning:"Moien",afternoon:"Nomëtteg",evening:"Owend",night:"Nuecht"}},u={narrow:{am:"mo.",pm:"nom.",midnight:"Mëtternuecht",noon:"mëttes",morning:"moies",afternoon:"nomëttes",evening:"owes",night:"nuets"},abbreviated:{am:"moies",pm:"nomëttes",midnight:"Mëtternuecht",noon:"mëttes",morning:"moies",afternoon:"nomëttes",evening:"owes",night:"nuets"},wide:{am:"moies",pm:"nomëttes",midnight:"Mëtternuecht",noon:"mëttes",morning:"moies",afternoon:"nomëttes",evening:"owes",night:"nuets"}};function d(f,_){var c=Number(f);return c+"."}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(\.)?/i,o=/\d+/i,n={narrow:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,abbreviated:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,wide:/^(viru Christus|virun eiser Zäitrechnung|no Christus|eiser Zäitrechnung)/i},s={any:[/^v/i,/^n/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? Quartal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mäe|abr|mee|jun|jul|aug|sep|okt|nov|dez)/i,wide:/^(januar|februar|mäerz|abrëll|mee|juni|juli|august|september|oktober|november|dezember)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mä/i,/^ab/i,/^me/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[smdf]/i,short:/^(so|mé|dë|më|do|fr|sa)/i,abbreviated:/^(son?|méi?|dën?|mët?|don?|fre?|sam?)\.?/i,wide:/^(sonndeg|méindeg|dënschdeg|mëttwoch|donneschdeg|freideg|samschdeg)/i},c={any:[/^so/i,/^mé/i,/^dë/i,/^më/i,/^do/i,/^f/i,/^sa/i]},v={narrow:/^(mo\.?|nomë\.?|Mëtternuecht|mëttes|moies|nomëttes|owes|nuets)/i,abbreviated:/^(moi\.?|nomët\.?|Mëtternuecht|mëttes|moies|nomëttes|owes|nuets)/i,wide:/^(moies|nomëttes|Mëtternuecht|mëttes|moies|nomëttes|owes|nuets)/i},g={any:{am:/^m/i,pm:/^n/i,midnight:/^Mëtter/i,noon:/^mëttes/i,morning:/moies/i,afternoon:/nomëttes/i,evening:/owes/i,night:/nuets/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"wide",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(684),a=e(685),r=e(686),o=e(687),n=e(688),s={code:"lt",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=d;var t={lessThanXSeconds:{one:r,other:u},xSeconds:{one:r,other:u},halfAMinute:"pusė minutės",lessThanXMinutes:{one:o,other:u},xMinutes:{one:o,other:u},aboutXHours:{one:o,other:u},xHours:{one:o,other:u},xDays:{one:o,other:u},aboutWeeks:{one:o,other:u},xWeeks:{one:o,other:u},aboutXMonths:{one:o,other:u},xMonths:{one:o,other:u},aboutXYears:{one:o,other:u},xYears:{one:o,other:u},overXYears:{one:o,other:u},almostXYears:{one:o,other:u}},a={xseconds_other:"sekundė_sekundžių_sekundes",xminutes_one:"minutė_minutės_minutę",xminutes_other:"minutės_minučių_minutes",xhours_one:"valanda_valandos_valandą",xhours_other:"valandos_valandų_valandas",xdays_one:"diena_dienos_dieną",xdays_other:"dienos_dienų_dienas",xweeks_one:"savaitė_savaitės_savaitę",xweeks_other:"savaitės_savaičių_savaites",xmonths_one:"mėnuo_mėnesio_mėnesį",xmonths_other:"mėnesiai_mėnesių_mėnesius",xyears_one:"metai_metų_metus",xyears_other:"metai_metų_metus",about:"apie",over:"daugiau nei",almost:"beveik",lessthan:"mažiau nei"};function r(m,f,_,c){return f?c?"kelių sekundžių":"kelias sekundes":"kelios sekundės"}function o(m,f,_,c){return f?c?s(_)[1]:s(_)[2]:s(_)[0]}function n(m){return m%10===0||m>10&&m<20}function s(m){return a[m].split("_")}function u(m,f,_,c){var v=m+" ";return m===1?v+o(m,f,_[0],c):f?c?v+s(_)[1]:v+(n(m)?s(_)[1]:s(_)[2]):v+(n(m)?s(_)[1]:s(_)[0])}function d(m,f,_){_=_||{};var c=m.match(/about|over|almost|lessthan/i),v=m.replace(c,""),g;return typeof t[m]=="string"?g=t[m]:f===1?g=t[m].one(f,_.addSuffix,v.toLowerCase()+"_one"):g=t[m].other(f,_.addSuffix,v.toLowerCase()+"_other"),c&&(g=a[c[0].toLowerCase()]+" "+g),_.addSuffix?_.comparison>0?"po "+g:"prieš "+g:g}},function(l,i,e){var t=e(2),a={full:"y 'm'. MMMM d 'd'., EEEE",long:"y 'm'. MMMM d 'd'.",medium:"y-MM-dd",short:"y-MM-dd"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'Praėjusį' eeee p",yesterday:"'Vakar' p",today:"'Šiandien' p",tomorrow:"'Rytoj' p",nextWeek:"eeee p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["pr. Kr.","po Kr."],abbreviated:["pr. Kr.","po Kr."],wide:["prieš Kristų","po Kristaus"]},r={narrow:["1","2","3","4"],abbreviated:["I ketv.","II ketv.","III ketv.","IV ketv."],wide:["I ketvirtis","II ketvirtis","III ketvirtis","IV ketvirtis"]},o={narrow:["1","2","3","4"],abbreviated:["I k.","II k.","III k.","IV k."],wide:["I ketvirtis","II ketvirtis","III ketvirtis","IV ketvirtis"]},n={narrow:["S","V","K","B","G","B","L","R","R","S","L","G"],abbreviated:["saus.","vas.","kov.","bal.","geg.","birž.","liep.","rugp.","rugs.","spal.","lapkr.","gruod."],wide:["sausis","vasaris","kovas","balandis","gegužė","birželis","liepa","rugpjūtis","rugsėjis","spalis","lapkritis","gruodis"]},s={narrow:["S","V","K","B","G","B","L","R","R","S","L","G"],abbreviated:["saus.","vas.","kov.","bal.","geg.","birž.","liep.","rugp.","rugs.","spal.","lapkr.","gruod."],wide:["sausio","vasario","kovo","balandžio","gegužės","birželio","liepos","rugpjūčio","rugsėjo","spalio","lapkričio","gruodžio"]},u={narrow:["S","P","A","T","K","P","Š"],short:["Sk","Pr","An","Tr","Kt","Pn","Št"],abbreviated:["sk","pr","an","tr","kt","pn","št"],wide:["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"]},d={narrow:["S","P","A","T","K","P","Š"],short:["Sk","Pr","An","Tr","Kt","Pn","Št"],abbreviated:["sk","pr","an","tr","kt","pn","št"],wide:["sekmadienį","pirmadienį","antradienį","trečiadienį","ketvirtadienį","penktadienį","šeštadienį"]},m={narrow:{am:"pr. p.",pm:"pop.",midnight:"vidurnaktis",noon:"vidurdienis",morning:"rytas",afternoon:"diena",evening:"vakaras",night:"naktis"},abbreviated:{am:"priešpiet",pm:"popiet",midnight:"vidurnaktis",noon:"vidurdienis",morning:"rytas",afternoon:"diena",evening:"vakaras",night:"naktis"},wide:{am:"priešpiet",pm:"popiet",midnight:"vidurnaktis",noon:"vidurdienis",morning:"rytas",afternoon:"diena",evening:"vakaras",night:"naktis"}},f={narrow:{am:"pr. p.",pm:"pop.",midnight:"vidurnaktis",noon:"perpiet",morning:"rytas",afternoon:"popietė",evening:"vakaras",night:"naktis"},abbreviated:{am:"priešpiet",pm:"popiet",midnight:"vidurnaktis",noon:"perpiet",morning:"rytas",afternoon:"popietė",evening:"vakaras",night:"naktis"},wide:{am:"priešpiet",pm:"popiet",midnight:"vidurnaktis",noon:"perpiet",morning:"rytas",afternoon:"popietė",evening:"vakaras",night:"naktis"}};function _(v,g){var P=Number(v);return P+"-oji"}var c={ordinalNumber:_,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",formattingValues:o,defaultFormattingWidth:"wide",argumentCallback:function(v){return Number(v)-1}}),month:t.a({values:n,defaultWidth:"wide",formattingValues:s,defaultFormattingWidth:"wide"}),day:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"}),dayPeriod:t.a({values:m,defaultWidth:"wide",formattingValues:f,defaultFormattingWidth:"wide"})};i.a=c},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(-oji)?/i,o=/\d+/i,n={narrow:/^p(r|o)\.?\s?(kr\.?|me)/i,abbreviated:/^(pr\.\s?(kr\.|m\.\s?e\.)|po\s?kr\.|mūsų eroje)/i,wide:/^(prieš Kristų|prieš mūsų erą|po Kristaus|mūsų eroje)/i},s={wide:[/prieš/i,/(po|mūsų)/i],any:[/^pr/i,/^(po|m)/i]},u={narrow:/^([1234])/i,abbreviated:/^(I|II|III|IV)\s?ketv?\.?/i,wide:/^(I|II|III|IV)\s?ketvirtis/i},d={narrow:[/1/i,/2/i,/3/i,/4/i],any:[/I$/i,/II$/i,/III/i,/IV/i]},m={narrow:/^[svkbglr]/i,abbreviated:/^(saus\.|vas\.|kov\.|bal\.|geg\.|birž\.|liep\.|rugp\.|rugs\.|spal\.|lapkr\.|gruod\.)/i,wide:/^(sausi(s|o)|vasari(s|o)|kov(a|o)s|balandž?i(s|o)|gegužės?|birželi(s|o)|liep(a|os)|rugpjū(t|č)i(s|o)|rugsėj(is|o)|spali(s|o)|lapkri(t|č)i(s|o)|gruodž?i(s|o))/i},f={narrow:[/^s/i,/^v/i,/^k/i,/^b/i,/^g/i,/^b/i,/^l/i,/^r/i,/^r/i,/^s/i,/^l/i,/^g/i],any:[/^saus/i,/^vas/i,/^kov/i,/^bal/i,/^geg/i,/^birž/i,/^liep/i,/^rugp/i,/^rugs/i,/^spal/i,/^lapkr/i,/^gruod/i]},_={narrow:/^[spatkš]/i,short:/^(sk|pr|an|tr|kt|pn|št)/i,abbreviated:/^(sk|pr|an|tr|kt|pn|št)/i,wide:/^(sekmadien(is|į)|pirmadien(is|į)|antradien(is|į)|trečiadien(is|į)|ketvirtadien(is|į)|penktadien(is|į)|šeštadien(is|į))/i},c={narrow:[/^s/i,/^p/i,/^a/i,/^t/i,/^k/i,/^p/i,/^š/i],wide:[/^se/i,/^pi/i,/^an/i,/^tr/i,/^ke/i,/^pe/i,/^še/i],any:[/^sk/i,/^pr/i,/^an/i,/^tr/i,/^kt/i,/^pn/i,/^št/i]},v={narrow:/^(pr.\s?p.|pop.|vidurnaktis|(vidurdienis|perpiet)|rytas|(diena|popietė)|vakaras|naktis)/i,any:/^(priešpiet|popiet$|vidurnaktis|(vidurdienis|perpiet)|rytas|(diena|popietė)|vakaras|naktis)/i},g={narrow:{am:/^pr/i,pm:/^pop./i,midnight:/^vidurnaktis/i,noon:/^(vidurdienis|perp)/i,morning:/rytas/i,afternoon:/(die|popietė)/i,evening:/vakaras/i,night:/naktis/i},any:{am:/^pr/i,pm:/^popiet$/i,midnight:/^vidurnaktis/i,noon:/^(vidurdienis|perp)/i,morning:/rytas/i,afternoon:/(die|popietė)/i,evening:/vakaras/i,night:/naktis/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(690),a=e(691),r=e(692),o=e(693),n=e(694),s={code:"lv",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=r;function t(o){return function(n,s){if(n===1)return s.addSuffix?o.one[0].replace("{{time}}",o.one[2]):o.one[0].replace("{{time}}",o.one[1]);var u=n%10===1&&n%100!==11;return s.addSuffix?o.other[0].replace("{{time}}",u?o.other[3]:o.other[4]).replace("{{count}}",n):o.other[0].replace("{{time}}",u?o.other[1]:o.other[2]).replace("{{count}}",n)}}var a={lessThanXSeconds:t({one:["mazāk par {{time}}","sekundi","sekundi"],other:["mazāk nekā {{count}} {{time}}","sekunde","sekundes","sekundes","sekundēm"]}),xSeconds:t({one:["1 {{time}}","sekunde","sekundes"],other:["{{count}} {{time}}","sekunde","sekundes","sekundes","sekundēm"]}),halfAMinute:function(o,n){return n.addSuffix?"pusminūtes":"pusminūte"},lessThanXMinutes:t({one:["mazāk par {{time}}","minūti","minūti"],other:["mazāk nekā {{count}} {{time}}","minūte","minūtes","minūtes","minūtēm"]}),xMinutes:t({one:["1 {{time}}","minūte","minūtes"],other:["{{count}} {{time}}","minūte","minūtes","minūtes","minūtēm"]}),aboutXHours:t({one:["apmēram 1 {{time}}","stunda","stundas"],other:["apmēram {{count}} {{time}}","stunda","stundas","stundas","stundām"]}),xHours:t({one:["1 {{time}}","stunda","stundas"],other:["{{count}} {{time}}","stunda","stundas","stundas","stundām"]}),xDays:t({one:["1 {{time}}","diena","dienas"],other:["{{count}} {{time}}","diena","dienas","dienas","dienām"]}),aboutXWeeks:t({one:["apmēram 1 {{time}}","nedēļa","nedēļas"],other:["apmēram {{count}} {{time}}","nedēļa","nedēļu","nedēļas","nedēļām"]}),xWeeks:t({one:["1 {{time}}","nedēļa","nedēļas"],other:["{{count}} {{time}}","nedēļa","nedēļu","nedēļas","nedēļām"]}),aboutXMonths:t({one:["apmēram 1 {{time}}","mēnesis","mēneša"],other:["apmēram {{count}} {{time}}","mēnesis","mēneši","mēneša","mēnešiem"]}),xMonths:t({one:["1 {{time}}","mēnesis","mēneša"],other:["{{count}} {{time}}","mēnesis","mēneši","mēneša","mēnešiem"]}),aboutXYears:t({one:["apmēram 1 {{time}}","gads","gada"],other:["apmēram {{count}} {{time}}","gads","gadi","gada","gadiem"]}),xYears:t({one:["1 {{time}}","gads","gada"],other:["{{count}} {{time}}","gads","gadi","gada","gadiem"]}),overXYears:t({one:["ilgāk par 1 {{time}}","gadu","gadu"],other:["vairāk nekā {{count}} {{time}}","gads","gadi","gada","gadiem"]}),almostXYears:t({one:["gandrīz 1 {{time}}","gads","gada"],other:["vairāk nekā {{count}} {{time}}","gads","gadi","gada","gadiem"]})};function r(o,n,s){s=s||{};var u=a[o](n,s);return s.addSuffix?s.comparison>0?"pēc "+u:"pirms "+u:u}},function(l,i,e){var t=e(2),a={full:"y. 'gada' M. MMMM., EEEE",long:"y. 'gada' M. MMMM",medium:"dd.MM.y.",short:"dd.MM.y."},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'plkst.' {{time}}",long:"{{date}} 'plkst.' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=o;var t=e(13),a=["svētdienā","pirmdienā","otrdienā","trešdienā","ceturtdienā","piektdienā","sestdienā"],r={lastWeek:function(n,s,u){if(t.a(n,s,u))return"eeee 'plkst.' p";var d=a[n.getUTCDay()];return"'Pagājušā "+d+" plkst.' p"},yesterday:"'Vakar plkst.' p",today:"'Šodien plkst.' p",tomorrow:"'Rīt plkst.' p",nextWeek:function(n,s,u){if(t.a(n,s,u))return"eeee 'plkst.' p";var d=a[n.getUTCDay()];return"'Nākamajā "+d+" plkst.' p"},other:"P"};function o(n,s,u,d){var m=r[n];return typeof m=="function"?m(s,u,d):m}},function(l,i,e){var t=e(3),a={narrow:["p.m.ē","m.ē"],abbreviated:["p. m. ē.","m. ē."],wide:["pirms mūsu ēras","mūsu ērā"]},r={narrow:["1","2","3","4"],abbreviated:["1. cet.","2. cet.","3. cet.","4. cet."],wide:["pirmais ceturksnis","otrais ceturksnis","trešais ceturksnis","ceturtais ceturksnis"]},o={narrow:["1","2","3","4"],abbreviated:["1. cet.","2. cet.","3. cet.","4. cet."],wide:["pirmajā ceturksnī","otrajā ceturksnī","trešajā ceturksnī","ceturtajā ceturksnī"]},n={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","febr.","marts","apr.","maijs","jūn.","jūl.","aug.","sept.","okt.","nov.","dec."],wide:["janvāris","februāris","marts","aprīlis","maijs","jūnijs","jūlijs","augusts","septembris","oktobris","novembris","decembris"]},s={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","febr.","martā","apr.","maijs","jūn.","jūl.","aug.","sept.","okt.","nov.","dec."],wide:["janvārī","februārī","martā","aprīlī","maijā","jūnijā","jūlijā","augustā","septembrī","oktobrī","novembrī","decembrī"]},u={narrow:["S","P","O","T","C","P","S"],short:["Sv","P","O","T","C","Pk","S"],abbreviated:["svētd.","pirmd.","otrd.","trešd.","ceturtd.","piektd.","sestd."],wide:["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"]},d={narrow:["S","P","O","T","C","P","S"],short:["Sv","P","O","T","C","Pk","S"],abbreviated:["svētd.","pirmd.","otrd.","trešd.","ceturtd.","piektd.","sestd."],wide:["svētdienā","pirmdienā","otrdienā","trešdienā","ceturtdienā","piektdienā","sestdienā"]},m={narrow:{am:"am",pm:"pm",midnight:"pusn.",noon:"pusd.",morning:"rīts",afternoon:"diena",evening:"vakars",night:"nakts"},abbreviated:{am:"am",pm:"pm",midnight:"pusn.",noon:"pusd.",morning:"rīts",afternoon:"pēcpusd.",evening:"vakars",night:"nakts"},wide:{am:"am",pm:"pm",midnight:"pusnakts",noon:"pusdienlaiks",morning:"rīts",afternoon:"pēcpusdiena",evening:"vakars",night:"nakts"}},f={narrow:{am:"am",pm:"pm",midnight:"pusn.",noon:"pusd.",morning:"rītā",afternoon:"dienā",evening:"vakarā",night:"naktī"},abbreviated:{am:"am",pm:"pm",midnight:"pusn.",noon:"pusd.",morning:"rītā",afternoon:"pēcpusd.",evening:"vakarā",night:"naktī"},wide:{am:"am",pm:"pm",midnight:"pusnaktī",noon:"pusdienlaikā",morning:"rītā",afternoon:"pēcpusdienā",evening:"vakarā",night:"naktī"}};function _(v,g){return v+"."}var c={ordinalNumber:_,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",formattingValues:o,defaultFormattingWidth:"wide",argumentCallback:function(v){return Number(v)-1}}),month:t.a({values:n,defaultWidth:"wide",formattingValues:s,defaultFormattingWidth:"wide"}),day:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"}),dayPeriod:t.a({values:m,defaultWidth:"wide",formattingValues:f,defaultFormattingWidth:"wide"})};i.a=c},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)\./i,o=/\d+/i,n={narrow:/^(p\.m\.ē|m\.ē)/i,abbreviated:/^(p\. m\. ē\.|m\. ē\.)/i,wide:/^(pirms mūsu ēras|mūsu ērā)/i},s={any:[/^p/i,/^m/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234](\. cet\.)/i,wide:/^(pirma(is|jā)|otra(is|jā)|treša(is|jā)|ceturta(is|jā)) ceturksn(is|ī)/i},d={narrow:[/^1/i,/^2/i,/^3/i,/^4/i],abbreviated:[/^1/i,/^2/i,/^3/i,/^4/i],wide:[/^p/i,/^o/i,/^t/i,/^c/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(janv\.|febr\.|marts|apr\.|maijs|jūn\.|jūl\.|aug\.|sept\.|okt\.|nov\.|dec\.)/i,wide:/^(janvār(is|ī)|februār(is|ī)|mart[sā]|aprīl(is|ī)|maij[sā]|jūnij[sā]|jūlij[sā]|august[sā]|septembr(is|ī)|oktobr(is|ī)|novembr(is|ī)|decembr(is|ī))/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^mai/i,/^jūn/i,/^jūl/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[spotc]/i,short:/^(sv|pi|o|t|c|pk|s)/i,abbreviated:/^(svētd\.|pirmd\.|otrd.\|trešd\.|ceturtd\.|piektd\.|sestd\.)/i,wide:/^(svētdien(a|ā)|pirmdien(a|ā)|otrdien(a|ā)|trešdien(a|ā)|ceturtdien(a|ā)|piektdien(a|ā)|sestdien(a|ā))/i},c={narrow:[/^s/i,/^p/i,/^o/i,/^t/i,/^c/i,/^p/i,/^s/i],any:[/^sv/i,/^pi/i,/^o/i,/^t/i,/^c/i,/^p/i,/^se/i]},v={narrow:/^(am|pm|pusn\.|pusd\.|rīt(s|ā)|dien(a|ā)|vakar(s|ā)|nakt(s|ī))/,abbreviated:/^(am|pm|pusn\.|pusd\.|rīt(s|ā)|pēcpusd\.|vakar(s|ā)|nakt(s|ī))/,wide:/^(am|pm|pusnakt(s|ī)|pusdienlaik(s|ā)|rīt(s|ā)|pēcpusdien(a|ā)|vakar(s|ā)|nakt(s|ī))/i},g={any:{am:/^am/i,pm:/^pm/i,midnight:/^pusn/i,noon:/^pusd/i,morning:/^r/i,afternoon:/^(d|pēc)/i,evening:/^v/i,night:/^n/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(696),a=e(697),r=e(698),o=e(699),n=e(700),s={code:"mk",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"помалку од секунда",other:"помалку од {{count}} секунди"},xSeconds:{one:"1 секунда",other:"{{count}} секунди"},halfAMinute:"половина минута",lessThanXMinutes:{one:"помалку од минута",other:"помалку од {{count}} минути"},xMinutes:{one:"1 минута",other:"{{count}} минути"},aboutXHours:{one:"околу 1 час",other:"околу {{count}} часа"},xHours:{one:"1 час",other:"{{count}} часа"},xDays:{one:"1 ден",other:"{{count}} дена"},aboutXWeeks:{one:"околу 1 недела",other:"околу {{count}} месеци"},xWeeks:{one:"1 недела",other:"{{count}} недели"},aboutXMonths:{one:"околу 1 месец",other:"околу {{count}} недели"},xMonths:{one:"1 месец",other:"{{count}} месеци"},aboutXYears:{one:"околу 1 година",other:"околу {{count}} години"},xYears:{one:"1 година",other:"{{count}} години"},overXYears:{one:"повеќе од 1 година",other:"повеќе од {{count}} години"},almostXYears:{one:"безмалку 1 година",other:"безмалку {{count}} години"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"за "+s:"пред "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, dd MMMM yyyy",long:"dd MMMM yyyy",medium:"dd MMM yyyy",short:"dd/MM/yyyy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"H:mm"},o={any:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"any"})};i.a=n},function(l,i,e){i.a=u;var t=e(13),a=["недела","понеделник","вторник","среда","четврток","петок","сабота"];function r(d){var m=a[d];switch(d){case 0:case 3:case 6:return"'минатата "+m+" во' p";case 1:case 2:case 4:case 5:return"'минатиот "+m+" во' p"}}function o(d){var m=a[d];switch(d){case 0:case 3:case 6:return"'ова "+m+" вo' p";case 1:case 2:case 4:case 5:return"'овој "+m+" вo' p"}}function n(d){var m=a[d];switch(d){case 0:case 3:case 6:return"'следната "+m+" вo' p";case 1:case 2:case 4:case 5:return"'следниот "+m+" вo' p"}}var s={lastWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):r(_)},yesterday:"'вчера во' p",today:"'денес во' p",tomorrow:"'утре во' p",nextWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):n(_)},other:"P"};function u(d,m,f,_){var c=s[d];return typeof c=="function"?c(m,f,_):c}},function(l,i,e){var t=e(3),a={narrow:["пр.н.е.","н.е."],abbreviated:["пред н. е.","н. е."],wide:["пред нашата ера","нашата ера"]},r={narrow:["1","2","3","4"],abbreviated:["1-ви кв.","2-ри кв.","3-ти кв.","4-ти кв."],wide:["1-ви квартал","2-ри квартал","3-ти квартал","4-ти квартал"]},o={abbreviated:["јан","фев","мар","апр","мај","јун","јул","авг","септ","окт","ноем","дек"],wide:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"]},n={narrow:["Н","П","В","С","Ч","П","С"],short:["не","по","вт","ср","че","пе","са"],abbreviated:["нед","пон","вто","сре","чет","пет","саб"],wide:["недела","понеделник","вторник","среда","четврток","петок","сабота"]},s={wide:{am:"претпладне",pm:"попладне",midnight:"полноќ",noon:"напладне",morning:"наутро",afternoon:"попладне",evening:"навечер",night:"ноќе"}};function u(m){var f=Number(m),_=f%100;if(_>20||_<10)switch(_%10){case 1:return f+"-ви";case 2:return f+"-ри";case 7:case 8:return f+"-ми"}return f+"-ти"}var d={ordinalNumber:u,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(m){return Number(m)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=d},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)(-?[врмт][и])?/i,o=/\d+/i,n={narrow:/^((пр)?н\.?\s?е\.?)/i,abbreviated:/^((пр)?н\.?\s?е\.?)/i,wide:/^(пред нашата ера|нашата ера)/i},s={any:[/^п/i,/^н/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234](-?[врт]?и?)? кв.?/i,wide:/^[1234](-?[врт]?и?)? квартал/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[нпвсч]/i,short:/^(не|по|вт|ср|че|пе|са)/i,abbreviated:/^(нед|пон|вто|сре|чет|пет|саб)/i,wide:/^(недела|понеделник|вторник|среда|четврток|петок|сабота)/i},f={narrow:[/^н/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^н[ед]/i,/^п[он]/i,/^вт/i,/^ср/i,/^ч[ет]/i,/^п[ет]/i,/^с[аб]/i]},_={abbreviated:/^(јан|фев|мар|апр|мај|јун|јул|авг|сеп|окт|ноем|дек)/i,wide:/^(јануари|февруари|март|април|мај|јуни|јули|август|септември|октомври|ноември|декември)/i},c={any:[/^ја/i,/^Ф/i,/^мар/i,/^ап/i,/^мај/i,/^јун/i,/^јул/i,/^ав/i,/^се/i,/^окт/i,/^но/i,/^де/i]},v={any:/^(претп|попл|полноќ|утро|пладне|вечер|ноќ)/i},g={any:{am:/претпладне/i,pm:/попладне/i,midnight:/полноќ/i,noon:/напладне/i,morning:/наутро/i,afternoon:/попладне/i,evening:/навечер/i,night:/ноќе/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),day:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(702),a=e(703),r=e(704),o=e(705),n=e(706),s={code:"ms",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"kurang dari 1 saat",other:"kurang dari {{count}} saat"},xSeconds:{one:"1 saat",other:"{{count}} saat"},halfAMinute:"setengah minit",lessThanXMinutes:{one:"kurang dari 1 minit",other:"kurang dari {{count}} minit"},xMinutes:{one:"1 minit",other:"{{count}} minit"},aboutXHours:{one:"sekitar 1 jam",other:"sekitar {{count}} jam"},xHours:{one:"1 jam",other:"{{count}} jam"},xDays:{one:"1 hari",other:"{{count}} hari"},aboutXWeeks:{one:"sekitar 1 minggu",other:"sekitar {{count}} minggu"},xWeeks:{one:"1 minggu",other:"{{count}} minggu"},aboutXMonths:{one:"sekitar 1 bulan",other:"sekitar {{count}} bulan"},xMonths:{one:"1 bulan",other:"{{count}} bulan"},aboutXYears:{one:"sekitar 1 tahun",other:"sekitar {{count}} tahun"},xYears:{one:"1 tahun",other:"{{count}} tahun"},overXYears:{one:"lebih dari 1 tahun",other:"lebih dari {{count}} tahun"},almostXYears:{one:"hampir 1 tahun",other:"hampir {{count}} tahun"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"dalam masa "+s:s+" yang lalu":s}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"d/M/yyyy"},r={full:"HH.mm.ss",long:"HH.mm.ss",medium:"HH.mm",short:"HH.mm"},o={full:"{{date}} 'pukul' {{time}}",long:"{{date}} 'pukul' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'lepas pada jam' p",yesterday:"'Semalam pada jam' p",today:"'Hari ini pada jam' p",tomorrow:"'Esok pada jam' p",nextWeek:"eeee 'pada jam' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["SM","M"],abbreviated:["SM","M"],wide:["Sebelum Masihi","Masihi"]},r={narrow:["1","2","3","4"],abbreviated:["S1","S2","S3","S4"],wide:["Suku pertama","Suku kedua","Suku ketiga","Suku keempat"]},o={narrow:["J","F","M","A","M","J","J","O","S","O","N","D"],abbreviated:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],wide:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"]},n={narrow:["A","I","S","R","K","J","S"],short:["Ahd","Isn","Sel","Rab","Kha","Jum","Sab"],abbreviated:["Ahd","Isn","Sel","Rab","Kha","Jum","Sab"],wide:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"]},s={narrow:{am:"am",pm:"pm",midnight:"tgh malam",noon:"tgh hari",morning:"pagi",afternoon:"tengah hari",evening:"petang",night:"malam"},abbreviated:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"tengah hari",evening:"petang",night:"malam"},wide:{am:"a.m.",pm:"p.m.",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"tengah hari",evening:"petang",night:"malam"}},u={narrow:{am:"am",pm:"pm",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"tengah hari",evening:"petang",night:"malam"},abbreviated:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"tengah hari",evening:"petang",night:"malam"},wide:{am:"a.m.",pm:"p.m.",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"tengah hari",evening:"petang",night:"malam"}};function d(f,_){var c=Number(f);switch(c){default:return"ke-"+c}}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(5),a=e(4),r=/^ke-(\d+)?/i,o=/petama|\d+/i,n={narrow:/^(sm|m)/i,abbreviated:/^(s\.?\s?m\.?|m\.?)/i,wide:/^(sebelum masihi|masihi)/i},s={any:[/^s/i,/^(m)/i]},u={narrow:/^[1234]/i,abbreviated:/^S[1234]/i,wide:/Suku (pertama|kedua|ketiga|keempat)/i},d={any:[/pertama|1/i,/kedua|2/i,/ketiga|3/i,/keempat|4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mac|apr|mei|jun|jul|ogo|sep|okt|nov|dis)/i,wide:/^(januari|februari|mac|april|mei|jun|julai|ogos|september|oktober|november|disember)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^o/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^ma/i,/^ap/i,/^me/i,/^jun/i,/^jul/i,/^og/i,/^s/i,/^ok/i,/^n/i,/^d/i]},_={narrow:/^[aisrkj]/i,short:/^(ahd|isn|sel|rab|kha|jum|sab)/i,abbreviated:/^(ahd|isn|sel|rab|kha|jum|sab)/i,wide:/^(ahad|isnin|selasa|rabu|khamis|jumaat|sabtu)/i},c={narrow:[/^a/i,/^i/i,/^s/i,/^r/i,/^k/i,/^j/i,/^s/i],any:[/^a/i,/^i/i,/^se/i,/^r/i,/^k/i,/^j/i,/^sa/i]},v={narrow:/^(am|pm|tengah malam|tengah hari|pagi|petang|malam)/i,any:/^([ap]\.?\s?m\.?|tengah malam|tengah hari|pagi|petang|malam)/i},g={any:{am:/^a/i,pm:/^pm/i,midnight:/^tengah m/i,noon:/^tengah h/i,morning:/pa/i,afternoon:/tengah h/i,evening:/pe/i,night:/m/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(708),a=e(709),r=e(710),o=e(711),n=e(712),s={code:"mt",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"inqas minn sekonda",other:"inqas minn {{count}} sekondi"},xSeconds:{one:"sekonda",other:"{{count}} sekondi"},halfAMinute:"nofs minuta",lessThanXMinutes:{one:"inqas minn minuta",other:"inqas minn {{count}} minuti"},xMinutes:{one:"minuta",other:"{{count}} minuti"},aboutXHours:{one:"madwar siegħa",other:"madwar {{count}} siegħat"},xHours:{one:"siegħa",other:"{{count}} siegħat"},xDays:{one:"ġurnata",other:"{{count}} ġranet"},aboutXWeeks:{one:"madwar ġimgħa",other:"madwar {{count}} ġimgħat"},xWeeks:{one:"ġimgħa",other:"{{count}} ġimgħat"},aboutXMonths:{one:"madwar xahar",other:"madwar {{count}} xhur"},xMonths:{one:"xahar",other:"{{count}} xhur"},aboutXYears:{one:"madwar sena",two:"madwar sentejn",other:"madwar {{count}} snin"},xYears:{one:"sena",two:"sentejn",other:"{{count}} snin"},overXYears:{one:"aktar minn sena",two:"aktar minn sentejn",other:"aktar minn {{count}} snin"},almostXYears:{one:"kważi sena",two:"kważi sentejn",other:"kważi {{count}} snin"}};function a(r,o,n){n=n||{};var s=r.match(/years/i),u;return typeof t[r]=="string"?u=t[r]:o===1?u=t[r].one:o===2&&s?u=t[r].two:u=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"f'"+u:u+" ilu":u}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"dd/MM/yyyy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'li għadda' 'fil-'p",yesterday:"'Il-bieraħ fil-'p",today:"'Illum fil-'p",tomorrow:"'Għada fil-'p",nextWeek:"eeee 'fil-'p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["Q","W"],abbreviated:["QK","WK"],wide:["qabel Kristu","wara Kristu"]},r={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["1. kwart","2. kwart","3. kwart","4. kwart"]},o={narrow:["J","F","M","A","M","Ġ","L","A","S","O","N","D"],abbreviated:["Jan","Fra","Mar","Apr","Mej","Ġun","Lul","Aww","Set","Ott","Nov","Diċ"],wide:["Jannar","Frar","Marzu","April","Mejju","Ġunju","Lulju","Awwissu","Settembru","Ottubru","Novembru","Diċembru"]},n={narrow:["Ħ","T","T","E","Ħ","Ġ","S"],short:["Ħa","Tn","Tl","Er","Ħa","Ġi","Si"],abbreviated:["Ħad","Tne","Tli","Erb","Ħam","Ġim","Sib"],wide:["Il-Ħadd","It-Tnejn","It-Tlieta","L-Erbgħa","Il-Ħamis","Il-Ġimgħa","Is-Sibt"]},s={narrow:{am:"a",pm:"p",midnight:"nofsillejl",noon:"nofsinhar",morning:"għodwa",afternoon:"wara nofsinhar",evening:"filgħaxija",night:"lejl"},abbreviated:{am:"AM",pm:"PM",midnight:"nofsillejl",noon:"nofsinhar",morning:"għodwa",afternoon:"wara nofsinhar",evening:"filgħaxija",night:"lejl"},wide:{am:"a.m.",pm:"p.m.",midnight:"nofsillejl",noon:"nofsinhar",morning:"għodwa",afternoon:"wara nofsinhar",evening:"filgħaxija",night:"lejl"}},u={narrow:{am:"a",pm:"p",midnight:"f'nofsillejl",noon:"f'nofsinhar",morning:"filgħodu",afternoon:"wara nofsinhar",evening:"filgħaxija",night:"billejl"},abbreviated:{am:"AM",pm:"PM",midnight:"f'nofsillejl",noon:"f'nofsinhar",morning:"filgħodu",afternoon:"wara nofsinhar",evening:"filgħaxija",night:"billejl"},wide:{am:"a.m.",pm:"p.m.",midnight:"f'nofsillejl",noon:"f'nofsinhar",morning:"filgħodu",afternoon:"wara nofsinhar",evening:"filgħaxija",night:"billejl"}};function d(f){var _=Number(f);return _+"º"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(º)?/i,o=/\d+/i,n={narrow:/^(q|w)/i,abbreviated:/^(q\.?\s?k\.?|b\.?\s?c\.?\s?e\.?|w\.?\s?k\.?)/i,wide:/^(qabel kristu|before common era|wara kristu|common era)/i},s={any:[/^(q|b)/i,/^(w|c)/i]},u={narrow:/^[1234]/i,abbreviated:/^k[1234]/i,wide:/^[1234](\.)? kwart/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmaglsond]/i,abbreviated:/^(jan|fra|mar|apr|mej|ġun|lul|aww|set|ott|nov|diċ)/i,wide:/^(jannar|frar|marzu|april|mejju|ġunju|lulju|awwissu|settembru|ottubru|novembru|diċembru)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^ġ/i,/^l/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^mej/i,/^ġ/i,/^l/i,/^aw/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[ħteġs]/i,short:/^(ħa|tn|tl|er|ħa|ġi|si)/i,abbreviated:/^(ħad|tne|tli|erb|ħam|ġim|sib)/i,wide:/^(il-ħadd|it-tnejn|it-tlieta|l-erbgħa|il-ħamis|il-ġimgħa|is-sibt)/i},c={narrow:[/^ħ/i,/^t/i,/^t/i,/^e/i,/^ħ/i,/^ġ/i,/^s/i],any:[/^(il-)?ħad/i,/^(it-)?tn/i,/^(it-)?tl/i,/^(l-)?er/i,/^(il-)?ham/i,/^(il-)?ġi/i,/^(is-)?si/i]},v={narrow:/^(a|p|f'nofsillejl|f'nofsinhar|(ta') (għodwa|wara nofsinhar|filgħaxija|lejl))/i,any:/^([ap]\.?\s?m\.?|f'nofsillejl|f'nofsinhar|(ta') (għodwa|wara nofsinhar|filgħaxija|lejl))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^f'nofsillejl/i,noon:/^f'nofsinhar/i,morning:/għodwa/i,afternoon:/wara(\s.*)nofsinhar/i,evening:/filgħaxija/i,night:/lejl/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(714),a=e(715),r=e(716),o=e(717),n=e(718),s={code:"nb",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=r;var t={lessThanXSeconds:{singular:"mindre enn ett sekund",plural:"mindre enn {{count}} sekunder"},xSeconds:{singular:"ett sekund",plural:"{{count}} sekunder"},halfAMinute:"et halvt minutt",lessThanXMinutes:{singular:"mindre enn ett minutt",plural:"mindre enn {{count}} minutter"},xMinutes:{singular:"ett minutt",plural:"{{count}} minutter"},aboutXHours:{singular:"omtrent en time",plural:"omtrent {{count}} timer"},xHours:{singular:"en time",plural:"{{count}} timer"},xDays:{singular:"en dag",plural:"{{count}} dager"},aboutXWeeks:{singular:"omtrent en uke",plural:"omtrent {{count}} uker"},xWeeks:{singular:"en uke",plural:"{{count}} uker"},aboutXMonths:{singular:"omtrent en måned",plural:"omtrent {{count}} måneder"},xMonths:{singular:"en måned",plural:"{{count}} måneder"},aboutXYears:{singular:"omtrent ett år",plural:"omtrent {{count}} år"},xYears:{singular:"ett år",plural:"{{count}} år"},overXYears:{singular:"over ett år",plural:"over {{count}} år"},almostXYears:{singular:"nesten ett år",plural:"nesten {{count}} år"}},a=["null","en","to","tre","fire","fem","seks","sju","åtte","ni","ti","elleve","tolv"];function r(o,n,s){s=s||{onlyNumeric:!1};var u=t[o],d;return typeof u=="string"?d=u:n===0||n>1?s.onlyNumeric?d=u.plural.replace("{{count}}",n):d=u.plural.replace("{{count}}",n<13?a[n]:n):d=u.singular,s.addSuffix?s.comparison>0?"om "+d:d+" siden":d}},function(l,i,e){var t=e(2),a={full:"EEEE d. MMMM y",long:"d. MMMM y",medium:"d. MMM y",short:"dd.MM.y"},r={full:"'kl'. HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'kl.' {{time}}",long:"{{date}} 'kl.' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'forrige' eeee 'kl.' p",yesterday:"'i går kl.' p",today:"'i dag kl.' p",tomorrow:"'i morgen kl.' p",nextWeek:"EEEE 'kl.' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["f.Kr.","e.Kr."],abbreviated:["f.Kr.","e.Kr."],wide:["før Kristus","etter Kristus"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],wide:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"]},n={narrow:["S","M","T","O","T","F","L"],short:["sø","ma","ti","on","to","fr","lø"],abbreviated:["søn","man","tir","ons","tor","fre","lør"],wide:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},s={narrow:{am:"a",pm:"p",midnight:"midnatt",noon:"middag",morning:"på morg.",afternoon:"på etterm.",evening:"på kvelden",night:"på natten"},abbreviated:{am:"a.m.",pm:"p.m.",midnight:"midnatt",noon:"middag",morning:"på morg.",afternoon:"på etterm.",evening:"på kvelden",night:"på natten"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnatt",noon:"middag",morning:"på morgenen",afternoon:"på ettermiddagen",evening:"på kvelden",night:"på natten"}};function u(m){var f=Number(m);return f+"."}var d={ordinalNumber:u,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(m){return Number(m)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=d},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)\.?/i,o=/\d+/i,n={narrow:/^(f\.? ?Kr\.?|fvt\.?|e\.? ?Kr\.?|evt\.?)/i,abbreviated:/^(f\.? ?Kr\.?|fvt\.?|e\.? ?Kr\.?|evt\.?)/i,wide:/^(før Kristus|før vår tid|etter Kristus|vår tid)/i},s={any:[/^f/i,/^e/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? kvartal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\.?/i,wide:/^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^aug/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[smtofl]/i,short:/^(sø|ma|ti|on|to|fr|lø)/i,abbreviated:/^(søn|man|tir|ons|tor|fre|lør)/i,wide:/^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i},c={any:[/^s/i,/^m/i,/^ti/i,/^o/i,/^to/i,/^f/i,/^l/i]},v={narrow:/^(midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten)|[ap])/i,any:/^([ap]\.?\s?m\.?|midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten))/i},g={any:{am:/^a(\.?\s?m\.?)?$/i,pm:/^p(\.?\s?m\.?)?$/i,midnight:/^midn/i,noon:/^midd/i,morning:/morgen/i,afternoon:/ettermiddag/i,evening:/kveld/i,night:/natt/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(720),a=e(721),r=e(722),o=e(723),n=e(724),s={code:"nl",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"minder dan een seconde",other:"minder dan {{count}} seconden"},xSeconds:{one:"1 seconde",other:"{{count}} seconden"},halfAMinute:"een halve minuut",lessThanXMinutes:{one:"minder dan een minuut",other:"minder dan {{count}} minuten"},xMinutes:{one:"een minuut",other:"{{count}} minuten"},aboutXHours:{one:"ongeveer 1 uur",other:"ongeveer {{count}} uur"},xHours:{one:"1 uur",other:"{{count}} uur"},xDays:{one:"1 dag",other:"{{count}} dagen"},aboutXWeeks:{one:"ongeveer 1 week",other:"ongeveer {{count}} weken"},xWeeks:{one:"1 week",other:"{{count}} weken"},aboutXMonths:{one:"ongeveer 1 maand",other:"ongeveer {{count}} maanden"},xMonths:{one:"1 maand",other:"{{count}} maanden"},aboutXYears:{one:"ongeveer 1 jaar",other:"ongeveer {{count}} jaar"},xYears:{one:"1 jaar",other:"{{count}} jaar"},overXYears:{one:"meer dan 1 jaar",other:"meer dan {{count}} jaar"},almostXYears:{one:"bijna 1 jaar",other:"bijna {{count}} jaar"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"over "+s:s+" geleden":s}},function(l,i,e){var t=e(2),a={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd-MM-y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'om' {{time}}",long:"{{date}} 'om' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'afgelopen' eeee 'om' p",yesterday:"'gisteren om' p",today:"'vandaag om' p",tomorrow:"'morgen om' p",nextWeek:"eeee 'om' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["v.C.","n.C."],abbreviated:["v.Chr.","n.Chr."],wide:["voor Christus","na Christus"]},r={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],wide:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},n={narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],abbreviated:["zon","maa","din","woe","don","vri","zat"],wide:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},s={narrow:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middaguur",morning:"'s ochtends",afternoon:"'s middags",evening:"'s avonds",night:"'s nachts"},abbreviated:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middaguur",morning:"'s ochtends",afternoon:"'s middags",evening:"'s avonds",night:"'s nachts"},wide:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middaguur",morning:"'s ochtends",afternoon:"'s middags",evening:"'s avonds",night:"'s nachts"}};function u(m){var f=Number(m);return f+"e"}var d={ordinalNumber:u,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(m){return Number(m)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=d},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)e?/i,o=/\d+/i,n={narrow:/^([vn]\.? ?C\.?)/,abbreviated:/^([vn]\. ?Chr\.?)/,wide:/^((voor|na) Christus)/},s={any:[/^v/,/^n/]},u={narrow:/^[1234]/i,abbreviated:/^K[1234]/i,wide:/^[1234]e kwartaal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan.|feb.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,wide:/^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^jan/i,/^feb/i,/^m(r|a)/i,/^apr/i,/^mei/i,/^jun/i,/^jul/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i]},_={narrow:/^[zmdwv]/i,short:/^(zo|ma|di|wo|do|vr|za)/i,abbreviated:/^(zon|maa|din|woe|don|vri|zat)/i,wide:/^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i},c={narrow:[/^z/i,/^m/i,/^d/i,/^w/i,/^d/i,/^v/i,/^z/i],any:[/^zo/i,/^ma/i,/^di/i,/^wo/i,/^do/i,/^vr/i,/^za/i]},v={any:/^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i},g={any:{am:/^am/i,pm:/^pm/i,midnight:/^middernacht/i,noon:/^het middaguur/i,morning:/ochtend/i,afternoon:/middag/i,evening:/avond/i,night:/nacht/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(726),a=e(727),r=e(728),o=e(729),n=e(730),s={code:"nl-BE",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"minder dan een seconde",other:"minder dan {{count}} seconden"},xSeconds:{one:"1 seconde",other:"{{count}} seconden"},halfAMinute:"een halve minuut",lessThanXMinutes:{one:"minder dan een minuut",other:"minder dan {{count}} minuten"},xMinutes:{one:"een minuut",other:"{{count}} minuten"},aboutXHours:{one:"ongeveer 1 uur",other:"ongeveer {{count}} uur"},xHours:{one:"1 uur",other:"{{count}} uur"},xDays:{one:"1 dag",other:"{{count}} dagen"},aboutXWeeks:{one:"ongeveer 1 week",other:"ongeveer {{count}} weken"},xWeeks:{one:"1 week",other:"{{count}} weken"},aboutXMonths:{one:"ongeveer 1 maand",other:"ongeveer {{count}} maanden"},xMonths:{one:"1 maand",other:"{{count}} maanden"},aboutXYears:{one:"ongeveer 1 jaar",other:"ongeveer {{count}} jaar"},xYears:{one:"1 jaar",other:"{{count}} jaar"},overXYears:{one:"meer dan 1 jaar",other:"meer dan {{count}} jaar"},almostXYears:{one:"bijna 1 jaar",other:"bijna {{count}} jaar"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"over "+s:s+" geleden":s}},function(l,i,e){var t=e(2),a={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd-MM-y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'om' {{time}}",long:"{{date}} 'om' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'vorige' eeee 'om' p",yesterday:"'gisteren om' p",today:"'vandaag om' p",tomorrow:"'morgen om' p",nextWeek:"eeee 'om' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["v.C.","n.C."],abbreviated:["v.Chr.","n.Chr."],wide:["voor Christus","na Christus"]},r={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],wide:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},n={narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],abbreviated:["zon","maa","din","woe","don","vri","zat"],wide:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},s={narrow:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middag",morning:"'s ochtends",afternoon:"'s namiddags",evening:"'s avonds",night:"'s nachts"},abbreviated:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middag",morning:"'s ochtends",afternoon:"'s namiddags",evening:"'s avonds",night:"'s nachts"},wide:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middag",morning:"'s ochtends",afternoon:"'s namiddags",evening:"'s avonds",night:"'s nachts"}};function u(m){var f=Number(m);return f+"e"}var d={ordinalNumber:u,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(m){return Number(m)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=d},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)e?/i,o=/\d+/i,n={narrow:/^([vn]\.? ?C\.?)/,abbreviated:/^([vn]\. ?Chr\.?)/,wide:/^((voor|na) Christus)/},s={any:[/^v/,/^n/]},u={narrow:/^[1234]/i,abbreviated:/^K[1234]/i,wide:/^[1234]e kwartaal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan.|feb.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,wide:/^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^jan/i,/^feb/i,/^m(r|a)/i,/^apr/i,/^mei/i,/^jun/i,/^jul/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i]},_={narrow:/^[zmdwv]/i,short:/^(zo|ma|di|wo|do|vr|za)/i,abbreviated:/^(zon|maa|din|woe|don|vri|zat)/i,wide:/^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i},c={narrow:[/^z/i,/^m/i,/^d/i,/^w/i,/^d/i,/^v/i,/^z/i],any:[/^zo/i,/^ma/i,/^di/i,/^wo/i,/^do/i,/^vr/i,/^za/i]},v={any:/^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i},g={any:{am:/^am/i,pm:/^pm/i,midnight:/^middernacht/i,noon:/^het middaguur/i,morning:/ochtend/i,afternoon:/middag/i,evening:/avond/i,night:/nacht/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(732),a=e(733),r=e(734),o=e(735),n=e(736),s={code:"nn",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=r;var t={lessThanXSeconds:{singular:"mindre enn eitt sekund",plural:"mindre enn {{count}} sekund"},xSeconds:{singular:"eitt sekund",plural:"{{count}} sekund"},halfAMinute:"eit halvt minutt",lessThanXMinutes:{singular:"mindre enn eitt minutt",plural:"mindre enn {{count}} minutt"},xMinutes:{singular:"eitt minutt",plural:"{{count}} minutt"},aboutXHours:{singular:"omtrent ein time",plural:"omtrent {{count}} timar"},xHours:{singular:"ein time",plural:"{{count}} timar"},xDays:{singular:"ein dag",plural:"{{count}} dagar"},aboutXWeeks:{singular:"omtrent ei veke",plural:"omtrent {{count}} veker"},xWeeks:{singular:"ei veke",plural:"{{count}} veker"},aboutXMonths:{singular:"omtrent ein månad",plural:"omtrent {{count}} månader"},xMonths:{singular:"ein månad",plural:"{{count}} månader"},aboutXYears:{singular:"omtrent eitt år",plural:"omtrent {{count}} år"},xYears:{singular:"eitt år",plural:"{{count}} år"},overXYears:{singular:"over eitt år",plural:"over {{count}} år"},almostXYears:{singular:"nesten eitt år",plural:"nesten {{count}} år"}},a=["null","ein","to","tre","fire","fem","seks","sju","åtte","ni","ti","elleve","tolv"];function r(o,n,s){s=s||{onlyNumeric:!1};var u=t[o],d;return typeof u=="string"?d=u:n===0||n>1?s.onlyNumeric?d=u.plural.replace("{{count}}",n):d=u.plural.replace("{{count}}",n<13?a[n]:n):d=u.singular,s.addSuffix?s.comparison>0?"om "+d:d+" sidan":d}},function(l,i,e){var t=e(2),a={full:"EEEE d. MMMM y",long:"d. MMMM y",medium:"d. MMM y",short:"dd.MM.y"},r={full:"'kl'. HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'kl.' {{time}}",long:"{{date}} 'kl.' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'førre' eeee 'kl.' p",yesterday:"'i går kl.' p",today:"'i dag kl.' p",tomorrow:"'i morgon kl.' p",nextWeek:"EEEE 'kl.' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["f.Kr.","e.Kr."],abbreviated:["f.Kr.","e.Kr."],wide:["før Kristus","etter Kristus"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],wide:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"]},n={narrow:["S","M","T","O","T","F","L"],short:["su","må","ty","on","to","fr","lau"],abbreviated:["sun","mån","tys","ons","tor","fre","laur"],wide:["sundag","måndag","tysdag","onsdag","torsdag","fredag","laurdag"]},s={narrow:{am:"a",pm:"p",midnight:"midnatt",noon:"middag",morning:"på morg.",afternoon:"på etterm.",evening:"på kvelden",night:"på natta"},abbreviated:{am:"a.m.",pm:"p.m.",midnight:"midnatt",noon:"middag",morning:"på morg.",afternoon:"på etterm.",evening:"på kvelden",night:"på natta"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnatt",noon:"middag",morning:"på morgonen",afternoon:"på ettermiddagen",evening:"på kvelden",night:"på natta"}};function u(m){var f=Number(m);return f+"."}var d={ordinalNumber:u,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(m){return Number(m)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide"})};i.a=d},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)\.?/i,o=/\d+/i,n={narrow:/^(f\.? ?Kr\.?|fvt\.?|e\.? ?Kr\.?|evt\.?)/i,abbreviated:/^(f\.? ?Kr\.?|fvt\.?|e\.? ?Kr\.?|evt\.?)/i,wide:/^(før Kristus|før vår tid|etter Kristus|vår tid)/i},s={any:[/^f/i,/^e/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? kvartal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\.?/i,wide:/^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^aug/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[smtofl]/i,short:/^(su|må|ty|on|to|fr|la)/i,abbreviated:/^(sun|mån|tys|ons|tor|fre|laur)/i,wide:/^(sundag|måndag|tysdag|onsdag|torsdag|fredag|laurdag)/i},c={any:[/^s/i,/^m/i,/^ty/i,/^o/i,/^to/i,/^f/i,/^l/i]},v={narrow:/^(midnatt|middag|(på) (morgonen|ettermiddagen|kvelden|natta)|[ap])/i,any:/^([ap]\.?\s?m\.?|midnatt|middag|(på) (morgonen|ettermiddagen|kvelden|natta))/i},g={any:{am:/^a(\.?\s?m\.?)?$/i,pm:/^p(\.?\s?m\.?)?$/i,midnight:/^midn/i,noon:/^midd/i,morning:/morgon/i,afternoon:/ettermiddag/i,evening:/kveld/i,night:/natt/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(738),a=e(739),r=e(740),o=e(741),n=e(742),s={code:"pl",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=o;function t(n,s){if(s===1)return n.one;var u=s%100;if(u<=20&&u>10)return n.other;var d=u%10;return d>=2&&d<=4?n.twoFour:n.other}function a(n,s,u){u=u||"regular";var d=t(n,s),m=d[u]||d;return m.replace("{{count}}",s)}var r={lessThanXSeconds:{one:{regular:"mniej niż sekunda",past:"mniej niż sekundę",future:"mniej niż sekundę"},twoFour:"mniej niż {{count}} sekundy",other:"mniej niż {{count}} sekund"},xSeconds:{one:{regular:"sekunda",past:"sekundę",future:"sekundę"},twoFour:"{{count}} sekundy",other:"{{count}} sekund"},halfAMinute:{one:"pół minuty",twoFour:"pół minuty",other:"pół minuty"},lessThanXMinutes:{one:{regular:"mniej niż minuta",past:"mniej niż minutę",future:"mniej niż minutę"},twoFour:"mniej niż {{count}} minuty",other:"mniej niż {{count}} minut"},xMinutes:{one:{regular:"minuta",past:"minutę",future:"minutę"},twoFour:"{{count}} minuty",other:"{{count}} minut"},aboutXHours:{one:{regular:"około godzina",past:"około godziny",future:"około godzinę"},twoFour:"około {{count}} godziny",other:"około {{count}} godzin"},xHours:{one:{regular:"godzina",past:"godzinę",future:"godzinę"},twoFour:"{{count}} godziny",other:"{{count}} godzin"},xDays:{one:{regular:"dzień",past:"dzień",future:"1 dzień"},twoFour:"{{count}} dni",other:"{{count}} dni"},aboutXWeeks:{one:"około tygodnia",twoFour:"około {{count}} tygodni",other:"około {{count}} tygodni"},xWeeks:{one:"tydzień",twoFour:"{{count}} tygodnie",other:"{{count}} tygodni"},aboutXMonths:{one:"około miesiąc",twoFour:"około {{count}} miesiące",other:"około {{count}} miesięcy"},xMonths:{one:"miesiąc",twoFour:"{{count}} miesiące",other:"{{count}} miesięcy"},aboutXYears:{one:"około rok",twoFour:"około {{count}} lata",other:"około {{count}} lat"},xYears:{one:"rok",twoFour:"{{count}} lata",other:"{{count}} lat"},overXYears:{one:"ponad rok",twoFour:"ponad {{count}} lata",other:"ponad {{count}} lat"},almostXYears:{one:"prawie rok",twoFour:"prawie {{count}} lata",other:"prawie {{count}} lat"}};function o(n,s,u){u=u||{};var d=r[n];return u.addSuffix?u.comparison>0?"za "+a(d,s,"future"):a(d,s,"past")+" temu":a(d,s)}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM y",short:"dd.MM.y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=f;var t=e(13),a={masculine:"ostatni",feminine:"ostatnia"},r={masculine:"ten",feminine:"ta"},o={masculine:"następny",feminine:"następna"},n={0:"feminine",1:"masculine",2:"masculine",3:"feminine",4:"masculine",5:"masculine",6:"feminine"};function s(_,c,v,g){if(t.a(c,v,g))return r;if(_==="lastWeek")return a;if(_==="nextWeek")return o;throw new Error("Cannot determine adjectives for token ".concat(_))}function u(_,c,v,g){var P=c.getUTCDay(),h=s(_,c,v,g),y=n[P];return h[y]}function d(_,c,v,g){var P=u(_,c,v,g);return"'".concat(P,"' eeee 'o' p")}var m={lastWeek:d,yesterday:"'wczoraj o' p",today:"'dzisiaj o' p",tomorrow:"'jutro o' p",nextWeek:d,other:"P"};function f(_,c,v,g){var P=m[_];return typeof P=="function"?P(_,c,v,g):P}},function(l,i,e){var t=e(3);function a(c){var v=Number(c);return String(v)}var r={narrow:["p.n.e.","n.e."],abbreviated:["p.n.e.","n.e."],wide:["przed naszą erą","naszej ery"]},o={narrow:["1","2","3","4"],abbreviated:["I kw.","II kw.","III kw.","IV kw."],wide:["I kwartał","II kwartał","III kwartał","IV kwartał"]},n={narrow:["S","L","M","K","M","C","L","S","W","P","L","G"],abbreviated:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],wide:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},s={narrow:["s","l","m","k","m","c","l","s","w","p","l","g"],abbreviated:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],wide:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"]},u={narrow:["N","P","W","Ś","C","P","S"],short:["nie","pon","wto","śro","czw","pią","sob"],abbreviated:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],wide:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},d={narrow:["n","p","w","ś","c","p","s"],short:["nie","pon","wto","śro","czw","pią","sob"],abbreviated:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],wide:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},m={narrow:{am:"a",pm:"p",midnight:"półn.",noon:"poł",morning:"rano",afternoon:"popoł.",evening:"wiecz.",night:"noc"},abbreviated:{am:"AM",pm:"PM",midnight:"północ",noon:"południe",morning:"rano",afternoon:"popołudnie",evening:"wieczór",night:"noc"},wide:{am:"AM",pm:"PM",midnight:"północ",noon:"południe",morning:"rano",afternoon:"popołudnie",evening:"wieczór",night:"noc"}},f={narrow:{am:"a",pm:"p",midnight:"o półn.",noon:"w poł.",morning:"rano",afternoon:"po poł.",evening:"wiecz.",night:"w nocy"},abbreviated:{am:"AM",pm:"PM",midnight:"o północy",noon:"w południe",morning:"rano",afternoon:"po południu",evening:"wieczorem",night:"w nocy"},wide:{am:"AM",pm:"PM",midnight:"o północy",noon:"w południe",morning:"rano",afternoon:"po południu",evening:"wieczorem",night:"w nocy"}},_={ordinalNumber:a,era:t.a({values:r,defaultWidth:"wide"}),quarter:t.a({values:o,defaultWidth:"wide",argumentCallback:function(c){return Number(c)-1}}),month:t.a({values:n,defaultWidth:"wide",formattingValues:s,defaultFormattingWidth:"wide"}),day:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"}),dayPeriod:t.a({values:m,defaultWidth:"wide",formattingValues:f,defaultFormattingWidth:"wide"})};i.a=_},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)?/i,o=/\d+/i,n={narrow:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,abbreviated:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,wide:/^(przed\s*nasz(ą|a)\s*er(ą|a)|naszej\s*ery)/i},s={any:[/^p/i,/^n/i]},u={narrow:/^[1234]/i,abbreviated:/^(I|II|III|IV)\s*kw\.?/i,wide:/^(I|II|III|IV)\s*kwarta(ł|l)/i},d={narrow:[/1/i,/2/i,/3/i,/4/i],any:[/^I kw/i,/^II kw/i,/^III kw/i,/^IV kw/i]},m={narrow:/^[slmkcwpg]/i,abbreviated:/^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,wide:/^(stycznia|stycze(ń|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(ń|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(ń|n)|wrze(ś|s)nia|wrzesie(ń|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(ń|n))/i},f={narrow:[/^s/i,/^l/i,/^m/i,/^k/i,/^m/i,/^c/i,/^l/i,/^s/i,/^w/i,/^p/i,/^l/i,/^g/i],any:[/^st/i,/^lu/i,/^mar/i,/^k/i,/^maj/i,/^c/i,/^lip/i,/^si/i,/^w/i,/^p/i,/^lis/i,/^g/i]},_={narrow:/^[npwścs]/i,short:/^(nie|pon|wto|(ś|s)ro|czw|pi(ą|a)|sob)/i,abbreviated:/^(niedz|pon|wt|(ś|s)r|czw|pt|sob)\.?/i,wide:/^(niedziela|poniedzia(ł|l)ek|wtorek|(ś|s)roda|czwartek|pi(ą|a)tek|sobota)/i},c={narrow:[/^n/i,/^p/i,/^w/i,/^ś/i,/^c/i,/^p/i,/^s/i],abbreviated:[/^n/i,/^po/i,/^w/i,/^(ś|s)r/i,/^c/i,/^pt/i,/^so/i],any:[/^n/i,/^po/i,/^w/i,/^(ś|s)r/i,/^c/i,/^pi/i,/^so/i]},v={narrow:/^(^a$|^p$|pó(ł|l)n\.?|o\s*pó(ł|l)n\.?|po(ł|l)\.?|w\s*po(ł|l)\.?|po\s*po(ł|l)\.?|rano|wiecz\.?|noc|w\s*nocy)/i,any:/^(am|pm|pó(ł|l)noc|o\s*pó(ł|l)nocy|po(ł|l)udnie|w\s*po(ł|l)udnie|popo(ł|l)udnie|po\s*po(ł|l)udniu|rano|wieczór|wieczorem|noc|w\s*nocy)/i},g={narrow:{am:/^a$/i,pm:/^p$/i,midnight:/pó(ł|l)n/i,noon:/po(ł|l)/i,morning:/rano/i,afternoon:/po\s*po(ł|l)/i,evening:/wiecz/i,night:/noc/i},any:{am:/^am/i,pm:/^pm/i,midnight:/pó(ł|l)n/i,noon:/po(ł|l)/i,morning:/rano/i,afternoon:/po\s*po(ł|l)/i,evening:/wiecz/i,night:/noc/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(744),a=e(745),r=e(746),o=e(747),n=e(748),s={code:"pt",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"menos de um segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"meio minuto",lessThanXMinutes:{one:"menos de um minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"aproximadamente 1 hora",other:"aproximadamente {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 dia",other:"{{count}} dias"},aboutXWeeks:{one:"aproximadamente 1 mês",other:"aproximadamente {{count}} meses"},xWeeks:{one:"1 mês",other:"{{count}} meses"},aboutXMonths:{one:"aproximadamente 1 mês",other:"aproximadamente {{count}} meses"},xMonths:{one:"1 mês",other:"{{count}} meses"},aboutXYears:{one:"aproximadamente 1 ano",other:"aproximadamente {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"mais de 1 ano",other:"mais de {{count}} anos"},almostXYears:{one:"quase 1 ano",other:"quase {{count}} anos"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"daqui a "+s:"há "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d 'de' MMM 'de' y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'na última' eeee 'às' p",yesterday:"'ontem às' p",today:"'hoje às' p",tomorrow:"'amanhã às' p",nextWeek:"eeee 'às' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3);function a(f){var _=Number(f);return _+"º"}var r={narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["antes de Cristo","depois de Cristo"]},o={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},n={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],wide:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},s={narrow:["d","s","t","q","q","s","s"],short:["dom","seg","ter","qua","qui","sex","sáb"],abbreviated:["dom","seg","ter","qua","qui","sex","sáb"],wide:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},u={narrow:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"},wide:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"}},d={narrow:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"},wide:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"}},m={ordinalNumber:a,era:t.a({values:r,defaultWidth:"wide"}),quarter:t.a({values:o,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:n,defaultWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(º|ª)?/i,o=/\d+/i,n={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes da era comum|depois de cristo|era comum)/i},s={any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes da era comum)/i,/^(depois de cristo|era comum)/i]},u={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º|ª)? trimestre/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ab/i,/^mai/i,/^jun/i,/^jul/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[dstq]/i,short:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,wide:/^(domingo|segunda-?\s?feira|terça-?\s?feira|quarta-?\s?feira|quinta-?\s?feira|sexta-?\s?feira|s[áa]bado)/i},c={narrow:[/^d/i,/^s/i,/^t/i,/^q/i,/^q/i,/^s/i,/^s/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[áa]/i]},v={narrow:/^(a|p|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,any:/^([ap]\.?\s?m\.?|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^meia/i,noon:/^meio/i,morning:/manh[ãa]/i,afternoon:/tarde/i,evening:/noite/i,night:/madrugada/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(750),a=e(751),r=e(752),o=e(753),n=e(754),s={code:"pt-BR",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"menos de um segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"meio minuto",lessThanXMinutes:{one:"menos de um minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"cerca de 1 hora",other:"cerca de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 dia",other:"{{count}} dias"},aboutXWeeks:{one:"cerca de 1 mês",other:"cerca de {{count}} meses"},xWeeks:{one:"1 mês",other:"{{count}} meses"},aboutXMonths:{one:"cerca de 1 mês",other:"cerca de {{count}} meses"},xMonths:{one:"1 mês",other:"{{count}} meses"},aboutXYears:{one:"cerca de 1 ano",other:"cerca de {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"mais de 1 ano",other:"mais de {{count}} anos"},almostXYears:{one:"quase 1 ano",other:"quase {{count}} anos"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"em "+s:"há "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d MMM y",short:"dd/MM/yyyy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:function(r,o,n){var s=r.getUTCDay(),u=s===0||s===6?"último":"última";return"'"+u+"' eeee 'às' p"},yesterday:"'ontem às' p",today:"'hoje às' p",tomorrow:"'amanhã às' p",nextWeek:"eeee 'às' p",other:"P"};function a(r,o,n,s){var u=t[r];return typeof u=="function"?u(o,n,s):u}},function(l,i,e){var t=e(3),a={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","depois de cristo"]},r={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},o={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],wide:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},n={narrow:["do","2ª","3ª","4ª","5ª","6ª","sá"],short:["do","2ª","3ª","4ª","5ª","6ª","sá"],abbreviated:["dom","seg","ter","qua","qui","sex","sáb"],wide:["domingo","segunda","terça","quarta","quinta","sexta","sábado"]},s={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"}},u={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"}};function d(f,_){var c=Number(f),v=_||{},g=String(v.unit);return g==="week"||g==="isoWeek"?c+"ª":c+"º"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)[ºªo]?/i,o=/\d+/i,n={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|d\.?\s?c\.?)/i,wide:/^(antes de cristo|depois de cristo)/i},s={any:[/^ac/i,/^dc/i],wide:[/^antes de cristo/i,/^depois de cristo/i]},u={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmajsond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^fev/i,/^mar/i,/^abr/i,/^mai/i,/^jun/i,/^jul/i,/^ago/i,/^set/i,/^out/i,/^nov/i,/^dez/i]},_={narrow:/^(dom|[23456]ª?|s[aá]b)/i,short:/^(dom|[23456]ª?|s[aá]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,wide:/^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i},c={short:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],narrow:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[aá]b/i]},v={narrow:/^(a|p|mn|md|(da) (manhã|tarde|noite))/i,any:/^([ap]\.?\s?m\.?|meia[-\s]noite|meio[-\s]dia|(da) (manhã|tarde|noite))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mn|^meia[-\s]noite/i,noon:/^md|^meio[-\s]dia/i,morning:/manhã/i,afternoon:/tarde/i,evening:/tarde/i,night:/noite/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(756),a=e(757),r=e(758),o=e(759),n=e(760),s={code:"ro",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"mai puțin de o secundă",other:"mai puțin de {{count}} secunde"},xSeconds:{one:"1 secundă",other:"{{count}} secunde"},halfAMinute:"jumătate de minut",lessThanXMinutes:{one:"mai puțin de un minut",other:"mai puțin de {{count}} minute"},xMinutes:{one:"1 minut",other:"{{count}} minute"},aboutXHours:{one:"circa 1 oră",other:"circa {{count}} ore"},xHours:{one:"1 oră",other:"{{count}} ore"},xDays:{one:"1 zi",other:"{{count}} zile"},aboutXWeeks:{one:"circa o săptămână",other:"circa {{count}} săptămâni"},xWeeks:{one:"1 săptămână",other:"{{count}} săptămâni"},aboutXMonths:{one:"circa 1 lună",other:"circa {{count}} luni"},xMonths:{one:"1 lună",other:"{{count}} luni"},aboutXYears:{one:"circa 1 an",other:"circa {{count}} ani"},xYears:{one:"1 an",other:"{{count}} ani"},overXYears:{one:"peste 1 an",other:"peste {{count}} ani"},almostXYears:{one:"aproape 1 an",other:"aproape {{count}} ani"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"în "+s:s+" în urmă":s}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"dd/MM/yyyy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'la' {{time}}",long:"{{date}} 'la' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'trecută la' p",yesterday:"'ieri la' p",today:"'astăzi la' p",tomorrow:"'mâine la' p",nextWeek:"eeee 'viitoare la' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["Î","D"],abbreviated:["Î.d.C.","D.C."],wide:["Înainte de Cristos","După Cristos"]},r={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["primul trimestru","al doilea trimestru","al treilea trimestru","al patrulea trimestru"]},o={narrow:["I","F","M","A","M","I","I","A","S","O","N","D"],abbreviated:["ian","feb","mar","apr","mai","iun","iul","aug","sep","oct","noi","dec"],wide:["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"]},n={narrow:["d","l","m","m","j","v","s"],short:["du","lu","ma","mi","jo","vi","sâ"],abbreviated:["dum","lun","mar","mie","joi","vin","sâm"],wide:["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"]},s={narrow:{am:"a",pm:"p",midnight:"mn",noon:"ami",morning:"dim",afternoon:"da",evening:"s",night:"n"},abbreviated:{am:"AM",pm:"PM",midnight:"miezul nopții",noon:"amiază",morning:"dimineață",afternoon:"după-amiază",evening:"seară",night:"noapte"},wide:{am:"a.m.",pm:"p.m.",midnight:"miezul nopții",noon:"amiază",morning:"dimineață",afternoon:"după-amiază",evening:"seară",night:"noapte"}},u={narrow:{am:"a",pm:"p",midnight:"mn",noon:"amiază",morning:"dimineață",afternoon:"după-amiază",evening:"seară",night:"noapte"},abbreviated:{am:"AM",pm:"PM",midnight:"miezul nopții",noon:"amiază",morning:"dimineață",afternoon:"după-amiază",evening:"seară",night:"noapte"},wide:{am:"a.m.",pm:"p.m.",midnight:"miezul nopții",noon:"amiază",morning:"dimineață",afternoon:"după-amiază",evening:"seară",night:"noapte"}};function d(f){var _=Number(f);return String(_)}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)?/i,o=/\d+/i,n={narrow:/^(Î|D)/i,abbreviated:/^(Î\.?\s?d\.?\s?C\.?|Î\.?\s?e\.?\s?n\.?|D\.?\s?C\.?|e\.?\s?n\.?)/i,wide:/^(Înainte de Cristos|Înaintea erei noastre|După Cristos|Era noastră)/i},s={any:[/^ÎC/i,/^DC/i],wide:[/^(Înainte de Cristos|Înaintea erei noastre)/i,/^(După Cristos|Era noastră)/i]},u={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^trimestrul [1234]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[ifmaasond]/i,abbreviated:/^(ian|feb|mar|apr|mai|iun|iul|aug|sep|oct|noi|dec)/i,wide:/^(ianuarie|februarie|martie|aprilie|mai|iunie|iulie|august|septembrie|octombrie|noiembrie|decembrie)/i},f={narrow:[/^i/i,/^f/i,/^m/i,/^a/i,/^m/i,/^i/i,/^i/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ia/i,/^f/i,/^mar/i,/^ap/i,/^mai/i,/^iun/i,/^iul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[dlmjvs]/i,short:/^(d|l|ma|mi|j|v|s)/i,abbreviated:/^(dum|lun|mar|mie|jo|vi|sâ)/i,wide:/^(duminica|luni|marţi|miercuri|joi|vineri|sâmbătă)/i},c={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^d/i,/^l/i,/^ma/i,/^mi/i,/^j/i,/^v/i,/^s/i]},v={narrow:/^(a|p|mn|a|(dimineaţa|după-amiaza|seara|noaptea))/i,any:/^([ap]\.?\s?m\.?|miezul nopții|amiaza|(dimineaţa|după-amiaza|seara|noaptea))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^mn/i,noon:/amiaza/i,morning:/dimineaţa/i,afternoon:/după-amiaza/i,evening:/seara/i,night:/noaptea/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(762),a=e(763),r=e(764),o=e(765),n=e(766),s={code:"ru",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=o;function t(n,s){if(n.one!==void 0&&s===1)return n.one;var u=s%10,d=s%100;return u===1&&d!==11?n.singularNominative.replace("{{count}}",s):u>=2&&u<=4&&(d<10||d>20)?n.singularGenitive.replace("{{count}}",s):n.pluralGenitive.replace("{{count}}",s)}function a(n){return function(s,u){return u.addSuffix?u.comparison>0?n.future?t(n.future,s):"через "+t(n.regular,s):n.past?t(n.past,s):t(n.regular,s)+" назад":t(n.regular,s)}}var r={lessThanXSeconds:a({regular:{one:"меньше секунды",singularNominative:"меньше {{count}} секунды",singularGenitive:"меньше {{count}} секунд",pluralGenitive:"меньше {{count}} секунд"},future:{one:"меньше, чем через секунду",singularNominative:"меньше, чем через {{count}} секунду",singularGenitive:"меньше, чем через {{count}} секунды",pluralGenitive:"меньше, чем через {{count}} секунд"}}),xSeconds:a({regular:{singularNominative:"{{count}} секунда",singularGenitive:"{{count}} секунды",pluralGenitive:"{{count}} секунд"},past:{singularNominative:"{{count}} секунду назад",singularGenitive:"{{count}} секунды назад",pluralGenitive:"{{count}} секунд назад"},future:{singularNominative:"через {{count}} секунду",singularGenitive:"через {{count}} секунды",pluralGenitive:"через {{count}} секунд"}}),halfAMinute:function(n,s){return s.addSuffix?s.comparison>0?"через полминуты":"полминуты назад":"полминуты"},lessThanXMinutes:a({regular:{one:"меньше минуты",singularNominative:"меньше {{count}} минуты",singularGenitive:"меньше {{count}} минут",pluralGenitive:"меньше {{count}} минут"},future:{one:"меньше, чем через минуту",singularNominative:"меньше, чем через {{count}} минуту",singularGenitive:"меньше, чем через {{count}} минуты",pluralGenitive:"меньше, чем через {{count}} минут"}}),xMinutes:a({regular:{singularNominative:"{{count}} минута",singularGenitive:"{{count}} минуты",pluralGenitive:"{{count}} минут"},past:{singularNominative:"{{count}} минуту назад",singularGenitive:"{{count}} минуты назад",pluralGenitive:"{{count}} минут назад"},future:{singularNominative:"через {{count}} минуту",singularGenitive:"через {{count}} минуты",pluralGenitive:"через {{count}} минут"}}),aboutXHours:a({regular:{singularNominative:"около {{count}} часа",singularGenitive:"около {{count}} часов",pluralGenitive:"около {{count}} часов"},future:{singularNominative:"приблизительно через {{count}} час",singularGenitive:"приблизительно через {{count}} часа",pluralGenitive:"приблизительно через {{count}} часов"}}),xHours:a({regular:{singularNominative:"{{count}} час",singularGenitive:"{{count}} часа",pluralGenitive:"{{count}} часов"}}),xDays:a({regular:{singularNominative:"{{count}} день",singularGenitive:"{{count}} дня",pluralGenitive:"{{count}} дней"}}),aboutXWeeks:a({regular:{singularNominative:"около {{count}} недели",singularGenitive:"около {{count}} недель",pluralGenitive:"около {{count}} недель"},future:{singularNominative:"приблизительно через {{count}} неделю",singularGenitive:"приблизительно через {{count}} недели",pluralGenitive:"приблизительно через {{count}} недель"}}),xWeeks:a({regular:{singularNominative:"{{count}} неделя",singularGenitive:"{{count}} недели",pluralGenitive:"{{count}} недель"}}),aboutXMonths:a({regular:{singularNominative:"около {{count}} месяца",singularGenitive:"около {{count}} месяцев",pluralGenitive:"около {{count}} месяцев"},future:{singularNominative:"приблизительно через {{count}} месяц",singularGenitive:"приблизительно через {{count}} месяца",pluralGenitive:"приблизительно через {{count}} месяцев"}}),xMonths:a({regular:{singularNominative:"{{count}} месяц",singularGenitive:"{{count}} месяца",pluralGenitive:"{{count}} месяцев"}}),aboutXYears:a({regular:{singularNominative:"около {{count}} года",singularGenitive:"около {{count}} лет",pluralGenitive:"около {{count}} лет"},future:{singularNominative:"приблизительно через {{count}} год",singularGenitive:"приблизительно через {{count}} года",pluralGenitive:"приблизительно через {{count}} лет"}}),xYears:a({regular:{singularNominative:"{{count}} год",singularGenitive:"{{count}} года",pluralGenitive:"{{count}} лет"}}),overXYears:a({regular:{singularNominative:"больше {{count}} года",singularGenitive:"больше {{count}} лет",pluralGenitive:"больше {{count}} лет"},future:{singularNominative:"больше, чем через {{count}} год",singularGenitive:"больше, чем через {{count}} года",pluralGenitive:"больше, чем через {{count}} лет"}}),almostXYears:a({regular:{singularNominative:"почти {{count}} год",singularGenitive:"почти {{count}} года",pluralGenitive:"почти {{count}} лет"},future:{singularNominative:"почти через {{count}} год",singularGenitive:"почти через {{count}} года",pluralGenitive:"почти через {{count}} лет"}})};function o(n,s,u){return u=u||{},r[n](s,u)}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM y 'г.'",long:"do MMMM y 'г.'",medium:"d MMM y 'г.'",short:"dd.MM.y"},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={any:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"any"})};i.a=n},function(l,i,e){i.a=u;var t=e(13),a=["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"];function r(d){var m=a[d];switch(d){case 0:return"'в прошлое "+m+" в' p";case 1:case 2:case 4:return"'в прошлый "+m+" в' p";case 3:case 5:case 6:return"'в прошлую "+m+" в' p"}}function o(d){var m=a[d];return d===2?"'во "+m+" в' p":"'в "+m+" в' p"}function n(d){var m=a[d];switch(d){case 0:return"'в следующее "+m+" в' p";case 1:case 2:case 4:return"'в следующий "+m+" в' p";case 3:case 5:case 6:return"'в следующую "+m+" в' p"}}var s={lastWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):r(_)},yesterday:"'вчера в' p",today:"'сегодня в' p",tomorrow:"'завтра в' p",nextWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):n(_)},other:"P"};function u(d,m,f,_){var c=s[d];return typeof c=="function"?c(m,f,_):c}},function(l,i,e){var t=e(3),a={narrow:["до н.э.","н.э."],abbreviated:["до н. э.","н. э."],wide:["до нашей эры","нашей эры"]},r={narrow:["1","2","3","4"],abbreviated:["1-й кв.","2-й кв.","3-й кв.","4-й кв."],wide:["1-й квартал","2-й квартал","3-й квартал","4-й квартал"]},o={narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],abbreviated:["янв.","фев.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],wide:["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},n={narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],abbreviated:["янв.","фев.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],wide:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]},s={narrow:["В","П","В","С","Ч","П","С"],short:["вс","пн","вт","ср","чт","пт","сб"],abbreviated:["вск","пнд","втр","срд","чтв","птн","суб"],wide:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},u={narrow:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утро",afternoon:"день",evening:"веч.",night:"ночь"},abbreviated:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утро",afternoon:"день",evening:"веч.",night:"ночь"},wide:{am:"ДП",pm:"ПП",midnight:"полночь",noon:"полдень",morning:"утро",afternoon:"день",evening:"вечер",night:"ночь"}},d={narrow:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утра",afternoon:"дня",evening:"веч.",night:"ночи"},abbreviated:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утра",afternoon:"дня",evening:"веч.",night:"ночи"},wide:{am:"ДП",pm:"ПП",midnight:"полночь",noon:"полдень",morning:"утра",afternoon:"дня",evening:"вечера",night:"ночи"}};function m(_,c){var v=c||{},g=String(v.unit),P;return g==="date"?P="-е":g==="week"||g==="minute"||g==="second"?P="-я":P="-й",_+P}var f={ordinalNumber:m,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"any",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,o=/\d+/i,n={narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},s={any:[/^д/i,/^н/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},f={narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},_={narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},c={narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},v={narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},g={any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"wide",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(768),a=e(769),r=e(770),o=e(771),n=e(772),s={code:"sk",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=d;function t(m,f){return f===1?m.one:f>=2&&f<=4?m.twoFour:m.other}function a(m,f,_){var c=t(m,f),v=c[_]||c;return v.replace("{{count}}",f)}function r(m){var f=["lessThan","about","over","almost"].filter(function(_){return!!m.match(new RegExp("^"+_))});return f[0]}function o(m){var f="";return m==="almost"&&(f="takmer"),m==="about"&&(f="približne"),f.length>0?f+" ":""}function n(m){var f="";return m==="lessThan"&&(f="menej než"),m==="over"&&(f="viac než"),f.length>0?f+" ":""}function s(m){return m.charAt(0).toLowerCase()+m.slice(1)}var u={xSeconds:{one:{regular:"sekunda",past:"sekundou",future:"sekundu"},twoFour:{regular:"{{count}} sekundy",past:"{{count}} sekundami",future:"{{count}} sekundy"},other:{regular:"{{count}} sekúnd",past:"{{count}} sekundami",future:"{{count}} sekúnd"}},halfAMinute:{other:{regular:"pol minúty",past:"pol minútou",future:"pol minúty"}},xMinutes:{one:{regular:"minúta",past:"minútou",future:"minútu"},twoFour:{regular:"{{count}} minúty",past:"{{count}} minútami",future:"{{count}} minúty"},other:{regular:"{{count}} minút",past:"{{count}} minútami",future:"{{count}} minút"}},xHours:{one:{regular:"hodina",past:"hodinou",future:"hodinu"},twoFour:{regular:"{{count}} hodiny",past:"{{count}} hodinami",future:"{{count}} hodiny"},other:{regular:"{{count}} hodín",past:"{{count}} hodinami",future:"{{count}} hodín"}},xDays:{one:{regular:"deň",past:"dňom",future:"deň"},twoFour:{regular:"{{count}} dni",past:"{{count}} dňami",future:"{{count}} dni"},other:{regular:"{{count}} dní",past:"{{count}} dňami",future:"{{count}} dní"}},xWeeks:{one:{regular:"mesiac",past:"mesiacom",future:"mesiac"},twoFour:{regular:"{{count}} mesiace",past:"{{count}} mesiacmi",future:"{{count}} mesiace"},other:{regular:"{{count}} mesiacov",past:"{{count}} mesiacmi",future:"{{count}} mesiacov"}},xMonths:{one:{regular:"mesiac",past:"mesiacom",future:"mesiac"},twoFour:{regular:"{{count}} mesiace",past:"{{count}} mesiacmi",future:"{{count}} mesiace"},other:{regular:"{{count}} mesiacov",past:"{{count}} mesiacmi",future:"{{count}} mesiacov"}},xYears:{one:{regular:"rok",past:"rokom",future:"rok"},twoFour:{regular:"{{count}} roky",past:"{{count}} rokmi",future:"{{count}} roky"},other:{regular:"{{count}} rokov",past:"{{count}} rokmi",future:"{{count}} rokov"}}};function d(m,f,_){_=_||{};var c=r(m)||"",v=s(m.substring(c.length)),g=u[v];return _.addSuffix?_.comparison>0?o(c)+"o "+n(c)+a(g,f,"future"):o(c)+"pred "+n(c)+a(g,f,"past"):o(c)+n(c)+a(g,f,"regular")}},function(l,i,e){var t=e(2),a={full:"EEEE d. MMMM y",long:"d. MMMM y",medium:"d. M. y",short:"d. M. y"},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={full:"{{date}}, {{time}}",long:"{{date}}, {{time}}",medium:"{{date}}, {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=u;var t=e(13),a=["nedeľu","pondelok","utorok","stredu","štvrtok","piatok","sobotu"];function r(d){var m=a[d];switch(d){case 0:case 3:case 6:return"'minulú "+m+" o' p";default:return"'minulý' eeee 'o' p"}}function o(d){var m=a[d];return d===4?"'vo' eeee 'o' p":"'v "+m+" o' p"}function n(d){var m=a[d];switch(d){case 0:case 4:case 6:return"'budúcu' "+m+" 'o' p";default:return"'budúci' eeee 'o' p"}}var s={lastWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):r(_)},yesterday:"'včera o' p",today:"'dnes o' p",tomorrow:"'zajtra o' p",nextWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):n(_)},other:"P"};function u(d,m,f,_){var c=s[d];return typeof c=="function"?c(m,f,_):c}},function(l,i,e){var t=e(3),a={narrow:["pred Kr.","po Kr."],abbreviated:["pred Kr.","po Kr."],wide:["pred Kristom","po Kristovi"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. štvrťrok","2. štvrťrok","3. štvrťrok","4. štvrťrok"]},o={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],wide:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"]},n={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],wide:["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra"]},s={narrow:["n","p","u","s","š","p","s"],short:["ne","po","ut","st","št","pi","so"],abbreviated:["ne","po","ut","st","št","pi","so"],wide:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"]},u={narrow:{am:"AM",pm:"PM",midnight:"poln.",noon:"pol.",morning:"ráno",afternoon:"pop.",evening:"več.",night:"noc"},abbreviated:{am:"AM",pm:"PM",midnight:"poln.",noon:"pol.",morning:"ráno",afternoon:"popol.",evening:"večer",night:"noc"},wide:{am:"AM",pm:"PM",midnight:"polnoc",noon:"poludnie",morning:"ráno",afternoon:"popoludnie",evening:"večer",night:"noc"}},d={narrow:{am:"AM",pm:"PM",midnight:"o poln.",noon:"nap.",morning:"ráno",afternoon:"pop.",evening:"več.",night:"v n."},abbreviated:{am:"AM",pm:"PM",midnight:"o poln.",noon:"napol.",morning:"ráno",afternoon:"popol.",evening:"večer",night:"v noci"},wide:{am:"AM",pm:"PM",midnight:"o polnoci",noon:"napoludnie",morning:"ráno",afternoon:"popoludní",evening:"večer",night:"v noci"}};function m(_,c){var v=Number(_);return v+"."}var f={ordinalNumber:m,era:t.a({values:a}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)\.?/i,o=/\d+/i,n={narrow:/^(pred Kr\.|pred n\. l\.|po Kr\.|n\. l\.)/i,abbreviated:/^(pred Kr\.|pred n\. l\.|po Kr\.|n\. l\.)/i,wide:/^(pred Kristom|pred na[šs][íi]m letopo[čc]tom|po Kristovi|n[áa][šs]ho letopo[čc]tu)/i},s={any:[/^pr/i,/^(po|n)/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]\. [šs]tvr[ťt]rok/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|m[áa]j|j[úu]n|j[úu]l|aug|sep|okt|nov|dec)/i,wide:/^(janu[áa]ra?|febru[áa]ra?|(marec|marca)|apr[íi]la?|m[áa]ja?|j[úu]na?|j[úu]la?|augusta?|(september|septembra)|(okt[óo]ber|okt[óo]bra)|(november|novembra)|(december|decembra))/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^m[áa]j/i,/^j[úu]n/i,/^j[úu]l/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[npusšp]/i,short:/^(ne|po|ut|st|št|pi|so)/i,abbreviated:/^(ne|po|ut|st|št|pi|so)/i,wide:/^(nede[ľl]a|pondelok|utorok|streda|[šs]tvrtok|piatok|sobota])/i},c={narrow:[/^n/i,/^p/i,/^u/i,/^s/i,/^š/i,/^p/i,/^s/i],any:[/^n/i,/^po/i,/^u/i,/^st/i,/^(št|stv)/i,/^pi/i,/^so/i]},v={narrow:/^(am|pm|(o )?poln\.?|(nap\.?|pol\.?)|r[áa]no|pop\.?|ve[čc]\.?|(v n\.?|noc))/i,abbreviated:/^(am|pm|(o )?poln\.?|(napol\.?|pol\.?)|r[áa]no|pop\.?|ve[čc]er|(v )?noci?)/i,any:/^(am|pm|(o )?polnoci?|(na)?poludnie|r[áa]no|popoludn(ie|í|i)|ve[čc]er|(v )?noci?)/i},g={any:{am:/^am/i,pm:/^pm/i,midnight:/poln/i,noon:/^(nap|(na)?pol(\.|u))/i,morning:/^r[áa]no/i,afternoon:/^pop/i,evening:/^ve[čc]/i,night:/^(noc|v n\.)/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(774),a=e(775),r=e(776),o=e(777),n=e(778),s={code:"sl",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=n;var t={lessThanXSeconds:{one:"manj kot {{count}} sekunda",two:"manj kot {{count}} sekundi",few:"manj kot {{count}} sekunde",other:"manj kot {{count}} sekund"},xSeconds:{one:"{{count}} sekunda",two:"{{count}} sekundi",few:"{{count}} sekunde",other:"{{count}} sekund"},halfAMinute:"pol minute",lessThanXMinutes:{one:"manj kot {{count}} minuta",two:"manj kot {{count}} minuti",few:"manj kot {{count}} minute",other:"manj kot {{count}} minut"},xMinutes:{one:"{{count}} minuta",two:"{{count}} minuti",few:"{{count}} minute",other:"{{count}} minut"},aboutXHours:{one:"približno {{count}} ura",two:"približno {{count}} uri",few:"približno {{count}} ure",other:"približno {{count}} ur"},xHours:{one:"{{count}} ura",two:"{{count}} uri",few:"{{count}} ure",other:"{{count}} ur"},xDays:{one:"{{count}} dan",two:"{{count}} dni",few:"{{count}} dni",other:"{{count}} dni"},aboutXWeeks:{one:"približno {{count}} teden",two:"približno {{count}} tedna",few:"približno {{count}} tedne",other:"približno {{count}} tednov"},xWeeks:{one:"{{count}} teden",two:"{{count}} tedna",few:"{{count}} tedne",other:"{{count}} tednov"},aboutXMonths:{one:"približno {{count}} mesec",two:"približno {{count}} meseca",few:"približno {{count}} mesece",other:"približno {{count}} mesecev"},xMonths:{one:"{{count}} mesec",two:"{{count}} meseca",few:"{{count}} meseci",other:"{{count}} mesecev"},aboutXYears:{one:"približno {{count}} leto",two:"približno {{count}} leti",few:"približno {{count}} leta",other:"približno {{count}} let"},xYears:{one:"{{count}} leto",two:"{{count}} leti",few:"{{count}} leta",other:"{{count}} let"},overXYears:{one:"več kot {{count}} leto",two:"več kot {{count}} leti",few:"več kot {{count}} leta",other:"več kot {{count}} let"},almostXYears:{one:"skoraj {{count}} leto",two:"skoraj {{count}} leti",few:"skoraj {{count}} leta",other:"skoraj {{count}} let"}},a={lessThanXSeconds:{one:"manj kot {{count}} sekundo",two:"manj kot {{count}} sekundama",few:"manj kot {{count}} sekundami",other:"manj kot {{count}} sekundami"},xSeconds:{one:"{{count}} sekundo",two:"{{count}} sekundama",few:"{{count}} sekundami",other:"{{count}} sekundami"},halfAMinute:"pol minute",lessThanXMinutes:{one:"manj kot {{count}} minuto",two:"manj kot {{count}} minutama",few:"manj kot {{count}} minutami",other:"manj kot {{count}} minutami"},xMinutes:{one:"{{count}} minuto",two:"{{count}} minutama",few:"{{count}} minutami",other:"{{count}} minutami"},aboutXHours:{one:"približno {{count}} uro",two:"približno {{count}} urama",few:"približno {{count}} urami",other:"približno {{count}} urami"},xHours:{one:"{{count}} uro",two:"{{count}} urama",few:"{{count}} urami",other:"{{count}} urami"},xDays:{one:"{{count}} dnem",two:"{{count}} dnevoma",few:"{{count}} dnevi",other:"{{count}} dnevi"},aboutXMonths:{one:"približno {{count}} mesecem",two:"približno {{count}} mesecema",few:"približno {{count}} meseci",other:"približno {{count}} meseci"},xMonths:{one:"{{count}} mesecem",two:"{{count}} mesecema",few:"{{count}} meseci",other:"{{count}} meseci"},aboutXYears:{one:"približno {{count}} letom",two:"približno {{count}} letoma",few:"približno {{count}} leti",other:"približno {{count}} leti"},xYears:{one:"{{count}} letom",two:"{{count}} letoma",few:"{{count}} leti",other:"{{count}} leti"},overXYears:{one:"več kot {{count}} letom",two:"več kot {{count}} letoma",few:"več kot {{count}} leti",other:"več kot {{count}} leti"},almostXYears:{one:"skoraj {{count}} letom",two:"skoraj {{count}} letoma",few:"skoraj {{count}} leti",other:"skoraj {{count}} leti"}},r={lessThanXSeconds:{one:"manj kot {{count}} sekundo",two:"manj kot {{count}} sekundi",few:"manj kot {{count}} sekunde",other:"manj kot {{count}} sekund"},xSeconds:{one:"{{count}} sekundo",two:"{{count}} sekundi",few:"{{count}} sekunde",other:"{{count}} sekund"},halfAMinute:"pol minute",lessThanXMinutes:{one:"manj kot {{count}} minuto",two:"manj kot {{count}} minuti",few:"manj kot {{count}} minute",other:"manj kot {{count}} minut"},xMinutes:{one:"{{count}} minuto",two:"{{count}} minuti",few:"{{count}} minute",other:"{{count}} minut"},aboutXHours:{one:"približno {{count}} uro",two:"približno {{count}} uri",few:"približno {{count}} ure",other:"približno {{count}} ur"},xHours:{one:"{{count}} uro",two:"{{count}} uri",few:"{{count}} ure",other:"{{count}} ur"},xDays:{one:"{{count}} dan",two:"{{count}} dni",few:"{{count}} dni",other:"{{count}} dni"},aboutXMonths:{one:"približno {{count}} mesec",two:"približno {{count}} meseca",few:"približno {{count}} mesece",other:"približno {{count}} mesecev"},xMonths:{one:"{{count}} mesec",two:"{{count}} meseca",few:"{{count}} mesece",other:"{{count}} mesecev"},aboutXYears:{one:"približno {{count}} leto",two:"približno {{count}} leti",few:"približno {{count}} leta",other:"približno {{count}} let"},xYears:{one:"{{count}} leto",two:"{{count}} leti",few:"{{count}} leta",other:"{{count}} let"},overXYears:{one:"več kot {{count}} leto",two:"več kot {{count}} leti",few:"več kot {{count}} leta",other:"več kot {{count}} let"},almostXYears:{one:"skoraj {{count}} leto",two:"skoraj {{count}} leti",few:"skoraj {{count}} leta",other:"skoraj {{count}} let"}};function o(s){switch(s%100){case 1:return"one";case 2:return"two";case 3:case 4:return"few";default:return"other"}}function n(s,u,d){d=d||{};var m=t,f="";if(d.addSuffix&&(d.comparison>0?(m=r,f+="čez "):(m=a,f+="pred ")),typeof m[s]=="string")f+=m[s];else{var _=o(u);f+=m[s][_].replace("{{count}}",u)}return f}},function(l,i,e){var t=e(2),a={full:"EEEE, dd. MMMM y",long:"dd. MMMM y",medium:"d. MMM y",short:"d. MM. yy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:function(r){var o=r.getUTCDay();switch(o){case 0:return"'prejšnjo nedeljo ob' p";case 3:return"'prejšnjo sredo ob' p";case 6:return"'prejšnjo soboto ob' p";default:return"'prejšnji' EEEE 'ob' p"}},yesterday:"'včeraj ob' p",today:"'danes ob' p",tomorrow:"'jutri ob' p",nextWeek:function(r){var o=r.getUTCDay();switch(o){case 0:return"'naslednjo nedeljo ob' p";case 3:return"'naslednjo sredo ob' p";case 6:return"'naslednjo soboto ob' p";default:return"'naslednji' EEEE 'ob' p"}},other:"P"};function a(r,o,n,s){var u=t[r];return typeof u=="function"?u(o):u}},function(l,i,e){var t=e(3);function a(f){var _=Number(f);return String(_).concat(".")}var r={narrow:["pr. n. št.","po n. št."],abbreviated:["pr. n. št.","po n. št."],wide:["pred našim štetjem","po našem štetju"]},o={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan.","feb.","mar.","apr.","maj","jun.","jul.","avg.","sep.","okt.","nov.","dec."],wide:["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"]},n={narrow:["1","2","3","4"],abbreviated:["1. čet.","2. čet.","3. čet.","4. čet."],wide:["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"]},s={narrow:["n","p","t","s","č","p","s"],short:["ned.","pon.","tor.","sre.","čet.","pet.","sob."],abbreviated:["ned.","pon.","tor.","sre.","čet.","pet.","sob."],wide:["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"]},u={narrow:{am:"d",pm:"p",midnight:"24.00",noon:"12.00",morning:"j",afternoon:"p",evening:"v",night:"n"},abbreviated:{am:"dop.",pm:"pop.",midnight:"poln.",noon:"pold.",morning:"jut.",afternoon:"pop.",evening:"več.",night:"noč"},wide:{am:"dop.",pm:"pop.",midnight:"polnoč",noon:"poldne",morning:"jutro",afternoon:"popoldne",evening:"večer",night:"noč"}},d={narrow:{am:"d",pm:"p",midnight:"24.00",noon:"12.00",morning:"zj",afternoon:"p",evening:"zv",night:"po"},abbreviated:{am:"dop.",pm:"pop.",midnight:"opoln.",noon:"opold.",morning:"zjut.",afternoon:"pop.",evening:"zveč.",night:"ponoči"},wide:{am:"dop.",pm:"pop.",midnight:"opolnoči",noon:"opoldne",morning:"zjutraj",afternoon:"popoldan",evening:"zvečer",night:"ponoči"}},m={ordinalNumber:a,era:t.a({values:r,defaultWidth:"wide"}),quarter:t.a({values:n,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)\./i,o=/\d+/i,n={abbreviated:/^(pr\. n\. št\.|po n\. št\.)/i,wide:/^(pred Kristusom|pred na[sš]im [sš]tetjem|po Kristusu|po na[sš]em [sš]tetju|na[sš]ega [sš]tetja)/i},s={any:[/^pr/i,/^(po|na[sš]em)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]\.\s?[čc]et\.?/i,wide:/^[1234]\. [čc]etrtletje/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan\.|feb\.|mar\.|apr\.|maj|jun\.|jul\.|avg\.|sep\.|okt\.|nov\.|dec\.)/i,wide:/^(januar|februar|marec|april|maj|junij|julij|avgust|september|oktober|november|december)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],abbreviated:[/^ja/i,/^fe/i,/^mar/i,/^ap/i,/^maj/i,/^jun/i,/^jul/i,/^av/i,/^s/i,/^o/i,/^n/i,/^d/i],wide:[/^ja/i,/^fe/i,/^mar/i,/^ap/i,/^maj/i,/^jun/i,/^jul/i,/^av/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[nptsčc]/i,short:/^(ned\.|pon\.|tor\.|sre\.|[cč]et\.|pet\.|sob\.)/i,abbreviated:/^(ned\.|pon\.|tor\.|sre\.|[cč]et\.|pet\.|sob\.)/i,wide:/^(nedelja|ponedeljek|torek|sreda|[cč]etrtek|petek|sobota)/i},c={narrow:[/^n/i,/^p/i,/^t/i,/^s/i,/^[cč]/i,/^p/i,/^s/i],any:[/^n/i,/^po/i,/^t/i,/^sr/i,/^[cč]/i,/^pe/i,/^so/i]},v={narrow:/^(d|po?|z?v|n|z?j|24\.00|12\.00)/i,any:/^(dop\.|pop\.|o?poln(\.|o[cč]i?)|o?pold(\.|ne)|z?ve[cč](\.|er)|(po)?no[cč]i?|popold(ne|an)|jut(\.|ro)|zjut(\.|raj))/i},g={narrow:{am:/^d/i,pm:/^p/i,midnight:/^24/i,noon:/^12/i,morning:/^(z?j)/i,afternoon:/^p/i,evening:/^(z?v)/i,night:/^(n|po)/i},any:{am:/^dop\./i,pm:/^pop\./i,midnight:/^o?poln/i,noon:/^o?pold/i,morning:/j/i,afternoon:/^pop\./i,evening:/^z?ve/i,night:/(po)?no/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"wide"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(780),a=e(781),r=e(782),o=e(783),n=e(784),s={code:"sr",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:{standalone:"мање од 1 секунде",withPrepositionAgo:"мање од 1 секунде",withPrepositionIn:"мање од 1 секунду"},dual:"мање од {{count}} секунде",other:"мање од {{count}} секунди"},xSeconds:{one:{standalone:"1 секунда",withPrepositionAgo:"1 секунде",withPrepositionIn:"1 секунду"},dual:"{{count}} секунде",other:"{{count}} секунди"},halfAMinute:"пола минуте",lessThanXMinutes:{one:{standalone:"мање од 1 минуте",withPrepositionAgo:"мање од 1 минуте",withPrepositionIn:"мање од 1 минуту"},dual:"мање од {{count}} минуте",other:"мање од {{count}} минута"},xMinutes:{one:{standalone:"1 минута",withPrepositionAgo:"1 минуте",withPrepositionIn:"1 минуту"},dual:"{{count}} минуте",other:"{{count}} минута"},aboutXHours:{one:{standalone:"око 1 сат",withPrepositionAgo:"око 1 сат",withPrepositionIn:"око 1 сат"},dual:"око {{count}} сата",other:"око {{count}} сати"},xHours:{one:{standalone:"1 сат",withPrepositionAgo:"1 сат",withPrepositionIn:"1 сат"},dual:"{{count}} сата",other:"{{count}} сати"},xDays:{one:{standalone:"1 дан",withPrepositionAgo:"1 дан",withPrepositionIn:"1 дан"},dual:"{{count}} дана",other:"{{count}} дана"},aboutXWeeks:{one:{standalone:"око 1 недељу",withPrepositionAgo:"око 1 недељу",withPrepositionIn:"око 1 недељу"},dual:"око {{count}} недеље",other:"око {{count}} недеље"},xWeeks:{one:{standalone:"1 недељу",withPrepositionAgo:"1 недељу",withPrepositionIn:"1 недељу"},dual:"{{count}} недеље",other:"{{count}} недеље"},aboutXMonths:{one:{standalone:"око 1 месец",withPrepositionAgo:"око 1 месец",withPrepositionIn:"око 1 месец"},dual:"око {{count}} месеца",other:"око {{count}} месеци"},xMonths:{one:{standalone:"1 месец",withPrepositionAgo:"1 месец",withPrepositionIn:"1 месец"},dual:"{{count}} месеца",other:"{{count}} месеци"},aboutXYears:{one:{standalone:"око 1 годину",withPrepositionAgo:"око 1 годину",withPrepositionIn:"око 1 годину"},dual:"око {{count}} године",other:"око {{count}} година"},xYears:{one:{standalone:"1 година",withPrepositionAgo:"1 године",withPrepositionIn:"1 годину"},dual:"{{count}} године",other:"{{count}} година"},overXYears:{one:{standalone:"преко 1 годину",withPrepositionAgo:"преко 1 годину",withPrepositionIn:"преко 1 годину"},dual:"преко {{count}} године",other:"преко {{count}} година"},almostXYears:{one:{standalone:"готово 1 годину",withPrepositionAgo:"готово 1 годину",withPrepositionIn:"готово 1 годину"},dual:"готово {{count}} године",other:"готово {{count}} година"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?n.addSuffix?n.comparison>0?s=t[r].one.withPrepositionIn:s=t[r].one.withPrepositionAgo:s=t[r].one.standalone:o%10>1&&o%10<5&&String(o).substr(-2,1)!=="1"?s=t[r].dual.replace("{{count}}",o):s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"за "+s:"пре "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d. MMMM yyyy.",long:"d. MMMM yyyy.",medium:"d. MMM yy.",short:"dd. MM. yy."},r={full:"HH:mm:ss (zzzz)",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'у' {{time}}",long:"{{date}} 'у' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:function(r){var o=r.getUTCDay();switch(o){case 0:return"'прошле недеље у' p";case 3:return"'прошле среде у' p";case 6:return"'прошле суботе у' p";default:return"'прошли' EEEE 'у' p"}},yesterday:"'јуче у' p",today:"'данас у' p",tomorrow:"'сутра у' p",nextWeek:function(r){var o=r.getUTCDay();switch(o){case 0:return"'следеће недеље у' p";case 3:return"'следећу среду у' p";case 6:return"'следећу суботу у' p";default:return"'следећи' EEEE 'у' p"}},other:"P"};function a(r,o,n,s){var u=t[r];return typeof u=="function"?u(o):u}},function(l,i,e){var t=e(3);function a(_){var c=Number(_);return String(c).concat(".")}var r={narrow:["пр.н.е.","АД"],abbreviated:["пр. Хр.","по. Хр."],wide:["Пре Христа","После Христа"]},o={narrow:["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],abbreviated:["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец"],wide:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"]},n={narrow:["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],abbreviated:["јан","феб","мар","апр","мај","јун","јул","авг","сеп","окт","нов","дец"],wide:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"]},s={narrow:["1.","2.","3.","4."],abbreviated:["1. кв.","2. кв.","3. кв.","4. кв."],wide:["1. квартал","2. квартал","3. квартал","4. квартал"]},u={narrow:["Н","П","У","С","Ч","П","С"],short:["нед","пон","уто","сре","чет","пет","суб"],abbreviated:["нед","пон","уто","сре","чет","пет","суб"],wide:["недеља","понедељак","уторак","среда","четвртак","петак","субота"]},d={narrow:{am:"АМ",pm:"ПМ",midnight:"поноћ",noon:"подне",morning:"ујутру",afternoon:"поподне",evening:"увече",night:"ноћу"},abbreviated:{am:"АМ",pm:"ПМ",midnight:"поноћ",noon:"подне",morning:"ујутру",afternoon:"поподне",evening:"увече",night:"ноћу"},wide:{am:"AM",pm:"PM",midnight:"поноћ",noon:"подне",morning:"ујутру",afternoon:"после подне",evening:"увече",night:"ноћу"}},m={narrow:{am:"AM",pm:"PM",midnight:"поноћ",noon:"подне",morning:"ујутру",afternoon:"поподне",evening:"увече",night:"ноћу"},abbreviated:{am:"AM",pm:"PM",midnight:"поноћ",noon:"подне",morning:"ујутру",afternoon:"поподне",evening:"увече",night:"ноћу"},wide:{am:"AM",pm:"PM",midnight:"поноћ",noon:"подне",morning:"ујутру",afternoon:"после подне",evening:"увече",night:"ноћу"}},f={ordinalNumber:a,era:t.a({values:r,defaultWidth:"wide"}),quarter:t.a({values:s,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:u,defaultWidth:"wide"}),dayPeriod:t.a({values:m,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)\./i,o=/\d+/i,n={narrow:/^(пр\.н\.е\.|АД)/i,abbreviated:/^(пр\.\s?Хр\.|по\.\s?Хр\.)/i,wide:/^(Пре Христа|пре нове ере|После Христа|нова ера)/i},s={any:[/^пр/i,/^(по|нова)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]\.\s?кв\.?/i,wide:/^[1234]\. квартал/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(10|11|12|[123456789])\./i,abbreviated:/^(јан|феб|мар|апр|мај|јун|јул|авг|сеп|окт|нов|дец)/i,wide:/^((јануар|јануара)|(фебруар|фебруара)|(март|марта)|(април|априла)|(мја|маја)|(јун|јуна)|(јул|јула)|(август|августа)|(септембар|септембра)|(октобар|октобра)|(новембар|новембра)|(децембар|децембра))/i},f={narrow:[/(10|11|12|[123456789])/i],any:[/^ја/i,/^ф/i,/^мар/i,/^ап/i,/^мај/i,/^јун/i,/^јул/i,/^авг/i,/^с/i,/^о/i,/^н/i,/^д/i]},_={narrow:/^[пусчн]/i,short:/^(нед|пон|уто|сре|чет|пет|суб)/i,abbreviated:/^(нед|пон|уто|сре|чет|пет|суб)/i,wide:/^(недеља|понедељак|уторак|среда|четвртак|петак|субота)/i},c={narrow:[/^п/i,/^у/i,/^с/i,/^ч/i,/^н/i],any:[/^нед/i,/^пон/i,/^уто/i,/^сре/i,/^чет/i,/^пет/i,/^суб/i]},v={any:/^(ам|пм|поноћ|(по)?подне|увече|ноћу|после подне|ујутру)/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^поно/i,noon:/^под/i,morning:/ујутру/i,afternoon:/(после\s|по)+подне/i,evening:/(увече)/i,night:/(ноћу)/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(786),a=e(787),r=e(788),o=e(789),n=e(790),s={code:"sr-Latn",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:{standalone:"manje od 1 sekunde",withPrepositionAgo:"manje od 1 sekunde",withPrepositionIn:"manje od 1 sekundu"},dual:"manje od {{count}} sekunde",other:"manje od {{count}} sekundi"},xSeconds:{one:{standalone:"1 sekunda",withPrepositionAgo:"1 sekunde",withPrepositionIn:"1 sekundu"},dual:"{{count}} sekunde",other:"{{count}} sekundi"},halfAMinute:"pola minute",lessThanXMinutes:{one:{standalone:"manje od 1 minute",withPrepositionAgo:"manje od 1 minute",withPrepositionIn:"manje od 1 minutu"},dual:"manje od {{count}} minute",other:"manje od {{count}} minuta"},xMinutes:{one:{standalone:"1 minuta",withPrepositionAgo:"1 minute",withPrepositionIn:"1 minutu"},dual:"{{count}} minute",other:"{{count}} minuta"},aboutXHours:{one:{standalone:"oko 1 sat",withPrepositionAgo:"oko 1 sat",withPrepositionIn:"oko 1 sat"},dual:"oko {{count}} sata",other:"oko {{count}} sati"},xHours:{one:{standalone:"1 sat",withPrepositionAgo:"1 sat",withPrepositionIn:"1 sat"},dual:"{{count}} sata",other:"{{count}} sati"},xDays:{one:{standalone:"1 dan",withPrepositionAgo:"1 dan",withPrepositionIn:"1 dan"},dual:"{{count}} dana",other:"{{count}} dana"},aboutXWeeks:{one:{standalone:"oko 1 nedelju",withPrepositionAgo:"oko 1 nedelju",withPrepositionIn:"oko 1 nedelju"},dual:"oko {{count}} nedelje",other:"oko {{count}} nedelje"},xWeeks:{one:{standalone:"1 nedelju",withPrepositionAgo:"1 nedelju",withPrepositionIn:"1 nedelju"},dual:"{{count}} nedelje",other:"{{count}} nedelje"},aboutXMonths:{one:{standalone:"oko 1 mesec",withPrepositionAgo:"oko 1 mesec",withPrepositionIn:"oko 1 mesec"},dual:"oko {{count}} meseca",other:"oko {{count}} meseci"},xMonths:{one:{standalone:"1 mesec",withPrepositionAgo:"1 mesec",withPrepositionIn:"1 mesec"},dual:"{{count}} meseca",other:"{{count}} meseci"},aboutXYears:{one:{standalone:"oko 1 godinu",withPrepositionAgo:"oko 1 godinu",withPrepositionIn:"oko 1 godinu"},dual:"oko {{count}} godine",other:"oko {{count}} godina"},xYears:{one:{standalone:"1 godina",withPrepositionAgo:"1 godine",withPrepositionIn:"1 godinu"},dual:"{{count}} godine",other:"{{count}} godina"},overXYears:{one:{standalone:"preko 1 godinu",withPrepositionAgo:"preko 1 godinu",withPrepositionIn:"preko 1 godinu"},dual:"preko {{count}} godine",other:"preko {{count}} godina"},almostXYears:{one:{standalone:"gotovo 1 godinu",withPrepositionAgo:"gotovo 1 godinu",withPrepositionIn:"gotovo 1 godinu"},dual:"gotovo {{count}} godine",other:"gotovo {{count}} godina"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?n.addSuffix?n.comparison>0?s=t[r].one.withPrepositionIn:s=t[r].one.withPrepositionAgo:s=t[r].one.standalone:o%10>1&&o%10<5&&String(o).substr(-2,1)!=="1"?s=t[r].dual.replace("{{count}}",o):s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?"za "+s:"pre "+s:s}},function(l,i,e){var t=e(2),a={full:"EEEE, d. MMMM yyyy.",long:"d. MMMM yyyy.",medium:"d. MMM yy.",short:"dd. MM. yy."},r={full:"HH:mm:ss (zzzz)",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'u' {{time}}",long:"{{date}} 'u' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:function(r){var o=r.getUTCDay();switch(o){case 0:return"'prošle nedelje u' p";case 3:return"'prošle srede u' p";case 6:return"'prošle subote u' p";default:return"'prošli' EEEE 'u' p"}},yesterday:"'juče u' p",today:"'danas u' p",tomorrow:"'sutra u' p",nextWeek:function(r){var o=r.getUTCDay();switch(o){case 0:return"'sledeće nedelje u' p";case 3:return"'sledeću sredu u' p";case 6:return"'sledeću subotu u' p";default:return"'sledeći' EEEE 'u' p"}},other:"P"};function a(r,o,n,s){var u=t[r];return typeof u=="function"?u(o):u}},function(l,i,e){var t=e(3);function a(_){var c=Number(_);return String(c).concat(".")}var r={narrow:["pr.n.e.","AD"],abbreviated:["pr. Hr.","po. Hr."],wide:["Pre Hrista","Posle Hrista"]},o={narrow:["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],abbreviated:["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],wide:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"]},n={narrow:["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],abbreviated:["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],wide:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"]},s={narrow:["1.","2.","3.","4."],abbreviated:["1. kv.","2. kv.","3. kv.","4. kv."],wide:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"]},u={narrow:["N","P","U","S","Č","P","S"],short:["ned","pon","uto","sre","čet","pet","sub"],abbreviated:["ned","pon","uto","sre","čet","pet","sub"],wide:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"]},d={narrow:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutru",afternoon:"popodne",evening:"uveče",night:"noću"},abbreviated:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutru",afternoon:"popodne",evening:"uveče",night:"noću"},wide:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutru",afternoon:"posle podne",evening:"uveče",night:"noću"}},m={narrow:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutru",afternoon:"popodne",evening:"uveče",night:"noću"},abbreviated:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutru",afternoon:"popodne",evening:"uveče",night:"noću"},wide:{am:"AM",pm:"PM",midnight:"ponoć",noon:"podne",morning:"ujutru",afternoon:"posle podne",evening:"uveče",night:"noću"}},f={ordinalNumber:a,era:t.a({values:r,defaultWidth:"wide"}),quarter:t.a({values:s,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:u,defaultWidth:"wide"}),dayPeriod:t.a({values:m,defaultWidth:"wide",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(5),a=e(4),r=/^(\d+)\./i,o=/\d+/i,n={narrow:/^(pr\.n\.e\.|AD)/i,abbreviated:/^(pr\.\s?Hr\.|po\.\s?Hr\.)/i,wide:/^(Pre Hrista|pre nove ere|Posle Hrista|nova era)/i},s={any:[/^pr/i,/^(po|nova)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]\.\s?kv\.?/i,wide:/^[1234]\. kvartal/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(10|11|12|[123456789])\./i,abbreviated:/^(jan|feb|mar|apr|maj|jun|jul|avg|sep|okt|nov|dec)/i,wide:/^((januar|januara)|(februar|februara)|(mart|marta)|(april|aprila)|(maj|maja)|(jun|juna)|(jul|jula)|(avgust|avgusta)|(septembar|septembra)|(oktobar|oktobra)|(novembar|novembra)|(decembar|decembra))/i},f={narrow:[/(10|11|12|[123456789])/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^maj/i,/^jun/i,/^jul/i,/^avg/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[npusčc]/i,short:/^(ned|pon|uto|sre|(čet|cet)|pet|sub)/i,abbreviated:/^(ned|pon|uto|sre|(čet|cet)|pet|sub)/i,wide:/^(nedelja|ponedeljak|utorak|sreda|(četvrtak|cetvrtak)|petak|subota)/i},c={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},v={any:/^(am|pm|ponoc|ponoć|(po)?podne|uvece|uveče|noću|posle podne|ujutru)/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^pono/i,noon:/^pod/i,morning:/jutro/i,afternoon:/(posle\s|po)+podne/i,evening:/(uvece|uveče)/i,night:/(nocu|noću)/i}},P={ordinalNumber:a.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:t.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:t.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:t.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:t.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:t.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(792),a=e(793),r=e(794),o=e(795),n=e(796),s={code:"sv",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=r;var t={lessThanXSeconds:{singular:"mindre än en sekund",plural:"mindre än {{count}} sekunder"},xSeconds:{singular:"en sekund",plural:"{{count}} sekunder"},halfAMinute:"en halv minut",lessThanXMinutes:{singular:"mindre än en minut",plural:"mindre än {{count}} minuter"},xMinutes:{singular:"en minut",plural:"{{count}} minuter"},aboutXHours:{singular:"ungefär en timme",plural:"ungefär {{count}} timmar"},xHours:{singular:"en timme",plural:"{{count}} timmar"},xDays:{singular:"en dag",plural:"{{count}} dagar"},aboutXWeeks:{singular:"ungefär en vecka",plural:"ungefär {{count}} vecka"},xWeeks:{singular:"en vecka",plural:"{{count}} vecka"},aboutXMonths:{singular:"ungefär en månad",plural:"ungefär {{count}} månader"},xMonths:{singular:"en månad",plural:"{{count}} månader"},aboutXYears:{singular:"ungefär ett år",plural:"ungefär {{count}} år"},xYears:{singular:"ett år",plural:"{{count}} år"},overXYears:{singular:"över ett år",plural:"över {{count}} år"},almostXYears:{singular:"nästan ett år",plural:"nästan {{count}} år"}},a=["noll","en","två","tre","fyra","fem","sex","sju","åtta","nio","tio","elva","tolv"];function r(o,n,s){s=s||{onlyNumeric:!1};var u=t[o],d;return typeof u=="string"?d=u:n===0||n>1?s.onlyNumeric?d=u.plural.replace("{{count}}",n):d=u.plural.replace("{{count}}",n<13?a[n]:n):d=u.singular,s.addSuffix?s.comparison>0?"om "+d:d+" sedan":d}},function(l,i,e){var t=e(2),a={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"y-MM-dd"},r={full:"'kl'. HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'kl.' {{time}}",long:"{{date}} 'kl.' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'i' EEEE's kl.' p",yesterday:"'igår kl.' p",today:"'idag kl.' p",tomorrow:"'imorgon kl.' p",nextWeek:"EEEE 'kl.' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["f.Kr.","e.Kr."],abbreviated:["f.Kr.","e.Kr."],wide:["före Kristus","efter Kristus"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],wide:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},n={narrow:["S","M","T","O","T","F","L"],short:["sö","må","ti","on","to","fr","lö"],abbreviated:["sön","mån","tis","ons","tor","fre","lör"],wide:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},s={narrow:{am:"fm",pm:"em",midnight:"midnatt",noon:"middag",morning:"morg.",afternoon:"efterm.",evening:"kväll",night:"natt"},abbreviated:{am:"f.m.",pm:"e.m.",midnight:"midnatt",noon:"middag",morning:"morgon",afternoon:"efterm.",evening:"kväll",night:"natt"},wide:{am:"förmiddag",pm:"eftermiddag",midnight:"midnatt",noon:"middag",morning:"morgon",afternoon:"eftermiddag",evening:"kväll",night:"natt"}},u={narrow:{am:"fm",pm:"em",midnight:"midnatt",noon:"middag",morning:"på morg.",afternoon:"på efterm.",evening:"på kvällen",night:"på natten"},abbreviated:{am:"fm",pm:"em",midnight:"midnatt",noon:"middag",morning:"på morg.",afternoon:"på efterm.",evening:"på kvällen",night:"på natten"},wide:{am:"fm",pm:"em",midnight:"midnatt",noon:"middag",morning:"på morgonen",afternoon:"på eftermiddagen",evening:"på kvällen",night:"på natten"}};function d(f){var _=Number(f),c=_%100;if(c>20||c<10)switch(c%10){case 1:case 2:return _+":a"}return _+":e"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(:a|:e)?/i,o=/\d+/i,n={narrow:/^(f\.? ?Kr\.?|f\.? ?v\.? ?t\.?|e\.? ?Kr\.?|v\.? ?t\.?)/i,abbreviated:/^(f\.? ?Kr\.?|f\.? ?v\.? ?t\.?|e\.? ?Kr\.?|v\.? ?t\.?)/i,wide:/^(före Kristus|före vår tid|efter Kristus|vår tid)/i},s={any:[/^f/i,/^[ev]/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](:a|:e)? kvartalet/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|maj|jun|jul|aug|sep|okt|nov|dec)\.?/i,wide:/^(januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|november|december)/i},f={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^maj/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[smtofl]/i,short:/^(sö|må|ti|on|to|fr|lö)/i,abbreviated:/^(sön|mån|tis|ons|tor|fre|lör)/i,wide:/^(söndag|måndag|tisdag|onsdag|torsdag|fredag|lördag)/i},c={any:[/^s/i,/^m/i,/^ti/i,/^o/i,/^to/i,/^f/i,/^l/i]},v={any:/^([fe]\.?\s?m\.?|midn(att)?|midd(ag)?|(på) (morgonen|eftermiddagen|kvällen|natten))/i},g={any:{am:/^f/i,pm:/^e/i,midnight:/^midn/i,noon:/^midd/i,morning:/morgon/i,afternoon:/eftermiddag/i,evening:/kväll/i,night:/natt/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(798),a=e(799),r=e(800),o=e(801),n=e(802),s={code:"ta",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=r;var t={lessThanXSeconds:{one:{default:"ஒரு வினாடிக்கு குறைவாக",in:"ஒரு வினாடிக்குள்",ago:"ஒரு வினாடிக்கு முன்பு"},other:{default:"{{count}} வினாடிகளுக்கு குறைவாக",in:"{{count}} வினாடிகளுக்குள்",ago:"{{count}} வினாடிகளுக்கு முன்பு"}},xSeconds:{one:{default:"1 வினாடி",in:"1 வினாடியில்",ago:"1 வினாடி முன்பு"},other:{default:"{{count}} விநாடிகள்",in:"{{count}} வினாடிகளில்",ago:"{{count}} விநாடிகளுக்கு முன்பு"}},halfAMinute:{default:"அரை நிமிடம்",in:"அரை நிமிடத்தில்",ago:"அரை நிமிடம் முன்பு"},lessThanXMinutes:{one:{default:"ஒரு நிமிடத்திற்கும் குறைவாக",in:"ஒரு நிமிடத்திற்குள்",ago:"ஒரு நிமிடத்திற்கு முன்பு"},other:{default:"{{count}} நிமிடங்களுக்கும் குறைவாக",in:"{{count}} நிமிடங்களுக்குள்",ago:"{{count}} நிமிடங்களுக்கு முன்பு"}},xMinutes:{one:{default:"1 நிமிடம்",in:"1 நிமிடத்தில்",ago:"1 நிமிடம் முன்பு"},other:{default:"{{count}} நிமிடங்கள்",in:"{{count}} நிமிடங்களில்",ago:"{{count}} நிமிடங்களுக்கு முன்பு"}},aboutXHours:{one:{default:"சுமார் 1 மணி நேரம்",in:"சுமார் 1 மணி நேரத்தில்",ago:"சுமார் 1 மணி நேரத்திற்கு முன்பு"},other:{default:"சுமார் {{count}} மணி நேரம்",in:"சுமார் {{count}} மணி நேரத்திற்கு முன்பு",ago:"சுமார் {{count}} மணி நேரத்தில்"}},xHours:{one:{default:"1 மணி நேரம்",in:"1 மணி நேரத்தில்",ago:"1 மணி நேரத்திற்கு முன்பு"},other:{default:"{{count}} மணி நேரம்",in:"{{count}} மணி நேரத்தில்",ago:"{{count}} மணி நேரத்திற்கு முன்பு"}},xDays:{one:{default:"1 நாள்",in:"1 நாளில்",ago:"1 நாள் முன்பு"},other:{default:"{{count}} நாட்கள்",in:"{{count}} நாட்களில்",ago:"{{count}} நாட்களுக்கு முன்பு"}},aboutXWeeks:{one:{default:"சுமார் 1 வாரம்",in:"சுமார் 1 வாரத்தில்",ago:"சுமார் 1 வாரம் முன்பு"},other:{default:"சுமார் {{count}} வாரங்கள்",in:"சுமார் {{count}} வாரங்களில்",ago:"சுமார் {{count}} வாரங்களுக்கு முன்பு"}},xWeeks:{one:{default:"1 வாரம்",in:"1 வாரத்தில்",ago:"1 வாரம் முன்பு"},other:{default:"{{count}} வாரங்கள்",in:"{{count}} வாரங்களில்",ago:"{{count}} வாரங்களுக்கு முன்பு"}},aboutXMonths:{one:{default:"சுமார் 1 மாதம்",in:"சுமார் 1 மாதத்தில்",ago:"சுமார் 1 மாதத்திற்கு முன்பு"},other:{default:"சுமார் {{count}} மாதங்கள்",in:"சுமார் {{count}} மாதங்களில்",ago:"சுமார் {{count}} மாதங்களுக்கு முன்பு"}},xMonths:{one:{default:"1 மாதம்",in:"1 மாதத்தில்",ago:"1 மாதம் முன்பு"},other:{default:"{{count}} மாதங்கள்",in:"{{count}} மாதங்களில்",ago:"{{count}} மாதங்களுக்கு முன்பு"}},aboutXYears:{one:{default:"சுமார் 1 வருடம்",in:"சுமார் 1 ஆண்டில்",ago:"சுமார் 1 வருடம் முன்பு"},other:{default:"சுமார் {{count}} ஆண்டுகள்",in:"சுமார் {{count}} ஆண்டுகளில்",ago:"சுமார் {{count}} ஆண்டுகளுக்கு முன்பு"}},xYears:{one:{default:"1 வருடம்",in:"1 ஆண்டில்",ago:"1 வருடம் முன்பு"},other:{default:"{{count}} ஆண்டுகள்",in:"{{count}} ஆண்டுகளில்",ago:"{{count}} ஆண்டுகளுக்கு முன்பு"}},overXYears:{one:{default:"1 வருடத்திற்கு மேல்",in:"1 வருடத்திற்கும் மேலாக",ago:"1 வருடம் முன்பு"},other:{default:"{{count}} ஆண்டுகளுக்கும் மேலாக",in:"{{count}} ஆண்டுகளில்",ago:"{{count}} ஆண்டுகளுக்கு முன்பு"}},almostXYears:{one:{default:"கிட்டத்தட்ட 1 வருடம்",in:"கிட்டத்தட்ட 1 ஆண்டில்",ago:"கிட்டத்தட்ட 1 வருடம் முன்பு"},other:{default:"கிட்டத்தட்ட {{count}} ஆண்டுகள்",in:"கிட்டத்தட்ட {{count}} ஆண்டுகளில்",ago:"கிட்டத்தட்ட {{count}} ஆண்டுகளுக்கு முன்பு"}}};function a(o,n){return n.addSuffix?n.comparison>0?o.in:o.ago:o.default}function r(o,n){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},u;return t[o].default?u=a(t[o],s):n===1?u=a(t[o].one,s):u=a(t[o].other,s),u.replace("{{count}}",n)}},function(l,i,e){var t=e(2),a={full:"EEEE, d MMMM, y",long:"d MMMM, y",medium:"d MMM, y",short:"d/M/yy"},r={full:"a h:mm:ss zzzz",long:"a h:mm:ss z",medium:"a h:mm:ss",short:"a h:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'கடந்த' eeee p 'மணிக்கு'",yesterday:"'நேற்று ' p 'மணிக்கு'",today:"'இன்று ' p 'மணிக்கு'",tomorrow:"'நாளை ' p 'மணிக்கு'",nextWeek:"eeee p 'மணிக்கு'",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["கி.மு.","கி.பி."],abbreviated:["கி.மு.","கி.பி."],wide:["கிறிஸ்துவுக்கு முன்","அன்னோ டோமினி"]},r={narrow:["1","2","3","4"],abbreviated:["காலா.1","காலா.2","காலா.3","காலா.4"],wide:["ஒன்றாம் காலாண்டு","இரண்டாம் காலாண்டு","மூன்றாம் காலாண்டு","நான்காம் காலாண்டு"]},o={narrow:["ஜ","பி","மா","ஏ","மே","ஜூ","ஜூ","ஆ","செ","அ","ந","டி"],abbreviated:["ஜன.","பிப்.","மார்.","ஏப்.","மே","ஜூன்","ஜூலை","ஆக.","செப்.","அக்.","நவ.","டிச."],wide:["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்ட்","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"]},n={narrow:["ஞா","தி","செ","பு","வி","வெ","ச"],short:["ஞா","தி","செ","பு","வி","வெ","ச"],abbreviated:["ஞாயி.","திங்.","செவ்.","புத.","வியா.","வெள்.","சனி"],wide:["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"]},s={narrow:{am:"மு.ப",pm:"பி.ப",midnight:"நள்.",noon:"நண்.",morning:"கா.",afternoon:"மதி.",evening:"மா.",night:"இர."},abbreviated:{am:"முற்பகல்",pm:"பிற்பகல்",midnight:"நள்ளிரவு",noon:"நண்பகல்",morning:"காலை",afternoon:"மதியம்",evening:"மாலை",night:"இரவு"},wide:{am:"முற்பகல்",pm:"பிற்பகல்",midnight:"நள்ளிரவு",noon:"நண்பகல்",morning:"காலை",afternoon:"மதியம்",evening:"மாலை",night:"இரவு"}},u={narrow:{am:"மு.ப",pm:"பி.ப",midnight:"நள்.",noon:"நண்.",morning:"கா.",afternoon:"மதி.",evening:"மா.",night:"இர."},abbreviated:{am:"முற்பகல்",pm:"பிற்பகல்",midnight:"நள்ளிரவு",noon:"நண்பகல்",morning:"காலை",afternoon:"மதியம்",evening:"மாலை",night:"இரவு"},wide:{am:"முற்பகல்",pm:"பிற்பகல்",midnight:"நள்ளிரவு",noon:"நண்பகல்",morning:"காலை",afternoon:"மதியம்",evening:"மாலை",night:"இரவு"}};function d(f,_){var c=Number(f);return c}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(வது)?/i,o=/\d+/i,n={narrow:/^(கி.மு.|கி.பி.)/i,abbreviated:/^(கி\.?\s?மு\.?|கி\.?\s?பி\.?)/,wide:/^(கிறிஸ்துவுக்கு\sமுன்|அன்னோ\sடோமினி)/i},s={any:[/கி\.?\s?மு\.?/,/கி\.?\s?பி\.?/]},u={narrow:/^[1234]/i,abbreviated:/^காலா.[1234]/i,wide:/^(ஒன்றாம்|இரண்டாம்|மூன்றாம்|நான்காம்) காலாண்டு/i},d={narrow:[/1/i,/2/i,/3/i,/4/i],any:[/(1|காலா.1|ஒன்றாம்)/i,/(2|காலா.2|இரண்டாம்)/i,/(3|காலா.3|மூன்றாம்)/i,/(4|காலா.4|நான்காம்)/i]},m={narrow:/^(ஜ|பி|மா|ஏ|மே|ஜூ|ஆ|செ|அ|ந|டி)$/i,abbreviated:/^(ஜன.|பிப்.|மார்.|ஏப்.|மே|ஜூன்|ஜூலை|ஆக.|செப்.|அக்.|நவ.|டிச.)/i,wide:/^(ஜனவரி|பிப்ரவரி|மார்ச்|ஏப்ரல்|மே|ஜூன்|ஜூலை|ஆகஸ்ட்|செப்டம்பர்|அக்டோபர்|நவம்பர்|டிசம்பர்)/i},f={narrow:[/^ஜ$/i,/^பி/i,/^மா/i,/^ஏ/i,/^மே/i,/^ஜூ/i,/^ஜூ/i,/^ஆ/i,/^செ/i,/^அ/i,/^ந/i,/^டி/i],any:[/^ஜன/i,/^பி/i,/^மா/i,/^ஏ/i,/^மே/i,/^ஜூன்/i,/^ஜூலை/i,/^ஆ/i,/^செ/i,/^அ/i,/^ந/i,/^டி/i]},_={narrow:/^(ஞா|தி|செ|பு|வி|வெ|ச)/i,short:/^(ஞா|தி|செ|பு|வி|வெ|ச)/i,abbreviated:/^(ஞாயி.|திங்.|செவ்.|புத.|வியா.|வெள்.|சனி)/i,wide:/^(ஞாயிறு|திங்கள்|செவ்வாய்|புதன்|வியாழன்|வெள்ளி|சனி)/i},c={narrow:[/^ஞா/i,/^தி/i,/^செ/i,/^பு/i,/^வி/i,/^வெ/i,/^ச/i],any:[/^ஞா/i,/^தி/i,/^செ/i,/^பு/i,/^வி/i,/^வெ/i,/^ச/i]},v={narrow:/^(மு.ப|பி.ப|நள்|நண்|காலை|மதியம்|மாலை|இரவு)/i,any:/^(மு.ப|பி.ப|முற்பகல்|பிற்பகல்|நள்ளிரவு|நண்பகல்|காலை|மதியம்|மாலை|இரவு)/i},g={any:{am:/^மு/i,pm:/^பி/i,midnight:/^நள்/i,noon:/^நண்/i,morning:/காலை/i,afternoon:/மதியம்/i,evening:/மாலை/i,night:/இரவு/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(804),a=e(805),r=e(806),o=e(807),n=e(808),s={code:"te",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{standalone:{one:"సెకను కన్నా తక్కువ",other:"{{count}} సెకన్ల కన్నా తక్కువ"},withPreposition:{one:"సెకను",other:"{{count}} సెకన్ల"}},xSeconds:{standalone:{one:"ఒక సెకను",other:"{{count}} సెకన్ల"},withPreposition:{one:"ఒక సెకను",other:"{{count}} సెకన్ల"}},halfAMinute:{standalone:"అర నిమిషం",withPreposition:"అర నిమిషం"},lessThanXMinutes:{standalone:{one:"ఒక నిమిషం కన్నా తక్కువ",other:"{{count}} నిమిషాల కన్నా తక్కువ"},withPreposition:{one:"ఒక నిమిషం",other:"{{count}} నిమిషాల"}},xMinutes:{standalone:{one:"ఒక నిమిషం",other:"{{count}} నిమిషాలు"},withPreposition:{one:"ఒక నిమిషం",other:"{{count}} నిమిషాల"}},aboutXHours:{standalone:{one:"సుమారు ఒక గంట",other:"సుమారు {{count}} గంటలు"},withPreposition:{one:"సుమారు ఒక గంట",other:"సుమారు {{count}} గంటల"}},xHours:{standalone:{one:"ఒక గంట",other:"{{count}} గంటలు"},withPreposition:{one:"ఒక గంట",other:"{{count}} గంటల"}},xDays:{standalone:{one:"ఒక రోజు",other:"{{count}} రోజులు"},withPreposition:{one:"ఒక రోజు",other:"{{count}} రోజుల"}},aboutXWeeks:{standalone:{one:"సుమారు ఒక వారం",other:"సుమారు {{count}} వారాలు"},withPreposition:{one:"సుమారు ఒక వారం",other:"సుమారు {{count}} వారాలల"}},xWeeks:{standalone:{one:"ఒక వారం",other:"{{count}} వారాలు"},withPreposition:{one:"ఒక వారం",other:"{{count}} వారాలల"}},aboutXMonths:{standalone:{one:"సుమారు ఒక నెల",other:"సుమారు {{count}} నెలలు"},withPreposition:{one:"సుమారు ఒక నెల",other:"సుమారు {{count}} నెలల"}},xMonths:{standalone:{one:"ఒక నెల",other:"{{count}} నెలలు"},withPreposition:{one:"ఒక నెల",other:"{{count}} నెలల"}},aboutXYears:{standalone:{one:"సుమారు ఒక సంవత్సరం",other:"సుమారు {{count}} సంవత్సరాలు"},withPreposition:{one:"సుమారు ఒక సంవత్సరం",other:"సుమారు {{count}} సంవత్సరాల"}},xYears:{standalone:{one:"ఒక సంవత్సరం",other:"{{count}} సంవత్సరాలు"},withPreposition:{one:"ఒక సంవత్సరం",other:"{{count}} సంవత్సరాల"}},overXYears:{standalone:{one:"ఒక సంవత్సరం పైగా",other:"{{count}} సంవత్సరాలకు పైగా"},withPreposition:{one:"ఒక సంవత్సరం",other:"{{count}} సంవత్సరాల"}},almostXYears:{standalone:{one:"దాదాపు ఒక సంవత్సరం",other:"దాదాపు {{count}} సంవత్సరాలు"},withPreposition:{one:"దాదాపు ఒక సంవత్సరం",other:"దాదాపు {{count}} సంవత్సరాల"}}};function a(r,o,n){n=n||{};var s=n.addSuffix?t[r].withPreposition:t[r].standalone,u;return typeof s=="string"?u=s:o===1?u=s.one:u=s.other.replace("{{count}}",o),n.addSuffix?n.comparison>0?u+"లో":u+" క్రితం":u}},function(l,i,e){var t=e(2),a={full:"d, MMMM y, EEEE",long:"d MMMM, y",medium:"d MMM, y",short:"dd-MM-yy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} {{time}}'కి'",long:"{{date}} {{time}}'కి'",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'గత' eeee p",yesterday:"'నిన్న' p",today:"'ఈ రోజు' p",tomorrow:"'రేపు' p",nextWeek:"'తదుపరి' eeee p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["క్రీ.పూ.","క్రీ.శ."],abbreviated:["క్రీ.పూ.","క్రీ.శ."],wide:["క్రీస్తు పూర్వం","క్రీస్తుశకం"]},r={narrow:["1","2","3","4"],abbreviated:["త్రై1","త్రై2","త్రై3","త్రై4"],wide:["1వ త్రైమాసికం","2వ త్రైమాసికం","3వ త్రైమాసికం","4వ త్రైమాసికం"]},o={narrow:["జ","ఫి","మా","ఏ","మే","జూ","జు","ఆ","సె","అ","న","డి"],abbreviated:["జన","ఫిబ్ర","మార్చి","ఏప్రి","మే","జూన్","జులై","ఆగ","సెప్టెం","అక్టో","నవం","డిసెం"],wide:["జనవరి","ఫిబ్రవరి","మార్చి","ఏప్రిల్","మే","జూన్","జులై","ఆగస్టు","సెప్టెంబర్","అక్టోబర్","నవంబర్","డిసెంబర్"]},n={narrow:["ఆ","సో","మ","బు","గు","శు","శ"],short:["ఆది","సోమ","మంగళ","బుధ","గురు","శుక్ర","శని"],abbreviated:["ఆది","సోమ","మంగళ","బుధ","గురు","శుక్ర","శని"],wide:["ఆదివారం","సోమవారం","మంగళవారం","బుధవారం","గురువారం","శుక్రవారం","శనివారం"]},s={narrow:{am:"పూర్వాహ్నం",pm:"అపరాహ్నం",midnight:"అర్ధరాత్రి",noon:"మిట్టమధ్యాహ్నం",morning:"ఉదయం",afternoon:"మధ్యాహ్నం",evening:"సాయంత్రం",night:"రాత్రి"},abbreviated:{am:"పూర్వాహ్నం",pm:"అపరాహ్నం",midnight:"అర్ధరాత్రి",noon:"మిట్టమధ్యాహ్నం",morning:"ఉదయం",afternoon:"మధ్యాహ్నం",evening:"సాయంత్రం",night:"రాత్రి"},wide:{am:"పూర్వాహ్నం",pm:"అపరాహ్నం",midnight:"అర్ధరాత్రి",noon:"మిట్టమధ్యాహ్నం",morning:"ఉదయం",afternoon:"మధ్యాహ్నం",evening:"సాయంత్రం",night:"రాత్రి"}},u={narrow:{am:"పూర్వాహ్నం",pm:"అపరాహ్నం",midnight:"అర్ధరాత్రి",noon:"మిట్టమధ్యాహ్నం",morning:"ఉదయం",afternoon:"మధ్యాహ్నం",evening:"సాయంత్రం",night:"రాత్రి"},abbreviated:{am:"పూర్వాహ్నం",pm:"అపరాహ్నం",midnight:"అర్ధరాత్రి",noon:"మిట్టమధ్యాహ్నం",morning:"ఉదయం",afternoon:"మధ్యాహ్నం",evening:"సాయంత్రం",night:"రాత్రి"},wide:{am:"పూర్వాహ్నం",pm:"అపరాహ్నం",midnight:"అర్ధరాత్రి",noon:"మిట్టమధ్యాహ్నం",morning:"ఉదయం",afternoon:"మధ్యాహ్నం",evening:"సాయంత్రం",night:"రాత్రి"}};function d(f,_){var c=Number(f);return c+"వ"}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(వ)?/i,o=/\d+/i,n={narrow:/^(క్రీ\.పూ\.|క్రీ\.శ\.)/i,abbreviated:/^(క్రీ\.?\s?పూ\.?|ప్ర\.?\s?శ\.?\s?పూ\.?|క్రీ\.?\s?శ\.?|సా\.?\s?శ\.?)/i,wide:/^(క్రీస్తు పూర్వం|ప్రస్తుత శకానికి పూర్వం|క్రీస్తు శకం|ప్రస్తుత శకం)/i},s={any:[/^(పూ|శ)/i,/^సా/i]},u={narrow:/^[1234]/i,abbreviated:/^త్రై[1234]/i,wide:/^[1234](వ)? త్రైమాసికం/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^(జూ|జు|జ|ఫి|మా|ఏ|మే|ఆ|సె|అ|న|డి)/i,abbreviated:/^(జన|ఫిబ్ర|మార్చి|ఏప్రి|మే|జూన్|జులై|ఆగ|సెప్|అక్టో|నవ|డిసె)/i,wide:/^(జనవరి|ఫిబ్రవరి|మార్చి|ఏప్రిల్|మే|జూన్|జులై|ఆగస్టు|సెప్టెంబర్|అక్టోబర్|నవంబర్|డిసెంబర్)/i},f={narrow:[/^జ/i,/^ఫి/i,/^మా/i,/^ఏ/i,/^మే/i,/^జూ/i,/^జు/i,/^ఆ/i,/^సె/i,/^అ/i,/^న/i,/^డి/i],any:[/^జన/i,/^ఫి/i,/^మా/i,/^ఏ/i,/^మే/i,/^జూన్/i,/^జులై/i,/^ఆగ/i,/^సె/i,/^అ/i,/^న/i,/^డి/i]},_={narrow:/^(ఆ|సో|మ|బు|గు|శు|శ)/i,short:/^(ఆది|సోమ|మం|బుధ|గురు|శుక్ర|శని)/i,abbreviated:/^(ఆది|సోమ|మం|బుధ|గురు|శుక్ర|శని)/i,wide:/^(ఆదివారం|సోమవారం|మంగళవారం|బుధవారం|గురువారం|శుక్రవారం|శనివారం)/i},c={narrow:[/^ఆ/i,/^సో/i,/^మ/i,/^బు/i,/^గు/i,/^శు/i,/^శ/i],any:[/^ఆది/i,/^సోమ/i,/^మం/i,/^బుధ/i,/^గురు/i,/^శుక్ర/i,/^శని/i]},v={narrow:/^(పూర్వాహ్నం|అపరాహ్నం|అర్ధరాత్రి|మిట్టమధ్యాహ్నం|ఉదయం|మధ్యాహ్నం|సాయంత్రం|రాత్రి)/i,any:/^(పూర్వాహ్నం|అపరాహ్నం|అర్ధరాత్రి|మిట్టమధ్యాహ్నం|ఉదయం|మధ్యాహ్నం|సాయంత్రం|రాత్రి)/i},g={any:{am:/^పూర్వాహ్నం/i,pm:/^అపరాహ్నం/i,midnight:/^అర్ధ/i,noon:/^మిట్ట/i,morning:/ఉదయం/i,afternoon:/మధ్యాహ్నం/i,evening:/సాయంత్రం/i,night:/రాత్రి/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(810),a=e(811),r=e(812),o=e(813),n=e(814),s={code:"th",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"น้อยกว่า 1 วินาที",other:"น้อยกว่า {{count}} วินาที"},xSeconds:{one:"1 วินาที",other:"{{count}} วินาที"},halfAMinute:"ครึ่งนาที",lessThanXMinutes:{one:"น้อยกว่า 1 นาที",other:"น้อยกว่า {{count}} นาที"},xMinutes:{one:"1 นาที",other:"{{count}} นาที"},aboutXHours:{one:"ประมาณ 1 ชั่วโมง",other:"ประมาณ {{count}} ชั่วโมง"},xHours:{one:"1 ชั่วโมง",other:"{{count}} ชั่วโมง"},xDays:{one:"1 วัน",other:"{{count}} วัน"},aboutXWeeks:{one:"ประมาณ 1 สัปดาห์",other:"ประมาณ {{count}} สัปดาห์"},xWeeks:{one:"1 สัปดาห์",other:"{{count}} สัปดาห์"},aboutXMonths:{one:"ประมาณ 1 เดือน",other:"ประมาณ {{count}} เดือน"},xMonths:{one:"1 เดือน",other:"{{count}} เดือน"},aboutXYears:{one:"ประมาณ 1 ปี",other:"ประมาณ {{count}} ปี"},xYears:{one:"1 ปี",other:"{{count}} ปี"},overXYears:{one:"มากกว่า 1 ปี",other:"มากกว่า {{count}} ปี"},almostXYears:{one:"เกือบ 1 ปี",other:"เกือบ {{count}} ปี"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?r==="halfAMinute"?"ใน"+s:"ใน "+s:s+"ที่ผ่านมา":s}},function(l,i,e){var t=e(2),a={full:"วันEEEEที่ do MMMM y",long:"do MMMM y",medium:"d MMM y",short:"dd/MM/yyyy"},r={full:"H:mm:ss น. zzzz",long:"H:mm:ss น. z",medium:"H:mm:ss น.",short:"H:mm น."},o={full:"{{date}} 'เวลา' {{time}}",long:"{{date}} 'เวลา' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"medium"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee'ที่แล้วเวลา' p",yesterday:"'เมื่อวานนี้เวลา' p",today:"'วันนี้เวลา' p",tomorrow:"'พรุ่งนี้เวลา' p",nextWeek:"eeee 'เวลา' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["B","คศ"],abbreviated:["BC","ค.ศ."],wide:["ปีก่อนคริสตกาล","คริสต์ศักราช"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["ไตรมาสแรก","ไตรมาสที่สอง","ไตรมาสที่สาม","ไตรมาสที่สี่"]},o={narrow:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],short:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],abbreviated:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],wide:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"]},n={narrow:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],abbreviated:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],wide:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"]},s={narrow:{am:"ก่อนเที่ยง",pm:"หลังเที่ยง",midnight:"เที่ยงคืน",noon:"เที่ยง",morning:"เช้า",afternoon:"บ่าย",evening:"เย็น",night:"กลางคืน"},abbreviated:{am:"ก่อนเที่ยง",pm:"หลังเที่ยง",midnight:"เที่ยงคืน",noon:"เที่ยง",morning:"เช้า",afternoon:"บ่าย",evening:"เย็น",night:"กลางคืน"},wide:{am:"ก่อนเที่ยง",pm:"หลังเที่ยง",midnight:"เที่ยงคืน",noon:"เที่ยง",morning:"เช้า",afternoon:"บ่าย",evening:"เย็น",night:"กลางคืน"}},u={narrow:{am:"ก่อนเที่ยง",pm:"หลังเที่ยง",midnight:"เที่ยงคืน",noon:"เที่ยง",morning:"ตอนเช้า",afternoon:"ตอนกลางวัน",evening:"ตอนเย็น",night:"ตอนกลางคืน"},abbreviated:{am:"ก่อนเที่ยง",pm:"หลังเที่ยง",midnight:"เที่ยงคืน",noon:"เที่ยง",morning:"ตอนเช้า",afternoon:"ตอนกลางวัน",evening:"ตอนเย็น",night:"ตอนกลางคืน"},wide:{am:"ก่อนเที่ยง",pm:"หลังเที่ยง",midnight:"เที่ยงคืน",noon:"เที่ยง",morning:"ตอนเช้า",afternoon:"ตอนกลางวัน",evening:"ตอนเย็น",night:"ตอนกลางคืน"}};function d(f){var _=Number(f);return _}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:n,defaultWidth:"wide"}),day:t.a({values:o,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^\d+/i,o=/\d+/i,n={narrow:/^([bB]|[aA]|คศ)/i,abbreviated:/^([bB]\.?\s?[cC]\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?|ค\.?ศ\.?)/i,wide:/^(ก่อนคริสตกาล|คริสต์ศักราช|คริสตกาล)/i},s={any:[/^[bB]/i,/^(^[aA]|ค\.?ศ\.?|คริสตกาล|คริสต์ศักราช|)/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^ไตรมาส(ที่)? ?[1234]/i},d={any:[/(1|แรก|หนึ่ง)/i,/(2|สอง)/i,/(3|สาม)/i,/(4|สี่)/i]},m={narrow:/^(ม\.?ค\.?|ก\.?พ\.?|มี\.?ค\.?|เม\.?ย\.?|พ\.?ค\.?|มิ\.?ย\.?|ก\.?ค\.?|ส\.?ค\.?|ก\.?ย\.?|ต\.?ค\.?|พ\.?ย\.?|ธ\.?ค\.?)/i,abbreviated:/^(ม\.?ค\.?|ก\.?พ\.?|มี\.?ค\.?|เม\.?ย\.?|พ\.?ค\.?|มิ\.?ย\.?|ก\.?ค\.?|ส\.?ค\.?|ก\.?ย\.?|ต\.?ค\.?|พ\.?ย\.?|ธ\.?ค\.?')/i,wide:/^(มกราคม|กุมภาพันธ์|มีนาคม|เมษายน|พฤษภาคม|มิถุนายน|กรกฎาคม|สิงหาคม|กันยายน|ตุลาคม|พฤศจิกายน|ธันวาคม)/i},f={wide:[/^มก/i,/^กุม/i,/^มี/i,/^เม/i,/^พฤษ/i,/^มิ/i,/^กรก/i,/^ส/i,/^กัน/i,/^ต/i,/^พฤศ/i,/^ธ/i],any:[/^ม\.?ค\.?/i,/^ก\.?พ\.?/i,/^มี\.?ค\.?/i,/^เม\.?ย\.?/i,/^พ\.?ค\.?/i,/^มิ\.?ย\.?/i,/^ก\.?ค\.?/i,/^ส\.?ค\.?/i,/^ก\.?ย\.?/i,/^ต\.?ค\.?/i,/^พ\.?ย\.?/i,/^ธ\.?ค\.?/i]},_={narrow:/^(อา\.?|จ\.?|อ\.?|พฤ\.?|พ\.?|ศ\.?|ส\.?)/i,short:/^(อา\.?|จ\.?|อ\.?|พฤ\.?|พ\.?|ศ\.?|ส\.?)/i,abbreviated:/^(อา\.?|จ\.?|อ\.?|พฤ\.?|พ\.?|ศ\.?|ส\.?)/i,wide:/^(อาทิตย์|จันทร์|อังคาร|พุธ|พฤหัสบดี|ศุกร์|เสาร์)/i},c={wide:[/^อา/i,/^จั/i,/^อั/i,/^พุธ/i,/^พฤ/i,/^ศ/i,/^เส/i],any:[/^อา/i,/^จ/i,/^อ/i,/^พ(?!ฤ)/i,/^พฤ/i,/^ศ/i,/^ส/i]},v={any:/^(ก่อนเที่ยง|หลังเที่ยง|เที่ยงคืน|เที่ยง|(ตอน.*?)?.*(เที่ยง|เช้า|บ่าย|เย็น|กลางคืน))/i},g={any:{am:/^ก่อนเที่ยง/i,pm:/^หลังเที่ยง/i,midnight:/^เที่ยงคืน/i,noon:/^เที่ยง/i,morning:/เช้า/i,afternoon:/บ่าย/i,evening:/เย็น/i,night:/กลางคืน/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(816),a=e(817),r=e(818),o=e(819),n=e(820),s={code:"tr",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"bir saniyeden az",other:"{{count}} saniyeden az"},xSeconds:{one:"1 saniye",other:"{{count}} saniye"},halfAMinute:"yarım dakika",lessThanXMinutes:{one:"bir dakikadan az",other:"{{count}} dakikadan az"},xMinutes:{one:"1 dakika",other:"{{count}} dakika"},aboutXHours:{one:"yaklaşık 1 saat",other:"yaklaşık {{count}} saat"},xHours:{one:"1 saat",other:"{{count}} saat"},xDays:{one:"1 gün",other:"{{count}} gün"},aboutXWeeks:{one:"yaklaşık 1 hafta",other:"yaklaşık {{count}} hafta"},xWeeks:{one:"1 hafta",other:"{{count}} hafta"},aboutXMonths:{one:"yaklaşık 1 ay",other:"yaklaşık {{count}} ay"},xMonths:{one:"1 ay",other:"{{count}} ay"},aboutXYears:{one:"yaklaşık 1 yıl",other:"yaklaşık {{count}} yıl"},xYears:{one:"1 yıl",other:"{{count}} yıl"},overXYears:{one:"1 yıldan fazla",other:"{{count}} yıldan fazla"},almostXYears:{one:"neredeyse 1 yıl",other:"neredeyse {{count}} yıl"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+" sonra":s+" önce":s}},function(l,i,e){var t=e(2),a={full:"d MMMM y EEEE",long:"d MMMM y",medium:"d MMM y",short:"dd.MM.yyyy"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} 'saat' {{time}}",long:"{{date}} 'saat' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'geçen hafta' eeee 'saat' p",yesterday:"'dün saat' p",today:"'bugün saat' p",tomorrow:"'yarın saat' p",nextWeek:"eeee 'saat' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={abbreviated:["MÖ","MS"],narrow:["MÖ","MS"],wide:["Milattan Önce","Milattan Sonra"]},r={narrow:["1","2","3","4"],abbreviated:["1Ç","2Ç","3Ç","4Ç"],wide:["İlk çeyrek","İkinci Çeyrek","Üçüncü çeyrek","Son çeyrek"]},o={narrow:["O","Ş","M","N","M","H","T","A","E","E","K","A"],abbreviated:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],wide:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"]},n={narrow:["P","P","S","Ç","P","C","C"],short:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],abbreviated:["Paz","Pts","Sal","Çar","Per","Cum","Cts"],wide:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},s={narrow:{am:"öö",pm:"ös",midnight:"gy",noon:"ö",morning:"sa",afternoon:"ös",evening:"ak",night:"ge"},abbreviated:{am:"ÖÖ",pm:"ÖS",midnight:"gece yarısı",noon:"öğle",morning:"sabah",afternoon:"öğleden sonra",evening:"akşam",night:"gece"},wide:{am:"Ö.Ö.",pm:"Ö.S.",midnight:"gece yarısı",noon:"öğle",morning:"sabah",afternoon:"öğleden sonra",evening:"akşam",night:"gece"}},u={narrow:{am:"öö",pm:"ös",midnight:"gy",noon:"ö",morning:"sa",afternoon:"ös",evening:"ak",night:"ge"},abbreviated:{am:"ÖÖ",pm:"ÖS",midnight:"gece yarısı",noon:"öğlen",morning:"sabahleyin",afternoon:"öğleden sonra",evening:"akşamleyin",night:"geceleyin"},wide:{am:"ö.ö.",pm:"ö.s.",midnight:"gece yarısı",noon:"öğlen",morning:"sabahleyin",afternoon:"öğleden sonra",evening:"akşamleyin",night:"geceleyin"}};function d(f,_){var c=Number(f);return c+"."}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaulFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(\.)?/i,o=/\d+/i,n={narrow:/^(mö|ms)/i,abbreviated:/^(mö|ms)/i,wide:/^(milattan önce|milattan sonra)/i},s={any:[/(^mö|^milattan önce)/i,/(^ms|^milattan sonra)/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234]ç/i,wide:/^((i|İ)lk|(i|İ)kinci|üçüncü|son) çeyrek/i},d={any:[/1/i,/2/i,/3/i,/4/i],abbreviated:[/1ç/i,/2ç/i,/3ç/i,/4ç/i],wide:[/^(i|İ)lk çeyrek/i,/(i|İ)kinci çeyrek/i,/üçüncü çeyrek/i,/son çeyrek/i]},m={narrow:/^[oşmnhtaek]/i,abbreviated:/^(oca|şub|mar|nis|may|haz|tem|ağu|eyl|eki|kas|ara)/i,wide:/^(ocak|şubat|mart|nisan|mayıs|haziran|temmuz|ağustos|eylül|ekim|kasım|aralık)/i},f={narrow:[/^o/i,/^ş/i,/^m/i,/^n/i,/^m/i,/^h/i,/^t/i,/^a/i,/^e/i,/^e/i,/^k/i,/^a/i],any:[/^o/i,/^ş/i,/^mar/i,/^n/i,/^may/i,/^h/i,/^t/i,/^ağ/i,/^ey/i,/^ek/i,/^k/i,/^ar/i]},_={narrow:/^[psçc]/i,short:/^(pz|pt|sa|ça|pe|cu|ct)/i,abbreviated:/^(paz|pts|sal|çar|per|cum|cts)/i,wide:/^(pazar|pazartesi|salı|çarşamba|perşembe|cuma|cumartesi)/i},c={narrow:[/^p/i,/^p/i,/^s/i,/^ç/i,/^p/i,/^c/i,/^c/i],any:[/^pz/i,/^pt/i,/^sa/i,/^ça/i,/^pe/i,/^cu/i,/^ct/i],wide:[/^pazar/i,/^pazartesi/i,/^salı/i,/^çarşamba/i,/^perşembe/i,/^cuma/i,/cumartesi/i]},v={narrow:/^(öö|ös|gy|ö|sa|ös|ak|ge)/i,any:/^(ö\.?\s?[ös]\.?|öğleden sonra|gece yarısı|öğle|(sabah|öğ|akşam|gece)(leyin))/i},g={any:{am:/^ö\.?ö\.?/i,pm:/^ö\.?s\.?/i,midnight:/^(gy|gece yarısı)/i,noon:/^öğ/i,morning:/^sa/i,afternoon:/^öğleden sonra/i,evening:/^ak/i,night:/^ge/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(822),a=e(823),r=e(824),o=e(825),n=e(826),s={code:"ug",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:0,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"بىر سىكۇنت ئىچىدە",other:"سىكۇنت ئىچىدە {{count}}"},xSeconds:{one:"بىر سىكۇنت",other:"سىكۇنت {{count}}"},halfAMinute:"يىرىم مىنۇت",lessThanXMinutes:{one:"بىر مىنۇت ئىچىدە",other:"مىنۇت ئىچىدە {{count}}"},xMinutes:{one:"بىر مىنۇت",other:"مىنۇت {{count}}"},aboutXHours:{one:"تەخمىنەن بىر سائەت",other:"سائەت {{count}} تەخمىنەن"},xHours:{one:"بىر سائەت",other:"سائەت {{count}}"},xDays:{one:"بىر كۈن",other:"كۈن {{count}}"},aboutXWeeks:{one:"تەخمىنەن بىرھەپتە",other:"ھەپتە {{count}} تەخمىنەن"},xWeeks:{one:"بىرھەپتە",other:"ھەپتە {{count}}"},aboutXMonths:{one:"تەخمىنەن بىر ئاي",other:"ئاي {{count}} تەخمىنەن"},xMonths:{one:"بىر ئاي",other:"ئاي {{count}}"},aboutXYears:{one:"تەخمىنەن بىر يىل",other:"يىل {{count}} تەخمىنەن"},xYears:{one:"بىر يىل",other:"يىل {{count}}"},overXYears:{one:"بىر يىلدىن ئارتۇق",other:"يىلدىن ئارتۇق {{count}}"},almostXYears:{one:"ئاساسەن بىر يىل",other:"يىل {{count}} ئاساسەن"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s:s+" بولدى":s}},function(l,i,e){var t=e(2),a={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},r={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},o={full:"{{date}} 'دە' {{time}}",long:"{{date}} 'دە' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'ئ‍ۆتكەن' eeee 'دە' p",yesterday:"'تۈنۈگۈن دە' p",today:"'بۈگۈن دە' p",tomorrow:"'ئەتە دە' p",nextWeek:"eeee 'دە' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["ب","ك"],abbreviated:["ب","ك"],wide:["مىيلادىدىن بۇرۇن","مىيلادىدىن كىيىن"]},r={narrow:["1","2","3","4"],abbreviated:["1","2","3","4"],wide:["بىرىنجى چارەك","ئىككىنجى چارەك","ئۈچىنجى چارەك","تۆتىنجى چارەك"]},o={narrow:["ي","ف","م","ا","م","ى","ى","ا","س","ۆ","ن","د"],abbreviated:["يانۋار","فېۋىرال","مارت","ئاپرىل","ماي","ئىيۇن","ئىيول","ئاۋغۇست","سىنتەبىر","ئۆكتەبىر","نويابىر","دىكابىر"],wide:["يانۋار","فېۋىرال","مارت","ئاپرىل","ماي","ئىيۇن","ئىيول","ئاۋغۇست","سىنتەبىر","ئۆكتەبىر","نويابىر","دىكابىر"]},n={narrow:["ي","د","س","چ","پ","ج","ش"],short:["ي","د","س","چ","پ","ج","ش"],abbreviated:["يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"],wide:["يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"]},s={narrow:{am:"ئە",pm:"چ",midnight:"ك",noon:"چ",morning:"ئەتىگەن",afternoon:"چۈشتىن كىيىن",evening:"ئاخشىم",night:"كىچە"},abbreviated:{am:"ئە",pm:"چ",midnight:"ك",noon:"چ",morning:"ئەتىگەن",afternoon:"چۈشتىن كىيىن",evening:"ئاخشىم",night:"كىچە"},wide:{am:"ئە",pm:"چ",midnight:"ك",noon:"چ",morning:"ئەتىگەن",afternoon:"چۈشتىن كىيىن",evening:"ئاخشىم",night:"كىچە"}},u={narrow:{am:"ئە",pm:"چ",midnight:"ك",noon:"چ",morning:"ئەتىگەندە",afternoon:"چۈشتىن كىيىن",evening:"ئاخشامدا",night:"كىچىدە"},abbreviated:{am:"ئە",pm:"چ",midnight:"ك",noon:"چ",morning:"ئەتىگەندە",afternoon:"چۈشتىن كىيىن",evening:"ئاخشامدا",night:"كىچىدە"},wide:{am:"ئە",pm:"چ",midnight:"ك",noon:"چ",morning:"ئەتىگەندە",afternoon:"چۈشتىن كىيىن",evening:"ئاخشامدا",night:"كىچىدە"}};function d(f,_){return String(f)}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,n={narrow:/^(ب|ك)/i,wide:/^(مىيلادىدىن بۇرۇن|مىيلادىدىن كىيىن)/i},s={any:[/^بۇرۇن/i,/^كىيىن/i]},u={narrow:/^[1234]/i,abbreviated:/^چ[1234]/i,wide:/^چارەك [1234]/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[يفمئامئ‍ئاسۆند]/i,abbreviated:/^(يانۋار|فېۋىرال|مارت|ئاپرىل|ماي|ئىيۇن|ئىيول|ئاۋغۇست|سىنتەبىر|ئۆكتەبىر|نويابىر|دىكابىر)/i,wide:/^(يانۋار|فېۋىرال|مارت|ئاپرىل|ماي|ئىيۇن|ئىيول|ئاۋغۇست|سىنتەبىر|ئۆكتەبىر|نويابىر|دىكابىر)/i},f={narrow:[/^ي/i,/^ف/i,/^م/i,/^ا/i,/^م/i,/^ى‍/i,/^ى‍/i,/^ا‍/i,/^س/i,/^ۆ/i,/^ن/i,/^د/i],any:[/^يان/i,/^فېۋ/i,/^مار/i,/^ئاپ/i,/^ماي/i,/^ئىيۇن/i,/^ئىيول/i,/^ئاۋ/i,/^سىن/i,/^ئۆك/i,/^نوي/i,/^دىك/i]},_={narrow:/^[دسچپجشي]/i,short:/^(يە|دۈ|سە|چا|پە|جۈ|شە)/i,abbreviated:/^(يە|دۈ|سە|چا|پە|جۈ|شە)/i,wide:/^(يەكشەنبە|دۈشەنبە|سەيشەنبە|چارشەنبە|پەيشەنبە|جۈمە|شەنبە)/i},c={narrow:[/^ي/i,/^د/i,/^س/i,/^چ/i,/^پ/i,/^ج/i,/^ش/i],any:[/^ي/i,/^د/i,/^س/i,/^چ/i,/^پ/i,/^ج/i,/^ش/i]},v={narrow:/^(ئە|چ|ك|چ|(دە|ئەتىگەن) ( ئە‍|چۈشتىن كىيىن|ئاخشىم|كىچە))/i,any:/^(ئە|چ|ك|چ|(دە|ئەتىگەن) ( ئە‍|چۈشتىن كىيىن|ئاخشىم|كىچە))/i},g={any:{am:/^ئە/i,pm:/^چ/i,midnight:/^ك/i,noon:/^چ/i,morning:/ئەتىگەن/i,afternoon:/چۈشتىن كىيىن/i,evening:/ئاخشىم/i,night:/كىچە/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(828),a=e(829),r=e(830),o=e(831),n=e(832),s={code:"uk",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=o;function t(n,s){if(n.one!==void 0&&s===1)return n.one;var u=s%10,d=s%100;return u===1&&d!==11?n.singularNominative.replace("{{count}}",s):u>=2&&u<=4&&(d<10||d>20)?n.singularGenitive.replace("{{count}}",s):n.pluralGenitive.replace("{{count}}",s)}function a(n){return function(s,u){return u.addSuffix?u.comparison>0?n.future?t(n.future,s):"за "+t(n.regular,s):n.past?t(n.past,s):t(n.regular,s)+" тому":t(n.regular,s)}}var r={lessThanXSeconds:a({regular:{one:"менше секунди",singularNominative:"менше {{count}} секунди",singularGenitive:"менше {{count}} секунд",pluralGenitive:"менше {{count}} секунд"},future:{one:"менше, ніж за секунду",singularNominative:"менше, ніж за {{count}} секунду",singularGenitive:"менше, ніж за {{count}} секунди",pluralGenitive:"менше, ніж за {{count}} секунд"}}),xSeconds:a({regular:{singularNominative:"{{count}} секунда",singularGenitive:"{{count}} секунди",pluralGenitive:"{{count}} секунд"},past:{singularNominative:"{{count}} секунду тому",singularGenitive:"{{count}} секунди тому",pluralGenitive:"{{count}} секунд тому"},future:{singularNominative:"за {{count}} секунду",singularGenitive:"за {{count}} секунди",pluralGenitive:"за {{count}} секунд"}}),halfAMinute:function(n,s){return s.addSuffix?s.comparison>0?"за півхвилини":"півхвилини тому":"півхвилини"},lessThanXMinutes:a({regular:{one:"менше хвилини",singularNominative:"менше {{count}} хвилини",singularGenitive:"менше {{count}} хвилин",pluralGenitive:"менше {{count}} хвилин"},future:{one:"менше, ніж за хвилину",singularNominative:"менше, ніж за {{count}} хвилину",singularGenitive:"менше, ніж за {{count}} хвилини",pluralGenitive:"менше, ніж за {{count}} хвилин"}}),xMinutes:a({regular:{singularNominative:"{{count}} хвилина",singularGenitive:"{{count}} хвилини",pluralGenitive:"{{count}} хвилин"},past:{singularNominative:"{{count}} хвилину тому",singularGenitive:"{{count}} хвилини тому",pluralGenitive:"{{count}} хвилин тому"},future:{singularNominative:"за {{count}} хвилину",singularGenitive:"за {{count}} хвилини",pluralGenitive:"за {{count}} хвилин"}}),aboutXHours:a({regular:{singularNominative:"близько {{count}} години",singularGenitive:"близько {{count}} годин",pluralGenitive:"близько {{count}} годин"},future:{singularNominative:"приблизно за {{count}} годину",singularGenitive:"приблизно за {{count}} години",pluralGenitive:"приблизно за {{count}} годин"}}),xHours:a({regular:{singularNominative:"{{count}} годину",singularGenitive:"{{count}} години",pluralGenitive:"{{count}} годин"}}),xDays:a({regular:{singularNominative:"{{count}} день",singularGenitive:"{{count}} дня",pluralGenitive:"{{count}} днів"}}),aboutXWeeks:a({regular:{singularNominative:"близько {{count}} тижня",singularGenitive:"близько {{count}} тижнів",pluralGenitive:"близько {{count}} тижнів"},future:{singularNominative:"приблизно за {{count}} тиждень",singularGenitive:"приблизно за {{count}} тижні",pluralGenitive:"приблизно за {{count}} тижні"}}),xWeeks:a({regular:{singularNominative:"{{count}} тиждень",singularGenitive:"{{count}} тижня",pluralGenitive:"{{count}} тижні"}}),aboutXMonths:a({regular:{singularNominative:"близько {{count}} місяця",singularGenitive:"близько {{count}} місяців",pluralGenitive:"близько {{count}} місяців"},future:{singularNominative:"приблизно за {{count}} місяць",singularGenitive:"приблизно за {{count}} місяця",pluralGenitive:"приблизно за {{count}} місяців"}}),xMonths:a({regular:{singularNominative:"{{count}} місяць",singularGenitive:"{{count}} місяця",pluralGenitive:"{{count}} місяців"}}),aboutXYears:a({regular:{singularNominative:"близько {{count}} року",singularGenitive:"близько {{count}} років",pluralGenitive:"близько {{count}} років"},future:{singularNominative:"приблизно за {{count}} рік",singularGenitive:"приблизно за {{count}} роки",pluralGenitive:"приблизно за {{count}} років"}}),xYears:a({regular:{singularNominative:"{{count}} рік",singularGenitive:"{{count}} роки",pluralGenitive:"{{count}} років"}}),overXYears:a({regular:{singularNominative:"більше {{count}} року",singularGenitive:"більше {{count}} років",pluralGenitive:"більше {{count}} років"},future:{singularNominative:"більше, ніж за {{count}} рік",singularGenitive:"більше, ніж за {{count}} роки",pluralGenitive:"більше, ніж за {{count}} років"}}),almostXYears:a({regular:{singularNominative:"майже {{count}} рік",singularGenitive:"майже {{count}} роки",pluralGenitive:"майже {{count}} років"},future:{singularNominative:"майже за {{count}} рік",singularGenitive:"майже за {{count}} роки",pluralGenitive:"майже за {{count}} років"}})};function o(n,s,u){return u=u||{},r[n](s,u)}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM y 'р.'",long:"do MMMM y 'р.'",medium:"d MMM y 'р.'",short:"dd.MM.y"},r={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},o={full:"{{date}} 'о' {{time}}",long:"{{date}} 'о' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=u;var t=e(13),a=["неділю","понеділок","вівторок","середу","четвер","п’ятницю","суботу"];function r(d){var m=a[d];switch(d){case 0:case 3:case 5:case 6:return"'у минулу "+m+" о' p";case 1:case 2:case 4:return"'у минулий "+m+" о' p"}}function o(d){var m=a[d];return"'у "+m+" о' p"}function n(d){var m=a[d];switch(d){case 0:case 3:case 5:case 6:return"'у наступну "+m+" о' p";case 1:case 2:case 4:return"'у наступний "+m+" о' p"}}var s={lastWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):r(_)},yesterday:"'вчора о' p",today:"'сьогодні о' p",tomorrow:"'завтра о' p",nextWeek:function(d,m,f){var _=d.getUTCDay();return t.a(d,m,f)?o(_):n(_)},other:"P"};function u(d,m,f,_){var c=s[d];return typeof c=="function"?c(m,f,_):c}},function(l,i,e){var t=e(3),a={narrow:["до н.е.","н.е."],abbreviated:["до н. е.","н. е."],wide:["до нашої ери","нашої ери"]},r={narrow:["1","2","3","4"],abbreviated:["1-й кв.","2-й кв.","3-й кв.","4-й кв."],wide:["1-й квартал","2-й квартал","3-й квартал","4-й квартал"]},o={narrow:["С","Л","Б","К","Т","Ч","Л","С","В","Ж","Л","Г"],abbreviated:["січ.","лют.","берез.","квіт.","трав.","черв.","лип.","серп.","верес.","жовт.","листоп.","груд."],wide:["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"]},n={narrow:["С","Л","Б","К","Т","Ч","Л","С","В","Ж","Л","Г"],abbreviated:["січ.","лют.","берез.","квіт.","трав.","черв.","лип.","серп.","верес.","жовт.","листоп.","груд."],wide:["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"]},s={narrow:["Н","П","В","С","Ч","П","С"],short:["нд","пн","вт","ср","чт","пт","сб"],abbreviated:["нед","пон","вів","сер","чтв","птн","суб"],wide:["неділя","понеділок","вівторок","середа","четвер","п’ятниця","субота"]},u={narrow:{am:"ДП",pm:"ПП",midnight:"півн.",noon:"пол.",morning:"ранок",afternoon:"день",evening:"веч.",night:"ніч"},abbreviated:{am:"ДП",pm:"ПП",midnight:"півн.",noon:"пол.",morning:"ранок",afternoon:"день",evening:"веч.",night:"ніч"},wide:{am:"ДП",pm:"ПП",midnight:"північ",noon:"полудень",morning:"ранок",afternoon:"день",evening:"вечір",night:"ніч"}},d={narrow:{am:"ДП",pm:"ПП",midnight:"півн.",noon:"пол.",morning:"ранку",afternoon:"дня",evening:"веч.",night:"ночі"},abbreviated:{am:"ДП",pm:"ПП",midnight:"півн.",noon:"пол.",morning:"ранку",afternoon:"дня",evening:"веч.",night:"ночі"},wide:{am:"ДП",pm:"ПП",midnight:"північ",noon:"полудень",morning:"ранку",afternoon:"дня",evening:"веч.",night:"ночі"}};function m(_,c){var v=c||{},g=String(v.unit),P;return g==="date"?_===3||_===23?P="-є":P="-е":g==="minute"||g==="second"||g==="hour"?P="-а":P="-й",_+P}var f={ordinalNumber:m,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(_){return Number(_)-1}}),month:t.a({values:o,defaultWidth:"wide",formattingValues:n,defaultFormattingWidth:"wide"}),day:t.a({values:s,defaultWidth:"wide"}),dayPeriod:t.a({values:u,defaultWidth:"any",formattingValues:d,defaultFormattingWidth:"wide"})};i.a=f},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(-?(е|й|є|а|я))?/i,o=/\d+/i,n={narrow:/^((до )?н\.?\s?е\.?)/i,abbreviated:/^((до )?н\.?\s?е\.?)/i,wide:/^(до нашої ери|нашої ери|наша ера)/i},s={any:[/^д/i,/^н/i]},u={narrow:/^[1234]/i,abbreviated:/^[1234](-?[иі]?й?)? кв.?/i,wide:/^[1234](-?[иі]?й?)? квартал/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[слбктчвжг]/i,abbreviated:/^(січ|лют|бер|берез|кві|трав?|чер|лип|сер|вер|жов|лис(топ)?|груд)\.?/i,wide:/^(січень|січня|лютий|лютого|березень|березня|квітень|квітня|травень|травня|липень|липня|серпень|серпня|вересень|вересня|жовтень|жовтня|листопада?|грудень|грудня)/i},f={narrow:[/^с/i,/^л/i,/^б/i,/^к/i,/^т/i,/^ч/i,/^л/i,/^с/i,/^в/i,/^ж/i,/^л/i,/^г/i],any:[/^сі/i,/^лю/i,/^б/i,/^к/i,/^т/i,/^ч/i,/^лип/i,/^се/i,/^в/i,/^ж/i,/^лис/i,/^г/i]},_={narrow:/^[нпвсч]/i,short:/^(нд|пн|вт|ср|чт|пт|сб)\.?/i,abbreviated:/^(нед|пон|вів|сер|че?тв|птн?|суб)\.?/i,wide:/^(неділ[яі]|понеділ[ок][ка]|вівтор[ок][ка]|серед[аи]|четвер(га)?|п\W*?ятниц[яі]|субот[аи])/i},c={narrow:[/^н/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^н/i,/^п[он]/i,/^в/i,/^с[ер]/i,/^ч/i,/^п\W*?[ят]/i,/^с[уб]/i]},v={narrow:/^([дп]п|півн\.?|пол\.?|ранок|ранку|день|дня|веч\.?|ніч|ночі)/i,abbreviated:/^([дп]п|півн\.?|пол\.?|ранок|ранку|день|дня|веч\.?|ніч|ночі)/i,wide:/^([дп]п|північ|полудень|ранок|ранку|день|дня|вечір|вечора|ніч|ночі)/i},g={any:{am:/^дп/i,pm:/^пп/i,midnight:/^півн/i,noon:/^пол/i,morning:/^р/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"wide",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(834),a=e(835),r=e(836),o=e(837),n=e(838),s={code:"uz",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"sekunddan kam",other:"{{count}} sekunddan kam"},xSeconds:{one:"1 sekund",other:"{{count}} sekund"},halfAMinute:"yarim minut",lessThanXMinutes:{one:"bir minutdan kam",other:"{{count}} minutdan kam"},xMinutes:{one:"1 minut",other:"{{count}} minut"},aboutXHours:{one:"tahminan 1 soat",other:"tahminan {{count}} soat"},xHours:{one:"1 soat",other:"{{count}} soat"},xDays:{one:"1 kun",other:"{{count}} kun"},aboutXWeeks:{one:"tahminan 1 hafta",other:"tahminan {{count}} hafta"},xWeeks:{one:"1 hafta",other:"{{count}} hafta"},aboutXMonths:{one:"tahminan 1 oy",other:"tahminan {{count}} oy"},xMonths:{one:"1 oy",other:"{{count}} oy"},aboutXYears:{one:"tahminan 1 yil",other:"tahminan {{count}} yil"},xYears:{one:"1 yil",other:"{{count}} yil"},overXYears:{one:"1 yildan ko'p",other:"{{count}} yildan ko'p"},almostXYears:{one:"deyarli 1 yil",other:"deyarli {{count}} yil"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+" dan keyin":s+" oldin":s}},function(l,i,e){var t=e(2),a={full:"EEEE, do MMMM, y",long:"do MMMM, y",medium:"d MMM, y",short:"dd/MM/yyyy"},r={full:"h:mm:ss zzzz",long:"h:mm:ss z",medium:"h:mm:ss",short:"h:mm"},o={any:"{{date}}, {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"any"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'oldingi' eeee p 'da'",yesterday:"'kecha' p 'da'",today:"'bugun' p 'da'",tomorrow:"'ertaga' p 'da'",nextWeek:"eeee p 'da'",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["M.A","M."],abbreviated:["M.A","M."],wide:["Miloddan Avvalgi","Milodiy"]},r={narrow:["1","2","3","4"],abbreviated:["CH.1","CH.2","CH.3","CH.4"],wide:["1-chi chorak","2-chi chorak","3-chi chorak","4-chi chorak"]},o={narrow:["Y","F","M","A","M","I","I","A","S","O","N","D"],abbreviated:["Yan","Fev","Mar","Apr","May","Iyun","Iyul","Avg","Sen","Okt","Noy","Dek"],wide:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"]},n={narrow:["Y","D","S","CH","P","J","SH"],short:["Ya","Du","Se","Cho","Pa","Ju","Sha"],abbreviated:["Yak","Dush","Sesh","Chor","Pay","Jum","Shan"],wide:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"]},s={narrow:{am:"a",pm:"p",midnight:"y.t",noon:"p.",morning:"ertalab",afternoon:"tushdan keyin",evening:"kechqurun",night:"tun"},abbreviated:{am:"AM",pm:"PM",midnight:"yarim tun",noon:"peshin",morning:"ertalab",afternoon:"tushdan keyin",evening:"kechqurun",night:"tun"},wide:{am:"a.m.",pm:"p.m.",midnight:"yarim tun",noon:"peshin",morning:"ertalab",afternoon:"tushdan keyin",evening:"kechqurun",night:"tun"}},u={narrow:{am:"a",pm:"p",midnight:"y.t",noon:"p.",morning:"ertalab",afternoon:"tushdan keyin",evening:"kechqurun",night:"tun"},abbreviated:{am:"AM",pm:"PM",midnight:"yarim tun",noon:"peshin",morning:"ertalab",afternoon:"tushdan keyin",evening:"kechqurun",night:"tun"},wide:{am:"a.m.",pm:"p.m.",midnight:"yarim tun",noon:"peshin",morning:"ertalab",afternoon:"tushdan keyin",evening:"kechqurun",night:"tun"}};function d(f,_){var c=Number(f);return c}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)(chi)?/i,o=/\d+/i,n={narrow:/^(m\.a|m\.)/i,abbreviated:/^(m\.a\.?\s?m\.?)/i,wide:/^(miloddan avval|miloddan keyin)/i},s={any:[/^b/i,/^(a|c)/i]},u={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](chi)? chorak/i},d={any:[/1/i,/2/i,/3/i,/4/i]},m={narrow:/^[yfmasond]/i,abbreviated:/^(yan|fev|mar|apr|may|iyun|iyul|avg|sen|okt|noy|dek)/i,wide:/^(yanvar|fevral|mart|aprel|may|iyun|iyul|avgust|sentabr|oktabr|noyabr|dekabr)/i},f={narrow:[/^y/i,/^f/i,/^m/i,/^a/i,/^m/i,/^i/i,/^i/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ya/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^iyun/i,/^iyul/i,/^av/i,/^s/i,/^o/i,/^n/i,/^d/i]},_={narrow:/^[ydschj]/i,short:/^(ya|du|se|cho|pa|ju|sha)/i,abbreviated:/^(yak|dush|sesh|chor|pay|jum|shan)/i,wide:/^(yakshanba|dushanba|seshanba|chorshanba|payshanba|juma|shanba)/i},c={narrow:[/^y/i,/^d/i,/^s/i,/^ch/i,/^p/i,/^j/i,/^sh/i],any:[/^ya/i,/^d/i,/^se/i,/^ch/i,/^p/i,/^j/i,/^sh/i]},v={narrow:/^(a|p|y\.t|p| (ertalab|tushdan keyin|kechqurun|tun))/i,any:/^([ap]\.?\s?m\.?|yarim tun|peshin| (ertalab|tushdan keyin|kechqurun|tun))/i},g={any:{am:/^a/i,pm:/^p/i,midnight:/^y\.t/i,noon:/^pe/i,morning:/ertalab/i,afternoon:/tushdan keyin/i,evening:/kechqurun/i,night:/tun/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(840),a=e(841),r=e(842),o=e(843),n=e(844),s={code:"vi",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:1}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"dưới 1 giây",other:"dưới {{count}} giây"},xSeconds:{one:"1 giây",other:"{{count}} giây"},halfAMinute:"nửa phút",lessThanXMinutes:{one:"dưới 1 phút",other:"dưới {{count}} phút"},xMinutes:{one:"1 phút",other:"{{count}} phút"},aboutXHours:{one:"khoảng 1 giờ",other:"khoảng {{count}} giờ"},xHours:{one:"1 giờ",other:"{{count}} giờ"},xDays:{one:"1 ngày",other:"{{count}} ngày"},aboutXWeeks:{one:"khoảng 1 tuần",other:"khoảng {{count}} tuần"},xWeeks:{one:"1 tuần",other:"{{count}} tuần"},aboutXMonths:{one:"khoảng 1 tháng",other:"khoảng {{count}} tháng"},xMonths:{one:"1 tháng",other:"{{count}} tháng"},aboutXYears:{one:"khoảng 1 năm",other:"khoảng {{count}} năm"},xYears:{one:"1 năm",other:"{{count}} năm"},overXYears:{one:"hơn 1 năm",other:"hơn {{count}} năm"},almostXYears:{one:"gần 1 năm",other:"gần {{count}} năm"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+" nữa":s+" trước":s}},function(l,i,e){var t=e(2),a={full:"EEEE, 'ngày' d MMMM 'năm' y",long:"'ngày' d MMMM 'năm' y",medium:"d MMM 'năm' y",short:"dd/MM/y"},r={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"eeee 'tuần trước vào lúc' p",yesterday:"'hôm qua vào lúc' p",today:"'hôm nay vào lúc' p",tomorrow:"'ngày mai vào lúc' p",nextWeek:"eeee 'tới vào lúc' p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["TCN","SCN"],abbreviated:["trước CN","sau CN"],wide:["trước Công Nguyên","sau Công Nguyên"]},r={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["Quý 1","Quý 2","Quý 3","Quý 4"]},o={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["quý I","quý II","quý III","quý IV"]},n={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["Thg 1","Thg 2","Thg 3","Thg 4","Thg 5","Thg 6","Thg 7","Thg 8","Thg 9","Thg 10","Thg 11","Thg 12"],wide:["Tháng Một","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai"]},s={narrow:["01","02","03","04","05","06","07","08","09","10","11","12"],abbreviated:["thg 1","thg 2","thg 3","thg 4","thg 5","thg 6","thg 7","thg 8","thg 9","thg 10","thg 11","thg 12"],wide:["tháng 01","tháng 02","tháng 03","tháng 04","tháng 05","tháng 06","tháng 07","tháng 08","tháng 09","tháng 10","tháng 11","tháng 12"]},u={narrow:["CN","T2","T3","T4","T5","T6","T7"],short:["CN","Th 2","Th 3","Th 4","Th 5","Th 6","Th 7"],abbreviated:["CN","Thứ 2","Thứ 3","Thứ 4","Thứ 5","Thứ 6","Thứ 7"],wide:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"]},d={narrow:{am:"am",pm:"pm",midnight:"nửa đêm",noon:"tr",morning:"sg",afternoon:"ch",evening:"tối",night:"đêm"},abbreviated:{am:"AM",pm:"PM",midnight:"nửa đêm",noon:"trưa",morning:"sáng",afternoon:"chiều",evening:"tối",night:"đêm"},wide:{am:"SA",pm:"CH",midnight:"nửa đêm",noon:"trưa",morning:"sáng",afternoon:"chiều",evening:"tối",night:"đêm"}},m={narrow:{am:"am",pm:"pm",midnight:"nửa đêm",noon:"tr",morning:"sg",afternoon:"ch",evening:"tối",night:"đêm"},abbreviated:{am:"AM",pm:"PM",midnight:"nửa đêm",noon:"trưa",morning:"sáng",afternoon:"chiều",evening:"tối",night:"đêm"},wide:{am:"SA",pm:"CH",midnight:"nửa đêm",noon:"giữa trưa",morning:"vào buổi sáng",afternoon:"vào buổi chiều",evening:"vào buổi tối",night:"vào ban đêm"}};function f(c,v){var g=v||{},P=String(g.unit),h=parseInt(c,10);if(P==="quarter")switch(h){case 1:return"I";case 2:return"II";case 3:return"III";case 4:return"IV"}else if(P==="day")switch(h){case 1:return"thứ 2";case 2:return"thứ 3";case 3:return"thứ 4";case 4:return"thứ 5";case 5:return"thứ 6";case 6:return"thứ 7";case 7:return"chủ nhật"}else{if(P==="week")return h===1?"thứ nhất":"thứ "+h;if(P==="dayOfYear")return h===1?"đầu tiên":"thứ "+h}return h}var _={ordinalNumber:f,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",formattingValues:o,defaultFormattingWidth:"wide",argumentCallback:function(c){return Number(c)-1}}),month:t.a({values:n,defaultWidth:"wide",formattingValues:s,defaultFormattingWidth:"wide"}),day:t.a({values:u,defaultWidth:"wide"}),dayPeriod:t.a({values:d,defaultWidth:"wide",formattingValues:m,defaultFormattingWidth:"wide"})};i.a=_},function(l,i,e){var t=e(4),a=e(5),r=/^(\d+)/i,o=/\d+/i,n={narrow:/^(tcn|scn)/i,abbreviated:/^(trước CN|sau CN)/i,wide:/^(trước Công Nguyên|sau Công Nguyên)/i},s={any:[/^t/i,/^s/i]},u={narrow:/^([1234]|i{1,3}v?)/i,abbreviated:/^q([1234]|i{1,3}v?)/i,wide:/^quý ([1234]|i{1,3}v?)/i},d={any:[/(1|i)$/i,/(2|ii)$/i,/(3|iii)$/i,/(4|iv)$/i]},m={narrow:/^(0?[2-9]|10|11|12|0?1)/i,abbreviated:/^thg[ _]?(0?[1-9](?!\d)|10|11|12)/i,wide:/^tháng ?(Một|Hai|Ba|Tư|Năm|Sáu|Bảy|Tám|Chín|Mười|Mười ?Một|Mười ?Hai|0?[1-9](?!\d)|10|11|12)/i},f={narrow:[/0?1$/i,/0?2/i,/3/,/4/,/5/,/6/,/7/,/8/,/9/,/10/,/11/,/12/],abbreviated:[/^thg[ _]?0?1(?!\d)/i,/^thg[ _]?0?2/i,/^thg[ _]?0?3/i,/^thg[ _]?0?4/i,/^thg[ _]?0?5/i,/^thg[ _]?0?6/i,/^thg[ _]?0?7/i,/^thg[ _]?0?8/i,/^thg[ _]?0?9/i,/^thg[ _]?10/i,/^thg[ _]?11/i,/^thg[ _]?12/i],wide:[/^tháng ?(Một|0?1(?!\d))/i,/^tháng ?(Hai|0?2)/i,/^tháng ?(Ba|0?3)/i,/^tháng ?(Tư|0?4)/i,/^tháng ?(Năm|0?5)/i,/^tháng ?(Sáu|0?6)/i,/^tháng ?(Bảy|0?7)/i,/^tháng ?(Tám|0?8)/i,/^tháng ?(Chín|0?9)/i,/^tháng ?(Mười|10)/i,/^tháng ?(Mười ?Một|11)/i,/^tháng ?(Mười ?Hai|12)/i]},_={narrow:/^(CN|T2|T3|T4|T5|T6|T7)/i,short:/^(CN|Th ?2|Th ?3|Th ?4|Th ?5|Th ?6|Th ?7)/i,abbreviated:/^(CN|Th ?2|Th ?3|Th ?4|Th ?5|Th ?6|Th ?7)/i,wide:/^(Chủ ?Nhật|Chúa ?Nhật|thứ ?Hai|thứ ?Ba|thứ ?Tư|thứ ?Năm|thứ ?Sáu|thứ ?Bảy)/i},c={narrow:[/CN/i,/2/i,/3/i,/4/i,/5/i,/6/i,/7/i],short:[/CN/i,/2/i,/3/i,/4/i,/5/i,/6/i,/7/i],abbreviated:[/CN/i,/2/i,/3/i,/4/i,/5/i,/6/i,/7/i],wide:[/(Chủ|Chúa) ?Nhật/i,/Hai/i,/Ba/i,/Tư/i,/Năm/i,/Sáu/i,/Bảy/i]},v={narrow:/^(a|p|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i,abbreviated:/^(am|pm|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i,wide:/^(ch[^i]*|sa|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i},g={any:{am:/^(a|sa)/i,pm:/^(p|ch[^i]*)/i,midnight:/nửa đêm/i,noon:/trưa/i,morning:/sáng/i,afternoon:/chiều/i,evening:/tối/i,night:/^đêm/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(846),a=e(847),r=e(848),o=e(849),n=e(850),s={code:"zh-CN",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+"内":s+"前":s}},function(l,i,e){var t=e(2),a={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},r={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=o;var t=e(13);function a(n,s,u,d){return t.a(n,s,u)?d:n.getTime()>s.getTime()?"'下个'"+d:"'上个'"+d}var r={lastWeek:a,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:a,other:"PP p"};function o(n,s,u,d){var m=r[n];return typeof m=="function"?m(s,u,d,"eeee p"):m}},function(l,i,e){var t=e(3),a={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},r={narrow:["1","2","3","4"],abbreviated:["第一刻","第二刻","第三刻","第四刻"],wide:["第一刻钟","第二刻钟","第三刻钟","第四刻钟"]},o={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},n={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},s={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},u={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}};function d(f,_){var c=Number(f),v=_||{},g=String(v.unit);switch(g){case"date":return c.toString()+"日";case"hour":return c.toString()+"时";case"minute":return c.toString()+"分";case"second":return c.toString()+"秒";default:return"第 "+c.toString()}}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(第\s*)?\d+(日|时|分|秒)?/i,o=/\d+/i,n={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},s={any:[/^(前)/i,/^(公元)/i]},u={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},d={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},m={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},f={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},_={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},c={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},v={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},g={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i,e){var t=e(852),a=e(853),r=e(854),o=e(855),n=e(856),s={code:"zh-TW",formatDistance:t.a,formatLong:a.a,formatRelative:r.a,localize:o.a,match:n.a,options:{weekStartsOn:1,firstWeekContainsDate:4}};i.a=s},function(l,i,e){i.a=a;var t={lessThanXSeconds:{one:"少於 1 秒",other:"少於 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分鐘",lessThanXMinutes:{one:"少於 1 分鐘",other:"少於 {{count}} 分鐘"},xMinutes:{one:"1 分鐘",other:"{{count}} 分鐘"},xHours:{one:"1 小時",other:"{{count}} 小時"},aboutXHours:{one:"大約 1 小時",other:"大約 {{count}} 小時"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大約 1 个星期",other:"大約 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大約 1 個月",other:"大約 {{count}} 個月"},xMonths:{one:"1 個月",other:"{{count}} 個月"},aboutXYears:{one:"大約 1 年",other:"大約 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超過 1 年",other:"超過 {{count}} 年"},almostXYears:{one:"將近 1 年",other:"將近 {{count}} 年"}};function a(r,o,n){n=n||{};var s;return typeof t[r]=="string"?s=t[r]:o===1?s=t[r].one:s=t[r].other.replace("{{count}}",o),n.addSuffix?n.comparison>0?s+"內":s+"前":s}},function(l,i,e){var t=e(2),a={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},r={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},o={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},n={date:t.a({formats:a,defaultWidth:"full"}),time:t.a({formats:r,defaultWidth:"full"}),dateTime:t.a({formats:o,defaultWidth:"full"})};i.a=n},function(l,i,e){i.a=a;var t={lastWeek:"'上個' eeee p",yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:"'下個' eeee p",other:"P"};function a(r,o,n,s){return t[r]}},function(l,i,e){var t=e(3),a={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},r={narrow:["1","2","3","4"],abbreviated:["第一刻","第二刻","第三刻","第四刻"],wide:["第一刻鐘","第二刻鐘","第三刻鐘","第四刻鐘"]},o={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},n={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["週日","週一","週二","週三","週四","週五","週六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},s={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"}},u={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"}};function d(f,_){var c=Number(f),v=_||{},g=String(v.unit);switch(g){case"date":return c.toString()+"日";case"hour":return c.toString()+"時";case"minute":return c.toString()+"分";case"second":return c.toString()+"秒";default:return"第 "+c.toString()}}var m={ordinalNumber:d,era:t.a({values:a,defaultWidth:"wide"}),quarter:t.a({values:r,defaultWidth:"wide",argumentCallback:function(f){return Number(f)-1}}),month:t.a({values:o,defaultWidth:"wide"}),day:t.a({values:n,defaultWidth:"wide"}),dayPeriod:t.a({values:s,defaultWidth:"wide",formattingValues:u,defaultFormattingWidth:"wide"})};i.a=m},function(l,i,e){var t=e(4),a=e(5),r=/^(第\s*)?\d+(日|時|分|秒)?/i,o=/\d+/i,n={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},s={any:[/^(前)/i,/^(公元)/i]},u={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻鐘/i},d={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},m={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},f={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},_={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^週[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},c={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},v={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i},g={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},P={ordinalNumber:t.a({matchPattern:r,parsePattern:o,valueCallback:function(h){return parseInt(h,10)}}),era:a.a({matchPatterns:n,defaultMatchWidth:"wide",parsePatterns:s,defaultParseWidth:"any"}),quarter:a.a({matchPatterns:u,defaultMatchWidth:"wide",parsePatterns:d,defaultParseWidth:"any",valueCallback:function(h){return h+1}}),month:a.a({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:f,defaultParseWidth:"any"}),day:a.a({matchPatterns:_,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),dayPeriod:a.a({matchPatterns:v,defaultMatchWidth:"any",parsePatterns:g,defaultParseWidth:"any"})};i.a=P},function(l,i){},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0}),i.GT_ACCESS_TOKEN="GT_ACCESS_TOKEN",i.GT_VERSION="1.8.0",i.GT_COMMENT="GT_COMMENT"},function(l,i,e){Object.defineProperty(i,"__esModule",{value:!0});var t=e(860),a=o(t),r=e(121);function o(u){return u&&u.__esModule?u:{default:u}}var n=function(d,m){var f=m==="last"?"before":"after",_=` + query getIssueAndComments( + $owner: String!, + $repo: String!, + $id: Int!, + $cursor: String, + $pageSize: Int! + ) { + repository(owner: $owner, name: $repo) { + issue(number: $id) { + title + url + bodyHTML + createdAt + comments(`+m+": $pageSize, "+f+`: $cursor) { + totalCount + pageInfo { + `+(m==="last"?"hasPreviousPage":"hasNextPage")+` + `+(f==="before"?"startCursor":"endCursor")+` + } + nodes { + id + databaseId + author { + avatarUrl + login + url + } + bodyHTML + body + createdAt + reactions(first: 100, content: HEART) { + totalCount + viewerHasReacted + pageInfo{ + hasNextPage + } + nodes { + id + databaseId + user { + login + } + } + } + } + } + } + } + } + `;return d.cursor===null&&delete d.cursor,{operationName:"getIssueAndComments",query:_,variables:d}};function s(u){var d=this,m=this.options,f=m.owner,_=m.repo,c=m.perPage,v=m.pagerDirection,g=m.defaultAuthor,P=this.state,h=P.cursor,y=P.comments;return r.axiosGithub.post("/graphql",n({owner:f,repo:_,id:u.number,pageSize:c,cursor:h},v),{headers:{Authorization:"bearer "+this.accessToken}}).then(function(W){var T=W.data.data.repository.issue.comments,j=T.nodes.map(function(I){var M=I.author||g;return{id:I.databaseId,gId:I.id,user:{avatar_url:M.avatarUrl,login:M.login,html_url:M.url},created_at:I.createdAt,body_html:I.bodyHTML,body:I.body,html_url:"https://github.com/"+f+"/"+_+"/issues/"+u.number+"#issuecomment-"+I.databaseId,reactions:I.reactions}}),b=void 0;v==="last"?b=[].concat((0,a.default)(j),(0,a.default)(y)):b=[].concat((0,a.default)(y),(0,a.default)(j));var C=T.pageInfo.hasPreviousPage===!1||T.pageInfo.hasNextPage===!1;return d.setState({comments:b,isLoadOver:C,cursor:T.pageInfo.startCursor||T.pageInfo.endCursor}),b})}i.default=s},function(l,i,e){i.__esModule=!0;var t=e(861),a=r(t);function r(o){return o&&o.__esModule?o:{default:o}}i.default=function(o){if(Array.isArray(o)){for(var n=0,s=Array(o.length);n1?arguments[1]:void 0,P=g!==void 0,h=0,y=d(_),W,T,j,b;if(P&&(g=t(g,v>2?arguments[2]:void 0,2)),y!=null&&!(c==Array&&n(y)))for(b=y.call(_),T=new c;!(j=b.next()).done;h++)u(T,h,P?o(b,g,[j.value,h],!0):j.value);else for(W=s(_.length),T=new c(W);W>h;h++)u(T,h,P?g(_[h],h):_[h]);return T.length=h,T}})},function(l,i,e){var t=e(16),a=e(39);l.exports=function(r,o,n){o in r?t.f(r,o,a(0,n)):r[o]=n}}])})})(st);var wr=st.exports;const Cr=nt(wr);const xr=R=>(bn("data-v-c2acb4b7"),R=R(),Wn(),R),jr={class:"gitalk-comment"},Ir=xr(()=>qe("div",{id:"gitalk-container",class:"gitalk-container"},null,-1)),Ar=[Ir],Lr=Fe({__name:"GitalkComment",props:{issueId:{}},setup(R){const H=R;function l(){new Cr({clientID:"b83f94a1becad40b30df",clientSecret:"43f498e9660b0fb385a0a139277f13e87f26074d",repo:"learning-vue3",owner:"chengpeiquan",admin:["chengpeiquan"],id:Tr(location.pathname),number:H.issueId}).render("gitalk-container")}return ke(l),(i,e)=>(Ie(),Ae("div",jr,Ar))}});const Rr=He(Lr,[["__scopeId","data-v-c2acb4b7"]]),Ur={class:"img-wrap"},Br=["src","alt"],Kr={key:0,class:"desc"},Sr=Fe({__name:"ImgWrap",props:{src:{},dark:{},alt:{},maxWidth:{}},setup(R){const H=R,l=Be(),i=Be(!1),e=Tn(()=>i.value&&H.dark?H.dark:H.src),t=Be();function a(){const r=document.querySelector("html");r&&(l.value=r,i.value=l.value.classList.contains("dark"),t.value=new MutationObserver(o=>{o.forEach(n=>{const{type:s,target:u}=n;s==="attributes"&&(i.value=u.classList.contains("dark"),console.log(i.value))})}),t.value.observe(l.value,{subtree:!1,attributes:!0,attributeFilter:["class"]}))}return ke(()=>{a()}),wn(()=>{t.value&&t.value.disconnect()}),(r,o)=>(Ie(),Ae("div",Ur,[qe("img",{class:"img",style:Cn({maxWidth:`${r.maxWidth}px`||"100%"}),src:e.value,alt:r.alt||"Vue3"},null,12,Br),r.alt?(Ie(),Ae("p",Kr,xn(r.alt),1)):jn("",!0)]))}});const Nr=He(Sr,[["__scopeId","data-v-04203bbc"]]);JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"../.vitepress/theme/components/ReadingTips.md","filePath":"../.vitepress/theme/components/ReadingTips.md"}');const zr={name:"../.vitepress/theme/components/ReadingTips.md"},Fr=In('

温馨提示

这是笔者写于 2024.02.20 的补充提示,为读者解答为何前面的章节都未提及 script-setup 组件语法的信息。

笔者在执笔之初,考虑到降低初学过程中的各种心智负担,以及当时处于 script-setup 组件语法尚未完全稳定的背景下,所以在最后一章 高效开发 之前的章节,都只提供了组件的标准写法的讲解。

除非遇到框架进行了 Breaking Change (例如从 Vue 2 升级到了 Vue 3 这种大版本更新),否则标准写法是始终有效的,在笔者多年的学习经历和实际收获里,也是比较相信一点:不论学习什么语言或者框架,只要基础打的好,未来总是可以轻松地举一反三去解决遇到的各类问题。

因此如果读者通过各类脚手架创建的 Vue 3 项目,在组件看到 <script setup> 这种风格的组件,以及诸如 defineXxx 风格的 API ,这是 .vue 组件所支持的一种语法糖,可以随时在 高效开发 一章了解相关的 API 用法。

另外从 Vue 3.4 版本之后所新增的 API 未在本书的介绍范围内,请读者在阅读的过程中也可以查阅官方的 API 一起学习,不论是本书还是其他计算机书籍,官方文档永远是最好的查询手册。

TIP

语法糖(英语:Syntactic sugar)是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

',7),kr=[Fr];function Hr(R,H,l,i,e,t){return Ie(),Ae("div",null,kr)}const Yr=He(zr,[["render",Hr]]);function be(){return typeof window<"u"?navigator.userAgent.toLowerCase():""}const Vr=typeof window<"u";/Android/i.test(be());/iPhone|iPod|iPad|iOS/i.test(be());/uni-app|html5plus/.test(be());/MicroMessenger/i.test(be());/\sQQ|mqqbrowser|qzone|qqbrowser/i.test(be());/mqqbrowser|qqbrowser/i.test(be());/qzone\/.*_qz_([\d.]+)/i.test(be());/(weibo).*weibo__([\d.]+)/i.test(be());/(baiduboxapp)\/([\d.]+)/i.test(be());function Xr({type:R,id:H,resource:l}){return new Promise((i,e)=>{if(!Vr||document.querySelector(`#${H}`)){e();return}function t(a){a.addEventListener("load",i),a.addEventListener("error",e),a.addEventListener("abort",e)}switch(R){case"js":{const a=document.createElement("script");a.id=H,a.async=!0,a.src=l,t(a),document.head.appendChild(a);break}case"css":{const a=document.createElement("link");a.id=H,a.rel="stylesheet",a.href=l,t(a),document.head.appendChild(a);break}case"style":{const a=document.createElement("style");a.id=H,t(a),document.head.appendChild(a),a.appendChild(document.createTextNode(l));break}}})}function Gr(){try{return"production"}catch{return}}Gr();function Qe(R){try{return R==="production"}catch{return!1}}Qe("development");Qe("test");Qe("production");const Ke={hot:" ~hot",new:" ~new"},Qr={hot:'',new:''};function $r(){if(ye)try{Xr({type:"style",id:"symbol-plugin",resource:` + .sidebar__icon--default { + position: relative; + display: inline-block; + width: 18px; + height: 18px; + color: #fff; + font-size: 13px; + font-weight: bold; + font-style: normal; + vertical-align: middle; + margin: 0 5px; + transform: scale(0.7) rotate(30deg); + } + .sidebar__icon--default:before { + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 18px; + line-height: 18px; + text-align: center; + transform: rotate(135deg); + } + .sidebar__icon--hot { + background-color: #da5961; + } + .sidebar__icon--hot:before { + content: "H"; + background-color: #da5961; + } + .sidebar__icon--new { + background-color: #3eaf7c; + } + .sidebar__icon--new:before { + content: "N"; + background-color: #3eaf7c; + } + `}).catch(H=>{console.log(H)})}catch(R){console.log(R)}}function Jr(){ye&&setTimeout(()=>{try{const R=document.querySelectorAll(".aside-container nav .outline-link")||[],H=document.querySelectorAll(".content-container h2")||[],l=document.querySelectorAll(".content-container h3")||[],i=document.querySelectorAll(".content-container h4")||[];[...R,...H,...l,...i].forEach(t=>{let a=t.innerHTML;for(const r in Ke)if(Object.hasOwnProperty.call(Ke,r)){const o=r,n=Ke[o],s=Qr[o],u=new RegExp(n,"img");if(a.includes(n)){const{nodeName:d}=t;switch(d){case"H2":case"H3":case"H4":a=a.replace(u,"");break;default:a=a.replace(u,s)}t.innerHTML=a}}})}catch(R){console.log(R)}},100)}const ut={update:"upgrade"};function dt(){if(!ye)return"";const{pathname:R}=window.location;return R.slice(1).replace(".html","")}function Zr(){if(!ye)return!1;const R=dt();return Object.keys(ut).includes(R)}function qr(){if(!ye)return"/";const R=dt();return`/${ut[R]}.html`||"/"}function ei(){ye&&window.location.replace(qr())}const{baiduAnalytics:Ze,registerBaiduAnalytics:ti}=pr(),ai={...$n,enhanceApp({app:R,router:H}){R.component("GitalkComment",Rr),R.component("ImgWrap",Nr),R.component("ReadingTips",Yr),ye&&(Zr()&&ei(),$r(),ti(R,{websiteIds:["8dca8e2532df48ea7f1b15c714588691","025e7d9acbc7359afa71bdae5aa03f33"]}),window.addEventListener("hashchange",()=>{Ze.trackPageview({pageUrl:window.location.href})}),H.onAfterRouteChanged=l=>{Jr(),Ze.trackPageview({pageUrl:l})})}};function lt(R){if(R.extends){const H=lt(R.extends);return{...H,...R,async enhanceApp(l){H.enhanceApp&&await H.enhanceApp(l),R.enhanceApp&&await R.enhanceApp(l)}}}return R}const xe=lt(ai),ni=Fe({name:"VitePressApp",setup(){const{site:R}=Ln();return ke(()=>{Rn(()=>{document.documentElement.lang=R.value.lang,document.documentElement.dir=R.value.dir})}),Un(),Bn(),Kn(),xe.setup&&xe.setup(),()=>Sn(xe.Layout)}});async function ri(){const R=oi(),H=ii();H.provide(Nn,R);const l=zn(R.route);return H.provide(Fn,l),H.component("Content",kn),H.component("ClientOnly",Hn),Object.defineProperties(H.config.globalProperties,{$frontmatter:{get(){return l.frontmatter.value}},$params:{get(){return l.page.value.params}}}),xe.enhanceApp&&await xe.enhanceApp({app:H,router:R,siteData:Yn}),{app:H,router:R,data:l}}function ii(){return Vn(ni)}function oi(){let R=ye,H;return Xn(l=>{let i=Gn(l);return i?(R&&(H=i),(R||H===i)&&(i=i.replace(/\.js$/,".lean.js")),ye&&(R=!1),Qn(()=>import(i),[])):null},xe.NotFound)}ye&&ri().then(({app:R,router:H,data:l})=>{H.go().then(()=>{An(H.route,l.site),R.mount("#app")})});export{ri as createApp}; diff --git a/assets/changelog.md.1e825a6d.js b/assets/changelog.md.1e825a6d.js new file mode 100644 index 00000000..c43fed41 --- /dev/null +++ b/assets/changelog.md.1e825a6d.js @@ -0,0 +1,8 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as a,v as e,b as l,R as t}from"./chunks/framework.0d8bea05.js";const f=JSON.parse('{"title":"更新记录","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"changelog.md","filePath":"changelog.md"}'),i={name:"changelog.md"},r=t('

更新记录

由于平时也比较忙,都是利用碎片时间整理的文档,习惯勤备份,因此 commit 记录比较多,而且有些提交记录跟内容也无关,比如文档程序的调整和优化等代码提交是和内容无关的。

考虑到后面还会不定期更新内容,所以翻了一下之前跟朋友的微信聊天记录整理了前期的更新记录,之后当文档有再次更新的时候也会继续整理更新记录,方便读者们查阅。

2024-02-20

单组件的编写路由的使用插件的开发和使用组件之间的通信全局状态管理 这几张内容的最前面,补充了一个阅读提示,解答近期收到的读者反馈的一些疑惑。

2024-01-16

插件部分增加一个 path/to 的典故 扩展阅读。

2023-05-07

感谢各位读者长期以来的支持,经过长达一年时间的打磨和优化,本书已于 2023 年 5 月份正式出版上市,纸质版书籍的正式名称为《前端工程化:基于 Vue.js 3.0 的设计与实践》。

如果您对笔者的作品认可,建议购买纸质版,纸质书在电子书的基础上,经过机械工业出版社的编辑老师们的内容优化、校对勘误、排版美化,更成体系!

各位读者可以在各大电商平台购买纸质版书籍:

☞ 访问 京东商城 购买

☞ 访问 天猫商城 购买

可点击 出版说明 了解更多信息。

2023-03-01

在 “单组件的编写” 的 DOM 元素与子组件 一节里,添加了 InstanceType<T> 帮助类型的使用说明,感谢 @rayadaschn#62 (comment) 的反馈。

2022-11-20

在 “高效开发” 新增了 命名技巧 一节,希望能够帮助有命名困扰的开发者解决选择困难的问题。

2022-11-17

更新了 “用 ES Module 设计模块” 中关于 命名导出和导入 的讲解,减少在理解上的歧义,感谢 @Yeshan-Taoist#163 (commont) 的反馈。

2022-11-12

优化了 “高效开发” 一章,考虑到现在的 Vue 3 项目基本都是最新版本的 Vue ,因此移除了过渡时期的一些过时的使用提示信息,同时优化了演示代码使其更容易理解。

2022-11-11

优化了 “组件之间的通信” 一章:

  • 把一些原来没有特地注明是父组件的代码还是子组件的代码,进行了明确的标明,并优化了一部分示范代码
  • 修正了之前一部分示范代码的 TypeScript 类型(之前有一些地方用了 any ,现在更新为明确的类型)
  • 优化了 provide / inject 的相关内容,大幅度缩短了篇幅,但通过新的例子使其更容易看懂
  • 增加了 Reactive State 创建一个小型的状态中心案例
  • Vuex 添加了一些使用提示,建议使用 Pinia 代替 Vuex 作为状态管理库使用

2022-11-06

优化了 “路由的使用” 一章:

  • 涉及 Webpack 的环境变量和配置,统一调整为 Vite 的配置,并标注了这些配置在使用时需要留意当前所使用的构建工具是否匹配
  • 将原本指向 Vue Router 英文官网的参考内容地址修改为指向其中文官网(因为当时编写的时候还没有中文官网)
  • 优化了里面的一些举例,使其更容易理解

优化了 “插件的开发和使用” 一章:

  • 简化了一些例子

2022-11-04

比较大幅度的优化了 “单组件的编写” 一章的 响应式 API 之 toRef 与 toRefs 的内容,使其更容易理解。

2022-11-02

优化了 “单组件的编写” 一章的 “响应式 API 之 ref ” 一节,对其 类型声明 作了一个更容易理解和更详细的讲解。

2022-10-25

  • 把 hello-node 和 hello-lib 这两个演示仓库同步到了 Gitee ,如果访问 GitHub 失败,也可以从 Gitee 拉取。
  • 在 “脚手架的升级与配置” 一章更新了 Vue Devtools 的介绍,因为插件更新后变化较大,重新截图进行了说明,并且对图片适配了文档的 Light / Dark 皮肤切换

2022-10-23

在 “工程化的前期准备” 一章的 “用 ES Module 设计模块” 一节,增加了 在浏览器里访问 ESM 小节,讲解了浏览器对原生 ESM 的访问支持和限制,以及在 HTML 页面里使用 ESM 的代码演示。

另外贯穿 “前端工程化入门” 所演示的 hello-node 项目已托管至 learning-vue3/hello-node 仓库,可使用 Git 克隆命令拉取至本地:

bash
git clone https://github.com/learning-vue3/hello-node.git

成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 node 开发的体验,可以更有效的提升学习效果。

2022-10-13

  1. 本书目前已不再仅限于 Vue 3 的学习,因此重写了 前言 的内容
  2. 不同时期写的内容存在一定程度的上下文不统一(例如早期使用了 @vue/cli 创建的项目做演示,后期因为 Vite 的出现并且被 Vue 官方作为其主推的构建工具,因此新内容使用的是 Vite 项目),因此对内容进行了检查和统一修正
  3. 减少了全文的人称代词,剩下不可删除的则进行了上下文统一,减少前后不一致可能会引起一些理解困惑
  4. 优化了不同时期的内容之间的章节衔接

其中第 2 、 3 、 4 点可能还有遗漏,近期持续检查修正。

2022-10-11

在 “开发 npm 包” 部分 常用的构建工具 一节增加 Node 版本检查的提示,在开发之前请确保当前的 Node 版本是否在构建工具的支持范围内,感谢 @rayadaschn#204 的建议。

2022-10-10

发布 npm 包 小节增加一个取消镜像源的提示,否则可能引起发布失败。

2022-10-09

在 “开发 npm 包” 部分所演示的 hello-lib 项目已托管至 learning-vue3/hello-lib 仓库,可使用 Git 克隆命令拉取至本地:

bash
git clone https://github.com/learning-vue3/hello-lib.git

成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 npm 包的开发流程,可以更有效的提升学习效果。

2022-10-08

在 “开发 npm 包” 的相关内容处增加了 添加版权注释 的构建说明,它的作用除了声明版权归属之外,还会告知使用者关于项目的主页地址、版本号、发布日期、 BUG 反馈渠道等信息,例如 jQuery / Lodash / Swiper 等库都有这样的版权注释,因此补充了这部分的内容,供有需要的开发者了解和使用。

2022-10-07

  1. 文档程序从 VuePress 2.x 迁移到 VitePress 1.x ,并做了简单的主题适配
  2. 原来的 “脚手架的升级与配置” 一章的访问地址从 update 调整为 upgrade ,访问地址已配置重定向
  3. 由于原来的 “起步准备” 一章内容有点太长,这一次续写拆分了一下内容,重新划分为单独的三章,分别是:
    • 独立出来了 了解前端工程化 一章,用于科普现代前端开发所要求的工程化概念,属于讲故事性质的一章内容
    • 工程化的前期准备 是原来 “起步准备” 的核心内容部分,主要是科普前端工程化的入门实践,属于动手实操章节
    • 另外考虑到本书是直接使用 TypeScript 来入门 Vue 3 ,语言部分也是内容的重点之一,所以把 TypeScript 部分也独立成了 快速上手 TypeScript 一章
  4. 在 “了解前端工程化” 一章里,增加以下内容:
  5. 在 “工程化的前期准备” 一章里,增加以下内容:
  6. 在 “插件的开发和使用” 一章里,增加了以下内容:

2022-09-01

更新了引用到的官方文档链接,同时修复了部分官方文档未做好重定向的无效链接,感谢 @alleluya-young#191 的反馈!

2022-07-03

补充了关于 Node.js 版本之间的区别 的一些说明。

2022-06-23

根据 #163 (comment) 的反馈,对一些 ES6+ 可能容易混淆的新语法进行了一些 Tips 补充,减少学习过程中的理解成本。

2022-05-03

更新了 “升级与配置” 一章的部分内容:

  1. 更新了使用 Create Preset 创建项目的说明,现在可以通过 --template 选项来指定模板创建,例如:
bash
# 全局安装\nnpm install -g create-preset\n\n# 将使用 `vue3-ts-vite` 模板创建一个名为 `hello-vue3` 的项目\npreset init hello-vue3 --template vue3-ts-vite
  1. 配合 1 的更新,相应的增加了 Hello Vue3 一节
  2. 配合 @vue/cli 5.x 版本的命令行交互,更新了 使用 @vue/cli 创建项目 的内容
  3. 更新了 调整 TS Config 部分的内容,由于现在通过各类脚手架创建的 TypeScript 项目都自带了该文件,所以这部分内容移除了之前的配置参考,仅保留 paths 的配置提醒

2022-04-30

最近有时间,所以对内容做了一大波更新,主要是补充了在开始开发 Vue 项目之前的一些基础知识点,当然 Vue 相关的内容也做了一些新增或者完善。

  1. 增加了全新的一章 “起步准备” ,面向对前端工程化开发不太熟悉的开发者,包含了以下内容:

  2. 在 “升级与配置” 一章里,增加了以下内容:

  3. 在 “单组件的编写” 一章里,增加了以下内容:

    • 响应式数据 设计上的变化
    • 增加了 指令 一节的内容,主要讲解如何在 Vue 3 开发自定义指令
    • 增加了 插槽 一节的内容
  4. 在 “路由的使用” 一章里,增加了以下内容,整理了一些常见的部署问题原因以及解决方案:

  5. 在 “插件的使用” 一章里,对 “本地插件” 作了进一步的细化讲解:

2022-04-20

更正了 watch API 在 侦听选项之 deep 部分内容的错误,并增加了如何检测特例的用法,感谢 @zcc0329 的反馈!

2022-04-10

重写了单组件关于 数据的侦听 这一节的内容,因为在写 Pinia 的订阅功能的时候,有很多跟 watch 相关联的知识点,发现之前这部分内容写的比较简单,所以完善了一下。

2022-04-07

补充了昨天新增的关于 Pinia 订阅 state 部分的一些内容。

2022-04-06

  1. 创建基于 Vite 的 Vue 3 项目增加了一些内容:

    • 增加了使用 Create Vue 创建 Vite 项目的说明
    • 使用 Create Preset 创建的 vue3-ts-vite 预设项目,使用 Pinia 代替 Vuex
  2. 补充了 Pinia 的部分内容:

2022-04-04

先跟大家说声抱歉,在 2022-02-09 的更新里说要写这部分内容,结果因为现实里的一些事情还有工作比较忙,现在借着假期才得以继续更新。

增加了 全局状态的管理 一章,主要是面向 Vue 3 全新的状态管理工具 Pinia 展开,里面的大部分内容也加入了和 Vuex 的对比。

虽然可以归入 组件之间的通信 里,但 Pinia 作为被官方推荐在 Vue 3 项目里作为全局状态管理的新工具,写着写着我觉得还是单独开一章来写会更方便阅读和理解。

2022-03-04

把 Algolia 的搜素功能申请下来了,看看文档的搜索体验会不会比较好(搜索框在页面的右上角)。

2022-02-28

升级了文档的程序版本,加入了 Dark Mode 暗黑模式的支持,默认跟随系统模式进行适配,可以在右上角的 “主题切换” 按钮手动切换主题。

2022-02-09

  1. 优化了 升级与配置 一章,配合 2022-02-07 Vue 3 成为默认版本带来的调整变化,主要改动如下:

  2. 高效开发 一章开头的 WARNING 改成了 TIP ,里面提到的功能在最新版的 Vue 下发挥稳定,后续如果有实验性的 API 再单独标记。

  3. 把原先演示命令里的 @next 版本都改成了 @latest ,现在不需要指定 next 就能使用 Vue 3 了。

  4. 更新了 官方文档 里面的链接说明,因为各个官网在 2022-02-07 都上线了新版本,更换了新地址。

  5. 组件之间的通信 里加入了 Pinia 的介绍,不过暂时没有写实践记录(还没有时间哈哈哈),欢迎先自行体验,这是一个官方推荐的适合 Vue 3 的状态管理工具,因为它更加面向 Composition API 的编程方式(至少在 Vuex 5 推出之前,建议用来代替 Vuex 4)。

  6. 改了一下文档名称:《Vue3.0 学习教程与实战案例》 --> 《Vue 3 入门指南与实战案例》,其他原先使用 Vue 3.0 叫法的地方,后面也会陆续改成 Vue 3 了。

2022-01-20

  1. 更新了 cnpm 的用法,原因是旧的 cnpm 源即将下线,需要使用新的域名啦!(感谢 @alleluya-young#135 的反馈!)

  2. 添加了 pnpm 的用法说明,目前开源社区越来越流行使用 pnpm ,对大型项目管理也有好处,值得了解和体验。

2021-12-05

由于离第一次执笔到现在有了差不多一年的时间,当时的前言信息有些陈旧,重新写了一下 前言

另外经过 2021 年的开发实践,很多地方我又有了新的认知,打算在接下来的时间里,我会再继续抽空把各部分的内容再精细化一下,把以前可能写的比较简单的部分,或者没有写进来的一些功能点,都再做一次完善。

2021-11-16

重写了 数据的计算 一节,之前对于计算数据的介绍,描述上确实有点难以理解,而且有点简单带过,所以重新写了这部分内容,感谢读者 @superficial 的反馈!

2021-10-07

补充了 全局编译器宏 的配置说明,本来很久前就想写的,一直偷懒,国庆结束前补充进来啦!

2021-08-17

更新了 3.2.0 版本新增的一些知识点:

  1. 增加了 使用 v-bind 动态修改 style 功能说明,同时结合上下文知识点补充了 动态绑定 CSS 一节

  2. 增加了 CSS Modules 一节的内容

  3. 增加了 useCssModule 一节的内容

2021-08-16

  1. 更新了 深度操作符 的内容,原有的 API 已被废弃,请注意使用新写法

  2. 补充了几个拓展阅读链接到 教程工具

2021-07-28

迎接 Vue 3.2.0 的新版本内容,对 script-setup 做了较多的调整。

目前 3.2 还处于 Beta 阶段,不过从这个版本开始,script-setup 脱离实验性阶段,正式进入 Vue 3.0 的队伍,本次的更新内容较多,很多测试阶段的 API 被移除或者修改,如果之前有用过 script-setup ,建议先简单看我之前的博客,了解本次的一些变更:

Vue3.0 最新动态:script-setup 定稿 部分实验性 API 将弃用

2021-03-31

  1. 调整了 使用全局 API 一节的内容

原因是原来推荐的 const { proxy } = getCurrentInstance() 的方案,在 TS 新版本校验下,使用成本非常高,原来的代码不做多层判断的情况下已经无法正常运行,所以按照目前的 “最佳实践” 重新更新了这一节。

  1. 新增了一节 全局 API 的替代方案

由于 Vue 3.0 的有意为之,这个 “最佳实践” 实际上用起来也挺繁琐(在官网和 GitHub 对此都有说明,不推荐使用),所以补充了这一节内容。

2021-03-23

DOM 元素与子组件 一节增加了 TS 类型的定义说明,以及编译失败的原因说明及解决方案补充,非常感谢 @aierong 的反馈和支持。

2021-03-21

增加了 高效开发 一章,将记录一些提高 Vue 3.0 开发效率的内容,面像对 Vue 3.0 已上手,想提高开发效率的开发者。

本次更新了 script-setup 一节的内容。

2021-01-21

增加了 组件之间的通信 一章的内容。

2020-12-18

本文档的第一个版本上线,完成了 升级与配置单组件的编写路由的使用插件的使用 等章节的编写。

2020-10-01

国庆期间开始开荒 Vue 3.0,陆陆续续打了不少笔记,业余时间着手整理成文档。

',122),h=[r];function n(o,p,s,u,c,d){return e(),l("div",null,h)}const g=a(i,[["render",n]]);export{f as __pageData,g as default}; diff --git a/assets/changelog.md.1e825a6d.lean.js b/assets/changelog.md.1e825a6d.lean.js new file mode 100644 index 00000000..c43fed41 --- /dev/null +++ b/assets/changelog.md.1e825a6d.lean.js @@ -0,0 +1,8 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as a,v as e,b as l,R as t}from"./chunks/framework.0d8bea05.js";const f=JSON.parse('{"title":"更新记录","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"changelog.md","filePath":"changelog.md"}'),i={name:"changelog.md"},r=t('

更新记录

由于平时也比较忙,都是利用碎片时间整理的文档,习惯勤备份,因此 commit 记录比较多,而且有些提交记录跟内容也无关,比如文档程序的调整和优化等代码提交是和内容无关的。

考虑到后面还会不定期更新内容,所以翻了一下之前跟朋友的微信聊天记录整理了前期的更新记录,之后当文档有再次更新的时候也会继续整理更新记录,方便读者们查阅。

2024-02-20

单组件的编写路由的使用插件的开发和使用组件之间的通信全局状态管理 这几张内容的最前面,补充了一个阅读提示,解答近期收到的读者反馈的一些疑惑。

2024-01-16

插件部分增加一个 path/to 的典故 扩展阅读。

2023-05-07

感谢各位读者长期以来的支持,经过长达一年时间的打磨和优化,本书已于 2023 年 5 月份正式出版上市,纸质版书籍的正式名称为《前端工程化:基于 Vue.js 3.0 的设计与实践》。

如果您对笔者的作品认可,建议购买纸质版,纸质书在电子书的基础上,经过机械工业出版社的编辑老师们的内容优化、校对勘误、排版美化,更成体系!

各位读者可以在各大电商平台购买纸质版书籍:

☞ 访问 京东商城 购买

☞ 访问 天猫商城 购买

可点击 出版说明 了解更多信息。

2023-03-01

在 “单组件的编写” 的 DOM 元素与子组件 一节里,添加了 InstanceType<T> 帮助类型的使用说明,感谢 @rayadaschn#62 (comment) 的反馈。

2022-11-20

在 “高效开发” 新增了 命名技巧 一节,希望能够帮助有命名困扰的开发者解决选择困难的问题。

2022-11-17

更新了 “用 ES Module 设计模块” 中关于 命名导出和导入 的讲解,减少在理解上的歧义,感谢 @Yeshan-Taoist#163 (commont) 的反馈。

2022-11-12

优化了 “高效开发” 一章,考虑到现在的 Vue 3 项目基本都是最新版本的 Vue ,因此移除了过渡时期的一些过时的使用提示信息,同时优化了演示代码使其更容易理解。

2022-11-11

优化了 “组件之间的通信” 一章:

  • 把一些原来没有特地注明是父组件的代码还是子组件的代码,进行了明确的标明,并优化了一部分示范代码
  • 修正了之前一部分示范代码的 TypeScript 类型(之前有一些地方用了 any ,现在更新为明确的类型)
  • 优化了 provide / inject 的相关内容,大幅度缩短了篇幅,但通过新的例子使其更容易看懂
  • 增加了 Reactive State 创建一个小型的状态中心案例
  • Vuex 添加了一些使用提示,建议使用 Pinia 代替 Vuex 作为状态管理库使用

2022-11-06

优化了 “路由的使用” 一章:

  • 涉及 Webpack 的环境变量和配置,统一调整为 Vite 的配置,并标注了这些配置在使用时需要留意当前所使用的构建工具是否匹配
  • 将原本指向 Vue Router 英文官网的参考内容地址修改为指向其中文官网(因为当时编写的时候还没有中文官网)
  • 优化了里面的一些举例,使其更容易理解

优化了 “插件的开发和使用” 一章:

  • 简化了一些例子

2022-11-04

比较大幅度的优化了 “单组件的编写” 一章的 响应式 API 之 toRef 与 toRefs 的内容,使其更容易理解。

2022-11-02

优化了 “单组件的编写” 一章的 “响应式 API 之 ref ” 一节,对其 类型声明 作了一个更容易理解和更详细的讲解。

2022-10-25

  • 把 hello-node 和 hello-lib 这两个演示仓库同步到了 Gitee ,如果访问 GitHub 失败,也可以从 Gitee 拉取。
  • 在 “脚手架的升级与配置” 一章更新了 Vue Devtools 的介绍,因为插件更新后变化较大,重新截图进行了说明,并且对图片适配了文档的 Light / Dark 皮肤切换

2022-10-23

在 “工程化的前期准备” 一章的 “用 ES Module 设计模块” 一节,增加了 在浏览器里访问 ESM 小节,讲解了浏览器对原生 ESM 的访问支持和限制,以及在 HTML 页面里使用 ESM 的代码演示。

另外贯穿 “前端工程化入门” 所演示的 hello-node 项目已托管至 learning-vue3/hello-node 仓库,可使用 Git 克隆命令拉取至本地:

bash
git clone https://github.com/learning-vue3/hello-node.git

成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 node 开发的体验,可以更有效的提升学习效果。

2022-10-13

  1. 本书目前已不再仅限于 Vue 3 的学习,因此重写了 前言 的内容
  2. 不同时期写的内容存在一定程度的上下文不统一(例如早期使用了 @vue/cli 创建的项目做演示,后期因为 Vite 的出现并且被 Vue 官方作为其主推的构建工具,因此新内容使用的是 Vite 项目),因此对内容进行了检查和统一修正
  3. 减少了全文的人称代词,剩下不可删除的则进行了上下文统一,减少前后不一致可能会引起一些理解困惑
  4. 优化了不同时期的内容之间的章节衔接

其中第 2 、 3 、 4 点可能还有遗漏,近期持续检查修正。

2022-10-11

在 “开发 npm 包” 部分 常用的构建工具 一节增加 Node 版本检查的提示,在开发之前请确保当前的 Node 版本是否在构建工具的支持范围内,感谢 @rayadaschn#204 的建议。

2022-10-10

发布 npm 包 小节增加一个取消镜像源的提示,否则可能引起发布失败。

2022-10-09

在 “开发 npm 包” 部分所演示的 hello-lib 项目已托管至 learning-vue3/hello-lib 仓库,可使用 Git 克隆命令拉取至本地:

bash
git clone https://github.com/learning-vue3/hello-lib.git

成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 npm 包的开发流程,可以更有效的提升学习效果。

2022-10-08

在 “开发 npm 包” 的相关内容处增加了 添加版权注释 的构建说明,它的作用除了声明版权归属之外,还会告知使用者关于项目的主页地址、版本号、发布日期、 BUG 反馈渠道等信息,例如 jQuery / Lodash / Swiper 等库都有这样的版权注释,因此补充了这部分的内容,供有需要的开发者了解和使用。

2022-10-07

  1. 文档程序从 VuePress 2.x 迁移到 VitePress 1.x ,并做了简单的主题适配
  2. 原来的 “脚手架的升级与配置” 一章的访问地址从 update 调整为 upgrade ,访问地址已配置重定向
  3. 由于原来的 “起步准备” 一章内容有点太长,这一次续写拆分了一下内容,重新划分为单独的三章,分别是:
    • 独立出来了 了解前端工程化 一章,用于科普现代前端开发所要求的工程化概念,属于讲故事性质的一章内容
    • 工程化的前期准备 是原来 “起步准备” 的核心内容部分,主要是科普前端工程化的入门实践,属于动手实操章节
    • 另外考虑到本书是直接使用 TypeScript 来入门 Vue 3 ,语言部分也是内容的重点之一,所以把 TypeScript 部分也独立成了 快速上手 TypeScript 一章
  4. 在 “了解前端工程化” 一章里,增加以下内容:
  5. 在 “工程化的前期准备” 一章里,增加以下内容:
  6. 在 “插件的开发和使用” 一章里,增加了以下内容:

2022-09-01

更新了引用到的官方文档链接,同时修复了部分官方文档未做好重定向的无效链接,感谢 @alleluya-young#191 的反馈!

2022-07-03

补充了关于 Node.js 版本之间的区别 的一些说明。

2022-06-23

根据 #163 (comment) 的反馈,对一些 ES6+ 可能容易混淆的新语法进行了一些 Tips 补充,减少学习过程中的理解成本。

2022-05-03

更新了 “升级与配置” 一章的部分内容:

  1. 更新了使用 Create Preset 创建项目的说明,现在可以通过 --template 选项来指定模板创建,例如:
bash
# 全局安装\nnpm install -g create-preset\n\n# 将使用 `vue3-ts-vite` 模板创建一个名为 `hello-vue3` 的项目\npreset init hello-vue3 --template vue3-ts-vite
  1. 配合 1 的更新,相应的增加了 Hello Vue3 一节
  2. 配合 @vue/cli 5.x 版本的命令行交互,更新了 使用 @vue/cli 创建项目 的内容
  3. 更新了 调整 TS Config 部分的内容,由于现在通过各类脚手架创建的 TypeScript 项目都自带了该文件,所以这部分内容移除了之前的配置参考,仅保留 paths 的配置提醒

2022-04-30

最近有时间,所以对内容做了一大波更新,主要是补充了在开始开发 Vue 项目之前的一些基础知识点,当然 Vue 相关的内容也做了一些新增或者完善。

  1. 增加了全新的一章 “起步准备” ,面向对前端工程化开发不太熟悉的开发者,包含了以下内容:

  2. 在 “升级与配置” 一章里,增加了以下内容:

  3. 在 “单组件的编写” 一章里,增加了以下内容:

    • 响应式数据 设计上的变化
    • 增加了 指令 一节的内容,主要讲解如何在 Vue 3 开发自定义指令
    • 增加了 插槽 一节的内容
  4. 在 “路由的使用” 一章里,增加了以下内容,整理了一些常见的部署问题原因以及解决方案:

  5. 在 “插件的使用” 一章里,对 “本地插件” 作了进一步的细化讲解:

2022-04-20

更正了 watch API 在 侦听选项之 deep 部分内容的错误,并增加了如何检测特例的用法,感谢 @zcc0329 的反馈!

2022-04-10

重写了单组件关于 数据的侦听 这一节的内容,因为在写 Pinia 的订阅功能的时候,有很多跟 watch 相关联的知识点,发现之前这部分内容写的比较简单,所以完善了一下。

2022-04-07

补充了昨天新增的关于 Pinia 订阅 state 部分的一些内容。

2022-04-06

  1. 创建基于 Vite 的 Vue 3 项目增加了一些内容:

    • 增加了使用 Create Vue 创建 Vite 项目的说明
    • 使用 Create Preset 创建的 vue3-ts-vite 预设项目,使用 Pinia 代替 Vuex
  2. 补充了 Pinia 的部分内容:

2022-04-04

先跟大家说声抱歉,在 2022-02-09 的更新里说要写这部分内容,结果因为现实里的一些事情还有工作比较忙,现在借着假期才得以继续更新。

增加了 全局状态的管理 一章,主要是面向 Vue 3 全新的状态管理工具 Pinia 展开,里面的大部分内容也加入了和 Vuex 的对比。

虽然可以归入 组件之间的通信 里,但 Pinia 作为被官方推荐在 Vue 3 项目里作为全局状态管理的新工具,写着写着我觉得还是单独开一章来写会更方便阅读和理解。

2022-03-04

把 Algolia 的搜素功能申请下来了,看看文档的搜索体验会不会比较好(搜索框在页面的右上角)。

2022-02-28

升级了文档的程序版本,加入了 Dark Mode 暗黑模式的支持,默认跟随系统模式进行适配,可以在右上角的 “主题切换” 按钮手动切换主题。

2022-02-09

  1. 优化了 升级与配置 一章,配合 2022-02-07 Vue 3 成为默认版本带来的调整变化,主要改动如下:

  2. 高效开发 一章开头的 WARNING 改成了 TIP ,里面提到的功能在最新版的 Vue 下发挥稳定,后续如果有实验性的 API 再单独标记。

  3. 把原先演示命令里的 @next 版本都改成了 @latest ,现在不需要指定 next 就能使用 Vue 3 了。

  4. 更新了 官方文档 里面的链接说明,因为各个官网在 2022-02-07 都上线了新版本,更换了新地址。

  5. 组件之间的通信 里加入了 Pinia 的介绍,不过暂时没有写实践记录(还没有时间哈哈哈),欢迎先自行体验,这是一个官方推荐的适合 Vue 3 的状态管理工具,因为它更加面向 Composition API 的编程方式(至少在 Vuex 5 推出之前,建议用来代替 Vuex 4)。

  6. 改了一下文档名称:《Vue3.0 学习教程与实战案例》 --> 《Vue 3 入门指南与实战案例》,其他原先使用 Vue 3.0 叫法的地方,后面也会陆续改成 Vue 3 了。

2022-01-20

  1. 更新了 cnpm 的用法,原因是旧的 cnpm 源即将下线,需要使用新的域名啦!(感谢 @alleluya-young#135 的反馈!)

  2. 添加了 pnpm 的用法说明,目前开源社区越来越流行使用 pnpm ,对大型项目管理也有好处,值得了解和体验。

2021-12-05

由于离第一次执笔到现在有了差不多一年的时间,当时的前言信息有些陈旧,重新写了一下 前言

另外经过 2021 年的开发实践,很多地方我又有了新的认知,打算在接下来的时间里,我会再继续抽空把各部分的内容再精细化一下,把以前可能写的比较简单的部分,或者没有写进来的一些功能点,都再做一次完善。

2021-11-16

重写了 数据的计算 一节,之前对于计算数据的介绍,描述上确实有点难以理解,而且有点简单带过,所以重新写了这部分内容,感谢读者 @superficial 的反馈!

2021-10-07

补充了 全局编译器宏 的配置说明,本来很久前就想写的,一直偷懒,国庆结束前补充进来啦!

2021-08-17

更新了 3.2.0 版本新增的一些知识点:

  1. 增加了 使用 v-bind 动态修改 style 功能说明,同时结合上下文知识点补充了 动态绑定 CSS 一节

  2. 增加了 CSS Modules 一节的内容

  3. 增加了 useCssModule 一节的内容

2021-08-16

  1. 更新了 深度操作符 的内容,原有的 API 已被废弃,请注意使用新写法

  2. 补充了几个拓展阅读链接到 教程工具

2021-07-28

迎接 Vue 3.2.0 的新版本内容,对 script-setup 做了较多的调整。

目前 3.2 还处于 Beta 阶段,不过从这个版本开始,script-setup 脱离实验性阶段,正式进入 Vue 3.0 的队伍,本次的更新内容较多,很多测试阶段的 API 被移除或者修改,如果之前有用过 script-setup ,建议先简单看我之前的博客,了解本次的一些变更:

Vue3.0 最新动态:script-setup 定稿 部分实验性 API 将弃用

2021-03-31

  1. 调整了 使用全局 API 一节的内容

原因是原来推荐的 const { proxy } = getCurrentInstance() 的方案,在 TS 新版本校验下,使用成本非常高,原来的代码不做多层判断的情况下已经无法正常运行,所以按照目前的 “最佳实践” 重新更新了这一节。

  1. 新增了一节 全局 API 的替代方案

由于 Vue 3.0 的有意为之,这个 “最佳实践” 实际上用起来也挺繁琐(在官网和 GitHub 对此都有说明,不推荐使用),所以补充了这一节内容。

2021-03-23

DOM 元素与子组件 一节增加了 TS 类型的定义说明,以及编译失败的原因说明及解决方案补充,非常感谢 @aierong 的反馈和支持。

2021-03-21

增加了 高效开发 一章,将记录一些提高 Vue 3.0 开发效率的内容,面像对 Vue 3.0 已上手,想提高开发效率的开发者。

本次更新了 script-setup 一节的内容。

2021-01-21

增加了 组件之间的通信 一章的内容。

2020-12-18

本文档的第一个版本上线,完成了 升级与配置单组件的编写路由的使用插件的使用 等章节的编写。

2020-10-01

国庆期间开始开荒 Vue 3.0,陆陆续续打了不少笔记,业余时间着手整理成文档。

',122),h=[r];function n(o,p,s,u,c,d){return e(),l("div",null,h)}const g=a(i,[["render",n]]);export{f as __pageData,g as default}; diff --git a/assets/chunks/VPAlgoliaSearchBox.661ef68a.js b/assets/chunks/VPAlgoliaSearchBox.661ef68a.js new file mode 100644 index 00000000..68cfa6fe --- /dev/null +++ b/assets/chunks/VPAlgoliaSearchBox.661ef68a.js @@ -0,0 +1,24 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{u as fo,ag as mo,k as po,A as vo,q as ho,v as yo,b as go}from"./framework.0d8bea05.js";import{u as bo}from"./theme.edde7d9a.js";/*! @docsearch/js 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function cn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function I(t){for(var e=1;e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function st(t,e){return function(n){if(Array.isArray(n))return n}(t)||function(n,r){var o=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(o!=null){var i,a,u=[],c=!0,s=!1;try{for(o=o.call(n);!(c=(i=o.next()).done)&&(u.push(i.value),!r||u.length!==r);c=!0);}catch(l){s=!0,a=l}finally{try{c||o.return==null||o.return()}finally{if(s)throw a}}return u}}(t,e)||yr(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function ft(t){return function(e){if(Array.isArray(e))return Lt(e)}(t)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(t)||yr(t)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function yr(t,e){if(t){if(typeof t=="string")return Lt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Lt(t,e):void 0}}function Lt(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n3)for(n=[n],i=3;i0?Pe(v.type,v.props,v.key,null,v.__v):v)!=null){if(v.__=n,v.__b=n.__b+1,(p=b[l])===null||p&&v.key==p.key&&v.type===p.type)b[l]=void 0;else for(m=0;m<_;m++){if((p=b[m])&&v.key==p.key&&v.type===p.type){b[m]=void 0;break}p=null}Zt(t,v,p=p||mt,o,i,a,u,c,s),d=v.__e,(m=v.ref)&&p.ref!=m&&(y||(y=[]),p.ref&&y.push(p.ref,null,v),y.push(m,v.__c||d,v)),d!=null?(h==null&&(h=d),typeof v.type=="function"&&v.__k!=null&&v.__k===p.__k?v.__d=c=wr(v,c,t):c=jr(t,v,p,b,d,c),s||n.type!=="option"?typeof n.type=="function"&&(n.__d=c):t.value=""):c&&p.__e==c&&c.parentNode!=t&&(c=Ve(p))}for(n.__e=h,l=_;l--;)b[l]!=null&&(typeof n.type=="function"&&b[l].__e!=null&&b[l].__e==n.__d&&(n.__d=Ve(r,l+1)),Ir(b[l],b[l]));if(y)for(l=0;l3)for(n=[n],i=3;i=n.__.length&&n.__.push({}),n.__[t]}function kr(t){return pe=1,Ar(xr,t)}function Ar(t,e,n){var r=ze(de++,2);return r.t=t,r.__c||(r.__=[n?n(e):xr(void 0,e),function(o){var i=r.t(r.__[0],o);r.__[0]!==i&&(r.__=[i,r.__[1]],r.__c.setState({}))}],r.__c=q),r.__}function Cr(t,e){var n=ze(de++,3);!w.__s&&Yt(n.__H,e)&&(n.__=t,n.__H=e,q.__H.__h.push(n))}function gn(t,e){var n=ze(de++,4);!w.__s&&Yt(n.__H,e)&&(n.__=t,n.__H=e,q.__h.push(n))}function Pt(t,e){var n=ze(de++,7);return Yt(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function Po(){Ht.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(at),t.__H.__h.forEach(Ut),t.__H.__h=[]}catch(e){t.__H.__h=[],w.__e(e,t.__v)}}),Ht=[]}w.__b=function(t){q=null,pn&&pn(t)},w.__r=function(t){vn&&vn(t),de=0;var e=(q=t.__c).__H;e&&(e.__h.forEach(at),e.__h.forEach(Ut),e.__h=[])},w.diffed=function(t){dn&&dn(t);var e=t.__c;e&&e.__H&&e.__H.__h.length&&(Ht.push(e)!==1&&mn===w.requestAnimationFrame||((mn=w.requestAnimationFrame)||function(n){var r,o=function(){clearTimeout(i),bn&&cancelAnimationFrame(r),setTimeout(n)},i=setTimeout(o,100);bn&&(r=requestAnimationFrame(o))})(Po)),q=void 0},w.__c=function(t,e){e.some(function(n){try{n.__h.forEach(at),n.__h=n.__h.filter(function(r){return!r.__||Ut(r)})}catch(r){e.some(function(o){o.__h&&(o.__h=[])}),e=[],w.__e(r,n.__v)}}),hn&&hn(t,e)},w.unmount=function(t){yn&&yn(t);var e=t.__c;if(e&&e.__H)try{e.__H.__.forEach(at)}catch(n){w.__e(n,e.__v)}};var bn=typeof requestAnimationFrame=="function";function at(t){var e=q;typeof t.__c=="function"&&t.__c(),q=e}function Ut(t){var e=q;t.__c=t.__(),q=e}function Yt(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function xr(t,e){return typeof e=="function"?e(t):e}function Nr(t,e){for(var n in e)t[n]=e[n];return t}function Ft(t,e){for(var n in t)if(n!=="__source"&&!(n in e))return!0;for(var r in e)if(r!=="__source"&&t[r]!==e[r])return!0;return!1}function Bt(t){this.props=t}(Bt.prototype=new W).isPureReactComponent=!0,Bt.prototype.shouldComponentUpdate=function(t,e){return Ft(this.props,t)||Ft(this.state,e)};var _n=w.__b;w.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),_n&&_n(t)};var Io=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,On=function(t,e){return t==null?null:J(J(t).map(e))},Do={map:On,forEach:On,count:function(t){return t?J(t).length:0},only:function(t){var e=J(t);if(e.length!==1)throw"Children.only";return e[0]},toArray:J},ko=w.__e;function ct(){this.__u=0,this.t=null,this.__b=null}function Tr(t){var e=t.__.__c;return e&&e.__e&&e.__e(t)}function we(){this.u=null,this.o=null}w.__e=function(t,e,n){if(t.then){for(var r,o=e;o=o.__;)if((r=o.__c)&&r.__c)return e.__e==null&&(e.__e=n.__e,e.__k=n.__k),r.__c(t,e)}ko(t,e,n)},(ct.prototype=new W).__c=function(t,e){var n=e.__c,r=this;r.t==null&&(r.t=[]),r.t.push(n);var o=Tr(r.__v),i=!1,a=function(){i||(i=!0,n.componentWillUnmount=n.__c,o?o(u):u())};n.__c=n.componentWillUnmount,n.componentWillUnmount=function(){a(),n.__c&&n.__c()};var u=function(){if(!--r.__u){if(r.state.__e){var s=r.state.__e;r.__v.__k[0]=function m(p,v,d){return p&&(p.__v=null,p.__k=p.__k&&p.__k.map(function(h){return m(h,v,d)}),p.__c&&p.__c.__P===v&&(p.__e&&d.insertBefore(p.__e,p.__d),p.__c.__e=!0,p.__c.__P=d)),p}(s,s.__c.__P,s.__c.__O)}var l;for(r.setState({__e:r.__b=null});l=r.t.pop();)l.forceUpdate()}},c=e.__h===!0;r.__u++||c||r.setState({__e:r.__b=r.__v.__k[0]}),t.then(a,a)},ct.prototype.componentWillUnmount=function(){this.t=[]},ct.prototype.render=function(t,e){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function i(a,u,c){return a&&(a.__c&&a.__c.__H&&(a.__c.__H.__.forEach(function(s){typeof s.__c=="function"&&s.__c()}),a.__c.__H=null),(a=Nr({},a)).__c!=null&&(a.__c.__P===c&&(a.__c.__P=u),a.__c=null),a.__k=a.__k&&a.__k.map(function(s){return i(s,u,c)})),a}(this.__b,n,r.__O=r.__P)}this.__b=null}var o=e.__e&&V(X,null,t.fallback);return o&&(o.__h=null),[V(X,null,e.__e?null:t.children),o]};var Sn=function(t,e,n){if(++n[1]===n[0]&&t.o.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.o.size))for(n=t.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),e.i.removeChild(r)}}),We(V(Ao,{context:e.context},t.__v),e.l)):e.l&&e.componentWillUnmount()}function Rr(t,e){return V(Co,{__v:t,i:e})}(we.prototype=new W).__e=function(t){var e=this,n=Tr(e.__v),r=e.o.get(t);return r[0]++,function(o){var i=function(){e.props.revealOrder?(r.push(o),Sn(e,t,r)):o()};n?n(i):i()}},we.prototype.render=function(t){this.u=null,this.o=new Map;var e=J(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var n=e.length;n--;)this.o.set(e[n],this.u=[1,0,this.u]);return t.children},we.prototype.componentDidUpdate=we.prototype.componentDidMount=function(){var t=this;this.o.forEach(function(e,n){Sn(t,n,e)})};var qr=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,xo=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,No=function(t){return(typeof Symbol<"u"&&Be(Symbol())=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(t)};function Lr(t,e,n){return e.__k==null&&(e.textContent=""),We(t,e),typeof n=="function"&&n(),t?t.__c:null}W.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(W.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var wn=w.event;function To(){}function Ro(){return this.cancelBubble}function qo(){return this.defaultPrevented}w.event=function(t){return wn&&(t=wn(t)),t.persist=To,t.isPropagationStopped=Ro,t.isDefaultPrevented=qo,t.nativeEvent=t};var Mr,jn={configurable:!0,get:function(){return this.class}},En=w.vnode;w.vnode=function(t){var e=t.type,n=t.props,r=n;if(typeof e=="string"){for(var o in r={},n){var i=n[o];o==="value"&&"defaultValue"in n&&i==null||(o==="defaultValue"&&"value"in n&&n.value==null?o="value":o==="download"&&i===!0?i="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+e)&&!No(n.type)?o="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():xo.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():i===null&&(i=void 0),r[o]=i)}e=="select"&&r.multiple&&Array.isArray(r.value)&&(r.value=J(n.children).forEach(function(a){a.props.selected=r.value.indexOf(a.props.value)!=-1})),e=="select"&&r.defaultValue!=null&&(r.value=J(n.children).forEach(function(a){a.props.selected=r.multiple?r.defaultValue.indexOf(a.props.value)!=-1:r.defaultValue==a.props.value})),t.props=r}e&&n.class!=n.className&&(jn.enumerable="className"in n,n.className!=null&&(r.class=n.className),Object.defineProperty(r,"className",jn)),t.$$typeof=qr,En&&En(t)};var Pn=w.__r;w.__r=function(t){Pn&&Pn(t),Mr=t.__c};var Lo={ReactCurrentDispatcher:{current:{readContext:function(t){return Mr.__n[t.__c].props.value}}}};(typeof performance>"u"?"undefined":Be(performance))=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);function In(t){return!!t&&t.$$typeof===qr}var f={useState:kr,useReducer:Ar,useEffect:Cr,useLayoutEffect:gn,useRef:function(t){return pe=5,Pt(function(){return{current:t}},[])},useImperativeHandle:function(t,e,n){pe=6,gn(function(){typeof t=="function"?t(e()):t&&(t.current=e())},n==null?n:n.concat(t))},useMemo:Pt,useCallback:function(t,e){return pe=8,Pt(function(){return t},e)},useContext:function(t){var e=q.context[t.__c],n=ze(de++,9);return n.__c=t,e?(n.__==null&&(n.__=!0,e.sub(q)),e.props.value):t.__},useDebugValue:function(t,e){w.useDebugValue&&w.useDebugValue(e?e(t):t)},version:"16.8.0",Children:Do,render:Lr,hydrate:function(t,e,n){return Dr(t,e),typeof n=="function"&&n(),t?t.__c:null},unmountComponentAtNode:function(t){return!!t.__k&&(We(null,t),!0)},createPortal:Rr,createElement:V,createContext:function(t,e){var n={__c:e="__cC"+br++,__:t,Consumer:function(r,o){return r.children(o)},Provider:function(r){var o,i;return this.getChildContext||(o=[],(i={})[e]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(a){this.props.value!==a.value&&o.some(Mt)},this.sub=function(a){o.push(a);var u=a.componentWillUnmount;a.componentWillUnmount=function(){o.splice(o.indexOf(a),1),u&&u.call(a)}}),r.children}};return n.Provider.__=n.Consumer.contextType=n},createFactory:function(t){return V.bind(null,t)},cloneElement:function(t){return In(t)?Eo.apply(null,arguments):t},createRef:function(){return{current:null}},Fragment:X,isValidElement:In,findDOMNode:function(t){return t&&(t.base||t.nodeType===1&&t)||null},Component:W,PureComponent:Bt,memo:function(t,e){function n(o){var i=this.props.ref,a=i==o.ref;return!a&&i&&(i.call?i(null):i.current=null),e?!e(this.props,o)||!a:Ft(this.props,o)}function r(o){return this.shouldComponentUpdate=n,V(t,o)}return r.displayName="Memo("+(t.displayName||t.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r},forwardRef:function(t){function e(n,r){var o=Nr({},n);return delete o.ref,t(o,(r=n.ref||r)&&(Be(r)!="object"||"current"in r)?r:null)}return e.$$typeof=Io,e.render=e,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(t.displayName||t.name)+")",e},unstable_batchedUpdates:function(t,e){return t(e)},StrictMode:X,Suspense:ct,SuspenseList:we,lazy:function(t){var e,n,r;function o(i){if(e||(e=t()).then(function(a){n=a.default||a},function(a){r=a}),r)throw r;if(!n)throw e;return V(n,i)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Lo};function Mo(){return f.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},f.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function Hr(){return f.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},f.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var Ho=["translations"];function Vt(){return Vt=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var Bo=f.forwardRef(function(t,e){var n=t.translations,r=n===void 0?{}:n,o=Fo(t,Ho),i=r.buttonText,a=i===void 0?"Search":i,u=r.buttonAriaLabel,c=u===void 0?"Search":u,s=Uo(kr(null),2),l=s[0],m=s[1];return Cr(function(){typeof navigator<"u"&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?m("⌘"):m("Ctrl"))},[]),f.createElement("button",Vt({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:e}),f.createElement("span",{className:"DocSearch-Button-Container"},f.createElement(Hr,null),f.createElement("span",{className:"DocSearch-Button-Placeholder"},a)),f.createElement("span",{className:"DocSearch-Button-Keys"},l!==null&&f.createElement(f.Fragment,null,f.createElement("kbd",{className:"DocSearch-Button-Key"},l==="Ctrl"?f.createElement(Mo,null):l),f.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))});function Ur(t,e){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),i=0;it.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function xn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function ve(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:20,n=[],r=0;r=3||n===2&&r>=4||n===1&&r>=10);function i(a,u,c){if(o&&c!==void 0){var s=c[0].__autocomplete_algoliaCredentials,l={"X-Algolia-Application-Id":s.appId,"X-Algolia-API-Key":s.apiKey};t.apply(void 0,[a].concat(Ye(u),[{headers:l}]))}else t.apply(void 0,[a].concat(Ye(u)))}return{init:function(a,u){t("init",{appId:a,apiKey:u})},setUserToken:function(a){t("setUserToken",a)},clickedObjectIDsAfterSearch:function(){for(var a=arguments.length,u=new Array(a),c=0;c0&&i("clickedObjectIDsAfterSearch",Ge(u),u[0].items)},clickedObjectIDs:function(){for(var a=arguments.length,u=new Array(a),c=0;c0&&i("clickedObjectIDs",Ge(u),u[0].items)},clickedFilters:function(){for(var a=arguments.length,u=new Array(a),c=0;c0&&t.apply(void 0,["clickedFilters"].concat(u))},convertedObjectIDsAfterSearch:function(){for(var a=arguments.length,u=new Array(a),c=0;c0&&i("convertedObjectIDsAfterSearch",Ge(u),u[0].items)},convertedObjectIDs:function(){for(var a=arguments.length,u=new Array(a),c=0;c0&&i("convertedObjectIDs",Ge(u),u[0].items)},convertedFilters:function(){for(var a=arguments.length,u=new Array(a),c=0;c0&&t.apply(void 0,["convertedFilters"].concat(u))},viewedObjectIDs:function(){for(var a=arguments.length,u=new Array(a),c=0;c0&&u.reduce(function(s,l){var m=l.items,p=Br(l,$o);return[].concat(Ye(s),Ye(Qo(ve(ve({},p),{},{objectIDs:(m==null?void 0:m.map(function(v){return v.objectID}))||p.objectIDs})).map(function(v){return{items:m,payload:v}})))},[]).forEach(function(s){var l=s.items;return i("viewedObjectIDs",[s.payload],l)})},viewedFilters:function(){for(var a=arguments.length,u=new Array(a),c=0;c0&&t.apply(void 0,["viewedFilters"].concat(u))}}}function Yo(t){var e=t.items.reduce(function(n,r){var o;return n[r.__autocomplete_indexName]=((o=n[r.__autocomplete_indexName])!==null&&o!==void 0?o:[]).concat(r),n},{});return Object.keys(e).map(function(n){return{index:n,items:e[n],algoliaSource:["autocomplete"]}})}function Dt(t){return t.objectID&&t.__autocomplete_indexName&&t.__autocomplete_queryID}function De(t){return De=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(t)}function ae(t){return function(e){if(Array.isArray(e))return kt(e)}(t)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(t)||function(e,n){if(e){if(typeof e=="string")return kt(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return kt(e,n)}}(t)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function kt(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&ei({onItemsChange:r,items:p,insights:u,state:m}))}},0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(l){var m=l.setContext,p=l.onSelect,v=l.onActive;a("addAlgoliaAgent","insights-plugin"),m({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:u}}),p(function(d){var h=d.item,y=d.state,b=d.event;Dt(h)&&o({state:y,event:b,insights:u,item:h,insightsEvents:[G({eventName:"Item Selected"},An({item:h,items:c.current}))]})}),v(function(d){var h=d.item,y=d.state,b=d.event;Dt(h)&&i({state:y,event:b,insights:u,item:h,insightsEvents:[G({eventName:"Item Active"},An({item:h,items:c.current}))]})})},onStateChange:function(l){var m=l.state;s({state:m})},__autocomplete_pluginOptions:t}}function ut(t,e){var n=e;return{then:function(r,o){return ut(t.then(Xe(r,n,t),Xe(o,n,t)),n)},catch:function(r){return ut(t.catch(Xe(r,n,t)),n)},finally:function(r){return r&&n.onCancelList.push(r),ut(t.finally(Xe(r&&function(){return n.onCancelList=[],r()},n,t)),n)},cancel:function(){n.isCanceled=!0;var r=n.onCancelList;n.onCancelList=[],r.forEach(function(o){o()})},isCanceled:function(){return n.isCanceled===!0}}}function Tn(t){return ut(t,{isCanceled:!1,onCancelList:[]})}function Xe(t,e,n){return t?function(r){return e.isCanceled?r:t(r)}:n}function Rn(t,e,n,r){if(!n)return null;if(t<0&&(e===null||r!==null&&e===0))return n+t;var o=(e===null?-1:e)+t;return o<=-1||o>=n?r===null?null:0:o}function qn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function Ln(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0},reshape:function(i){return i.sources}},t),{},{id:(n=t.id)!==null&&n!==void 0?n:"autocomplete-".concat(Vo++),plugins:o,initialState:ce({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},t.initialState),onStateChange:function(i){var a;(a=t.onStateChange)===null||a===void 0||a.call(t,i),o.forEach(function(u){var c;return(c=u.onStateChange)===null||c===void 0?void 0:c.call(u,i)})},onSubmit:function(i){var a;(a=t.onSubmit)===null||a===void 0||a.call(t,i),o.forEach(function(u){var c;return(c=u.onSubmit)===null||c===void 0?void 0:c.call(u,i)})},onReset:function(i){var a;(a=t.onReset)===null||a===void 0||a.call(t,i),o.forEach(function(u){var c;return(c=u.onReset)===null||c===void 0?void 0:c.call(u,i)})},getSources:function(i){return Promise.all([].concat(ci(o.map(function(a){return a.getSources})),[t.getSources]).filter(Boolean).map(function(a){return function(u,c){var s=[];return Promise.resolve(u(c)).then(function(l){return Promise.all(l.filter(function(m){return!!m}).map(function(m){if(m.sourceId,s.includes(m.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(m.sourceId)," is not unique."));s.push(m.sourceId);var p={getItemInputValue:function(d){return d.state.query},getItemUrl:function(){},onSelect:function(d){(0,d.setIsOpen)(!1)},onActive:vt,onResolve:vt};Object.keys(p).forEach(function(d){p[d].__default=!0});var v=Ln(Ln({},p),m);return Promise.resolve(v)}))})}(a,i)})).then(function(a){return Ke(a)}).then(function(a){return a.map(function(u){return ce(ce({},u),{},{onSelect:function(c){u.onSelect(c),e.forEach(function(s){var l;return(l=s.onSelect)===null||l===void 0?void 0:l.call(s,c)})},onActive:function(c){u.onActive(c),e.forEach(function(s){var l;return(l=s.onActive)===null||l===void 0?void 0:l.call(s,c)})},onResolve:function(c){u.onResolve(c),e.forEach(function(s){var l;return(l=s.onResolve)===null||l===void 0?void 0:l.call(s,c)})}})})})},navigator:ce({navigate:function(i){var a=i.itemUrl;r.location.assign(a)},navigateNewTab:function(i){var a=i.itemUrl,u=r.open(a,"_blank","noopener");u==null||u.focus()},navigateNewWindow:function(i){var a=i.itemUrl;r.open(a,"_blank","noopener")}},t.navigator)})}function Ne(t){return Ne=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ne(t)}function Fn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function tt(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var Wn,xt,rt,Se=null,Kn=(Wn=-1,xt=-1,rt=void 0,function(t){var e=++Wn;return Promise.resolve(t).then(function(n){return rt&&e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function Le(t){return Le=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Le(t)}var _i=["props","refresh","store"],Oi=["inputElement","formElement","panelElement"],Si=["inputElement"],wi=["inputElement","maxLength"],ji=["sourceIndex"],Ei=["sourceIndex"],Pi=["item","source","sourceIndex"];function $n(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function R(t){for(var e=1;e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function Di(t){var e=t.props,n=t.refresh,r=t.store,o=ne(t,_i),i=function(a,u){return u!==void 0?"".concat(a,"-").concat(u):a};return{getEnvironmentProps:function(a){var u=a.inputElement,c=a.formElement,s=a.panelElement;function l(m){!r.getState().isOpen&&r.pendingRequests.isEmpty()||m.target===u||[c,s].some(function(p){return v=p,d=m.target,v===d||v.contains(d);var v,d})===!1&&(r.dispatch("blur",null),e.debug||r.pendingRequests.cancelAll())}return R({onTouchStart:l,onMouseDown:l,onTouchMove:function(m){r.getState().isOpen!==!1&&u===e.environment.document.activeElement&&m.target!==u&&u.blur()}},ne(a,Oi))},getRootProps:function(a){return R({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(e.id,"-list"):void 0,"aria-labelledby":"".concat(e.id,"-label")},a)},getFormProps:function(a){return a.inputElement,R({action:"",noValidate:!0,role:"search",onSubmit:function(u){var c;u.preventDefault(),e.onSubmit(R({event:u,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),(c=a.inputElement)===null||c===void 0||c.blur()},onReset:function(u){var c;u.preventDefault(),e.onReset(R({event:u,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),(c=a.inputElement)===null||c===void 0||c.focus()}},ne(a,Si))},getLabelProps:function(a){var u=a||{},c=u.sourceIndex,s=ne(u,ji);return R({htmlFor:"".concat(i(e.id,c),"-input"),id:"".concat(i(e.id,c),"-label")},s)},getInputProps:function(a){var u;function c(y){(e.openOnFocus||r.getState().query)&&se(R({event:y,props:e,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var s=a||{},l=(s.inputElement,s.maxLength),m=l===void 0?512:l,p=ne(s,wi),v=fe(r.getState()),d=function(y){return!!(y&&y.match(ri))}(((u=e.environment.navigator)===null||u===void 0?void 0:u.userAgent)||""),h=v!=null&&v.itemUrl&&!d?"go":"search";return R({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&r.getState().activeItemId!==null?"".concat(e.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(e.id,"-list"):void 0,"aria-labelledby":"".concat(e.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(e.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:h,spellCheck:"false",autoFocus:e.autoFocus,placeholder:e.placeholder,maxLength:m,type:"search",onChange:function(y){se(R({event:y,props:e,query:y.currentTarget.value.slice(0,m),refresh:n,store:r},o))},onKeyDown:function(y){(function(b){var _=b.event,S=b.props,O=b.refresh,g=b.store,P=bi(b,yi);if(_.key==="ArrowUp"||_.key==="ArrowDown"){var C=function(){var M=S.environment.document.getElementById("".concat(S.id,"-item-").concat(g.getState().activeItemId));M&&(M.scrollIntoViewIfNeeded?M.scrollIntoViewIfNeeded(!1):M.scrollIntoView(!1))},L=function(){var M=fe(g.getState());if(g.getState().activeItemId!==null&&M){var Ot=M.item,St=M.itemInputValue,$e=M.itemUrl,B=M.source;B.onActive(te({event:_,item:Ot,itemInputValue:St,itemUrl:$e,refresh:O,source:B,state:g.getState()},P))}};_.preventDefault(),g.getState().isOpen===!1&&(S.openOnFocus||g.getState().query)?se(te({event:_,props:S,query:g.getState().query,refresh:O,store:g},P)).then(function(){g.dispatch(_.key,{nextActiveItemId:S.defaultActiveItemId}),L(),setTimeout(C,0)}):(g.dispatch(_.key,{}),L(),C())}else if(_.key==="Escape")_.preventDefault(),g.dispatch(_.key,null),g.pendingRequests.cancelAll();else if(_.key==="Tab")g.dispatch("blur",null),g.pendingRequests.cancelAll();else if(_.key==="Enter"){if(g.getState().activeItemId===null||g.getState().collections.every(function(M){return M.items.length===0}))return void(S.debug||g.pendingRequests.cancelAll());_.preventDefault();var x=fe(g.getState()),k=x.item,N=x.itemInputValue,U=x.itemUrl,F=x.source;if(_.metaKey||_.ctrlKey)U!==void 0&&(F.onSelect(te({event:_,item:k,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),S.navigator.navigateNewTab({itemUrl:U,item:k,state:g.getState()}));else if(_.shiftKey)U!==void 0&&(F.onSelect(te({event:_,item:k,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),S.navigator.navigateNewWindow({itemUrl:U,item:k,state:g.getState()}));else if(!_.altKey){if(U!==void 0)return F.onSelect(te({event:_,item:k,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),void S.navigator.navigate({itemUrl:U,item:k,state:g.getState()});se(te({event:_,nextState:{isOpen:!1},props:S,query:N,refresh:O,store:g},P)).then(function(){F.onSelect(te({event:_,item:k,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P))})}}})(R({event:y,props:e,refresh:n,store:r},o))},onFocus:c,onBlur:vt,onClick:function(y){a.inputElement!==e.environment.document.activeElement||r.getState().isOpen||c(y)}},p)},getPanelProps:function(a){return R({onMouseDown:function(u){u.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},a)},getListProps:function(a){var u=a||{},c=u.sourceIndex,s=ne(u,Ei);return R({role:"listbox","aria-labelledby":"".concat(i(e.id,c),"-label"),id:"".concat(i(e.id,c),"-list")},s)},getItemProps:function(a){var u=a.item,c=a.source,s=a.sourceIndex,l=ne(a,Pi);return R({id:"".concat(i(e.id,s),"-item-").concat(u.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===u.__autocomplete_id,onMouseMove:function(m){if(u.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",u.__autocomplete_id);var p=fe(r.getState());if(r.getState().activeItemId!==null&&p){var v=p.item,d=p.itemInputValue,h=p.itemUrl,y=p.source;y.onActive(R({event:m,item:v,itemInputValue:d,itemUrl:h,refresh:n,source:y,state:r.getState()},o))}}},onMouseDown:function(m){m.preventDefault()},onClick:function(m){var p=c.getItemInputValue({item:u,state:r.getState()}),v=c.getItemUrl({item:u,state:r.getState()});(v?Promise.resolve():se(R({event:m,nextState:{isOpen:!1},props:e,query:p,refresh:n,store:r},o))).then(function(){c.onSelect(R({event:m,item:u,itemInputValue:p,itemUrl:v,refresh:n,source:c,state:r.getState()},o))})}},l)}}}function Me(t){return Me=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Me(t)}function Jn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function ki(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function Yi(t){var e=t.translations,n=e===void 0?{}:e,r=Zi(t,Ji),o=n.noResultsText,i=o===void 0?"No results for":o,a=n.suggestedQueryText,u=a===void 0?"Try searching for":a,c=n.reportMissingResultsText,s=c===void 0?"Believe this query should return results?":c,l=n.reportMissingResultsLinkText,m=l===void 0?"Let us know.":l,p=r.state.context.searchSuggestions;return f.createElement("div",{className:"DocSearch-NoResults"},f.createElement("div",{className:"DocSearch-Screen-Icon"},f.createElement(zi,null)),f.createElement("p",{className:"DocSearch-Title"},i,' "',f.createElement("strong",null,r.state.query),'"'),p&&p.length>0&&f.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},f.createElement("p",{className:"DocSearch-Help"},u,":"),f.createElement("ul",null,p.slice(0,3).reduce(function(v,d){return[].concat(Qi(v),[f.createElement("li",{key:d},f.createElement("button",{className:"DocSearch-Prefill",key:d,type:"button",onClick:function(){r.setQuery(d.toLowerCase()+" "),r.refresh(),r.inputRef.current.focus()}},d))])},[]))),r.getMissingResultsUrl&&f.createElement("p",{className:"DocSearch-Help"},"".concat(s," "),f.createElement("a",{href:r.getMissingResultsUrl({query:r.state.query}),target:"_blank",rel:"noopener noreferrer"},m)))}var Gi=["hit","attribute","tagName"];function Xn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function er(t){for(var e=1;e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function tr(t,e){return e.split(".").reduce(function(n,r){return n!=null&&n[r]?n[r]:null},t)}function le(t){var e=t.hit,n=t.attribute,r=t.tagName;return V(r===void 0?"span":r,er(er({},ea(t,Gi)),{},{dangerouslySetInnerHTML:{__html:tr(e,"_snippetResult.".concat(n,".value"))||tr(e,n)}}))}function nr(t,e){return function(n){if(Array.isArray(n))return n}(t)||function(n,r){var o=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(o!=null){var i,a,u=[],c=!0,s=!1;try{for(o=o.call(n);!(c=(i=o.next()).done)&&(u.push(i.value),!r||u.length!==r);c=!0);}catch(l){s=!0,a=l}finally{try{c||o.return==null||o.return()}finally{if(s)throw a}}return u}}(t,e)||function(n,r){if(n){if(typeof n=="string")return rr(n,r);var o=Object.prototype.toString.call(n).slice(8,-1);if(o==="Object"&&n.constructor&&(o=n.constructor.name),o==="Map"||o==="Set")return Array.from(n);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return rr(n,r)}}(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function rr(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n|<\/mark>)/g,ra=RegExp(zr.source);function $r(t){var e,n,r,o,i,a=t;if(!a.__docsearch_parent&&!t._highlightResult)return t.hierarchy.lvl0;var u=((a.__docsearch_parent?(e=a.__docsearch_parent)===null||e===void 0||(n=e._highlightResult)===null||n===void 0||(r=n.hierarchy)===null||r===void 0?void 0:r.lvl0:(o=t._highlightResult)===null||o===void 0||(i=o.hierarchy)===null||i===void 0?void 0:i.lvl0)||{}).value;return u&&ra.test(u)?u.replace(zr,""):u}function $t(){return $t=Object.assign||function(t){for(var e=1;e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function ca(t){var e=t.translations,n=e===void 0?{}:e,r=aa(t,ia),o=n.recentSearchesTitle,i=o===void 0?"Recent":o,a=n.noRecentSearchesText,u=a===void 0?"No recent searches":a,c=n.saveRecentSearchButtonTitle,s=c===void 0?"Save this search":c,l=n.removeRecentSearchButtonTitle,m=l===void 0?"Remove this search from history":l,p=n.favoriteSearchesTitle,v=p===void 0?"Favorite":p,d=n.removeFavoriteSearchButtonTitle,h=d===void 0?"Remove this search from favorites":d;return r.state.status==="idle"&&r.hasCollections===!1?r.disableUserPersonalization?null:f.createElement("div",{className:"DocSearch-StartScreen"},f.createElement("p",{className:"DocSearch-Help"},u)):r.hasCollections===!1?null:f.createElement("div",{className:"DocSearch-Dropdown-Container"},f.createElement(zt,ht({},r,{title:i,collection:r.state.collections[0],renderIcon:function(){return f.createElement("div",{className:"DocSearch-Hit-icon"},f.createElement(Hi,null))},renderAction:function(y){var b=y.item,_=y.runFavoriteTransition,S=y.runDeleteTransition;return f.createElement(f.Fragment,null,f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:s,type:"submit",onClick:function(O){O.preventDefault(),O.stopPropagation(),_(function(){r.favoriteSearches.add(b),r.recentSearches.remove(b),r.refresh()})}},f.createElement(Gn,null))),f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:m,type:"submit",onClick:function(O){O.preventDefault(),O.stopPropagation(),S(function(){r.recentSearches.remove(b),r.refresh()})}},f.createElement(Kt,null))))}})),f.createElement(zt,ht({},r,{title:v,collection:r.state.collections[1],renderIcon:function(){return f.createElement("div",{className:"DocSearch-Hit-icon"},f.createElement(Gn,null))},renderAction:function(y){var b=y.item,_=y.runDeleteTransition;return f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(S){S.preventDefault(),S.stopPropagation(),_(function(){r.favoriteSearches.remove(b),r.refresh()})}},f.createElement(Kt,null)))}})))}var ua=["translations"];function yt(){return yt=Object.assign||function(t){for(var e=1;e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var sa=f.memo(function(t){var e=t.translations,n=e===void 0?{}:e,r=la(t,ua);if(r.state.status==="error")return f.createElement($i,{translations:n==null?void 0:n.errorScreen});var o=r.state.collections.some(function(i){return i.items.length>0});return r.state.query?o===!1?f.createElement(Yi,yt({},r,{translations:n==null?void 0:n.noResultsScreen})):f.createElement(oa,r):f.createElement(ca,yt({},r,{hasCollections:o,translations:n==null?void 0:n.startScreen}))},function(t,e){return e.state.status==="loading"||e.state.status==="stalled"}),fa=["translations"];function gt(){return gt=Object.assign||function(t){for(var e=1;e=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function pa(t){var e=t.translations,n=e===void 0?{}:e,r=ma(t,fa),o=n.resetButtonTitle,i=o===void 0?"Clear the query":o,a=n.resetButtonAriaLabel,u=a===void 0?"Clear the query":a,c=n.cancelButtonText,s=c===void 0?"Cancel":c,l=n.cancelButtonAriaLabel,m=l===void 0?"Cancel":l,p=r.getFormProps({inputElement:r.inputRef.current}).onReset;return f.useEffect(function(){r.autoFocus&&r.inputRef.current&&r.inputRef.current.focus()},[r.autoFocus,r.inputRef]),f.useEffect(function(){r.isFromSelection&&r.inputRef.current&&r.inputRef.current.select()},[r.isFromSelection,r.inputRef]),f.createElement(f.Fragment,null,f.createElement("form",{className:"DocSearch-Form",onSubmit:function(v){v.preventDefault()},onReset:p},f.createElement("label",gt({className:"DocSearch-MagnifierLabel"},r.getLabelProps()),f.createElement(Hr,null)),f.createElement("div",{className:"DocSearch-LoadingIndicator"},f.createElement(Mi,null)),f.createElement("input",gt({className:"DocSearch-Input",ref:r.inputRef},r.getInputProps({inputElement:r.inputRef.current,autoFocus:r.autoFocus,maxLength:64}))),f.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":u,hidden:!r.state.query},f.createElement(Kt,null))),f.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":m,onClick:r.onClose},s))}var va=["_highlightResult","_snippetResult"];function da(t,e){if(t==null)return{};var n,r,o=function(a,u){if(a==null)return{};var c,s,l={},m=Object.keys(a);for(s=0;s=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function ha(t){return function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch{return!1}}()===!1?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(e){return window.localStorage.setItem(t,JSON.stringify(e))},getItem:function(){var e=window.localStorage.getItem(t);return e?JSON.parse(e):[]}}}function ar(t){var e=t.key,n=t.limit,r=n===void 0?5:n,o=ha(e),i=o.getItem().slice(0,r);return{add:function(a){var u=a,c=(u._highlightResult,u._snippetResult,da(u,va)),s=i.findIndex(function(l){return l.objectID===c.objectID});s>-1&&i.splice(s,1),i.unshift(c),i=i.slice(0,r),o.setItem(i)},remove:function(a){i=i.filter(function(u){return u.objectID!==a.objectID}),o.setItem(i)},getAll:function(){return i}}}var ya=["facetName","facetQuery"];function ga(t){var e,n="algoliasearch-client-js-".concat(t.key),r=function(){return e===void 0&&(e=t.localStorage||window.localStorage),e},o=function(){return JSON.parse(r().getItem(n)||"{}")};return{get:function(i,a){var u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then(function(){var c=JSON.stringify(i),s=o()[c];return Promise.all([s||a(),s!==void 0])}).then(function(c){var s=st(c,2),l=s[0],m=s[1];return Promise.all([l,m||u.miss(l)])}).then(function(c){return st(c,1)[0]})},set:function(i,a){return Promise.resolve().then(function(){var u=o();return u[JSON.stringify(i)]=a,r().setItem(n,JSON.stringify(u)),a})},delete:function(i){return Promise.resolve().then(function(){var a=o();delete a[JSON.stringify(i)],r().setItem(n,JSON.stringify(a))})},clear:function(){return Promise.resolve().then(function(){r().removeItem(n)})}}}function je(t){var e=ft(t.caches),n=e.shift();return n===void 0?{get:function(r,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return o().then(function(a){return Promise.all([a,i.miss(a)])}).then(function(a){return st(a,1)[0]})},set:function(r,o){return Promise.resolve(o)},delete:function(r){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(r,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(r,o,i).catch(function(){return je({caches:e}).get(r,o,i)})},set:function(r,o){return n.set(r,o).catch(function(){return je({caches:e}).set(r,o)})},delete:function(r){return n.delete(r).catch(function(){return je({caches:e}).delete(r)})},clear:function(){return n.clear().catch(function(){return je({caches:e}).clear()})}}}function Tt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{serializable:!0},e={};return{get:function(n,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(n);if(i in e)return Promise.resolve(t.serializable?JSON.parse(e[i]):e[i]);var a=r(),u=o&&o.miss||function(){return Promise.resolve()};return a.then(function(c){return u(c)}).then(function(){return a})},set:function(n,r){return e[JSON.stringify(n)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(n){return delete e[JSON.stringify(n)],Promise.resolve()},clear:function(){return e={},Promise.resolve()}}}function ba(t){for(var e=t.length-1;e>0;e--){var n=Math.floor(Math.random()*(e+1)),r=t[e];t[e]=t[n],t[n]=r}return t}function Jr(t,e){return e&&Object.keys(e).forEach(function(n){t[n]=e[n](t)}),t}function bt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0?r:void 0,timeout:n.timeout||e,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}var me={Read:1,Write:2,Any:3},Qr=1,_a=2,Zr=3;function Yr(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Qr;return I(I({},t),{},{status:e,lastUpdate:Date.now()})}function Gr(t){return typeof t=="string"?{protocol:"https",url:t,accept:me.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||me.Any}}var ur="GET",_t="POST";function Oa(t,e){return Promise.all(e.map(function(n){return t.get(n,function(){return Promise.resolve(Yr(n))})})).then(function(n){var r=n.filter(function(a){return function(u){return u.status===Qr||Date.now()-u.lastUpdate>12e4}(a)}),o=n.filter(function(a){return function(u){return u.status===Zr&&Date.now()-u.lastUpdate<=12e4}(a)}),i=[].concat(ft(r),ft(o));return{getTimeout:function(a,u){return(o.length===0&&a===0?1:o.length+3+a)*u},statelessHosts:i.length>0?i.map(function(a){return Gr(a)}):e}})}function lr(t,e,n,r){var o=[],i=function(p,v){if(!(p.method===ur||p.data===void 0&&v.data===void 0)){var d=Array.isArray(p.data)?p.data:I(I({},p.data),v.data);return JSON.stringify(d)}}(n,r),a=function(p,v){var d=I(I({},p.headers),v.headers),h={};return Object.keys(d).forEach(function(y){var b=d[y];h[y.toLowerCase()]=b}),h}(t,r),u=n.method,c=n.method!==ur?{}:I(I({},n.data),r.data),s=I(I(I({"x-algolia-agent":t.userAgent.value},t.queryParameters),c),r.queryParameters),l=0,m=function p(v,d){var h=v.pop();if(h===void 0)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:sr(o)};var y={data:i,headers:a,method:u,url:wa(h,n.path,s),connectTimeout:d(l,t.timeouts.connect),responseTimeout:d(l,r.timeout)},b=function(S){var O={request:y,response:S,host:h,triesLeft:v.length};return o.push(O),O},_={onSucess:function(S){return function(O){try{return JSON.parse(O.content)}catch(g){throw function(P,C){return{name:"DeserializationError",message:P,response:C}}(g.message,O)}}(S)},onRetry:function(S){var O=b(S);return S.isTimedOut&&l++,Promise.all([t.logger.info("Retryable failure",eo(O)),t.hostsCache.set(h,Yr(h,S.isTimedOut?Zr:_a))]).then(function(){return p(v,d)})},onFail:function(S){throw b(S),function(O,g){var P=O.content,C=O.status,L=P;try{L=JSON.parse(P).message}catch{}return function(x,k,N){return{name:"ApiError",message:x,status:k,transporterStackTrace:N}}(L,C,g)}(S,sr(o))}};return t.requester.send(y).then(function(S){return function(O,g){return function(P){var C=P.status;return P.isTimedOut||function(L){var x=L.isTimedOut,k=L.status;return!x&&~~k==0}(P)||~~(C/100)!=2&&~~(C/100)!=4}(O)?g.onRetry(O):~~(O.status/100)==2?g.onSucess(O):g.onFail(O)}(S,_)})};return Oa(t.hostsCache,e).then(function(p){return m(ft(p.statelessHosts).reverse(),p.getTimeout)})}function Sa(t){var e={value:"Algolia for JavaScript (".concat(t,")"),add:function(n){var r="; ".concat(n.segment).concat(n.version!==void 0?" (".concat(n.version,")"):"");return e.value.indexOf(r)===-1&&(e.value="".concat(e.value).concat(r)),e}};return e}function wa(t,e,n){var r=Xr(n),o="".concat(t.protocol,"://").concat(t.url,"/").concat(e.charAt(0)==="/"?e.substr(1):e);return r.length&&(o+="?".concat(r)),o}function Xr(t){return Object.keys(t).map(function(e){return bt("%s=%s",e,(n=t[e],Object.prototype.toString.call(n)==="[object Object]"||Object.prototype.toString.call(n)==="[object Array]"?JSON.stringify(t[e]):t[e]));var n}).join("&")}function sr(t){return t.map(function(e){return eo(e)})}function eo(t){var e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return I(I({},t),{},{request:I(I({},t.request),{},{headers:I(I({},t.request.headers),e)})})}var ja=function(t){var e=t.appId,n=function(i,a,u){var c={"x-algolia-api-key":u,"x-algolia-application-id":a};return{headers:function(){return i===lt.WithinHeaders?c:{}},queryParameters:function(){return i===lt.WithinQueryParameters?c:{}}}}(t.authMode!==void 0?t.authMode:lt.WithinHeaders,e,t.apiKey),r=function(i){var a=i.hostsCache,u=i.logger,c=i.requester,s=i.requestsCache,l=i.responsesCache,m=i.timeouts,p=i.userAgent,v=i.hosts,d=i.queryParameters,h={hostsCache:a,logger:u,requester:c,requestsCache:s,responsesCache:l,timeouts:m,userAgent:p,headers:i.headers,queryParameters:d,hosts:v.map(function(y){return Gr(y)}),read:function(y,b){var _=cr(b,h.timeouts.read),S=function(){return lr(h,h.hosts.filter(function(g){return(g.accept&me.Read)!=0}),y,_)};if((_.cacheable!==void 0?_.cacheable:y.cacheable)!==!0)return S();var O={request:y,mappedRequestOptions:_,transporter:{queryParameters:h.queryParameters,headers:h.headers}};return h.responsesCache.get(O,function(){return h.requestsCache.get(O,function(){return h.requestsCache.set(O,S()).then(function(g){return Promise.all([h.requestsCache.delete(O),g])},function(g){return Promise.all([h.requestsCache.delete(O),Promise.reject(g)])}).then(function(g){var P=st(g,2);return P[0],P[1]})})},{miss:function(g){return h.responsesCache.set(O,g)}})},write:function(y,b){return lr(h,h.hosts.filter(function(_){return(_.accept&me.Write)!=0}),y,cr(b,h.timeouts.write))}};return h}(I(I({hosts:[{url:"".concat(e,"-dsn.algolia.net"),accept:me.Read},{url:"".concat(e,".algolia.net"),accept:me.Write}].concat(ba([{url:"".concat(e,"-1.algolianet.com")},{url:"".concat(e,"-2.algolianet.com")},{url:"".concat(e,"-3.algolianet.com")}]))},t),{},{headers:I(I(I({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),t.headers),queryParameters:I(I({},n.queryParameters()),t.queryParameters)})),o={transporter:r,appId:e,addAlgoliaAgent:function(i,a){r.userAgent.add({segment:i,version:a})},clearCache:function(){return Promise.all([r.requestsCache.clear(),r.responsesCache.clear()]).then(function(){})}};return Jr(o,t.methods)},to=function(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r={transporter:t.transporter,appId:t.appId,indexName:e};return Jr(r,n.methods)}},fr=function(t){return function(e,n){var r=e.map(function(o){return I(I({},o),{},{params:Xr(o.params||{})})});return t.transporter.read({method:_t,path:"1/indexes/*/queries",data:{requests:r},cacheable:!0},n)}},mr=function(t){return function(e,n){return Promise.all(e.map(function(r){var o=r.params,i=o.facetName,a=o.facetQuery,u=Oo(o,ya);return to(t)(r.indexName,{methods:{searchForFacetValues:no}}).searchForFacetValues(i,a,I(I({},n),u))}))}},Ea=function(t){return function(e,n,r){return t.transporter.read({method:_t,path:bt("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:n},cacheable:!0},r)}},Pa=function(t){return function(e,n){return t.transporter.read({method:_t,path:bt("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},n)}},no=function(t){return function(e,n,r){return t.transporter.read({method:_t,path:bt("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:n},cacheable:!0},r)}},Ia=1,Da=2,ka=3;function ro(t,e,n){var r,o={appId:t,apiKey:e,timeouts:{connect:1,read:2,write:30},requester:{send:function(i){return new Promise(function(a){var u=new XMLHttpRequest;u.open(i.method,i.url,!0),Object.keys(i.headers).forEach(function(m){return u.setRequestHeader(m,i.headers[m])});var c,s=function(m,p){return setTimeout(function(){u.abort(),a({status:0,content:p,isTimedOut:!0})},1e3*m)},l=s(i.connectTimeout,"Connection timeout");u.onreadystatechange=function(){u.readyState>u.OPENED&&c===void 0&&(clearTimeout(l),c=s(i.responseTimeout,"Socket timeout"))},u.onerror=function(){u.status===0&&(clearTimeout(l),clearTimeout(c),a({content:u.responseText||"Network request failed",status:u.status,isTimedOut:!1}))},u.onload=function(){clearTimeout(l),clearTimeout(c),a({content:u.responseText,status:u.status,isTimedOut:!1})},u.send(i.data)})}},logger:(r=ka,{debug:function(i,a){return Ia>=r&&console.debug(i,a),Promise.resolve()},info:function(i,a){return Da>=r&&console.info(i,a),Promise.resolve()},error:function(i,a){return console.error(i,a),Promise.resolve()}}),responsesCache:Tt(),requestsCache:Tt({serializable:!1}),hostsCache:je({caches:[ga({key:"".concat("4.8.5","-").concat(t)}),Tt()]}),userAgent:Sa("4.8.5").add({segment:"Browser",version:"lite"}),authMode:lt.WithinQueryParameters};return ja(I(I(I({},o),n),{},{methods:{search:fr,searchForFacetValues:mr,multipleQueries:fr,multipleSearchForFacetValues:mr,initIndex:function(i){return function(a){return to(i)(a,{methods:{search:Pa,searchForFacetValues:no,findAnswers:Ea}})}}}}))}ro.version="4.8.5";var Aa=["footer","searchBox"];function Fe(){return Fe=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(l[c]=a[c]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function Ta(t){var e=t.appId,n=t.apiKey,r=t.indexName,o=t.placeholder,i=o===void 0?"Search docs":o,a=t.searchParameters,u=t.maxResultsPerGroup,c=t.onClose,s=c===void 0?na:c,l=t.transformItems,m=l===void 0?ir:l,p=t.hitComponent,v=p===void 0?Li:p,d=t.resultsFooterComponent,h=d===void 0?function(){return null}:d,y=t.navigator,b=t.initialScrollY,_=b===void 0?0:b,S=t.transformSearchClient,O=S===void 0?ir:S,g=t.disableUserPersonalization,P=g!==void 0&&g,C=t.initialQuery,L=C===void 0?"":C,x=t.translations,k=x===void 0?{}:x,N=t.getMissingResultsUrl,U=t.insights,F=U!==void 0&&U,M=k.footer,Ot=k.searchBox,St=Na(k,Aa),$e=xa(f.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),B=$e[0],oo=$e[1],Gt=f.useRef(null),wt=f.useRef(null),Xt=f.useRef(null),Je=f.useRef(null),he=f.useRef(null),Q=f.useRef(10),en=f.useRef(typeof window<"u"?window.getSelection().toString().slice(0,64):"").current,ee=f.useRef(L||en).current,tn=function(j,D,T){return f.useMemo(function(){var H=ro(j,D);return H.addAlgoliaAgent("docsearch","3.5.1"),/docsearch.js \(.*\)/.test(H.transporter.userAgent.value)===!1&&H.addAlgoliaAgent("docsearch-react","3.5.1"),T(H)},[j,D,T])}(e,n,O),oe=f.useRef(ar({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(r),limit:10})).current,ye=f.useRef(ar({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(r),limit:oe.getAll().length===0?7:4})).current,ge=f.useCallback(function(j){if(!P){var D=j.type==="content"?j.__docsearch_parent:j;D&&oe.getAll().findIndex(function(T){return T.objectID===D.objectID})===-1&&ye.add(D)}},[oe,ye,P]),io=f.useCallback(function(j){if(B.context.algoliaInsightsPlugin&&j.__autocomplete_id){var D=j,T={eventName:"Item Selected",index:D.__autocomplete_indexName,items:[D],positions:[j.__autocomplete_id],queryID:D.__autocomplete_queryID};B.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(T)}},[B.context.algoliaInsightsPlugin]),be=f.useMemo(function(){return Ti({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:ee,context:{searchSuggestions:[]}},insights:F,navigator:y,onStateChange:function(j){oo(j.state)},getSources:function(j){var D=j.query,T=j.state,H=j.setContext,Z=j.setStatus;if(!D)return P?[]:[{sourceId:"recentSearches",onSelect:function(A){var K=A.item,ie=A.event;ge(K),it(ie)||s()},getItemUrl:function(A){return A.item.url},getItems:function(){return ye.getAll()}},{sourceId:"favoriteSearches",onSelect:function(A){var K=A.item,ie=A.event;ge(K),it(ie)||s()},getItemUrl:function(A){return A.item.url},getItems:function(){return oe.getAll()}}];var Y=!!F;return tn.search([{query:D,indexName:r,params:Rt({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(Q.current),"hierarchy.lvl2:".concat(Q.current),"hierarchy.lvl3:".concat(Q.current),"hierarchy.lvl4:".concat(Q.current),"hierarchy.lvl5:".concat(Q.current),"hierarchy.lvl6:".concat(Q.current),"content:".concat(Q.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:Y},a)}]).catch(function(A){throw A.name==="RetryError"&&Z("error"),A}).then(function(A){var K=A.results,ie=K[0],uo=ie.hits,lo=ie.nbHits,jt=or(uo,function(Et){return $r(Et)},u);T.context.searchSuggestions.length0&&(nn(),he.current&&he.current.focus())},[ee,nn]),f.useEffect(function(){function j(){if(wt.current){var D=.01*window.innerHeight;wt.current.style.setProperty("--docsearch-vh","".concat(D,"px"))}}return j(),window.addEventListener("resize",j),function(){window.removeEventListener("resize",j)}},[]),f.createElement("div",Fe({ref:Gt},co({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container",B.status==="stalled"&&"DocSearch-Container--Stalled",B.status==="error"&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(j){j.target===j.currentTarget&&s()}}),f.createElement("div",{className:"DocSearch-Modal",ref:wt},f.createElement("header",{className:"DocSearch-SearchBar",ref:Xt},f.createElement(pa,Fe({},be,{state:B,autoFocus:ee.length===0,inputRef:he,isFromSelection:!!ee&&ee===en,translations:Ot,onClose:s}))),f.createElement("div",{className:"DocSearch-Dropdown",ref:Je},f.createElement(sa,Fe({},be,{indexName:r,state:B,hitComponent:v,resultsFooterComponent:h,disableUserPersonalization:P,recentSearches:ye,favoriteSearches:oe,inputRef:he,translations:St,getMissingResultsUrl:N,onItemClick:function(j,D){io(j),ge(j),it(D)||s()}}))),f.createElement("footer",{className:"DocSearch-Footer"},f.createElement(qi,{translations:M}))))}function Jt(){return Jt=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&arguments[1]!==void 0?arguments[1]:window;return typeof e=="string"?n.document.querySelector(e):e}(t.container,t.environment))}const La={id:"docsearch"},Ua=fo({__name:"VPAlgoliaSearchBox",props:{algolia:{}},setup(t){const e=t,n=mo(),r=po(),{site:o,localeIndex:i,lang:a}=bo();vo(u),ho(i,u);function u(){var v,d;const l={...e.algolia,...(v=e.algolia.locales)==null?void 0:v[i.value]},m=((d=l.searchParameters)==null?void 0:d.facetFilters)??[],p=[...(Array.isArray(m)?m:[m]).filter(h=>!h.startsWith("lang:")),`lang:${a.value}`];c({...l,searchParameters:{...l.searchParameters,facetFilters:p}})}function c(l){const m=Object.assign({},l,{container:"#docsearch",navigator:{navigate({itemUrl:p}){const{pathname:v}=new URL(window.location.origin+p);r.path===v?window.location.assign(window.location.origin+p):n.go(p)}},transformItems(p){return p.map(v=>Object.assign({},v,{url:s(v.url)}))},hitComponent({hit:p,children:v}){return{__v:null,type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:p.url,children:v}}}});qa(m)}function s(l){const{pathname:m,hash:p}=new URL(l);return m.replace(/\.html$/,o.value.cleanUrls?"":".html")+p}return(l,m)=>(yo(),go("div",La))}});export{Ua as default}; diff --git a/assets/chunks/framework.0d8bea05.js b/assets/chunks/framework.0d8bea05.js new file mode 100644 index 00000000..9b344888 --- /dev/null +++ b/assets/chunks/framework.0d8bea05.js @@ -0,0 +1,9 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +function mn(t,e){const n=Object.create(null),o=t.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const Z={},ae=[],Xt=()=>{},$s=()=>!1,Ms=/^on[^a-z]/,Ue=t=>Ms.test(t),Qn=t=>t.startsWith("onUpdate:"),et=Object.assign,Zn=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},Is=Object.prototype.hasOwnProperty,G=(t,e)=>Is.call(t,e),U=Array.isArray,ue=t=>gn(t)==="[object Map]",_r=t=>gn(t)==="[object Set]",D=t=>typeof t=="function",st=t=>typeof t=="string",to=t=>typeof t=="symbol",Q=t=>t!==null&&typeof t=="object",br=t=>Q(t)&&D(t.then)&&D(t.catch),Cr=Object.prototype.toString,gn=t=>Cr.call(t),wr=t=>gn(t)==="[object Object]",eo=t=>st(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Se=mn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),vn=t=>{const e=Object.create(null);return n=>e[n]||(e[n]=t(n))},Ns=/-(\w)/g,Mt=vn(t=>t.replace(Ns,(e,n)=>n?n.toUpperCase():"")),Us=/\B([A-Z])/g,ie=vn(t=>t.replace(Us,"-$1").toLowerCase()),yn=vn(t=>t.charAt(0).toUpperCase()+t.slice(1)),Ze=vn(t=>t?`on${yn(t)}`:""),Fe=(t,e)=>!Object.is(t,e),Fn=(t,e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:n})},js=t=>{const e=parseFloat(t);return isNaN(e)?t:e},Vs=t=>{const e=st(t)?Number(t):NaN;return isNaN(e)?t:e};let Eo;const Bs=mn("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console");function no(t){if(U(t)){const e={};for(let n=0;n{if(n){const o=n.split(Ds);o.length>1&&(e[o[0].trim()]=o[1].trim())}}),e}function oo(t){let e="";if(st(t))e=t;else if(U(t))for(let n=0;nst(t)?t:t==null?"":U(t)||Q(t)&&(t.toString===Cr||!D(t.toString))?JSON.stringify(t,xr,2):String(t),xr=(t,e)=>e&&e.__v_isRef?xr(t,e.value):ue(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[o,r])=>(n[`${o} =>`]=r,n),{})}:_r(e)?{[`Set(${e.size})`]:[...e.values()]}:!Q(e)||U(e)||wr(e)?e:String(e);let yt;class Ks{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=yt,!e&&yt&&(this.index=(yt.scopes||(yt.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const n=yt;try{return yt=this,e()}finally{yt=n}}}on(){yt=this}off(){yt=this.parent}stop(e){if(this._active){let n,o;for(n=0,o=this.effects.length;n{const e=new Set(t);return e.w=0,e.n=0,e},Sr=t=>(t.w&Gt)>0,Er=t=>(t.n&Gt)>0,Bn=new WeakMap;let xe=0,Gt=1,Rt;const se=Symbol(""),Hn=Symbol("");class so{constructor(e,n=null,o){this.fn=e,this.scheduler=n,this.active=!0,this.deps=[],this.parent=void 0,Gs(this,o)}run(){if(!this.active)return this.fn();let e=Rt,n=Jt;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=Rt,Rt=this,Jt=!0,Gt=1<<++xe,xe<=30?(({deps:o})=>{if(o.length)for(let r=0;r{const{deps:r}=o;if(r.length){let s=0;for(let l=0;l{(f==="length"||f>=c)&&i.push(a)})}else switch(n!==void 0&&i.push(l.get(n)),e){case"add":U(t)?eo(n)&&i.push(l.get("length")):(i.push(l.get(se)),ue(t)&&i.push(l.get(Hn)));break;case"delete":U(t)||(i.push(l.get(se)),ue(t)&&i.push(l.get(Hn)));break;case"set":ue(t)&&i.push(l.get(se))}if(i.length===1)i[0]&&Dn(i[0]);else{const c=[];for(const a of i)a&&c.push(...a);Dn(ro(c))}}function Dn(t,e){const n=U(t)?t:[...t];for(const o of n)o.computed&&To(o);for(const o of n)o.computed||To(o)}function To(t,e){(t!==Rt||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}const Js=mn("__proto__,__v_isRef,__isVue"),Tr=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(to)),Ys=_n(),Qs=_n(!1,!0),Zs=_n(!0),tl=_n(!0,!0),Ro=el();function el(){const t={};return["includes","indexOf","lastIndexOf"].forEach(e=>{t[e]=function(...n){const o=X(this);for(let s=0,l=this.length;s{t[e]=function(...n){he();const o=X(this)[e].apply(this,n);return me(),o}}),t}function nl(t){const e=X(this);return gt(e,0,t),e.hasOwnProperty(t)}function _n(t=!1,e=!1){return function(n,o,r){if(o==="__v_isReactive")return!t;if(o==="__v_isReadonly")return t;if(o==="__v_isShallow")return e;if(o==="__v_raw"&&r===(t?e?dl:$r:e?Pr:Or).get(n))return n;const s=U(n);if(!t){if(s&&G(Ro,o))return Reflect.get(Ro,o,r);if(o==="hasOwnProperty")return nl}const l=Reflect.get(n,o,r);return(to(o)?Tr.has(o):Js(o))?l:(t||gt(n,0,o),e?l:at(l)?s&&eo(o)?l:l.value:Q(l)?t?Mr(l):Cn(l):l)}}function Rr(t=!1){return function(e,n,o,r){let s=e[n];if(ge(s)&&at(s)&&!at(o))return!1;if(!t&&(rn(o)||ge(o)||(s=X(s),o=X(o)),!U(e)&&at(s)&&!at(o)))return s.value=o,!0;const l=U(e)&&eo(n)?Number(n)!0,deleteProperty:(t,e)=>!0},ol=et({},Lr,{get:Qs,set:Rr(!0)});et({},Fr,{get:tl});const lo=t=>t,bn=t=>Reflect.getPrototypeOf(t);function We(t,e,n=!1,o=!1){const r=X(t=t.__v_raw),s=X(e);n||(e!==s&>(r,0,e),gt(r,0,s));const{has:l}=bn(r),i=o?lo:n?ao:Oe;return l.call(r,e)?i(t.get(e)):l.call(r,s)?i(t.get(s)):void(t!==r&&t.get(e))}function qe(t,e=!1){const n=this.__v_raw,o=X(n),r=X(t);return e||(t!==r&>(o,0,t),gt(o,0,r)),t===r?n.has(t):n.has(t)||n.has(r)}function ze(t,e=!1){return t=t.__v_raw,!e&>(X(t),0,se),Reflect.get(t,"size",t)}function Lo(t){t=X(t);const e=X(this);return bn(e).has.call(e,t)||(e.add(t),jt(e,"add",t,t)),this}function Fo(t,e){e=X(e);const n=X(this),{has:o,get:r}=bn(n);let s=o.call(n,t);s||(t=X(t),s=o.call(n,t));const l=r.call(n,t);return n.set(t,e),s?Fe(e,l)&&jt(n,"set",t,e):jt(n,"add",t,e),this}function Oo(t){const e=X(this),{has:n,get:o}=bn(e);let r=n.call(e,t);r||(t=X(t),r=n.call(e,t)),o&&o.call(e,t);const s=e.delete(t);return r&&jt(e,"delete",t,void 0),s}function Po(){const t=X(this),e=t.size!==0,n=t.clear();return e&&jt(t,"clear",void 0,void 0),n}function Ke(t,e){return function(n,o){const r=this,s=r.__v_raw,l=X(s),i=e?lo:t?ao:Oe;return!t&>(l,0,se),s.forEach((c,a)=>n.call(o,i(c),i(a),r))}}function Ge(t,e,n){return function(...o){const r=this.__v_raw,s=X(r),l=ue(s),i=t==="entries"||t===Symbol.iterator&&l,c=t==="keys"&&l,a=r[t](...o),f=n?lo:e?ao:Oe;return!e&>(s,0,c?Hn:se),{next(){const{value:p,done:g}=a.next();return g?{value:p,done:g}:{value:i?[f(p[0]),f(p[1])]:f(p),done:g}},[Symbol.iterator](){return this}}}}function Dt(t){return function(...e){return t!=="delete"&&this}}function rl(){const t={get(r){return We(this,r)},get size(){return ze(this)},has:qe,add:Lo,set:Fo,delete:Oo,clear:Po,forEach:Ke(!1,!1)},e={get(r){return We(this,r,!1,!0)},get size(){return ze(this)},has:qe,add:Lo,set:Fo,delete:Oo,clear:Po,forEach:Ke(!1,!0)},n={get(r){return We(this,r,!0)},get size(){return ze(this,!0)},has(r){return qe.call(this,r,!0)},add:Dt("add"),set:Dt("set"),delete:Dt("delete"),clear:Dt("clear"),forEach:Ke(!0,!1)},o={get(r){return We(this,r,!0,!0)},get size(){return ze(this,!0)},has(r){return qe.call(this,r,!0)},add:Dt("add"),set:Dt("set"),delete:Dt("delete"),clear:Dt("clear"),forEach:Ke(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(r=>{t[r]=Ge(r,!1,!1),n[r]=Ge(r,!0,!1),e[r]=Ge(r,!1,!0),o[r]=Ge(r,!0,!0)}),[t,n,e,o]}const[sl,ll,il,cl]=rl();function io(t,e){const n=e?t?cl:il:t?ll:sl;return(o,r,s)=>r==="__v_isReactive"?!t:r==="__v_isReadonly"?t:r==="__v_raw"?o:Reflect.get(G(n,r)&&r in o?n:o,r,s)}const al={get:io(!1,!1)},ul={get:io(!1,!0)},fl={get:io(!0,!1)},Or=new WeakMap,Pr=new WeakMap,$r=new WeakMap,dl=new WeakMap;function pl(t){return t.__v_skip||!Object.isExtensible(t)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>gn(e).slice(8,-1))(t))}function Cn(t){return ge(t)?t:co(t,!1,Lr,al,Or)}function hl(t){return co(t,!1,ol,ul,Pr)}function Mr(t){return co(t,!0,Fr,fl,$r)}function co(t,e,n,o,r){if(!Q(t)||t.__v_raw&&(!e||!t.__v_isReactive))return t;const s=r.get(t);if(s)return s;const l=pl(t);if(l===0)return t;const i=new Proxy(t,l===2?o:n);return r.set(t,i),i}function fe(t){return ge(t)?fe(t.__v_raw):!(!t||!t.__v_isReactive)}function ge(t){return!(!t||!t.__v_isReadonly)}function rn(t){return!(!t||!t.__v_isShallow)}function Ir(t){return fe(t)||ge(t)}function X(t){const e=t&&t.__v_raw;return e?X(e):t}function Ee(t){return tn(t,"__v_skip",!0),t}const Oe=t=>Q(t)?Cn(t):t,ao=t=>Q(t)?Mr(t):t;function Nr(t){Jt&&Rt&&Ar((t=X(t)).dep||(t.dep=ro()))}function Ur(t,e){const n=(t=X(t)).dep;n&&Dn(n)}function at(t){return!(!t||t.__v_isRef!==!0)}function ke(t){return jr(t,!1)}function ml(t){return jr(t,!0)}function jr(t,e){return at(t)?t:new gl(t,e)}class gl{constructor(e,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?e:X(e),this._value=n?e:Oe(e)}get value(){return Nr(this),this._value}set value(e){const n=this.__v_isShallow||rn(e)||ge(e);e=n?e:X(e),Fe(e,this._rawValue)&&(this._rawValue=e,this._value=n?e:Oe(e),Ur(this))}}function vl(t){return at(t)?t.value:t}const yl={get:(t,e,n)=>vl(Reflect.get(t,e,n)),set:(t,e,n,o)=>{const r=t[e];return at(r)&&!at(n)?(r.value=n,!0):Reflect.set(t,e,n,o)}};function Vr(t){return fe(t)?t:new Proxy(t,yl)}class _l{constructor(e,n,o,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new so(e,()=>{this._dirty||(this._dirty=!0,Ur(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=o}get value(){const e=X(this);return Nr(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function Yt(t,e,n,o){let r;try{r=o?t(...o):t()}catch(s){je(s,e,n)}return r}function Ft(t,e,n,o){if(D(t)){const s=Yt(t,e,n,o);return s&&br(s)&&s.catch(l=>{je(l,e,n)}),s}const r=[];for(let s=0;s>>1;$e(ct[r])$e(n)-$e(o)),ee=0;eet.id==null?1/0:t.id,Cl=(t,e)=>{const n=$e(t)-$e(e);if(n===0){if(t.pre&&!e.pre)return-1;if(e.pre&&!t.pre)return 1}return n};function Wr(t){Wn=!1,Pe=!0,ct.sort(Cl);try{for($t=0;$tst(E)?E.trim():E)),p&&(r=n.map(js))}let i,c=o[i=Ze(e)]||o[i=Ze(Mt(e))];!c&&s&&(c=o[i=Ze(ie(e))]),c&&Ft(c,t,6,r);const a=o[i+"Once"];if(a){if(t.emitted){if(t.emitted[i])return}else t.emitted={};t.emitted[i]=!0,Ft(a,t,6,r)}}function qr(t,e,n=!1){const o=e.emitsCache,r=o.get(t);if(r!==void 0)return r;const s=t.emits;let l={},i=!1;if(!D(t)){const c=a=>{const f=qr(a,e,!0);f&&(i=!0,et(l,f))};!n&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}return s||i?(U(s)?s.forEach(c=>l[c]=null):et(l,s),Q(t)&&o.set(t,l),l):(Q(t)&&o.set(t,null),null)}function ln(t,e){return!(!t||!Ue(e))&&(e=e.slice(2).replace(/Once$/,""),G(t,e[0].toLowerCase()+e.slice(1))||G(t,ie(e))||G(t,e))}let ut=null,xn=null;function cn(t){const e=ut;return ut=t,xn=t&&t.type.__scopeId||null,e}function Di(t){xn=t}function Wi(){xn=null}function xl(t,e=ut,n){if(!e||t._n)return t;const o=(...r)=>{o._d&&Xo(-1);const s=cn(e);let l;try{l=t(...r)}finally{cn(s),o._d&&Xo(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function On(t){const{type:e,vnode:n,proxy:o,withProxy:r,props:s,propsOptions:[l],slots:i,attrs:c,emit:a,render:f,renderCache:p,data:g,setupState:E,ctx:L,inheritAttrs:$}=t;let m,C;const N=cn(t);try{if(4&n.shapeFlag){const B=r||o;m=Tt(f.call(B,B,p,s,E,g,L)),C=c}else{const B=e;m=Tt(B(s,B.length>1?{attrs:c,slots:i,emit:a}:null)),C=e.props?c:Sl(c)}}catch(B){Le.length=0,je(B,t,1),m=ot(_t)}let q=m;if(C&&$!==!1){const B=Object.keys(C),{shapeFlag:K}=q;B.length&&7&K&&(l&&B.some(Qn)&&(C=El(C,l)),q=Qt(q,C))}return n.dirs&&(q=Qt(q),q.dirs=q.dirs?q.dirs.concat(n.dirs):n.dirs),n.transition&&(q.transition=n.transition),m=q,cn(N),m}const Sl=t=>{let e;for(const n in t)(n==="class"||n==="style"||Ue(n))&&((e||(e={}))[n]=t[n]);return e},El=(t,e)=>{const n={};for(const o in t)Qn(o)&&o.slice(9)in e||(n[o]=t[o]);return n};function Mo(t,e,n){const o=Object.keys(e);if(o.length!==Object.keys(t).length)return!0;for(let r=0;rt.__isSuspense;function zr(t,e){e&&e.pendingBranch?U(t)?e.effects.push(...t):e.effects.push(t):bl(t)}function Tl(t,e){return Sn(t,null,e)}function qi(t,e){return Sn(t,null,{flush:"post"})}const Xe={};function en(t,e,n){return Sn(t,e,n)}function Sn(t,e,{immediate:n,deep:o,flush:r}=Z){var s;const l=Xs()===((s=it)==null?void 0:s.scope)?it:null;let i,c,a=!1,f=!1;if(at(t)?(i=()=>t.value,a=rn(t)):fe(t)?(i=()=>t,o=!0):U(t)?(f=!0,a=t.some(m=>fe(m)||rn(m)),i=()=>t.map(m=>at(m)?m.value:fe(m)?ce(m):D(m)?Yt(m,l,2):void 0)):i=D(t)?e?()=>Yt(t,l,2):()=>{if(!l||!l.isUnmounted)return c&&c(),Ft(t,l,3,[p])}:Xt,e&&o){const m=i;i=()=>ce(m())}let p=m=>{c=$.onStop=()=>{Yt(m,l,4)}},g=f?new Array(t.length).fill(Xe):Xe;const E=()=>{if($.active)if(e){const m=$.run();(o||a||(f?m.some((C,N)=>Fe(C,g[N])):Fe(m,g)))&&(c&&c(),Ft(e,l,3,[m,g===Xe?void 0:f&&g[0]===Xe?[]:g,p]),g=m)}else $.run()};let L;E.allowRecurse=!!e,r==="sync"?L=E:r==="post"?L=()=>mt(E,l&&l.suspense):(E.pre=!0,l&&(E.id=l.uid),L=()=>wn(E));const $=new so(i,L);return e?n?E():g=$.run():r==="post"?mt($.run.bind($),l&&l.suspense):$.run(),()=>{$.stop(),l&&l.scope&&Zn(l.scope.effects,$)}}function Rl(t,e,n){const o=this.proxy,r=st(t)?t.includes(".")?Kr(o,t):()=>o[t]:t.bind(o,o);let s;D(e)?s=e:(s=e.handler,n=e);const l=it;ye(this);const i=Sn(r,s.bind(o),n);return l?ye(l):le(),i}function Kr(t,e){const n=e.split(".");return()=>{let o=t;for(let r=0;r{ce(n,e)});else if(wr(t))for(const n in t)ce(t[n],e);return t}function Pt(t,e,n,o){const r=t.dirs,s=e&&e.dirs;for(let l=0;l{t.isMounted=!0}),Zr(()=>{t.isUnmounting=!0}),t}const St=[Function,Array],Xr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:St,onEnter:St,onAfterEnter:St,onEnterCancelled:St,onBeforeLeave:St,onLeave:St,onAfterLeave:St,onLeaveCancelled:St,onBeforeAppear:St,onAppear:St,onAfterAppear:St,onAppearCancelled:St},Ll={name:"BaseTransition",props:Xr,setup(t,{slots:e}){const n=yo(),o=Gr();let r;return()=>{const s=e.default&&fo(e.default(),!0);if(!s||!s.length)return;let l=s[0];if(s.length>1){for(const $ of s)if($.type!==_t){l=$;break}}const i=X(t),{mode:c}=i;if(o.isLeaving)return Pn(l);const a=Io(l);if(!a)return Pn(l);const f=Me(a,i,o,n);Ie(a,f);const p=n.subTree,g=p&&Io(p);let E=!1;const{getTransitionKey:L}=a.type;if(L){const $=L();r===void 0?r=$:$!==r&&(r=$,E=!0)}if(g&&g.type!==_t&&(!ne(a,g)||E)){const $=Me(g,i,o,n);if(Ie(g,$),c==="out-in")return o.isLeaving=!0,$.afterLeave=()=>{o.isLeaving=!1,n.update.active!==!1&&n.update()},Pn(l);c==="in-out"&&a.type!==_t&&($.delayLeave=(m,C,N)=>{Jr(o,g)[String(g.key)]=g,m._leaveCb=()=>{C(),m._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=N})}return l}}};function Jr(t,e){const{leavingVNodes:n}=t;let o=n.get(e.type);return o||(o=Object.create(null),n.set(e.type,o)),o}function Me(t,e,n,o){const{appear:r,mode:s,persisted:l=!1,onBeforeEnter:i,onEnter:c,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:p,onLeave:g,onAfterLeave:E,onLeaveCancelled:L,onBeforeAppear:$,onAppear:m,onAfterAppear:C,onAppearCancelled:N}=e,q=String(t.key),B=Jr(n,t),K=(M,W)=>{M&&Ft(M,o,9,W)},J=(M,W)=>{const z=W[1];K(M,W),U(M)?M.every(nt=>nt.length<=1)&&z():M.length<=1&&z()},H={mode:s,persisted:l,beforeEnter(M){let W=i;if(!n.isMounted){if(!r)return;W=$||i}M._leaveCb&&M._leaveCb(!0);const z=B[q];z&&ne(t,z)&&z.el._leaveCb&&z.el._leaveCb(),K(W,[M])},enter(M){let W=c,z=a,nt=f;if(!n.isMounted){if(!r)return;W=m||c,z=C||a,nt=N||f}let T=!1;const k=M._enterCb=V=>{T||(T=!0,K(V?nt:z,[M]),H.delayedLeave&&H.delayedLeave(),M._enterCb=void 0)};W?J(W,[M,k]):k()},leave(M,W){const z=String(t.key);if(M._enterCb&&M._enterCb(!0),n.isUnmounting)return W();K(p,[M]);let nt=!1;const T=M._leaveCb=k=>{nt||(nt=!0,W(),K(k?L:E,[M]),M._leaveCb=void 0,B[z]===t&&delete B[z])};B[z]=t,g?J(g,[M,T]):T()},clone:M=>Me(M,e,n,o)};return H}function Pn(t){if(Ve(t))return(t=Qt(t)).children=null,t}function Io(t){return Ve(t)?t.children?t.children[0]:void 0:t}function Ie(t,e){6&t.shapeFlag&&t.component?Ie(t.component.subTree,e):128&t.shapeFlag?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function fo(t,e=!1,n){let o=[],r=0;for(let s=0;s1)for(let s=0;set({name:t.name},e,{setup:t}))():t}const pe=t=>!!t.type.__asyncLoader;function zi(t){D(t)&&(t={loader:t});const{loader:e,loadingComponent:n,errorComponent:o,delay:r=200,timeout:s,suspensible:l=!0,onError:i}=t;let c,a=null,f=0;const p=()=>{let g;return a||(g=a=e().catch(E=>{if(E=E instanceof Error?E:new Error(String(E)),i)return new Promise((L,$)=>{i(E,()=>L((f++,a=null,p())),()=>$(E),f+1)});throw E}).then(E=>g!==a&&a?a:(E&&(E.__esModule||E[Symbol.toStringTag]==="Module")&&(E=E.default),c=E,E)))};return po({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const g=it;if(c)return()=>$n(c,g);const E=C=>{a=null,je(C,g,13,!o)};if(l&&g.suspense)return p().then(C=>()=>$n(C,g)).catch(C=>(E(C),()=>o?ot(o,{error:C}):null));const L=ke(!1),$=ke(),m=ke(!!r);return r&&setTimeout(()=>{m.value=!1},r),s!=null&&setTimeout(()=>{if(!L.value&&!$.value){const C=new Error(`Async component timed out after ${s}ms.`);E(C),$.value=C}},s),p().then(()=>{L.value=!0,g.parent&&Ve(g.parent.vnode)&&wn(g.parent.update)}).catch(C=>{E(C),$.value=C}),()=>L.value&&c?$n(c,g):$.value&&o?ot(o,{error:$.value}):n&&!m.value?ot(n):void 0}})}function $n(t,e){const{ref:n,props:o,children:r,ce:s}=e.vnode,l=ot(t,o,r);return l.ref=n,l.ce=s,delete e.vnode.ce,l}const Ve=t=>t.type.__isKeepAlive;function Fl(t,e){Yr(t,"a",e)}function Ol(t,e){Yr(t,"da",e)}function Yr(t,e,n=it){const o=t.__wdc||(t.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return t()});if(En(e,o,n),n){let r=n.parent;for(;r&&r.parent;)Ve(r.parent.vnode)&&Pl(o,e,n,r),r=r.parent}}function Pl(t,e,n,o){const r=En(e,t,o,!0);An(()=>{Zn(o[e],r)},n)}function En(t,e,n=it,o=!1){if(n){const r=n[t]||(n[t]=[]),s=e.__weh||(e.__weh=(...l)=>{if(n.isUnmounted)return;he(),ye(n);const i=Ft(e,n,t,l);return le(),me(),i});return o?r.unshift(s):r.push(s),s}}const Vt=t=>(e,n=it)=>(!hn||t==="sp")&&En(t,(...o)=>e(...o),n),$l=Vt("bm"),kn=Vt("m"),Ml=Vt("bu"),Qr=Vt("u"),Zr=Vt("bum"),An=Vt("um"),Il=Vt("sp"),Nl=Vt("rtg"),Ul=Vt("rtc");function jl(t,e=it){En("ec",t,e)}const ho="components";function Ki(t,e){return es(ho,t,!0,e)||t}const ts=Symbol.for("v-ndc");function Gi(t){return st(t)?es(ho,t,!1)||t:t||ts}function es(t,e,n=!0,o=!1){const r=ut||it;if(r){const s=r.type;if(t===ho){const i=ei(s,!1);if(i&&(i===e||i===Mt(e)||i===yn(Mt(e))))return s}const l=No(r[t]||s[t],e)||No(r.appContext[t],e);return!l&&o?s:l}}function No(t,e){return t&&(t[e]||t[Mt(e)]||t[yn(Mt(e))])}function Xi(t,e,n,o){let r;const s=n&&n[o];if(U(t)||st(t)){r=new Array(t.length);for(let l=0,i=t.length;le(l,i,void 0,s&&s[i]));else{const l=Object.keys(t);r=new Array(l.length);for(let i=0,c=l.length;i!dn(e)||e.type!==_t&&!(e.type===pt&&!ns(e.children)))?t:null}function Yi(t,e){const n={};for(const o in t)n[e&&/[A-Z]/.test(o)?`on:${o}`:Ze(o)]=t[o];return n}const qn=t=>t?hs(t)?bo(t)||t.proxy:qn(t.parent):null,Ae=et(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>qn(t.parent),$root:t=>qn(t.root),$emit:t=>t.emit,$options:t=>mo(t),$forceUpdate:t=>t.f||(t.f=()=>wn(t.update)),$nextTick:t=>t.n||(t.n=Hr.bind(t.proxy)),$watch:t=>Rl.bind(t)}),Mn=(t,e)=>t!==Z&&!t.__isScriptSetup&&G(t,e),zn={get({_:t},e){const{ctx:n,setupState:o,data:r,props:s,accessCache:l,type:i,appContext:c}=t;let a;if(e[0]!=="$"){const E=l[e];if(E!==void 0)switch(E){case 1:return o[e];case 2:return r[e];case 4:return n[e];case 3:return s[e]}else{if(Mn(o,e))return l[e]=1,o[e];if(r!==Z&&G(r,e))return l[e]=2,r[e];if((a=t.propsOptions[0])&&G(a,e))return l[e]=3,s[e];if(n!==Z&&G(n,e))return l[e]=4,n[e];Kn&&(l[e]=0)}}const f=Ae[e];let p,g;return f?(e==="$attrs"&>(t,0,e),f(t)):(p=i.__cssModules)&&(p=p[e])?p:n!==Z&&G(n,e)?(l[e]=4,n[e]):(g=c.config.globalProperties,G(g,e)?g[e]:void 0)},set({_:t},e,n){const{data:o,setupState:r,ctx:s}=t;return Mn(r,e)?(r[e]=n,!0):o!==Z&&G(o,e)?(o[e]=n,!0):!G(t.props,e)&&(e[0]!=="$"||!(e.slice(1)in t))&&(s[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:o,appContext:r,propsOptions:s}},l){let i;return!!n[l]||t!==Z&&G(t,l)||Mn(e,l)||(i=s[0])&&G(i,l)||G(o,l)||G(Ae,l)||G(r.config.globalProperties,l)},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:G(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};et({},zn,{get(t,e){if(e!==Symbol.unscopables)return zn.get(t,e,t)},has:(t,e)=>e[0]!=="_"&&!Bs(e)});function Qi(){return Vl().slots}function Vl(){const t=yo();return t.setupContext||(t.setupContext=gs(t))}function Uo(t){return U(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}let Kn=!0;function Bl(t){const e=mo(t),n=t.proxy,o=t.ctx;Kn=!1,e.beforeCreate&&jo(e.beforeCreate,t,"bc");const{data:r,computed:s,methods:l,watch:i,provide:c,inject:a,created:f,beforeMount:p,mounted:g,beforeUpdate:E,updated:L,activated:$,deactivated:m,beforeUnmount:C,unmounted:N,render:q,renderTracked:B,renderTriggered:K,errorCaptured:J,serverPrefetch:H,expose:M,inheritAttrs:W,components:z,directives:nt}=e;if(a&&function(k,V,tt=Xt){U(k)&&(k=Gn(k));for(const bt in k){const Ct=k[bt];let wt;wt=Q(Ct)?"default"in Ct?Te(Ct.from||bt,Ct.default,!0):Te(Ct.from||bt):Te(Ct),at(wt)?Object.defineProperty(V,bt,{enumerable:!0,configurable:!0,get:()=>wt.value,set:Ot=>wt.value=Ot}):V[bt]=wt}}(a,o,null),l)for(const k in l){const V=l[k];D(V)&&(o[k]=V.bind(n))}if(r){const k=r.call(n,n);Q(k)&&(t.data=Cn(k))}if(Kn=!0,s)for(const k in s){const V=s[k],tt=D(V)?V.bind(n,n):D(V.get)?V.get.bind(n,n):Xt,bt=!D(V)&&D(V.set)?V.set.bind(n):Xt,Ct=At({get:tt,set:bt});Object.defineProperty(o,k,{enumerable:!0,configurable:!0,get:()=>Ct.value,set:wt=>Ct.value=wt})}if(i)for(const k in i)os(i[k],o,n,k);if(c){const k=D(c)?c.call(n):c;Reflect.ownKeys(k).forEach(V=>{ql(V,k[V])})}function T(k,V){U(V)?V.forEach(tt=>k(tt.bind(n))):V&&k(V.bind(n))}if(f&&jo(f,t,"c"),T($l,p),T(kn,g),T(Ml,E),T(Qr,L),T(Fl,$),T(Ol,m),T(jl,J),T(Ul,B),T(Nl,K),T(Zr,C),T(An,N),T(Il,H),U(M))if(M.length){const k=t.exposed||(t.exposed={});M.forEach(V=>{Object.defineProperty(k,V,{get:()=>n[V],set:tt=>n[V]=tt})})}else t.exposed||(t.exposed={});q&&t.render===Xt&&(t.render=q),W!=null&&(t.inheritAttrs=W),z&&(t.components=z),nt&&(t.directives=nt)}function jo(t,e,n){Ft(U(t)?t.map(o=>o.bind(e.proxy)):t.bind(e.proxy),e,n)}function os(t,e,n,o){const r=o.includes(".")?Kr(n,o):()=>n[o];if(st(t)){const s=e[t];D(s)&&en(r,s)}else if(D(t))en(r,t.bind(n));else if(Q(t))if(U(t))t.forEach(s=>os(s,e,n,o));else{const s=D(t.handler)?t.handler.bind(n):e[t.handler];D(s)&&en(r,s,t)}}function mo(t){const e=t.type,{mixins:n,extends:o}=e,{mixins:r,optionsCache:s,config:{optionMergeStrategies:l}}=t.appContext,i=s.get(e);let c;return i?c=i:r.length||n||o?(c={},r.length&&r.forEach(a=>an(c,a,l,!0)),an(c,e,l)):c=e,Q(e)&&s.set(e,c),c}function an(t,e,n,o=!1){const{mixins:r,extends:s}=e;s&&an(t,s,n,!0),r&&r.forEach(l=>an(t,l,n,!0));for(const l in e)if(!(o&&l==="expose")){const i=Hl[l]||n&&n[l];t[l]=i?i(t[l],e[l]):e[l]}return t}const Hl={data:Vo,props:Bo,emits:Bo,methods:Ce,computed:Ce,beforeCreate:dt,created:dt,beforeMount:dt,mounted:dt,beforeUpdate:dt,updated:dt,beforeDestroy:dt,beforeUnmount:dt,destroyed:dt,unmounted:dt,activated:dt,deactivated:dt,errorCaptured:dt,serverPrefetch:dt,components:Ce,directives:Ce,watch:function(t,e){if(!t)return e;if(!e)return t;const n=et(Object.create(null),t);for(const o in e)n[o]=dt(t[o],e[o]);return n},provide:Vo,inject:function(t,e){return Ce(Gn(t),Gn(e))}};function Vo(t,e){return e?t?function(){return et(D(t)?t.call(this,this):t,D(e)?e.call(this,this):e)}:e:t}function Gn(t){if(U(t)){const e={};for(let n=0;n(s.has(c)||(c&&D(c.install)?(s.add(c),c.install(i,...a)):D(c)&&(s.add(c),c(i,...a))),i),mixin:c=>(r.mixins.includes(c)||r.mixins.push(c),i),component:(c,a)=>a?(r.components[c]=a,i):r.components[c],directive:(c,a)=>a?(r.directives[c]=a,i):r.directives[c],mount(c,a,f){if(!l){const p=ot(n,o);return p.appContext=r,a&&e?e(p,c):t(p,c,f),l=!0,i._container=c,c.__vue_app__=i,bo(p.component)||p.component.proxy}},unmount(){l&&(t(null,i._container),delete i._container.__vue_app__)},provide:(c,a)=>(r.provides[c]=a,i),runWithContext(c){un=i;try{return c()}finally{un=null}}};return i}}let un=null;function ql(t,e){if(it){let n=it.provides;const o=it.parent&&it.parent.provides;o===n&&(n=it.provides=Object.create(o)),n[t]=e}}function Te(t,e,n=!1){const o=it||ut;if(o||un){const r=o?o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:un._context.provides;if(r&&t in r)return r[t];if(arguments.length>1)return n&&D(e)?e.call(o&&o.proxy):e}}function Ho(t,e,n,o){const[r,s]=t.propsOptions;let l,i=!1;if(e)for(let c in e){if(Se(c))continue;const a=e[c];let f;r&&G(r,f=Mt(c))?s&&s.includes(f)?(l||(l={}))[f]=a:n[f]=a:ln(t.emitsOptions,c)||c in o&&a===o[c]||(o[c]=a,i=!0)}if(s){const c=X(n),a=l||Z;for(let f=0;f{c=!0;const[g,E]=ss(p,e,!0);et(l,g),E&&i.push(...E)};!n&&e.mixins.length&&e.mixins.forEach(f),t.extends&&f(t.extends),t.mixins&&t.mixins.forEach(f)}if(!s&&!c)return Q(t)&&o.set(t,ae),ae;if(U(s))for(let f=0;f-1,E[1]=$<0||L<$,(L>-1||G(E,"default"))&&i.push(p)}}}const a=[l,i];return Q(t)&&o.set(t,a),a}function Do(t){return t[0]!=="$"}function Wo(t){const e=t&&t.toString().match(/^\s*(function|class) (\w+)/);return e?e[2]:t===null?"null":""}function qo(t,e){return Wo(t)===Wo(e)}function zo(t,e){return U(e)?e.findIndex(n=>qo(n,t)):D(e)&&qo(e,t)?0:-1}const ls=t=>t[0]==="_"||t==="$stable",go=t=>U(t)?t.map(Tt):[Tt(t)],zl=(t,e,n)=>{if(e._n)return e;const o=xl((...r)=>go(e(...r)),n);return o._c=!1,o},Ko=(t,e,n)=>{const o=t._ctx;for(const r in t){if(ls(r))continue;const s=t[r];if(D(s))e[r]=zl(0,s,o);else if(s!=null){const l=go(s);e[r]=()=>l}}},Go=(t,e)=>{const n=go(e);t.slots.default=()=>n};function fn(t,e,n,o,r=!1){if(U(t))return void t.forEach((g,E)=>fn(g,e&&(U(e)?e[E]:e),n,o,r));if(pe(o)&&!r)return;const s=4&o.shapeFlag?bo(o.component)||o.component.proxy:o.el,l=r?null:s,{i,r:c}=t,a=e&&e.r,f=i.refs===Z?i.refs={}:i.refs,p=i.setupState;if(a!=null&&a!==c&&(st(a)?(f[a]=null,G(p,a)&&(p[a]=null)):at(a)&&(a.value=null)),D(c))Yt(c,i,12,[l,f]);else{const g=st(c),E=at(c);if(g||E){const L=()=>{if(t.f){const $=g?G(p,c)?p[c]:f[c]:c.value;r?U($)&&Zn($,s):U($)?$.includes(s)||$.push(s):g?(f[c]=[s],G(p,c)&&(p[c]=f[c])):(c.value=[s],t.k&&(f[t.k]=c.value))}else g?(f[c]=l,G(p,c)&&(p[c]=l)):E&&(c.value=l,t.k&&(f[t.k]=l))};l?(L.id=-1,mt(L,n)):L()}}}let Wt=!1;const Je=t=>/svg/.test(t.namespaceURI)&&t.tagName!=="foreignObject",Ye=t=>t.nodeType===8;function Kl(t){const{mt:e,p:n,o:{patchProp:o,createText:r,nextSibling:s,parentNode:l,remove:i,insert:c,createComment:a}}=t,f=(m,C,N,q,B,K=!1)=>{const J=Ye(m)&&m.data==="[",H=()=>L(m,C,N,q,B,J),{type:M,ref:W,shapeFlag:z,patchFlag:nt}=C;let T=m.nodeType;C.el=m,nt===-2&&(K=!1,C.dynamicChildren=null);let k=null;switch(M){case ve:T!==3?C.children===""?(c(C.el=r(""),l(m),m),k=m):k=H():(m.data!==C.children&&(Wt=!0,m.data=C.children),k=s(m));break;case _t:k=T!==8||J?H():s(m);break;case Re:if(J&&(T=(m=s(m)).nodeType),T===1||T===3){k=m;const V=!C.children.length;for(let tt=0;tt{K=K||!!C.dynamicChildren;const{type:J,props:H,patchFlag:M,shapeFlag:W,dirs:z}=C,nt=J==="input"&&z||J==="option";if(nt||M!==-1){if(z&&Pt(C,null,N,"created"),H)if(nt||!K||48&M)for(const k in H)(nt&&k.endsWith("value")||Ue(k)&&!Se(k))&&o(m,k,null,H[k],!1,void 0,N);else H.onClick&&o(m,"onClick",null,H.onClick,!1,void 0,N);let T;if((T=H&&H.onVnodeBeforeMount)&&Et(T,N,C),z&&Pt(C,null,N,"beforeMount"),((T=H&&H.onVnodeMounted)||z)&&zr(()=>{T&&Et(T,N,C),z&&Pt(C,null,N,"mounted")},q),16&W&&(!H||!H.innerHTML&&!H.textContent)){let k=g(m.firstChild,C,m,N,q,B,K);for(;k;){Wt=!0;const V=k;k=k.nextSibling,i(V)}}else 8&W&&m.textContent!==C.children&&(Wt=!0,m.textContent=C.children)}return m.nextSibling},g=(m,C,N,q,B,K,J)=>{J=J||!!C.dynamicChildren;const H=C.children,M=H.length;for(let W=0;W{const{slotScopeIds:J}=C;J&&(B=B?B.concat(J):J);const H=l(m),M=g(s(m),C,H,N,q,B,K);return M&&Ye(M)&&M.data==="]"?s(C.anchor=M):(Wt=!0,c(C.anchor=a("]"),H,M),M)},L=(m,C,N,q,B,K)=>{if(Wt=!0,C.el=null,K){const M=$(m);for(;;){const W=s(m);if(!W||W===M)break;i(W)}}const J=s(m),H=l(m);return i(m),n(null,C,H,J,N,q,Je(H),B),J},$=m=>{let C=0;for(;m;)if((m=s(m))&&Ye(m)&&(m.data==="["&&C++,m.data==="]")){if(C===0)return s(m);C--}return m};return[(m,C)=>{if(!C.hasChildNodes())return n(null,m,C),sn(),void(C._vnode=m);Wt=!1,f(C.firstChild,m,null,null,null),sn(),C._vnode=m,Wt&&console.error("Hydration completed but contains mismatches.")},f]}const mt=zr;function Gl(t){return Xl(t,Kl)}function Xl(t,e){(Eo||(Eo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{})).__VUE__=!0;const{insert:n,remove:o,patchProp:r,createElement:s,createText:l,createComment:i,setText:c,setElementText:a,parentNode:f,nextSibling:p,setScopeId:g=Xt,insertStaticContent:E}=t,L=(u,d,v,x=null,y=null,_=null,F=!1,w=null,b=!!d.dynamicChildren)=>{if(u===d)return;u&&!ne(u,d)&&(x=Be(u),Ot(u,y,_,!0),u=null),d.patchFlag===-2&&(b=!1,d.dynamicChildren=null);const{type:h,ref:R,shapeFlag:A}=d;switch(h){case ve:$(u,d,v,x);break;case _t:m(u,d,v,x);break;case Re:u==null&&C(d,v,x,F);break;case pt:W(u,d,v,x,y,_,F,w,b);break;default:1&A?N(u,d,v,x,y,_,F,w,b):6&A?z(u,d,v,x,y,_,F,w,b):(64&A||128&A)&&h.process(u,d,v,x,y,_,F,w,b,_e)}R!=null&&y&&fn(R,u&&u.ref,_,d||u,!d)},$=(u,d,v,x)=>{if(u==null)n(d.el=l(d.children),v,x);else{const y=d.el=u.el;d.children!==u.children&&c(y,d.children)}},m=(u,d,v,x)=>{u==null?n(d.el=i(d.children||""),v,x):d.el=u.el},C=(u,d,v,x)=>{[u.el,u.anchor]=E(u.children,d,v,x,u.el,u.anchor)},N=(u,d,v,x,y,_,F,w,b)=>{F=F||d.type==="svg",u==null?q(d,v,x,y,_,F,w,b):J(u,d,y,_,F,w,b)},q=(u,d,v,x,y,_,F,w)=>{let b,h;const{type:R,props:A,shapeFlag:O,transition:S,dirs:P}=u;if(b=u.el=s(u.type,_,A&&A.is,A),8&O?a(b,u.children):16&O&&K(u.children,b,null,x,y,_&&R!=="foreignObject",F,w),P&&Pt(u,null,x,"created"),B(b,u,u.scopeId,F,x),A){for(const I in A)I==="value"||Se(I)||r(b,I,null,A[I],_,u.children,x,y,It);"value"in A&&r(b,"value",null,A.value),(h=A.onVnodeBeforeMount)&&Et(h,x,u)}P&&Pt(u,null,x,"beforeMount");const j=(!y||y&&!y.pendingBranch)&&S&&!S.persisted;j&&S.beforeEnter(b),n(b,d,v),((h=A&&A.onVnodeMounted)||j||P)&&mt(()=>{h&&Et(h,x,u),j&&S.enter(b),P&&Pt(u,null,x,"mounted")},y)},B=(u,d,v,x,y)=>{if(v&&g(u,v),x)for(let _=0;_{for(let h=b;h{const w=d.el=u.el;let{patchFlag:b,dynamicChildren:h,dirs:R}=d;b|=16&u.patchFlag;const A=u.props||Z,O=d.props||Z;let S;v&&Zt(v,!1),(S=O.onVnodeBeforeUpdate)&&Et(S,v,d,u),R&&Pt(d,u,v,"beforeUpdate"),v&&Zt(v,!0);const P=y&&d.type!=="foreignObject";if(h?H(u.dynamicChildren,h,w,v,x,P,_):F||tt(u,d,w,null,v,x,P,_,!1),b>0){if(16&b)M(w,d,A,O,v,x,y);else if(2&b&&A.class!==O.class&&r(w,"class",null,O.class,y),4&b&&r(w,"style",A.style,O.style,y),8&b){const j=d.dynamicProps;for(let I=0;I{S&&Et(S,v,d,u),R&&Pt(d,u,v,"updated")},x)},H=(u,d,v,x,y,_,F)=>{for(let w=0;w{if(v!==x){if(v!==Z)for(const w in v)Se(w)||w in x||r(u,w,v[w],null,F,d.children,y,_,It);for(const w in x){if(Se(w))continue;const b=x[w],h=v[w];b!==h&&w!=="value"&&r(u,w,h,b,F,d.children,y,_,It)}"value"in x&&r(u,"value",v.value,x.value)}},W=(u,d,v,x,y,_,F,w,b)=>{const h=d.el=u?u.el:l(""),R=d.anchor=u?u.anchor:l("");let{patchFlag:A,dynamicChildren:O,slotScopeIds:S}=d;S&&(w=w?w.concat(S):S),u==null?(n(h,v,x),n(R,v,x),K(d.children,v,R,y,_,F,w,b)):A>0&&64&A&&O&&u.dynamicChildren?(H(u.dynamicChildren,O,v,y,_,F,w),(d.key!=null||y&&d===y.subTree)&&is(u,d,!0)):tt(u,d,v,R,y,_,F,w,b)},z=(u,d,v,x,y,_,F,w,b)=>{d.slotScopeIds=w,u==null?512&d.shapeFlag?y.ctx.activate(d,v,x,F,b):nt(d,v,x,y,_,F,b):T(u,d,b)},nt=(u,d,v,x,y,_,F)=>{const w=u.component=function(b,h,R){const A=b.type,O=(h?h.appContext:b.appContext)||Zl,S={uid:ti++,vnode:b,type:A,parent:h,appContext:O,root:null,next:null,subTree:null,effect:null,update:null,scope:new Ks(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:h?h.provides:Object.create(O.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:ss(A,O),emitsOptions:qr(A,O),emit:null,emitted:null,propsDefaults:Z,inheritAttrs:A.inheritAttrs,ctx:Z,data:Z,props:Z,attrs:Z,slots:Z,refs:Z,setupState:Z,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:R,suspenseId:R?R.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return S.ctx={_:S},S.root=h?h.root:S,S.emit=wl.bind(null,S),b.ce&&b.ce(S),S}(u,x,y);if(Ve(u)&&(w.ctx.renderer=_e),function(b,h=!1){hn=h;const{props:R,children:A}=b.vnode,O=hs(b);(function(S,P,j,I=!1){const Y={},rt={};tn(rt,pn,1),S.propsDefaults=Object.create(null),Ho(S,P,Y,rt);for(const vt in S.propsOptions[0])vt in Y||(Y[vt]=void 0);S.props=j?I?Y:hl(Y):S.type.props?Y:rt,S.attrs=rt})(b,R,O,h),((S,P)=>{if(32&S.vnode.shapeFlag){const j=P._;j?(S.slots=X(P),tn(P,"_",j)):Ko(P,S.slots={})}else S.slots={},P&&Go(S,P);tn(S.slots,pn,1)})(b,A),O&&function(S,P){const j=S.type;S.accessCache=Object.create(null),S.proxy=Ee(new Proxy(S.ctx,zn));const{setup:I}=j;if(I){const Y=S.setupContext=I.length>1?gs(S):null;ye(S),he();const rt=Yt(I,S,0,[S.props,Y]);if(me(),le(),br(rt)){if(rt.then(le,le),P)return rt.then(vt=>{Yo(S,vt,P)}).catch(vt=>{je(vt,S,0)});S.asyncDep=rt}else Yo(S,rt,P)}else ms(S,P)}(b,h),hn=!1}(w),w.asyncDep){if(y&&y.registerDep(w,k),!u.el){const b=w.subTree=ot(_t);m(null,b,d,v)}}else k(w,u,d,v,y,_,F)},T=(u,d,v)=>{const x=d.component=u.component;if(function(y,_,F){const{props:w,children:b,component:h}=y,{props:R,children:A,patchFlag:O}=_,S=h.emitsOptions;if(_.dirs||_.transition)return!0;if(!(F&&O>=0))return!(!b&&!A||A&&A.$stable)||w!==R&&(w?!R||Mo(w,R,S):!!R);if(1024&O)return!0;if(16&O)return w?Mo(w,R,S):!!R;if(8&O){const P=_.dynamicProps;for(let j=0;j$t&&ct.splice(_,1)}(x.update),x.update()}else d.el=u.el,x.vnode=d},k=(u,d,v,x,y,_,F)=>{const w=u.effect=new so(()=>{if(u.isMounted){let h,{next:R,bu:A,u:O,parent:S,vnode:P}=u,j=R;Zt(u,!1),R?(R.el=P.el,V(u,R,F)):R=P,A&&Fn(A),(h=R.props&&R.props.onVnodeBeforeUpdate)&&Et(h,S,R,P),Zt(u,!0);const I=On(u),Y=u.subTree;u.subTree=I,L(Y,I,f(Y.el),Be(Y),u,y,_),R.el=I.el,j===null&&kl(u,I.el),O&&mt(O,y),(h=R.props&&R.props.onVnodeUpdated)&&mt(()=>Et(h,S,R,P),y)}else{let h;const{el:R,props:A}=d,{bm:O,m:S,parent:P}=u,j=pe(d);if(Zt(u,!1),O&&Fn(O),!j&&(h=A&&A.onVnodeBeforeMount)&&Et(h,P,d),Zt(u,!0),R&&Rn){const I=()=>{u.subTree=On(u),Rn(R,u.subTree,u,y,null)};j?d.type.__asyncLoader().then(()=>!u.isUnmounted&&I()):I()}else{const I=u.subTree=On(u);L(null,I,v,x,u,y,_),d.el=I.el}if(S&&mt(S,y),!j&&(h=A&&A.onVnodeMounted)){const I=d;mt(()=>Et(h,P,I),y)}(256&d.shapeFlag||P&&pe(P.vnode)&&256&P.vnode.shapeFlag)&&u.a&&mt(u.a,y),u.isMounted=!0,d=v=x=null}},()=>wn(b),u.scope),b=u.update=()=>w.run();b.id=u.uid,Zt(u,!0),b()},V=(u,d,v)=>{d.component=u;const x=u.vnode.props;u.vnode=d,u.next=null,function(y,_,F,w){const{props:b,attrs:h,vnode:{patchFlag:R}}=y,A=X(b),[O]=y.propsOptions;let S=!1;if(!(w||R>0)||16&R){let P;Ho(y,_,b,h)&&(S=!0);for(const j in A)_&&(G(_,j)||(P=ie(j))!==j&&G(_,P))||(O?!F||F[j]===void 0&&F[P]===void 0||(b[j]=Xn(O,A,j,void 0,y,!0)):delete b[j]);if(h!==A)for(const j in h)_&&G(_,j)||(delete h[j],S=!0)}else if(8&R){const P=y.vnode.dynamicProps;for(let j=0;j{const{vnode:w,slots:b}=y;let h=!0,R=Z;if(32&w.shapeFlag){const A=_._;A?F&&A===1?h=!1:(et(b,_),F||A!==1||delete b._):(h=!_.$stable,Ko(_,b)),R=_}else _&&(Go(y,_),R={default:1});if(h)for(const A in b)ls(A)||A in R||delete b[A]})(u,d.children,v),he(),$o(),me()},tt=(u,d,v,x,y,_,F,w,b=!1)=>{const h=u&&u.children,R=u?u.shapeFlag:0,A=d.children,{patchFlag:O,shapeFlag:S}=d;if(O>0){if(128&O)return void Ct(h,A,v,x,y,_,F,w,b);if(256&O)return void bt(h,A,v,x,y,_,F,w,b)}8&S?(16&R&&It(h,y,_),A!==h&&a(v,A)):16&R?16&S?Ct(h,A,v,x,y,_,F,w,b):It(h,y,_,!0):(8&R&&a(v,""),16&S&&K(A,v,x,y,_,F,w,b))},bt=(u,d,v,x,y,_,F,w,b)=>{const h=(u=u||ae).length,R=(d=d||ae).length,A=Math.min(h,R);let O;for(O=0;OR?It(u,y,_,!0,!1,A):K(d,v,x,y,_,F,w,b,A)},Ct=(u,d,v,x,y,_,F,w,b)=>{let h=0;const R=d.length;let A=u.length-1,O=R-1;for(;h<=A&&h<=O;){const S=u[h],P=d[h]=b?Kt(d[h]):Tt(d[h]);if(!ne(S,P))break;L(S,P,v,null,y,_,F,w,b),h++}for(;h<=A&&h<=O;){const S=u[A],P=d[O]=b?Kt(d[O]):Tt(d[O]);if(!ne(S,P))break;L(S,P,v,null,y,_,F,w,b),A--,O--}if(h>A){if(h<=O){const S=O+1,P=SO)for(;h<=A;)Ot(u[h],y,_,!0),h++;else{const S=h,P=h,j=new Map;for(h=P;h<=O;h++){const lt=d[h]=b?Kt(d[h]):Tt(d[h]);lt.key!=null&&j.set(lt.key,h)}let I,Y=0;const rt=O-P+1;let vt=!1,xo=0;const be=new Array(rt);for(h=0;h=rt){Ot(lt,y,_,!0);continue}let ht;if(lt.key!=null)ht=j.get(lt.key);else for(I=P;I<=O;I++)if(be[I-P]===0&&ne(lt,d[I])){ht=I;break}ht===void 0?Ot(lt,y,_,!0):(be[ht-P]=h+1,ht>=xo?xo=ht:vt=!0,L(lt,d[ht],v,null,y,_,F,w,b),Y++)}const So=vt?function(lt){const ht=lt.slice(),ft=[0];let Bt,Ln,xt,Ht,He;const Ps=lt.length;for(Bt=0;Bt>1,lt[ft[He]]0&&(ht[Bt]=ft[xt-1]),ft[xt]=Bt)}}for(xt=ft.length,Ht=ft[xt-1];xt-- >0;)ft[xt]=Ht,Ht=ht[Ht];return ft}(be):ae;for(I=So.length-1,h=rt-1;h>=0;h--){const lt=P+h,ht=d[lt],ft=lt+1{const{el:_,type:F,transition:w,children:b,shapeFlag:h}=u;if(6&h)return void wt(u.component.subTree,d,v,x);if(128&h)return void u.suspense.move(d,v,x);if(64&h)return void F.move(u,d,v,_e);if(F===pt){n(_,d,v);for(let R=0;R{let P;for(;R&&R!==A;)P=p(R),n(R,O,S),R=P;n(A,O,S)})(u,d,v);if(x!==2&&1&h&&w)if(x===0)w.beforeEnter(_),n(_,d,v),mt(()=>w.enter(_),y);else{const{leave:R,delayLeave:A,afterLeave:O}=w,S=()=>n(_,d,v),P=()=>{R(_,()=>{S(),O&&O()})};A?A(_,S,P):P()}else n(_,d,v)},Ot=(u,d,v,x=!1,y=!1)=>{const{type:_,props:F,ref:w,children:b,dynamicChildren:h,shapeFlag:R,patchFlag:A,dirs:O}=u;if(w!=null&&fn(w,null,v,u,!0),256&R)return void d.ctx.deactivate(u);const S=1&R&&O,P=!pe(u);let j;if(P&&(j=F&&F.onVnodeBeforeUnmount)&&Et(j,d,u),6&R)Os(u.component,v,x);else{if(128&R)return void u.suspense.unmount(v,x);S&&Pt(u,null,d,"beforeUnmount"),64&R?u.type.remove(u,d,v,y,_e,x):h&&(_!==pt||A>0&&64&A)?It(h,d,v,!1,!0):(_===pt&&384&A||!y&&16&R)&&It(b,d,v),x&&Co(u)}(P&&(j=F&&F.onVnodeUnmounted)||S)&&mt(()=>{j&&Et(j,d,u),S&&Pt(u,null,d,"unmounted")},v)},Co=u=>{const{type:d,el:v,anchor:x,transition:y}=u;if(d===pt)return void Fs(v,x);if(d===Re)return void(({el:F,anchor:w})=>{let b;for(;F&&F!==w;)b=p(F),o(F),F=b;o(w)})(u);const _=()=>{o(v),y&&!y.persisted&&y.afterLeave&&y.afterLeave()};if(1&u.shapeFlag&&y&&!y.persisted){const{leave:F,delayLeave:w}=y,b=()=>F(v,_);w?w(u.el,_,b):b()}else _()},Fs=(u,d)=>{let v;for(;u!==d;)v=p(u),o(u),u=v;o(d)},Os=(u,d,v)=>{const{bum:x,scope:y,update:_,subTree:F,um:w}=u;x&&Fn(x),y.stop(),_&&(_.active=!1,Ot(F,u,d,v)),w&&mt(w,d),mt(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},It=(u,d,v,x=!1,y=!1,_=0)=>{for(let F=_;F6&u.shapeFlag?Be(u.component.subTree):128&u.shapeFlag?u.suspense.next():p(u.anchor||u.el),wo=(u,d,v)=>{u==null?d._vnode&&Ot(d._vnode,null,null,!0):L(d._vnode||null,u,d,null,null,null,v),$o(),sn(),d._vnode=u},_e={p:L,um:Ot,m:wt,r:Co,mt:nt,mc:K,pc:tt,pbc:H,n:Be,o:t};let Tn,Rn;return e&&([Tn,Rn]=e(_e)),{render:wo,hydrate:Tn,createApp:Wl(wo,Tn)}}function Zt({effect:t,update:e},n){t.allowRecurse=e.allowRecurse=n}function is(t,e,n=!1){const o=t.children,r=e.children;if(U(o)&&U(r))for(let s=0;s0?Lt||ae:null,Jl(),Ne>0&&Lt&&Lt.push(t),t}function Zi(t,e,n,o,r,s){return as(ds(t,e,n,o,r,s,!0))}function us(t,e,n,o,r){return as(ot(t,e,n,o,r,!0))}function dn(t){return!!t&&t.__v_isVNode===!0}function ne(t,e){return t.type===e.type&&t.key===e.key}const pn="__vInternal",fs=({key:t})=>t??null,nn=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?st(t)||at(t)||D(t)?{i:ut,r:t,k:e,f:!!n}:t:null);function ds(t,e=null,n=null,o=0,r=null,s=t===pt?0:1,l=!1,i=!1){const c={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&fs(e),ref:e&&nn(e),scopeId:xn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ut};return i?(vo(c,n),128&s&&t.normalize(c)):n&&(c.shapeFlag|=st(n)?8:16),Ne>0&&!l&&Lt&&(c.patchFlag>0||6&s)&&c.patchFlag!==32&&Lt.push(c),c}const ot=function(t,e=null,n=null,o=0,r=null,s=!1){if(t&&t!==ts||(t=_t),dn(t)){const c=Qt(t,e,!0);return n&&vo(c,n),Ne>0&&!s&&Lt&&(6&c.shapeFlag?Lt[Lt.indexOf(t)]=c:Lt.push(c)),c.patchFlag|=-2,c}l=t,D(l)&&"__vccOpts"in l&&(t=t.__vccOpts);var l;if(e){e=Yl(e);let{class:c,style:a}=e;c&&!st(c)&&(e.class=oo(c)),Q(a)&&(Ir(a)&&!U(a)&&(a=et({},a)),e.style=no(a))}const i=st(t)?1:Al(t)?128:(c=>c.__isTeleport)(t)?64:Q(t)?4:D(t)?2:0;return ds(t,e,n,o,r,i,s,!0)};function Yl(t){return t?Ir(t)||pn in t?et({},t):t:null}function Qt(t,e,n=!1){const{props:o,ref:r,patchFlag:s,children:l}=t,i=e?Ql(o||{},e):o;return{__v_isVNode:!0,__v_skip:!0,type:t.type,props:i,key:i&&fs(i),ref:e&&e.ref?n&&r?U(r)?r.concat(nn(e)):[r,nn(e)]:nn(e):r,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:l,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==pt?s===-1?16:16|s:s,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:t.transition,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Qt(t.ssContent),ssFallback:t.ssFallback&&Qt(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce}}function ps(t=" ",e=0){return ot(ve,null,t,e)}function tc(t,e){const n=ot(Re,null,t);return n.staticCount=e,n}function ec(t="",e=!1){return e?(cs(),us(_t,null,t)):ot(_t,null,t)}function Tt(t){return t==null||typeof t=="boolean"?ot(_t):U(t)?ot(pt,null,t.slice()):typeof t=="object"?Kt(t):ot(ve,null,String(t))}function Kt(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Qt(t)}function vo(t,e){let n=0;const{shapeFlag:o}=t;if(e==null)e=null;else if(U(e))n=16;else if(typeof e=="object"){if(65&o){const r=e.default;return void(r&&(r._c&&(r._d=!1),vo(t,r()),r._c&&(r._d=!0)))}{n=32;const r=e._;r||pn in e?r===3&&ut&&(ut.slots._===1?e._=1:(e._=2,t.patchFlag|=1024)):e._ctx=ut}}else D(e)?(e={default:e,_ctx:ut},n=32):(e=String(e),64&o?(n=16,e=[ps(e)]):n=8);t.children=e,t.shapeFlag|=n}function Ql(...t){const e={};for(let n=0;nit||ut;let _o;_o=t=>{it=t};const ye=t=>{_o(t),t.scope.on()},le=()=>{it&&it.scope.off(),_o(null)};function hs(t){return 4&t.vnode.shapeFlag}let Jo,hn=!1;function Yo(t,e,n){D(e)?t.render=e:Q(e)&&(t.setupState=Vr(e)),ms(t,n)}function ms(t,e,n){const o=t.type;if(!t.render){if(!e&&Jo&&!o.render){const r=o.template||mo(t).template;if(r){const{isCustomElement:s,compilerOptions:l}=t.appContext.config,{delimiters:i,compilerOptions:c}=o,a=et(et({isCustomElement:s,delimiters:i},l),c);o.render=Jo(r,a)}}t.render=o.render||Xt}ye(t),he(),Bl(t),me(),le()}function gs(t){const e=n=>{t.exposed=n||{}};return{get attrs(){return function(n){return n.attrsProxy||(n.attrsProxy=new Proxy(n.attrs,{get:(o,r)=>(gt(n,0,"$attrs"),o[r])}))}(t)},slots:t.slots,emit:t.emit,expose:e}}function bo(t){if(t.exposed)return t.exposeProxy||(t.exposeProxy=new Proxy(Vr(Ee(t.exposed)),{get:(e,n)=>n in e?e[n]:n in Ae?Ae[n](t):void 0,has:(e,n)=>n in e||n in Ae}))}function ei(t,e=!0){return D(t)?t.displayName||t.name:t.name||e&&t.__name}const At=(t,e)=>function(n,o,r=!1){let s,l;const i=D(n);return i?(s=n,l=Xt):(s=n.get,l=n.set),new _l(s,l,i||!l,r)}(t,0,hn);function Jn(t,e,n){const o=arguments.length;return o===2?Q(e)&&!U(e)?dn(e)?ot(t,null,[e]):ot(t,e):ot(t,null,e):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&dn(n)&&(n=[n]),ot(t,e,n))}const ni="3.3.4",oe=typeof document<"u"?document:null,Qo=oe&&oe.createElement("template"),oi={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,o)=>{const r=e?oe.createElementNS("http://www.w3.org/2000/svg",t):oe.createElement(t,n?{is:n}:void 0);return t==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:t=>oe.createTextNode(t),createComment:t=>oe.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>oe.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,o,r,s){const l=n?n.previousSibling:e.lastChild;if(r&&(r===s||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),n),r!==s&&(r=r.nextSibling););else{Qo.innerHTML=o?`${t}`:t;const i=Qo.content;if(o){const c=i.firstChild;for(;c.firstChild;)i.appendChild(c.firstChild);i.removeChild(c)}e.insertBefore(i,n)}return[l?l.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},Zo=/\s*!important$/;function Yn(t,e,n){if(U(n))n.forEach(o=>Yn(t,e,o));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const o=function(r,s){const l=In[s];if(l)return l;let i=Mt(s);if(i!=="filter"&&i in r)return In[s]=i;i=yn(i);for(let c=0;c{if(E._vts){if(E._vts<=g.attached)return}else E._vts=Date.now();Ft(function(L,$){if(U($)){const m=L.stopImmediatePropagation;return L.stopImmediatePropagation=()=>{m.call(L),L._stopped=!0},$.map(C=>N=>!N._stopped&&C&&C(N))}return $}(E,g.value),p,5,[E])};return g.value=f,g.attached=(()=>Nn||(li.then(()=>Nn=0),Nn=Date.now()))(),g}(o,r);ri(t,i,a,c)}else l&&(function(a,f,p,g){a.removeEventListener(f,p,g)}(t,i,l,c),s[e]=void 0)}}const nr=/(?:Once|Passive|Capture)$/;let Nn=0;const li=Promise.resolve(),or=/^on[a-z]/,qt="transition",we="animation",vs=(t,{slots:e})=>Jn(Ll,_s(t),e);vs.displayName="Transition";const ys={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ii=vs.props=et({},Xr,ys),te=(t,e=[])=>{U(t)?t.forEach(n=>n(...e)):t&&t(...e)},rr=t=>!!t&&(U(t)?t.some(e=>e.length>1):t.length>1);function _s(t){const e={};for(const T in t)T in ys||(e[T]=t[T]);if(t.css===!1)return e;const{name:n="v",type:o,duration:r,enterFromClass:s=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:c=s,appearActiveClass:a=l,appearToClass:f=i,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:E=`${n}-leave-to`}=t,L=function(T){if(T==null)return null;if(Q(T))return[Un(T.enter),Un(T.leave)];{const k=Un(T);return[k,k]}}(r),$=L&&L[0],m=L&&L[1],{onBeforeEnter:C,onEnter:N,onEnterCancelled:q,onLeave:B,onLeaveCancelled:K,onBeforeAppear:J=C,onAppear:H=N,onAppearCancelled:M=q}=e,W=(T,k,V)=>{zt(T,k?f:i),zt(T,k?a:l),V&&V()},z=(T,k)=>{T._isLeaving=!1,zt(T,p),zt(T,E),zt(T,g),k&&k()},nt=T=>(k,V)=>{const tt=T?H:N,bt=()=>W(k,T,V);te(tt,[k,bt]),sr(()=>{zt(k,T?c:s),Nt(k,T?f:i),rr(tt)||lr(k,o,$,bt)})};return et(e,{onBeforeEnter(T){te(C,[T]),Nt(T,s),Nt(T,l)},onBeforeAppear(T){te(J,[T]),Nt(T,c),Nt(T,a)},onEnter:nt(!1),onAppear:nt(!0),onLeave(T,k){T._isLeaving=!0;const V=()=>z(T,k);Nt(T,p),Cs(),Nt(T,g),sr(()=>{T._isLeaving&&(zt(T,p),Nt(T,E),rr(B)||lr(T,o,m,V))}),te(B,[T,V])},onEnterCancelled(T){W(T,!1),te(q,[T])},onAppearCancelled(T){W(T,!0),te(M,[T])},onLeaveCancelled(T){z(T),te(K,[T])}})}function Un(t){return Vs(t)}function Nt(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t._vtc||(t._vtc=new Set)).add(e)}function zt(t,e){e.split(/\s+/).forEach(o=>o&&t.classList.remove(o));const{_vtc:n}=t;n&&(n.delete(e),n.size||(t._vtc=void 0))}function sr(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let ci=0;function lr(t,e,n,o){const r=t._endId=++ci,s=()=>{r===t._endId&&o()};if(n)return setTimeout(s,n);const{type:l,timeout:i,propCount:c}=bs(t,e);if(!l)return o();const a=l+"end";let f=0;const p=()=>{t.removeEventListener(a,g),s()},g=E=>{E.target===t&&++f>=c&&p()};setTimeout(()=>{f(n[E]||"").split(", "),r=o(`${qt}Delay`),s=o(`${qt}Duration`),l=ir(r,s),i=o(`${we}Delay`),c=o(`${we}Duration`),a=ir(i,c);let f=null,p=0,g=0;return e===qt?l>0&&(f=qt,p=l,g=s.length):e===we?a>0&&(f=we,p=a,g=c.length):(p=Math.max(l,a),f=p>0?l>a?qt:we:null,g=f?f===qt?s.length:c.length:0),{type:f,timeout:p,propCount:g,hasTransform:f===qt&&/\b(transform|all)(,|$)/.test(o(`${qt}Property`).toString())}}function ir(t,e){for(;t.lengthcr(n)+cr(t[o])))}function cr(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function Cs(){return document.body.offsetHeight}const ws=new WeakMap,xs=new WeakMap;et({},ii,{tag:String,moveClass:String});function ai(t){const e=t.el;e._moveCb&&e._moveCb(),e._enterCb&&e._enterCb()}function ui(t){xs.set(t,t.el.getBoundingClientRect())}function fi(t){const e=ws.get(t),n=xs.get(t),o=e.left-n.left,r=e.top-n.top;if(o||r){const s=t.el.style;return s.transform=s.webkitTransform=`translate(${o}px,${r}px)`,s.transitionDuration="0s",t}}const di=["ctrl","shift","alt","meta"],pi={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>di.some(n=>t[`${n}Key`]&&!e.includes(n))},nc=(t,e)=>(n,...o)=>{for(let r=0;rn=>{if(!("key"in n))return;const o=ie(n.key);return e.some(r=>r===o||hi[r]===o)?t(n):void 0},mi=et({patchProp:(t,e,n,o,r=!1,s,l,i,c)=>{e==="class"?function(a,f,p){const g=a._vtc;g&&(f=(f?[f,...g]:[...g]).join(" ")),f==null?a.removeAttribute("class"):p?a.setAttribute("class",f):a.className=f}(t,o,r):e==="style"?function(a,f,p){const g=a.style,E=st(p);if(p&&!E){if(f&&!st(f))for(const L in f)p[L]==null&&Yn(g,L,"");for(const L in p)Yn(g,L,p[L])}else{const L=g.display;E?f!==p&&(g.cssText=p):f&&a.removeAttribute("style"),"_vod"in a&&(g.display=L)}}(t,n,o):Ue(e)?Qn(e)||si(t,e,0,o,l):(e[0]==="."?(e=e.slice(1),1):e[0]==="^"?(e=e.slice(1),0):function(a,f,p,g){return g?f==="innerHTML"||f==="textContent"||!!(f in a&&or.test(f)&&D(p)):f==="spellcheck"||f==="draggable"||f==="translate"||f==="form"||f==="list"&&a.tagName==="INPUT"||f==="type"&&a.tagName==="TEXTAREA"||or.test(f)&&st(p)?!1:f in a}(t,e,o,r))?function(a,f,p,g,E,L,$){if(f==="innerHTML"||f==="textContent")return g&&$(g,E,L),void(a[f]=p??"");const m=a.tagName;if(f==="value"&&m!=="PROGRESS"&&!m.includes("-")){a._value=p;const N=p??"";return(m==="OPTION"?a.getAttribute("value"):a.value)!==N&&(a.value=N),void(p==null&&a.removeAttribute(f))}let C=!1;if(p===""||p==null){const N=typeof a[f];N==="boolean"?p=ko(p):p==null&&N==="string"?(p="",C=!0):N==="number"&&(p=0,C=!0)}try{a[f]=p}catch{}C&&a.removeAttribute(f)}(t,e,o,s,l,i,c):(e==="true-value"?t._trueValue=o:e==="false-value"&&(t._falseValue=o),function(a,f,p,g,E){if(g&&f.startsWith("xlink:"))p==null?a.removeAttributeNS(er,f.slice(6,f.length)):a.setAttributeNS(er,f,p);else{const L=zs(f);p==null||L&&!ko(p)?a.removeAttribute(f):a.setAttribute(f,L?"":p)}}(t,e,o,r))}},oi);let jn,ar=!1;function gi(){return jn=ar?jn:Gl(mi),ar=!0,jn}const rc=(...t)=>{const e=gi().createApp(...t),{mount:n}=e;return e.mount=o=>{const r=vi(o);if(r)return n(r,!0,r instanceof SVGElement)},e};function vi(t){return st(t)?document.querySelector(t):t}const sc=(t,e)=>{const n=t.__vccOpts||t;for(const[o,r]of e)n[o]=r;return n},yi="modulepreload",_i=function(t){return"/"+t},ur={},lc=function(e,n,o){if(!n||n.length===0)return e();const r=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=_i(s),s in ur)return;ur[s]=!0;const l=s.endsWith(".css"),i=l?'[rel="stylesheet"]':"";if(!!o)for(let f=r.length-1;f>=0;f--){const p=r[f];if(p.href===s&&(!l||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${i}`))return;const a=document.createElement("link");if(a.rel=l?"stylesheet":yi,l||(a.as="script",a.crossOrigin=""),a.href=s,document.head.appendChild(a),l)return new Promise((f,p)=>{a.addEventListener("load",f),a.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>e()).catch(s=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=s,window.dispatchEvent(l),!l.defaultPrevented)throw s})},bi=window.__VP_SITE_DATA__,Ss=/^[a-z]+:/i,ic=/^pathname:\/\//,cc="vitepress-theme-appearance",Es=/#.*$/,Ci=/(index)?\.(md|html)$/,kt=typeof document<"u",ks={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function wi(t,e,n=!1){if(e===void 0)return!1;if(t=fr(`/${t}`),n)return new RegExp(e).test(t);if(fr(e)!==t)return!1;const o=e.match(Es);return o?(kt?location.hash:"")===o[0]:!0}function fr(t){return decodeURI(t).replace(Es,"").replace(Ci,"")}function xi(t){return Ss.test(t)}function Si(t,e){var o,r,s,l,i,c,a;const n=Object.keys(t.locales).find(f=>f!=="root"&&!xi(f)&&wi(e,`/${f}/`,!0))||"root";return Object.assign({},t,{localeIndex:n,lang:((o=t.locales[n])==null?void 0:o.lang)??t.lang,dir:((r=t.locales[n])==null?void 0:r.dir)??t.dir,title:((s=t.locales[n])==null?void 0:s.title)??t.title,titleTemplate:((l=t.locales[n])==null?void 0:l.titleTemplate)??t.titleTemplate,description:((i=t.locales[n])==null?void 0:i.description)??t.description,head:Ts(t.head,((c=t.locales[n])==null?void 0:c.head)??[]),themeConfig:{...t.themeConfig,...(a=t.locales[n])==null?void 0:a.themeConfig}})}function As(t,e){const n=e.title||t.title,o=e.titleTemplate??t.titleTemplate;if(typeof o=="string"&&o.includes(":title"))return o.replace(/:title/g,n);const r=Ei(t.title,o);return`${n}${r}`}function Ei(t,e){return e===!1?"":e===!0||e===void 0?` | ${t}`:t===e?"":` | ${e}`}function ki(t,e){const[n,o]=e;if(n!=="meta")return!1;const r=Object.entries(o)[0];return r==null?!1:t.some(([s,l])=>s===n&&l[r[0]]===r[1])}function Ts(t,e){return[...t.filter(n=>!ki(e,n)),...e]}const Ai=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ti=/^[a-z]:/i;function dr(t){const e=Ti.exec(t),n=e?e[0]:"";return n+t.slice(n.length).replace(Ai,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Ri=Symbol(),re=ml(bi);function ac(t){const e=At(()=>Si(re.value,t.data.relativePath));return{site:e,theme:At(()=>e.value.themeConfig),page:At(()=>t.data),frontmatter:At(()=>t.data.frontmatter),params:At(()=>t.data.params),lang:At(()=>e.value.lang),dir:At(()=>e.value.dir),localeIndex:At(()=>e.value.localeIndex||"root"),title:At(()=>As(e.value,t.data)),description:At(()=>t.data.description||e.value.description),isDark:ke(!1)}}function uc(){const t=Te(Ri);if(!t)throw new Error("vitepress data not properly injected in app");return t}function Li(t,e){return`${t}${e}`.replace(/\/+/g,"/")}function pr(t){return Ss.test(t)||t.startsWith(".")?t:Li(re.value.base,t)}function Fi(t){let e=t.replace(/\.html$/,"");if(e=decodeURIComponent(e),e=e.replace(/\/$/,"/index"),kt){const n="/";e=dr(e.slice(n.length).replace(/\//g,"_")||"index")+".md";let o=__VP_HASH_MAP__[e.toLowerCase()];if(o||(e=e.endsWith("_index.md")?e.slice(0,-9)+".md":e.slice(0,-3)+"_index.md",o=__VP_HASH_MAP__[e.toLowerCase()]),!o)return null;e=`${n}assets/${e}.${o}.js`}else e=`./${dr(e.slice(1).replace(/\//g,"_"))}.md.js`;return e}let on=[];function fc(t){on.push(t),An(()=>{on=on.filter(e=>e!==t)})}const Oi=Symbol(),hr="http://a.com",Pi=()=>({path:"/",component:null,data:ks});function dc(t,e){const n=Cn(Pi()),o={route:n,go:r};async function r(i=kt?location.href:"/"){var a,f;if(await((a=o.onBeforeRouteChange)==null?void 0:a.call(o,i))===!1)return;const c=new URL(i,hr);re.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",i=c.pathname+c.search+c.hash),kt&&i!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",i)),await l(i),await((f=o.onAfterRouteChanged)==null?void 0:f.call(o,i))}let s=null;async function l(i,c=0,a=!1){var g;if(await((g=o.onBeforePageLoad)==null?void 0:g.call(o,i))===!1)return;const f=new URL(i,hr),p=s=f.pathname;try{let E=await t(p);if(!E)throw new Error(`Page not found: ${p}`);if(s===p){s=null;const{default:L,__pageData:$}=E;if(!L)throw new Error(`Invalid route component: ${L}`);n.path=kt?p:pr(p),n.component=Ee(L),n.data=Ee($),kt&&Hr(()=>{let m=re.value.base+$.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!re.value.cleanUrls&&!m.endsWith("/")&&(m+=".html"),m!==f.pathname&&(f.pathname=m,i=m+f.search+f.hash,history.replaceState(null,"",i)),f.hash&&!c){let C=null;try{C=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(N){console.warn(N)}if(C){mr(C,f.hash);return}}window.scrollTo(0,c)})}}catch(E){if(!/fetch|Page not found/.test(E.message)&&!/^\/404(\.html|\/)?$/.test(i)&&console.error(E),!a)try{const L=await fetch(re.value.base+"hashmap.json");window.__VP_HASH_MAP__=await L.json(),await l(i,c,!0);return}catch{}s===p&&(s=null,n.path=kt?p:pr(p),n.component=e?Ee(e):null,n.data=ks)}}return kt&&(window.addEventListener("click",i=>{if(i.target.closest("button"))return;const a=i.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:f}=a,{href:p,origin:g,pathname:E,hash:L,search:$}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),m=window.location,C=E.match(/\.\w+$/);!i.ctrlKey&&!i.shiftKey&&!i.altKey&&!i.metaKey&&!f&&g===m.origin&&!(C&&C[0]!==".html")&&(i.preventDefault(),E===m.pathname&&$===m.search?L&&(L!==m.hash&&(history.pushState(null,"",L),window.dispatchEvent(new Event("hashchange"))),mr(a,L,a.classList.contains("header-anchor"))):r(p))}},{capture:!0}),window.addEventListener("popstate",i=>{l(location.href,i.state&&i.state.scrollPosition||0)}),window.addEventListener("hashchange",i=>{i.preventDefault()})),o}function $i(){const t=Te(Oi);if(!t)throw new Error("useRouter() is called without provider.");return t}function Rs(){return $i().route}function mr(t,e,n=!1){let o=null;try{o=t.classList.contains("header-anchor")?t:document.getElementById(decodeURIComponent(e).slice(1))}catch(r){console.warn(r)}if(o){let c=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const r=re.value.scrollOffset;let s=0;if(typeof r=="number")s=r;else if(typeof r=="string")s=gr(r);else if(Array.isArray(r))for(const a of r){const f=gr(a);if(f){s=f;break}}const l=parseInt(window.getComputedStyle(o).paddingTop,10),i=window.scrollY+o.getBoundingClientRect().top-s+l;requestAnimationFrame(c)}}function gr(t){const e=document.querySelector(t);if(!e)return 0;const n=e.getBoundingClientRect().bottom;return n<0?0:n+24}const vr=()=>on.forEach(t=>t()),pc=po({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(t){const e=Rs();return()=>Jn(t.as,{style:{position:"relative"}},[e.component?Jn(e.component,{onVnodeMounted:vr,onVnodeUpdated:vr}):"404 Page Not Found"])}}),hc=po({setup(t,{slots:e}){const n=ke(!1);return kn(()=>{n.value=!0}),()=>n.value&&e.default?e.default():null}});function mc(){kt&&window.addEventListener("click",t=>{var n,o;const e=t.target;if(e.matches(".vp-code-group input")){const r=(n=e.parentElement)==null?void 0:n.parentElement,s=Array.from((r==null?void 0:r.querySelectorAll("input"))||[]).indexOf(e),l=r==null?void 0:r.querySelector('div[class*="language-"].active'),i=(o=r==null?void 0:r.querySelectorAll('div[class*="language-"]:not(.language-id)'))==null?void 0:o[s];l&&i&&l!==i&&(l.classList.remove("active"),i.classList.add("active"))}})}function gc(){if(kt){const t=new WeakMap;window.addEventListener("click",e=>{var o;const n=e.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,s=(o=n.nextElementSibling)==null?void 0:o.nextElementSibling;if(!r||!s)return;const l=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className);let i="";s.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>i+=(c.textContent||"")+` +`),i=i.slice(0,-1),l&&(i=i.replace(/^ *(\$|>) /gm,"").trim()),Mi(i).then(()=>{n.classList.add("copied"),clearTimeout(t.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),t.delete(n)},2e3);t.set(n,c)})}})}}async function Mi(t){try{return navigator.clipboard.writeText(t)}catch{const e=document.createElement("textarea"),n=document.activeElement;e.value=t,e.setAttribute("readonly",""),e.style.contain="strict",e.style.position="absolute",e.style.left="-9999px",e.style.fontSize="12pt";const o=document.getSelection(),r=o?o.rangeCount>0&&o.getRangeAt(0):null;document.body.appendChild(e),e.select(),e.selectionStart=0,e.selectionEnd=t.length,document.execCommand("copy"),document.body.removeChild(e),r&&(o.removeAllRanges(),o.addRange(r)),n&&n.focus()}}function vc(t,e){let n=[],o=!0;const r=s=>{if(o){o=!1;return}n.forEach(l=>document.head.removeChild(l)),n=[],s.forEach(l=>{const i=yr(l);document.head.appendChild(i),n.push(i)})};Tl(()=>{const s=t.data,l=e.value,i=s&&s.description,c=s&&s.frontmatter.head||[];document.title=As(l,s);const a=i||l.description;let f=document.querySelector("meta[name=description]");f?f.setAttribute("content",a):yr(["meta",{name:"description",content:a}]),r(Ts(l.head,Ni(c)))})}function yr([t,e,n]){const o=document.createElement(t);for(const r in e)o.setAttribute(r,e[r]);return n&&(o.innerHTML=n),o}function Ii(t){return t[0]==="meta"&&t[1]&&t[1].name==="description"}function Ni(t){return t.filter(e=>!Ii(e))}const Vn=new Set,Ls=()=>document.createElement("link"),Ui=t=>{const e=Ls();e.rel="prefetch",e.href=t,document.head.appendChild(e)},ji=t=>{const e=new XMLHttpRequest;e.open("GET",t,e.withCredentials=!0),e.send()};let Qe;const Vi=kt&&(Qe=Ls())&&Qe.relList&&Qe.relList.supports&&Qe.relList.supports("prefetch")?Ui:ji;function yc(){if(!kt||!window.IntersectionObserver)return;let t;if((t=navigator.connection)&&(t.saveData||/2g/.test(t.effectiveType)))return;const e=window.requestIdleCallback||setTimeout;let n=null;const o=()=>{n&&n.disconnect(),n=new IntersectionObserver(s=>{s.forEach(l=>{if(l.isIntersecting){const i=l.target;n.unobserve(i);const{pathname:c}=i;if(!Vn.has(c)){Vn.add(c);const a=Fi(c);a&&Vi(a)}}})}),e(()=>{document.querySelectorAll("#app a").forEach(s=>{const{hostname:l,pathname:i}=new URL(s.href instanceof SVGAnimatedString?s.href.animVal:s.href,s.baseURI),c=i.match(/\.\w+$/);c&&c[0]!==".html"||s.target!=="_blank"&&l===location.hostname&&(i!==location.pathname?n.observe(s):Vn.add(i))})})};kn(o);const r=Rs();en(()=>r.path,o),An(()=>{n&&n.disconnect()})}export{vs as $,kn as A,ec as B,us as C,no as D,Ss as E,ds as F,Hr as G,Tl as H,kt as I,cc as J,Mr as K,ps as L,Ki as M,vl as N,xl as O,ic as P,zi as Q,tc as R,lc as S,Qr as T,ql as U,Ql as V,Yi as W,Bi as X,oc as Y,qi as Z,sc as _,oo as a,nc as a0,Qi as a1,vc as a2,yc as a3,gc as a4,mc as a5,Jn as a6,Oi as a7,ac as a8,Ri as a9,pc as aa,hc as ab,re as ac,rc as ad,dc as ae,Fi as af,$i as ag,Zi as b,uc as c,ke as d,Di as e,Wi as f,Hi as g,yo as h,xi as i,wi as j,Rs as k,An as l,pt as m,Xi as n,Xs as o,ml as p,en as q,At as r,fc as s,ot as t,po as u,cs as v,pr as w,Gi as x,Te as y,Ji as z}; diff --git a/assets/chunks/theme.edde7d9a.js b/assets/chunks/theme.edde7d9a.js new file mode 100644 index 00000000..2d0e3e50 --- /dev/null +++ b/assets/chunks/theme.edde7d9a.js @@ -0,0 +1,14 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{u as g,v as a,b as i,z as c,a as T,L as x,X as S,_ as m,C as b,O as v,B as f,$ as he,c as et,i as tt,P as nt,w as fe,r as k,d as w,A as F,F as u,N as l,e as z,f as D,o as st,g as ot,q as K,H as J,h as at,j as W,k as te,l as ie,T as rt,M as U,m as C,n as H,p as me,s as Z,t as h,E as De,x as j,V as se,y as ge,D as Fe,G as lt,R as it,I as Oe,J as xe,K as ct,Q as ut,S as dt,U as oe,W as _t,Y as vt,Z as pt,a0 as ht,a1 as ft}from"./framework.0d8bea05.js";const mt=g({__name:"VPBadge",props:{text:{},type:{}},setup(n){return(e,t)=>(a(),i("span",{class:T(["VPBadge",e.type??"tip"])},[c(e.$slots,"default",{},()=>[x(S(e.text),1)],!0)],2))}});const gt=m(mt,[["__scopeId","data-v-1aa52f9a"]]),yt={key:0,class:"VPBackdrop"},bt=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),b(he,{name:"fade"},{default:v(()=>[e.show?(a(),i("div",yt)):f("",!0)]),_:1}))}});const kt=m(bt,[["__scopeId","data-v-c6055897"]]),P=et;function $t(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),s=!0,setTimeout(()=>{s=!1},e))}}function _e(n){return/^\//.test(n)?n:`/${n}`}function ee(n){if(tt(n))return n.replace(nt,"");const{site:e}=P(),{pathname:t,search:s,hash:o}=new URL(n,"http://a.com"),r=t.endsWith("/")||t.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${s}${o}`);return fe(r)}function ne({removeCurrent:n=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:s,page:o,theme:r}=P(),d=k(()=>{var _,y;return{label:(_=t.value.locales[s.value])==null?void 0:_.label,link:((y=t.value.locales[s.value])==null?void 0:y.link)||(s.value==="root"?"/":`/${s.value}/`)}});return{localeLinks:k(()=>Object.entries(t.value.locales).flatMap(([_,y])=>n&&d.value.label===y.label?[]:{text:y.label,link:Pt(y.link||(_==="root"?"/":`/${_}/`),r.value.i18nRouting!==!1&&e,o.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function Pt(n,e,t,s){return e?n.replace(/\/$/,"")+_e(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const ce=n=>(z("data-v-35559be6"),n=n(),D(),n),Vt={class:"NotFound"},wt=ce(()=>u("p",{class:"code"},"404",-1)),St=ce(()=>u("h1",{class:"title"},"PAGE NOT FOUND",-1)),Lt=ce(()=>u("div",{class:"divider"},null,-1)),Mt=ce(()=>u("blockquote",{class:"quote"}," But if you don't change your direction, and if you keep looking, you may end up where you are heading. ",-1)),Ct={class:"action"},It=["href"],Tt=g({__name:"NotFound",setup(n){const{site:e}=P(),{localeLinks:t}=ne({removeCurrent:!1}),s=w("/");return F(()=>{var r;const o=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");t.value.length&&(s.value=((r=t.value.find(({link:d})=>d.startsWith(o)))==null?void 0:r.link)||t.value[0].link)}),(o,r)=>(a(),i("div",Vt,[wt,St,Lt,Mt,u("div",Ct,[u("a",{class:"link",href:l(fe)(s.value),"aria-label":"go to home"}," Take me home ",8,It)])]))}});const Bt=m(Tt,[["__scopeId","data-v-35559be6"]]);function Ge(n){return st()?(ot(n),!0):!1}function ye(n){return typeof n=="function"?n():l(n)}const At=typeof window<"u",Nt=()=>{};function xt(n){var e;const t=ye(n);return(e=t==null?void 0:t.$el)!=null?e:t}const be=At?window:void 0;function Ht(...n){let e,t,s,o;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,s,o]=n,e=be):[e,t,s,o]=n,!e)return Nt;Array.isArray(t)||(t=[t]),Array.isArray(s)||(s=[s]);const r=[],d=()=>{r.forEach(L=>L()),r.length=0},p=(L,A,I,V)=>(L.addEventListener(A,I,V),()=>L.removeEventListener(A,I,V)),_=K(()=>[xt(e),ye(o)],([L,A])=>{d(),L&&r.push(...t.flatMap(I=>s.map(V=>p(L,I,V,A))))},{immediate:!0,flush:"post"}),y=()=>{_(),d()};return Ge(y),y}function Et(){const n=w(!1);return at()&&F(()=>{n.value=!0}),n}function zt(n){const e=Et();return k(()=>(e.value,!!n()))}function ve(n,e={}){const{window:t=be}=e,s=zt(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let o;const r=w(!1),d=y=>{r.value=y.matches},p=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",d):o.removeListener(d))},_=J(()=>{s.value&&(p(),o=t.matchMedia(ye(n)),"addEventListener"in o?o.addEventListener("change",d):o.addListener(d),r.value=o.matches)});return Ge(()=>{_(),p(),o=void 0}),r}function Re({window:n=be}={}){if(!n)return{x:w(0),y:w(0)};const e=w(n.scrollX),t=w(n.scrollY);return Ht(n,"scroll",()=>{e.value=n.scrollX,t.value=n.scrollY},{capture:!1,passive:!0}),{x:e,y:t}}function Ue(n,e){if(Array.isArray(n))return n;if(n==null)return[];e=_e(e);const t=Object.keys(n).sort((s,o)=>o.split("/").length-s.split("/").length).find(s=>e.startsWith(_e(s)));return t?n[t]:[]}function Dt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Ft(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link}),o.items&&t(o.items)}return t(n),e}function pe(n,e){return Array.isArray(e)?e.some(t=>pe(n,t)):W(n,e.link)?!0:e.items?pe(n,e.items):!1}function O(){const n=te(),{theme:e,frontmatter:t}=P(),s=ve("(min-width: 960px)"),o=w(!1),r=k(()=>{const N=e.value.sidebar,M=n.data.relativePath;return N?Ue(N,M):[]}),d=k(()=>t.value.sidebar!==!1&&r.value.length>0&&t.value.layout!=="home"),p=k(()=>_?t.value.aside==null?e.value.aside==="left":t.value.aside==="left":!1),_=k(()=>t.value.layout==="home"?!1:t.value.aside!=null?!!t.value.aside:e.value.aside!==!1),y=k(()=>d.value&&s.value),L=k(()=>d.value?Dt(r.value):[]);function A(){o.value=!0}function I(){o.value=!1}function V(){o.value?I():A()}return{isOpen:o,sidebar:r,sidebarGroups:L,hasSidebar:d,hasAside:_,leftAside:p,isSidebarEnabled:y,open:A,close:I,toggle:V}}function Ot(n,e){let t;J(()=>{t=n.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",s)}),ie(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function Gt(n){const{page:e}=P(),t=w(!1),s=k(()=>n.value.collapsed!=null),o=k(()=>!!n.value.link),r=k(()=>W(e.value.relativePath,n.value.link)),d=k(()=>r.value?!0:n.value.items?pe(e.value.relativePath,n.value.items):!1),p=k(()=>!!(n.value.items&&n.value.items.length));J(()=>{t.value=!!(s.value&&n.value.collapsed)}),J(()=>{(r.value||d.value)&&(t.value=!1)});function _(){s.value&&(t.value=!t.value)}return{collapsed:t,collapsible:s,isLink:o,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}}function Rt(){const{hasSidebar:n}=O(),e=ve("(min-width: 960px)"),t=ve("(min-width: 1280px)");return{isAsideEnabled:k(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const Ut=71;function ke(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function $e(n){const e=[...document.querySelectorAll(".VPDoc h2,h3,h4,h5,h6")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{title:jt(t),link:"#"+t.id,level:s}});return qt(e,n)}function jt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function qt(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(d=>d.level>=s&&d.level<=o);const r=[];e:for(let d=0;d=0;_--){const y=n[_];if(y.level{requestAnimationFrame(r),window.addEventListener("scroll",s)}),rt(()=>{d(location.hash)}),ie(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const p=[].slice.call(n.value.querySelectorAll(".outline-link")),_=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(V=>p.some(N=>N.hash===V.hash&&V.offsetParent!==null)),y=window.scrollY,L=window.innerHeight,A=document.body.offsetHeight,I=Math.abs(y+L-A)<1;if(_.length&&I){d(_[_.length-1].hash);return}for(let V=0;V<_.length;V++){const N=_[V],M=_[V+1],[$,B]=Wt(V,N,M);if($){d(B);return}}}function d(p){o&&o.classList.remove("active"),p!==null&&(o=n.value.querySelector(`a[href="${decodeURIComponent(p)}"]`));const _=o;_?(_.classList.add("active"),e.value.style.top=_.offsetTop+33+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function He(n){return n.parentElement.offsetTop-Ut}function Wt(n,e,t){const s=window.scrollY;return n===0&&s===0?[!0,null]:s{const o=U("VPDocOutlineItem",!0);return a(),i("ul",{class:T(t.root?"root":"nested")},[(a(!0),i(C,null,H(t.headers,({children:r,link:d,title:p})=>(a(),i("li",null,[u("a",{class:"outline-link",href:d,onClick:e,title:p},S(p),9,Yt),r!=null&&r.length?(a(),b(o,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}});const Pe=m(Xt,[["__scopeId","data-v-748e15f2"]]),Qt=n=>(z("data-v-bd3a7332"),n=n(),D(),n),Jt={class:"content"},Zt={class:"outline-title"},en={"aria-labelledby":"doc-outline-aria-label"},tn=Qt(()=>u("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),nn=g({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=P(),s=me([]);Z(()=>{s.value=$e(e.value.outline??t.value.outline)});const o=w(),r=w();return Kt(o,r),(d,p)=>(a(),i("div",{class:T(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[u("div",Jt,[u("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),u("div",Zt,S(l(ke)(l(t))),1),u("nav",en,[tn,h(Pe,{headers:s.value,root:!0},null,8,["headers"])])])],2))}});const sn=m(nn,[["__scopeId","data-v-bd3a7332"]]),on={class:"VPDocAsideCarbonAds"},an=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),i("div",on,[h(l(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),rn=n=>(z("data-v-61b1a3c5"),n=n(),D(),n),ln={class:"VPDocAside"},cn=rn(()=>u("div",{class:"spacer"},null,-1)),un=g({__name:"VPDocAside",setup(n){const{theme:e}=P();return(t,s)=>(a(),i("div",ln,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),h(sn),c(t.$slots,"aside-outline-after",{},void 0,!0),cn,c(t.$slots,"aside-ads-before",{},void 0,!0),l(e).carbonAds?(a(),b(an,{key:0,"carbon-ads":l(e).carbonAds},null,8,["carbon-ads"])):f("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}});const dn=m(un,[["__scopeId","data-v-61b1a3c5"]]);function _n(){const{theme:n,page:e}=P();return k(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function vn(){const{page:n,theme:e,frontmatter:t}=P();return k(()=>{var _,y,L,A,I,V;const s=Ue(e.value.sidebar,n.value.relativePath),o=Ft(s),r=o.findIndex(N=>W(n.value.relativePath,N.link)),d=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((y=e.value.docFooter)==null?void 0:y.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((L=o[r-1])==null?void 0:L.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((A=o[r-1])==null?void 0:A.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((I=o[r+1])==null?void 0:I.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((V=o[r+1])==null?void 0:V.link)}}})}const pn={},hn={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},fn=u("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),mn=u("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),gn=[fn,mn];function yn(n,e){return a(),i("svg",hn,gn)}const bn=m(pn,[["render",yn]]),G=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=k(()=>e.tag??(e.href?"a":"span")),s=k(()=>e.href&&De.test(e.href));return(o,r)=>(a(),b(j(t.value),{class:T(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?l(ee)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:v(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),kn={class:"VPLastUpdated"},$n=["datetime"],Pn=g({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t}=P(),s=k(()=>new Date(t.value.lastUpdated)),o=k(()=>s.value.toISOString()),r=w("");return F(()=>{J(()=>{var d;r.value=new Intl.DateTimeFormat(void 0,((d=e.value.lastUpdated)==null?void 0:d.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(d,p)=>{var _;return a(),i("p",kn,[x(S(((_=l(e).lastUpdated)==null?void 0:_.text)||l(e).lastUpdatedText||"Last updated")+": ",1),u("time",{datetime:o.value},S(r.value),9,$n)])}}});const Vn=m(Pn,[["__scopeId","data-v-06008453"]]),wn={key:0,class:"VPDocFooter"},Sn={key:0,class:"edit-info"},Ln={key:0,class:"edit-link"},Mn={key:1,class:"last-updated"},Cn={key:1,class:"prev-next"},In={class:"pager"},Tn=["href"],Bn=["innerHTML"],An=["innerHTML"],Nn={class:"pager"},xn=["href"],Hn=["innerHTML"],En=["innerHTML"],zn=g({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=P(),o=_n(),r=vn(),d=k(()=>e.value.editLink&&s.value.editLink!==!1),p=k(()=>t.value.lastUpdated&&s.value.lastUpdated!==!1),_=k(()=>d.value||p.value||r.value.prev||r.value.next);return(y,L)=>{var A,I,V,N,M,$;return _.value?(a(),i("footer",wn,[c(y.$slots,"doc-footer-before",{},void 0,!0),d.value||p.value?(a(),i("div",Sn,[d.value?(a(),i("div",Ln,[h(G,{class:"edit-link-button",href:l(o).url,"no-icon":!0},{default:v(()=>[h(bn,{class:"edit-link-icon","aria-label":"edit icon"}),x(" "+S(l(o).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(a(),i("div",Mn,[h(Vn)])):f("",!0)])):f("",!0),(A=l(r).prev)!=null&&A.link||(I=l(r).next)!=null&&I.link?(a(),i("nav",Cn,[u("div",In,[(V=l(r).prev)!=null&&V.link?(a(),i("a",{key:0,class:"pager-link prev",href:l(ee)(l(r).prev.link)},[u("span",{class:"desc",innerHTML:((N=l(e).docFooter)==null?void 0:N.prev)||"Previous page"},null,8,Bn),u("span",{class:"title",innerHTML:l(r).prev.text},null,8,An)],8,Tn)):f("",!0)]),u("div",Nn,[(M=l(r).next)!=null&&M.link?(a(),i("a",{key:0,class:"pager-link next",href:l(ee)(l(r).next.link)},[u("span",{class:"desc",innerHTML:(($=l(e).docFooter)==null?void 0:$.next)||"Next page"},null,8,Hn),u("span",{class:"title",innerHTML:l(r).next.text},null,8,En)],8,xn)):f("",!0)])])):f("",!0)])):f("",!0)}}});const Dn=m(zn,[["__scopeId","data-v-4a75099f"]]),Fn={},On={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Gn=u("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),Rn=[Gn];function Un(n,e){return a(),i("svg",On,Rn)}const Ve=m(Fn,[["render",Un]]),jn={key:0,class:"VPDocOutlineDropdown"},qn={key:0,class:"items"},Kn=g({__name:"VPDocOutlineDropdown",setup(n){const{frontmatter:e,theme:t}=P(),s=w(!1);Z(()=>{s.value=!1});const o=me([]);return Z(()=>{o.value=$e(e.value.outline??t.value.outline)}),(r,d)=>o.value.length>0?(a(),i("div",jn,[u("button",{onClick:d[0]||(d[0]=p=>s.value=!s.value),class:T({open:s.value})},[x(S(l(ke)(l(t)))+" ",1),h(Ve,{class:"icon"})],2),s.value?(a(),i("div",qn,[h(Pe,{headers:o.value},null,8,["headers"])])):f("",!0)])):f("",!0)}});const Wn=m(Kn,[["__scopeId","data-v-ff90d418"]]),Yn=n=>(z("data-v-ff46f99c"),n=n(),D(),n),Xn={class:"container"},Qn=Yn(()=>u("div",{class:"aside-curtain"},null,-1)),Jn={class:"aside-container"},Zn={class:"aside-content"},es={class:"content"},ts={class:"content-container"},ns={class:"main"},ss=g({__name:"VPDoc",setup(n){const{theme:e}=P(),t=te(),{hasSidebar:s,hasAside:o,leftAside:r}=O(),d=k(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,_)=>{const y=U("Content");return a(),i("div",{class:T(["VPDoc",{"has-sidebar":l(s),"has-aside":l(o)}])},[c(p.$slots,"doc-top",{},void 0,!0),u("div",Xn,[l(o)?(a(),i("div",{key:0,class:T(["aside",{"left-aside":l(r)}])},[Qn,u("div",Jn,[u("div",Zn,[h(dn,null,{"aside-top":v(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),u("div",es,[u("div",ts,[c(p.$slots,"doc-before",{},void 0,!0),h(Wn),u("main",ns,[h(y,{class:T(["vp-doc",[d.value,l(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),h(Dn,null,{"doc-footer-before":v(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(p.$slots,"doc-after",{},void 0,!0)])])]),c(p.$slots,"doc-bottom",{},void 0,!0)],2)}}});const os=m(ss,[["__scopeId","data-v-ff46f99c"]]),as=g({__name:"VPButton",props:{tag:{},size:{},theme:{},text:{},href:{}},setup(n){const e=n,t=k(()=>[e.size??"medium",e.theme??"brand"]),s=k(()=>e.href&&De.test(e.href)),o=k(()=>e.tag?e.tag:e.href?"a":"button");return(r,d)=>(a(),b(j(o.value),{class:T(["VPButton",t.value]),href:r.href?l(ee)(r.href):void 0,target:s.value?"_blank":void 0,rel:s.value?"noreferrer":void 0},{default:v(()=>[x(S(r.text),1)]),_:1},8,["class","href","target","rel"]))}});const rs=m(as,[["__scopeId","data-v-fceb97bb"]]),ls=["src","alt"],is={inheritAttrs:!1},cs=g({...is,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=U("VPImage",!0);return e.image?(a(),i(C,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),i("img",se({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:l(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,ls)):(a(),i(C,{key:1},[h(s,se({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(s,se({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}});const we=m(cs,[["__scopeId","data-v-d79cd251"]]),us=n=>(z("data-v-d29a3d56"),n=n(),D(),n),ds={class:"container"},_s={class:"main"},vs={key:0,class:"name"},ps=["innerHTML"],hs=["innerHTML"],fs=["innerHTML"],ms={key:0,class:"actions"},gs={key:0,class:"image"},ys={class:"image-container"},bs=us(()=>u("div",{class:"image-bg"},null,-1)),ks=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=ge("hero-image-slot-exists");return(t,s)=>(a(),i("div",{class:T(["VPHero",{"has-image":t.image||l(e)}])},[u("div",ds,[u("div",_s,[c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),i("h1",vs,[u("span",{innerHTML:t.name,class:"clip"},null,8,ps)])):f("",!0),t.text?(a(),i("p",{key:1,innerHTML:t.text,class:"text"},null,8,hs)):f("",!0),t.tagline?(a(),i("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,fs)):f("",!0)],!0),t.actions?(a(),i("div",ms,[(a(!0),i(C,null,H(t.actions,o=>(a(),i("div",{key:o.link,class:"action"},[h(rs,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link},null,8,["theme","text","href"])]))),128))])):f("",!0)]),t.image||l(e)?(a(),i("div",gs,[u("div",ys,[bs,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),b(we,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}});const $s=m(ks,[["__scopeId","data-v-d29a3d56"]]),Ps=g({__name:"VPHomeHero",setup(n){const{frontmatter:e}=P();return(t,s)=>l(e).hero?(a(),b($s,{key:0,class:"VPHomeHero",name:l(e).hero.name,text:l(e).hero.text,tagline:l(e).hero.tagline,image:l(e).hero.image,actions:l(e).hero.actions},{"home-hero-info":v(()=>[c(t.$slots,"home-hero-info")]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Vs={},ws={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Ss=u("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),Ls=[Ss];function Ms(n,e){return a(),i("svg",ws,Ls)}const Cs=m(Vs,[["render",Ms]]),Is={class:"box"},Ts=["innerHTML"],Bs=["innerHTML"],As=["innerHTML"],Ns={key:3,class:"link-text"},xs={class:"link-text-value"},Hs=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{}},setup(n){return(e,t)=>(a(),b(G,{class:"VPFeature",href:e.link,rel:e.rel,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[u("article",Is,[typeof e.icon=="object"?(a(),b(we,{key:0,image:e.icon,alt:e.icon.alt,height:e.icon.height,width:e.icon.width},null,8,["image","alt","height","width"])):e.icon?(a(),i("div",{key:1,class:"icon",innerHTML:e.icon},null,8,Ts)):f("",!0),u("h2",{class:"title",innerHTML:e.title},null,8,Bs),e.details?(a(),i("p",{key:2,class:"details",innerHTML:e.details},null,8,As)):f("",!0),e.linkText?(a(),i("div",Ns,[u("p",xs,[x(S(e.linkText)+" ",1),h(Cs,{class:"link-text-icon"})])])):f("",!0)])]),_:1},8,["href","rel","tag"]))}});const Es=m(Hs,[["__scopeId","data-v-cf6e479c"]]),zs={key:0,class:"VPFeatures"},Ds={class:"container"},Fs={class:"items"},Os=g({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=k(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),i("div",zs,[u("div",Ds,[u("div",Fs,[(a(!0),i(C,null,H(s.features,r=>(a(),i("div",{key:r.title,class:T(["item",[t.value]])},[h(Es,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel},null,8,["icon","title","details","link","link-text","rel"])],2))),128))])])])):f("",!0)}});const Gs=m(Os,[["__scopeId","data-v-8ce6a87c"]]),Rs=g({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=P();return(t,s)=>l(e).features?(a(),b(Gs,{key:0,class:"VPHomeFeatures",features:l(e).features},null,8,["features"])):f("",!0)}}),Us={class:"VPHome"},js=g({__name:"VPHome",setup(n){return(e,t)=>{const s=U("Content");return a(),i("div",Us,[c(e.$slots,"home-hero-before",{},void 0,!0),h(Ps,null,{"home-hero-info":v(()=>[c(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(e.$slots,"home-hero-after",{},void 0,!0),c(e.$slots,"home-features-before",{},void 0,!0),h(Rs),c(e.$slots,"home-features-after",{},void 0,!0),h(s)])}}});const qs=m(js,[["__scopeId","data-v-5d1897af"]]),Ks={},Ws={class:"VPPage"};function Ys(n,e){const t=U("Content");return a(),i("div",Ws,[c(n.$slots,"page-top"),h(t),c(n.$slots,"page-bottom")])}const Xs=m(Ks,[["render",Ys]]),Qs=g({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=P(),{hasSidebar:s}=O();return(o,r)=>(a(),i("div",{class:T(["VPContent",{"has-sidebar":l(s),"is-home":l(t).layout==="home"}]),id:"VPContent"},[l(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[h(Bt)],!0):l(t).layout==="page"?(a(),b(Xs,{key:1},{"page-top":v(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):l(t).layout==="home"?(a(),b(qs,{key:2},{"home-hero-before":v(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):(a(),b(os,{key:3},{"doc-top":v(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const Js=m(Qs,[["__scopeId","data-v-35450758"]]),Zs={class:"container"},eo=["innerHTML"],to=["innerHTML"],no=g({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=O();return(o,r)=>l(e).footer&&l(t).footer!==!1?(a(),i("footer",{key:0,class:T(["VPFooter",{"has-sidebar":l(s)}])},[u("div",Zs,[l(e).footer.message?(a(),i("p",{key:0,class:"message",innerHTML:l(e).footer.message},null,8,eo)):f("",!0),l(e).footer.copyright?(a(),i("p",{key:1,class:"copyright",innerHTML:l(e).footer.copyright},null,8,to)):f("",!0)])],2)):f("",!0)}});const so=m(no,[["__scopeId","data-v-a51421e3"]]),oo=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=P(),s=w(!1),o=w(0),r=w();Z(()=>{s.value=!1});function d(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function p(y){y.target.classList.contains("outline-link")&&(r.value&&(r.value.style.transition="none"),lt(()=>{s.value=!1}))}function _(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,L)=>(a(),i("div",{class:"VPLocalNavOutlineDropdown",style:Fe({"--vp-vh":o.value+"px"})},[y.headers.length>0?(a(),i("button",{key:0,onClick:d,class:T({open:s.value})},[x(S(l(ke)(l(t)))+" ",1),h(Ve,{class:"icon"})],2)):(a(),i("button",{key:1,onClick:_},S(l(t).returnToTopLabel||"Return to top"),1)),h(he,{name:"flyout"},{default:v(()=>[s.value?(a(),i("div",{key:0,ref_key:"items",ref:r,class:"items",onClick:p},[u("a",{class:"top-link",href:"#",onClick:_},S(l(t).returnToTopLabel||"Return to top"),1),h(Pe,{headers:y.headers},null,8,["headers"])],512)):f("",!0)]),_:1})],4))}});const ao=m(oo,[["__scopeId","data-v-e7d97842"]]),ro={},lo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},io=u("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),co=u("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),uo=u("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),_o=u("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),vo=[io,co,uo,_o];function po(n,e){return a(),i("svg",lo,vo)}const ho=m(ro,[["render",po]]),fo=["aria-expanded"],mo={class:"menu-text"},go=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=O(),{y:o}=Re(),r=me([]),d=w(0);F(()=>{d.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Z(()=>{r.value=$e(t.value.outline??e.value.outline)});const p=k(()=>r.value.length===0&&!s.value),_=k(()=>({VPLocalNav:!0,fixed:p.value,"reached-top":o.value>=d.value}));return(y,L)=>l(t).layout!=="home"&&(!p.value||l(o)>=d.value)?(a(),i("div",{key:0,class:T(_.value)},[l(s)?(a(),i("button",{key:0,class:"menu","aria-expanded":y.open,"aria-controls":"VPSidebarNav",onClick:L[0]||(L[0]=A=>y.$emit("open-menu"))},[h(ho,{class:"menu-icon"}),u("span",mo,S(l(e).sidebarMenuLabel||"Menu"),1)],8,fo)):f("",!0),h(ao,{headers:r.value,navHeight:d.value},null,8,["headers","navHeight"])],2)):f("",!0)}});const yo=m(go,[["__scopeId","data-v-341c3ee5"]]);function bo(){const n=w(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const r=te();return K(()=>r.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const ko={},$o={class:"VPSwitch",type:"button",role:"switch"},Po={class:"check"},Vo={key:0,class:"icon"};function wo(n,e){return a(),i("button",$o,[u("span",Po,[n.$slots.default?(a(),i("span",Vo,[c(n.$slots,"default",{},void 0,!0)])):f("",!0)])])}const So=m(ko,[["render",wo],["__scopeId","data-v-40b19bac"]]),Lo={},Mo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Co=it('',9),Io=[Co];function To(n,e){return a(),i("svg",Mo,Io)}const Bo=m(Lo,[["render",To]]),Ao={},No={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},xo=u("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),Ho=[xo];function Eo(n,e){return a(),i("svg",No,Ho)}const zo=m(Ao,[["render",Eo]]),Do=g({__name:"VPSwitchAppearance",setup(n){const{site:e,isDark:t}=P(),s=w(!1),o=Oe?r():()=>{};F(()=>{s.value=document.documentElement.classList.contains("dark")});function r(){const d=window.matchMedia("(prefers-color-scheme: dark)"),p=document.documentElement.classList;let _=localStorage.getItem(xe),y=e.value.appearance==="dark"&&_==null||(_==="auto"||_==null?d.matches:_==="dark");d.onchange=I=>{_==="auto"&&A(y=I.matches)};function L(){A(y=!y),_=y?d.matches?"auto":"dark":d.matches?"light":"auto",localStorage.setItem(xe,_)}function A(I){const V=document.createElement("style");V.type="text/css",V.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { + -webkit-transition: none !important; + -moz-transition: none !important; + -o-transition: none !important; + -ms-transition: none !important; + transition: none !important; +}`)),document.head.appendChild(V),s.value=I,p[I?"add":"remove"]("dark"),window.getComputedStyle(V).opacity,document.head.removeChild(V)}return L}return K(s,d=>{t.value=d}),(d,p)=>(a(),b(So,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":s.value,onClick:l(o)},{default:v(()=>[h(Bo,{class:"sun"}),h(zo,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const Se=m(Do,[["__scopeId","data-v-535a86eb"]]),Fo={key:0,class:"VPNavBarAppearance"},Oo=g({__name:"VPNavBarAppearance",setup(n){const{site:e}=P();return(t,s)=>l(e).appearance?(a(),i("div",Fo,[h(Se)])):f("",!0)}});const Go=m(Oo,[["__scopeId","data-v-c4c830a7"]]),Le=w();let je=!1,de=0;function Ro(n){const e=w(!1);if(Oe){!je&&Uo(),de++;const t=K(Le,s=>{var o,r,d;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(r=n.onFocus)==null||r.call(n)):(e.value=!1,(d=n.onBlur)==null||d.call(n))});ie(()=>{t(),de--,de||jo()})}return ct(e)}function Uo(){document.addEventListener("focusin",qe),je=!0,Le.value=document.activeElement}function jo(){document.removeEventListener("focusin",qe)}function qe(){Le.value=document.activeElement}const qo={},Ko={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Wo=u("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Yo=[Wo];function Xo(n,e){return a(),i("svg",Ko,Yo)}const Ke=m(qo,[["render",Xo]]),Qo={},Jo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Zo=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),ea=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),ta=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),na=[Zo,ea,ta];function sa(n,e){return a(),i("svg",Jo,na)}const oa=m(Qo,[["render",sa]]),aa={class:"VPMenuLink"},ra=g({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=P();return(t,s)=>(a(),i("div",aa,[h(G,{class:T({active:l(W)(l(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[x(S(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ue=m(ra,[["__scopeId","data-v-2b1427af"]]),la={class:"VPMenuGroup"},ia={key:0,class:"title"},ca=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),i("div",la,[e.text?(a(),i("p",ia,S(e.text),1)):f("",!0),(a(!0),i(C,null,H(e.items,s=>(a(),i(C,null,["link"in s?(a(),b(ue,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}});const ua=m(ca,[["__scopeId","data-v-f69155d8"]]),da={class:"VPMenu"},_a={key:0,class:"items"},va=g({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),i("div",da,[e.items?(a(),i("div",_a,[(a(!0),i(C,null,H(e.items,s=>(a(),i(C,{key:s.text},["link"in s?(a(),b(ue,{key:0,item:s},null,8,["item"])):(a(),b(ua,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(e.$slots,"default",{},void 0,!0)]))}});const pa=m(va,[["__scopeId","data-v-bcc9fed1"]]),ha=["aria-expanded","aria-label"],fa={key:0,class:"text"},ma={class:"menu"},ga=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=w(!1),t=w();Ro({el:t,onBlur:s});function s(){e.value=!1}return(o,r)=>(a(),i("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[o.button||o.icon?(a(),i("span",fa,[o.icon?(a(),b(j(o.icon),{key:0,class:"option-icon"})):f("",!0),x(" "+S(o.button)+" ",1),h(Ke,{class:"text-icon"})])):(a(),b(oa,{key:1,class:"icon"}))],8,ha),u("div",ma,[h(pa,{items:o.items},{default:v(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const Me=m(ga,[["__scopeId","data-v-87f2bbca"]]),ya={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},ba=["href","aria-label","innerHTML"],ka=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=k(()=>typeof e.icon=="object"?e.icon.svg:ya[e.icon]);return(s,o)=>(a(),i("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ba))}});const $a=m(ka,[["__scopeId","data-v-39e5dc3a"]]),Pa={class:"VPSocialLinks"},Va=g({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),i("div",Pa,[(a(!0),i(C,null,H(e.links,({link:s,icon:o,ariaLabel:r})=>(a(),b($a,{key:s,icon:o,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}});const Ce=m(Va,[["__scopeId","data-v-726a530e"]]),wa={key:0,class:"group translations"},Sa={class:"trans-title"},La={key:1,class:"group"},Ma={class:"item appearance"},Ca={class:"label"},Ia={class:"appearance-action"},Ta={key:2,class:"group"},Ba={class:"item social-links"},Aa=g({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=P(),{localeLinks:s,currentLang:o}=ne({correspondingLink:!0}),r=k(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(d,p)=>r.value?(a(),b(Me,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[l(s).length&&l(o).label?(a(),i("div",wa,[u("p",Sa,S(l(o).label),1),(a(!0),i(C,null,H(l(s),_=>(a(),b(ue,{key:_.link,item:_},null,8,["item"]))),128))])):f("",!0),l(e).appearance?(a(),i("div",La,[u("div",Ma,[u("p",Ca,S(l(t).darkModeSwitchLabel||"Appearance"),1),u("div",Ia,[h(Se)])])])):f("",!0),l(t).socialLinks?(a(),i("div",Ta,[u("div",Ba,[h(Ce,{class:"social-links-list",links:l(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}});const Na=m(Aa,[["__scopeId","data-v-4b777cbc"]]),xa=n=>(z("data-v-1363b7e8"),n=n(),D(),n),Ha=["aria-expanded"],Ea=xa(()=>u("span",{class:"container"},[u("span",{class:"top"}),u("span",{class:"middle"}),u("span",{class:"bottom"})],-1)),za=[Ea],Da=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),i("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},za,10,Ha))}});const Fa=m(Da,[["__scopeId","data-v-1363b7e8"]]),Oa=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=P();return(t,s)=>(a(),b(G,{class:T({VPNavBarMenuLink:!0,active:l(W)(l(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[x(S(t.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const Ga=m(Oa,[["__scopeId","data-v-6b3352fb"]]),Ra=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const{page:e}=P();return(t,s)=>(a(),b(Me,{class:T({VPNavBarMenuGroup:!0,active:l(W)(l(e).relativePath,t.item.activeMatch,!!t.item.activeMatch)}),button:t.item.text,items:t.item.items},null,8,["class","button","items"]))}}),Ua=n=>(z("data-v-bc887b7f"),n=n(),D(),n),ja={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},qa=Ua(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Ka=g({__name:"VPNavBarMenu",setup(n){const{theme:e}=P();return(t,s)=>l(e).nav?(a(),i("nav",ja,[qa,(a(!0),i(C,null,H(l(e).nav,o=>(a(),i(C,{key:o.text},["link"in o?(a(),b(Ga,{key:0,item:o},null,8,["item"])):(a(),b(Ra,{key:1,item:o},null,8,["item"]))],64))),128))])):f("",!0)}});const Wa=m(Ka,[["__scopeId","data-v-bc887b7f"]]);const Ya={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},Xa={class:"DocSearch-Button-Container"},Qa=u("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[u("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Ja={class:"DocSearch-Button-Placeholder"},Za=u("span",{class:"DocSearch-Button-Keys"},[u("kbd",{class:"DocSearch-Button-Key"}),u("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Ee=g({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(n){return(e,t)=>(a(),i("button",Ya,[u("span",Xa,[Qa,u("span",Ja,S(e.placeholder),1)]),Za]))}});const er={id:"local-search"},tr={key:1,id:"docsearch"},nr=g({__name:"VPNavBarSearch",setup(n){const e=()=>null,t=ut(()=>dt(()=>import("./VPAlgoliaSearchBox.661ef68a.js"),["assets/chunks/VPAlgoliaSearchBox.661ef68a.js","assets/chunks/framework.0d8bea05.js"])),{theme:s,localeIndex:o}=P(),r=w(!1),d=w(!1),p=k(()=>{var $,B,E,Y,Be,Ae,Ne;const M=(($=s.value.search)==null?void 0:$.options)??s.value.algolia;return((Be=(Y=(E=(B=M==null?void 0:M.locales)==null?void 0:B[o.value])==null?void 0:E.translations)==null?void 0:Y.button)==null?void 0:Be.buttonText)||((Ne=(Ae=M==null?void 0:M.translations)==null?void 0:Ae.button)==null?void 0:Ne.buttonText)||"Search"}),_=()=>{const M="VPAlgoliaPreconnect";(window.requestIdleCallback||setTimeout)(()=>{var E;const B=document.createElement("link");B.id=M,B.rel="preconnect",B.href=`https://${(((E=s.value.search)==null?void 0:E.options)??s.value.algolia).appId}-dsn.algolia.net`,B.crossOrigin="",document.head.appendChild(B)})};F(()=>{_();const M=B=>{(B.key.toLowerCase()==="k"&&(B.metaKey||B.ctrlKey)||!A(B)&&B.key==="/")&&(B.preventDefault(),y(),$())},$=()=>{window.removeEventListener("keydown",M)};window.addEventListener("keydown",M),ie($)});function y(){r.value||(r.value=!0,setTimeout(L,16))}function L(){const M=new Event("keydown");M.key="k",M.metaKey=!0,window.dispatchEvent(M),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||L()},16)}function A(M){const $=M.target,B=$.tagName;return $.isContentEditable||B==="INPUT"||B==="SELECT"||B==="TEXTAREA"}const I=w(!1),V=w("'Meta'");F(()=>{V.value=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"'⌘'":"'Ctrl'"});const N="algolia";return(M,$)=>{var B;return a(),i("div",{class:"VPNavBarSearch",style:Fe({"--vp-meta-key":V.value})},[l(N)==="local"?(a(),i(C,{key:0},[I.value?(a(),b(l(e),{key:0,placeholder:p.value,onClose:$[0]||($[0]=E=>I.value=!1)},null,8,["placeholder"])):f("",!0),u("div",er,[h(Ee,{placeholder:p.value,onClick:$[1]||($[1]=E=>I.value=!0)},null,8,["placeholder"])])],64)):l(N)==="algolia"?(a(),i(C,{key:1},[r.value?(a(),b(l(t),{key:0,algolia:((B=l(s).search)==null?void 0:B.options)??l(s).algolia,onVnodeBeforeMount:$[2]||($[2]=E=>d.value=!0)},null,8,["algolia"])):f("",!0),d.value?f("",!0):(a(),i("div",tr,[h(Ee,{placeholder:p.value,onClick:y},null,8,["placeholder"])]))],64)):f("",!0)],4)}}});const sr=g({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=P();return(t,s)=>l(e).socialLinks?(a(),b(Ce,{key:0,class:"VPNavBarSocialLinks",links:l(e).socialLinks},null,8,["links"])):f("",!0)}});const or=m(sr,[["__scopeId","data-v-ed745fe3"]]),ar=["href"],rr=g({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=P(),{hasSidebar:s}=O(),{currentLang:o}=ne();return(r,d)=>(a(),i("div",{class:T(["VPNavBarTitle",{"has-sidebar":l(s)}])},[u("a",{class:"title",href:l(ee)(l(o).link)},[c(r.$slots,"nav-bar-title-before",{},void 0,!0),l(t).logo?(a(),b(we,{key:0,class:"logo",image:l(t).logo},null,8,["image"])):f("",!0),l(t).siteTitle?(a(),i(C,{key:1},[x(S(l(t).siteTitle),1)],64)):l(t).siteTitle===void 0?(a(),i(C,{key:2},[x(S(l(e).title),1)],64)):f("",!0),c(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,ar)],2))}});const lr=m(rr,[["__scopeId","data-v-edfdb996"]]),ir={},cr={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ur=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),dr=u("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),_r=[ur,dr];function vr(n,e){return a(),i("svg",cr,_r)}const We=m(ir,[["render",vr]]),pr={class:"items"},hr={class:"title"},fr=g({__name:"VPNavBarTranslations",setup(n){const{theme:e}=P(),{localeLinks:t,currentLang:s}=ne({correspondingLink:!0});return(o,r)=>l(t).length&&l(s).label?(a(),b(Me,{key:0,class:"VPNavBarTranslations",icon:We,label:l(e).langMenuLabel||"Change language"},{default:v(()=>[u("div",pr,[u("p",hr,S(l(s).label),1),(a(!0),i(C,null,H(l(t),d=>(a(),b(ue,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}});const mr=m(fr,[["__scopeId","data-v-e2ffc50f"]]),gr=n=>(z("data-v-cf1858b3"),n=n(),D(),n),yr={class:"container"},br={class:"title"},kr={class:"content"},$r=gr(()=>u("div",{class:"curtain"},null,-1)),Pr={class:"content-body"},Vr=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const{y:e}=Re(),{hasSidebar:t}=O(),s=k(()=>({"has-sidebar":t.value,fill:e.value>0}));return(o,r)=>(a(),i("div",{class:T(["VPNavBar",s.value])},[u("div",yr,[u("div",br,[h(lr,null,{"nav-bar-title-before":v(()=>[c(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(o.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),u("div",kr,[$r,u("div",Pr,[c(o.$slots,"nav-bar-content-before",{},void 0,!0),h(nr,{class:"search"}),h(Wa,{class:"menu"}),h(mr,{class:"translations"}),h(Go,{class:"appearance"}),h(or,{class:"social-links"}),h(Na,{class:"extra"}),c(o.$slots,"nav-bar-content-after",{},void 0,!0),h(Fa,{class:"hamburger",active:o.isScreenOpen,onClick:r[0]||(r[0]=d=>o.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const wr=m(Vr,[["__scopeId","data-v-cf1858b3"]]);function Sr(n){if(Array.isArray(n)){for(var e=0,t=Array(n.length);e1),q=[],re=!1,Te=-1,X=void 0,R=void 0,Q=void 0,Ye=function(e){return q.some(function(t){return!!(t.options.allowTouchMove&&t.options.allowTouchMove(e))})},le=function(e){var t=e||window.event;return Ye(t.target)||t.touches.length>1?!0:(t.preventDefault&&t.preventDefault(),!1)},Lr=function(e){if(Q===void 0){var t=!!e&&e.reserveScrollBarGap===!0,s=window.innerWidth-document.documentElement.clientWidth;if(t&&s>0){var o=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);Q=document.body.style.paddingRight,document.body.style.paddingRight=o+s+"px"}}X===void 0&&(X=document.body.style.overflow,document.body.style.overflow="hidden")},Mr=function(){Q!==void 0&&(document.body.style.paddingRight=Q,Q=void 0),X!==void 0&&(document.body.style.overflow=X,X=void 0)},Cr=function(){return window.requestAnimationFrame(function(){if(R===void 0){R={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e=window,t=e.scrollY,s=e.scrollX,o=e.innerHeight;document.body.style.position="fixed",document.body.style.top=-t,document.body.style.left=-s,setTimeout(function(){return window.requestAnimationFrame(function(){var r=o-window.innerHeight;r&&t>=o&&(document.body.style.top=-(t+r))})},300)}})},Ir=function(){if(R!==void 0){var e=-parseInt(document.body.style.top,10),t=-parseInt(document.body.style.left,10);document.body.style.position=R.position,document.body.style.top=R.top,document.body.style.left=R.left,window.scrollTo(t,e),R=void 0}},Tr=function(e){return e?e.scrollHeight-e.scrollTop<=e.clientHeight:!1},Br=function(e,t){var s=e.targetTouches[0].clientY-Te;return Ye(e.target)?!1:t&&t.scrollTop===0&&s>0||Tr(t)&&s<0?le(e):(e.stopPropagation(),!0)},Xe=function(e,t){if(!e){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!q.some(function(o){return o.targetElement===e})){var s={targetElement:e,options:t||{}};q=[].concat(Sr(q),[s]),ae?Cr():Lr(t),ae&&(e.ontouchstart=function(o){o.targetTouches.length===1&&(Te=o.targetTouches[0].clientY)},e.ontouchmove=function(o){o.targetTouches.length===1&&Br(o,e)},re||(document.addEventListener("touchmove",le,Ie?{passive:!1}:void 0),re=!0))}},Qe=function(){ae&&(q.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),re&&(document.removeEventListener("touchmove",le,Ie?{passive:!1}:void 0),re=!1),Te=-1),ae?Ir():Mr(),q=[]};const Ar=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=ge("close-screen");return(t,s)=>(a(),b(G,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:l(e)},{default:v(()=>[x(S(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Nr=m(Ar,[["__scopeId","data-v-067d5c32"]]),xr={},Hr={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Er=u("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),zr=[Er];function Dr(n,e){return a(),i("svg",Hr,zr)}const Fr=m(xr,[["render",Dr]]),Or=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=ge("close-screen");return(t,s)=>(a(),b(G,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:l(e)},{default:v(()=>[x(S(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Je=m(Or,[["__scopeId","data-v-7f48e5dc"]]),Gr={class:"VPNavScreenMenuGroupSection"},Rr={key:0,class:"title"},Ur=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),i("div",Gr,[e.text?(a(),i("p",Rr,S(e.text),1)):f("",!0),(a(!0),i(C,null,H(e.items,s=>(a(),b(Je,{key:s.text,item:s},null,8,["item"]))),128))]))}});const jr=m(Ur,[["__scopeId","data-v-5def7a83"]]),qr=["aria-controls","aria-expanded"],Kr={class:"button-text"},Wr=["id"],Yr={key:1,class:"group"},Xr=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=w(!1),s=k(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(r,d)=>(a(),i("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[u("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[u("span",Kr,S(r.text),1),h(Fr,{class:"button-icon"})],8,qr),u("div",{id:s.value,class:"items"},[(a(!0),i(C,null,H(r.items,p=>(a(),i(C,{key:p.text},["link"in p?(a(),i("div",{key:p.text,class:"item"},[h(Je,{item:p},null,8,["item"])])):(a(),i("div",Yr,[h(jr,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,Wr)],2))}});const Qr=m(Xr,[["__scopeId","data-v-90941ff9"]]),Jr={key:0,class:"VPNavScreenMenu"},Zr=g({__name:"VPNavScreenMenu",setup(n){const{theme:e}=P();return(t,s)=>l(e).nav?(a(),i("nav",Jr,[(a(!0),i(C,null,H(l(e).nav,o=>(a(),i(C,{key:o.text},["link"in o?(a(),b(Nr,{key:0,item:o},null,8,["item"])):(a(),b(Qr,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),el={key:0,class:"VPNavScreenAppearance"},tl={class:"text"},nl=g({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=P();return(s,o)=>l(e).appearance?(a(),i("div",el,[u("p",tl,S(l(t).darkModeSwitchLabel||"Appearance"),1),h(Se)])):f("",!0)}});const sl=m(nl,[["__scopeId","data-v-a4ad84ce"]]),ol={class:"list"},al=g({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=ne({correspondingLink:!0}),s=w(!1);function o(){s.value=!s.value}return(r,d)=>l(e).length&&l(t).label?(a(),i("div",{key:0,class:T(["VPNavScreenTranslations",{open:s.value}])},[u("button",{class:"title",onClick:o},[h(We,{class:"icon lang"}),x(" "+S(l(t).label)+" ",1),h(Ke,{class:"icon chevron"})]),u("ul",ol,[(a(!0),i(C,null,H(l(e),p=>(a(),i("li",{key:p.link,class:"item"},[h(G,{class:"link",href:p.link},{default:v(()=>[x(S(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}});const rl=m(al,[["__scopeId","data-v-bd8c50c0"]]),ll=g({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=P();return(t,s)=>l(e).socialLinks?(a(),b(Ce,{key:0,class:"VPNavScreenSocialLinks",links:l(e).socialLinks},null,8,["links"])):f("",!0)}}),il={class:"container"},cl=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=w(null);function t(){Xe(e.value,{reserveScrollBarGap:!0})}function s(){Qe()}return(o,r)=>(a(),b(he,{name:"fade",onEnter:t,onAfterLeave:s},{default:v(()=>[o.open?(a(),i("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[u("div",il,[c(o.$slots,"nav-screen-content-before",{},void 0,!0),h(Zr,{class:"menu"}),h(rl,{class:"translations"}),h(sl,{class:"appearance"}),h(ll,{class:"social-links"}),c(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}});const ul=m(cl,[["__scopeId","data-v-b67951f6"]]),dl={class:"VPNav"},_l=g({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=bo();return oe("close-screen",t),(o,r)=>(a(),i("header",dl,[h(wr,{"is-screen-open":l(e),onToggleScreen:l(s)},{"nav-bar-title-before":v(()=>[c(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(o.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(o.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(o.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(ul,{open:l(e)},{"nav-screen-content-before":v(()=>[c(o.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(o.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const vl=m(_l,[["__scopeId","data-v-640c0ee4"]]),pl=n=>(z("data-v-db75407b"),n=n(),D(),n),hl=["role","tabindex"],fl=pl(()=>u("div",{class:"indicator"},null,-1)),ml=["onKeydown"],gl={key:1,class:"items"},yl=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}=Gt(k(()=>e.item)),y=k(()=>p.value?"section":"div"),L=k(()=>o.value?"a":"div"),A=k(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),I=k(()=>o.value?void 0:"button"),V=k(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":r.value},{"has-active":d.value}]);function N($){"key"in $&&$.key!=="Enter"||!e.item.link&&_()}function M(){e.item.link&&_()}return($,B)=>{const E=U("VPSidebarItem",!0);return a(),b(j(y.value),{class:T(["VPSidebarItem",V.value])},{default:v(()=>[$.item.text?(a(),i("div",se({key:0,class:"item",role:I.value},_t($.item.items?{click:N,keydown:N}:{},!0),{tabindex:$.item.items&&0}),[fl,$.item.link?(a(),b(G,{key:0,tag:L.value,class:"link",href:$.item.link},{default:v(()=>[(a(),b(j(A.value),{class:"text",innerHTML:$.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(a(),b(j(A.value),{key:1,class:"text",innerHTML:$.item.text},null,8,["innerHTML"])),$.item.collapsed!=null?(a(),i("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:vt(M,["enter"]),tabindex:"0"},[h(Ve,{class:"caret-icon"})],40,ml)):f("",!0)],16,hl)):f("",!0),$.item.items&&$.item.items.length?(a(),i("div",gl,[$.depth<5?(a(!0),i(C,{key:0},H($.item.items,Y=>(a(),b(E,{key:Y.text,item:Y,depth:$.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}});const bl=m(yl,[["__scopeId","data-v-db75407b"]]),Ze=n=>(z("data-v-4489ee23"),n=n(),D(),n),kl=Ze(()=>u("div",{class:"curtain"},null,-1)),$l={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Pl=Ze(()=>u("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Vl=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const e=n,{sidebarGroups:t,hasSidebar:s}=O();let o=w(null);function r(){Xe(o.value,{reserveScrollBarGap:!0})}function d(){Qe()}return pt(async()=>{var p;e.open?(r(),(p=o.value)==null||p.focus()):d()}),(p,_)=>l(s)?(a(),i("aside",{key:0,class:T(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:o,onClick:_[0]||(_[0]=ht(()=>{},["stop"]))},[kl,u("nav",$l,[Pl,c(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),i(C,null,H(l(t),y=>(a(),i("div",{key:y.text,class:"group"},[h(bl,{item:y,depth:0},null,8,["item"])]))),128)),c(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}});const wl=m(Vl,[["__scopeId","data-v-4489ee23"]]),Sl=g({__name:"VPSkipLink",setup(n){const e=te(),t=w();K(()=>e.path,()=>t.value.focus());function s({target:o}){const r=document.getElementById(decodeURIComponent(o.hash).slice(1));if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(o,r)=>(a(),i(C,null,[u("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}});const Ll=m(Sl,[["__scopeId","data-v-9fa85018"]]),Ml=g({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=O(),o=te();K(()=>o.path,s),Ot(e,s),oe("close-sidebar",s),oe("is-sidebar-open",e);const{frontmatter:r}=P(),d=ft(),p=k(()=>!!d["home-hero-image"]);return oe("hero-image-slot-exists",p),(_,y)=>{const L=U("Content");return l(r).layout!==!1?(a(),i("div",{key:0,class:T(["Layout",l(r).pageClass])},[c(_.$slots,"layout-top",{},void 0,!0),h(Ll),h(kt,{class:"backdrop",show:l(e),onClick:l(s)},null,8,["show","onClick"]),l(r).navbar!==!1?(a(),b(vl,{key:0},{"nav-bar-title-before":v(()=>[c(_.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(_.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(_.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(_.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[c(_.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(_.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3})):f("",!0),h(yo,{open:l(e),onOpenMenu:l(t)},null,8,["open","onOpenMenu"]),h(wl,{open:l(e)},{"sidebar-nav-before":v(()=>[c(_.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[c(_.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(Js,null,{"page-top":v(()=>[c(_.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(_.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[c(_.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[c(_.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(_.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(_.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(_.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(_.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(_.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[c(_.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(_.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(_.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[c(_.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(_.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[c(_.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(_.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(_.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(_.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(_.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(_.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(so),c(_.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(L,{key:1}))}}});const Cl=m(Ml,[["__scopeId","data-v-1f16208e"]]);const Tl={Layout:Cl,enhanceApp:({app:n})=>{n.component("Badge",gt)}};export{Tl as t,P as u}; diff --git a/assets/communication.md.03c12ebf.js b/assets/communication.md.03c12ebf.js new file mode 100644 index 00000000..66811ddf --- /dev/null +++ b/assets/communication.md.03c12ebf.js @@ -0,0 +1,672 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as c,v as r,b as y,t as s,O as p,R as a,M as n}from"./chunks/framework.0d8bea05.js";const E=JSON.parse('{"title":"组件之间的通信","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"communication.md","filePath":"communication.md"}'),F={name:"communication.md"},D=a('

组件之间的通信

经过前面几章的阅读,相信开发者已经可以搭建一个基础的 Vue 3 项目了!

但实际业务开发过程中,还会遇到一些组件之间的通信问题,父子组件通信、兄弟组件通信、爷孙组件通信,还有一些全局通信的场景。

TIP

这一章节的内容,Vue 3 对比 Vue 2 的变化都比较大!

这一章就按使用场景来划分对应的章节吧,在什么场景下遇到问题,也方便快速找到对应的处理办法。

通信场景快速定位
父子组件通信点击查看
爷孙组件通信点击查看
兄弟组件通信点击查看
全局组件通信点击查看
',6),i=a(`

父子组件通信

父子组件通信是指,B 组件引入到 A 组件里渲染,此时 A 是 B 的父级;B 组件的一些数据需要从 A 组件拿,B 组件有时也要告知 A 组件一些数据变化情况。

他们之间的关系如下, Child.vue 是直接挂载在 Father.vue 下面:

bash
# 父组件
+Father.vue
+ # 子组件
+└─Child.vue

常用的方法有:

方案父组件向子组件子组件向父组件对应章节传送门
props / emitspropsemits点击查看
v-model / emitsv-modelemits点击查看
ref / emitsrefemits点击查看
provide / injectprovideinject点击查看
EventBusemit / onemit / on点击查看
Reactive State--点击查看
Vuex--点击查看
Pinia--点击查看

为了方便阅读,下面的父组件统一叫 Father.vue ,子组件统一叫 Child.vue 。

WARNING

在 Vue 2 ,有的开发者可能喜欢用 $attrs / $listeners 来进行通信,但该方案在 Vue 3 已经移除了,详见 移除 $listeners

props / emits

这是 Vue 跨组件通信最常用,也是基础的一个方案,它的通信过程是:

  1. 父组件 Father.vue 通过 props 向子组件 Child.vue 传值
  2. 子组件 Child.vue 则可以通过 emits 向父组件 Father.vue 发起事件通知

最常见的场景就是统一在父组件发起 AJAX 请求,拿到数据后,再根据子组件的渲染需要传递不同的 props 给不同的子组件使用。

下发 props

注:这一小节的步骤是在 Father.vue 里操作。

下发的过程是在 Father.vue 里完成的,父组件在向子组件下发 props 之前,需要导入子组件并启用它作为自身的模板,然后在 setup 里处理好数据并 return 给 <template /> 用。

在 Father.vue 的 <script /> 里:

ts
// Father.vue
+import { defineComponent } from 'vue'
+import Child from '@cp/Child.vue'
+
+interface Member {
+  id: number
+  name: string
+}
+
+export default defineComponent({
+  // 需要启用子组件作为模板
+  components: {
+    Child,
+  },
+
+  // 定义一些数据并 \`return\` 给 \`<template />\` 用
+  setup() {
+    const userInfo: Member = {
+      id: 1,
+      name: 'Petter',
+    }
+
+    // 不要忘记 \`return\` ,否则 \`<template />\` 拿不到数据
+    return {
+      userInfo,
+    }
+  },
+})

然后在 Father.vue 的 <template /> 这边拿到 return 出来的数据,把要传递的数据通过属性的方式绑定在组件标签上。

vue
<!-- Father.vue -->
+<template>
+  <Child
+    title="用户信息"
+    :index="1"
+    :uid="userInfo.id"
+    :user-name="userInfo.name"
+  />
+</template>

这样就完成了 props 数据的下发。

<template /> 绑定属性这里,如果是普通的字符串,比如上面的 title,则直接给属性名赋值就可以。

如果是变量名,或者其他类型如 numberboolean 等,比如上面的 index,则需要通过属性动态绑定的方式来添加,使用 v-bind: 或者 : 符号进行绑定。

另外官方文档推荐对 camelCase 风格(小驼峰)命名的 props ,在绑定时使用和 HTML attribute 一样的 kebab-case 风格(短横线),例如使用 user-name 代替 userName 传递,详见官网的 传递 prop 的细节 一节。

接收 props

注:这一小节的步骤是在 Child.vue 里操作。

接收的过程是在 Child.vue 里完成的,在 <script /> 部分,子组件通过与 setup 同级的 props 来接收数据。

它可以是一个 string[] 数组,把要接受的变量名放到这个数组里,直接放进来作为数组的 item

ts
// Child.vue
+export default defineComponent({
+  props: ['title', 'index', 'userName', 'uid'],
+})

但这种情况下,使用者不知道这些属性的使用限制,例如是什么类型的值、是否必传等等。

带有类型限制的 props

注:这一小节的步骤是在 Child.vue 里操作。

和 TypeScript 一样,类型限制可以为程序带来更好的健壮性, Vue 的 props 也支持增加类型限制。

相对于传递一个 string[] 类型的数组,更推荐的方式是把 props 定义为一个对象,以对象形式列出,每个 Property 的名称和值分别是各自的名称和类型,只有合法的类型才允许传入。

TIP

注意,和 TS 的类型定义不同, props 这里的类型,首字母需要大写,也就是 JavaScript 的基本类型。

支持的类型有:

类型含义
String字符串
Number数值
Boolean布尔值
Array数组
Object对象
Date日期数据,e.g. new Date()
Function函数,e.g. 普通函数、箭头函数、构造函数
PromisePromise 类型的函数
SymbolSymbol 类型的值

了解了基本的类型限制用法之后,接下来给 props 加上类型限制:

ts
// Child.vue
+export default defineComponent({
+  props: {
+    title: String,
+    index: Number,
+    userName: String,
+    uid: Number,
+  },
+})

现在如果传入不正确的类型,程序就会抛出警告信息,告知开发者必须正确传值。

如果需要对某个 Prop 允许多类型,比如这个 uid 字段,可能是数值,也可能是字符串,那么可以在类型这里,使用一个数组,把允许的类型都加进去。

ts
// Child.vue
+export default defineComponent({
+  props: {
+    // 单类型
+    title: String,
+    index: Number,
+    userName: String,
+
+    // 这里使用了多种类型
+    uid: [Number, String],
+  },
+})

可选以及带有默认值的 props

注:这一小节的步骤是在 Child.vue 里操作。

所有 props 默认都是可选的,如果不传递具体的值,则默认值都是 undefined ,可能引起程序运行崩溃, Vue 支持对可选的 props 设置默认值,也是通过对象的形式配置 props 的选项。

其中支持配置的选项有:

选项类型含义
typestring类型
requiredboolean是否必传, true 代表必传, false 代表可选
defaultanytype 选项的类型相对应的默认值,如果 required 选项是 false ,但这里不设置默认值,则会默认为 undefined
validatorfunction自定义验证函数,需要 return 一个布尔值, true 代表校验通过, false 代表校验不通过,当校验不通过时,控制台会抛出警告信息

了解了配置选项后,接下来再对 props 进行改造,将其中部分选项设置为可选,并提供默认值:

ts
// Child.vue
+export default defineComponent({
+  props: {
+    // 可选,并提供默认值
+    title: {
+      type: String,
+      required: false,
+      default: '默认标题',
+    },
+
+    // 默认可选,单类型
+    index: Number,
+
+    // 添加一些自定义校验
+    userName: {
+      type: String,
+
+      // 在这里校验用户名必须至少 3 个字
+      validator: (v) => v.length >= 3,
+    },
+
+    // 默认可选,但允许多种类型
+    uid: [Number, String],
+  },
+})

使用 props ~new

注:这一小节的步骤是在 Child.vue 里操作。

<template /> 部分, Vue 3 的使用方法和 Vue 2 是一样的,比如要渲染父组件传入的 props :

vue
<!-- Child.vue -->
+<template>
+  <p>标题:{{ title }}</p>
+  <p>索引:{{ index }}</p>
+  <p>用户id:{{ uid }}</p>
+  <p>用户名:{{ userName }}</p>
+</template>

但是 <script /> 部分,变化非常大!

在 Vue 2 里,只需要通过 this.uidthis.userName 就可以使用父组件传下来的 Prop ,但是 Vue 3 没有了 this ,所以是通过 setup 的入参进行操作。

ts
// Child.vue
+export default defineComponent({
+  props: {
+    title: String,
+    index: Number,
+    userName: String,
+    uid: Number,
+  },
+
+  // 在这里需要添加一个入参
+  setup(props) {
+    // 该入参包含了当前组件定义的所有 props
+    console.log(props)
+  },
+})

关于 Setup 函数的第一个入参 props

  1. 该入参包含了当前组件定义的所有 props (如果父组件 Father.vue 传进来的数据在 Child.vue 里未定义,不仅不会拿到,并且在控制台会有警告信息)。
  2. 该入参可以随意命名,比如可以写成一个下划线 _ ,通过 _.uid 也可以拿到数据,但是语义化命名是一个良好的编程习惯。
  3. 该入参具备响应性,父组件修改了传递下来的值,子组件也会同步得到更新,因此请不要直接解构,可以通过 toRef 或 toRefs API 转换为响应式变量

传递非 props 的属性

上一小节最后有一句提示是:

如果父组件 Father.vue 传进来的数据在 Child.vue 里未定义,不仅不会拿到,并且在控制台会有警告信息。

这种情况虽然无法从 props 里拿到对应的数据,但也不意味着不能传递任何未定义的属性数据,在父组件,除了可以给子组件绑定 props ,还可以根据实际需要去绑定一些特殊的属性。

比如给子组件设置 classid,或者 data-xxx 之类的一些自定义属性,如果子组件 Child.vue 的 <template /> 里只有一个根节点,那么这些属性默认会自动继承并渲染在 Node 节点上。

假设当前在子组件 Child.vue 是如下这样只有一个根节点,并且未接收任何 props :

TIP

如果已安装 Vue VSCode Snippets 这个 VSCode 插件,可以在空的 .vue 文件里输入 v3 ,在出现的代码片段菜单里选择 vbase-3-ts 生成一个 Vue 组件的基础代码片段。

vue
<!-- Child.vue -->
+<template>
+  <div class="child">子组件</div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    return {}
+  },
+})
+</script>
+
+<style scoped>
+.child {
+  width: 100%;
+}
+</style>

在 Father.vue 里对 Child.vue 传递了多个属性:

vue
<!-- Father.vue -->
+<template>
+  <Child
+    id="child-component"
+    class="class-name-from-father"
+    :keys="['foo', 'bar']"
+    :obj="{ foo: 'bar' }"
+    data-hash="b10a8db164e0754105b7a99be72e3fe5"
+  />
+</template>

回到浏览器,通过 Chrome 的审查元素可以看到子组件 Child.vue 在渲染后,按照 HTML 属性的渲染规则生成了多个属性:

html
<!-- Child.vue 在浏览器里渲染后的 HTML DOM 结构 -->
+<div
+  class="child class-name-from-father"
+  id="child-component"
+  keys="foo,bar"
+  obj="[object Object]"
+  data-hash="b10a8db164e0754105b7a99be72e3fe5"
+  data-v-2dcc19c8=""
+  data-v-7eb2bc79=""
+>
+  子组件
+</div>

TIP

其中有两个以 data-v- 开头的属性是 <style /> 标签开启了 Style Scoped 功能自动生成的 Hash 值。

可以在 Child.vue 配置 inheritAttrsfalse 来屏蔽这些非 props 属性的渲染。

ts
// Child.vue
+export default defineComponent({
+  inheritAttrs: false,
+  setup() {
+    // ...
+  },
+})

关闭了 之后,现在的 DOM 结构如下,只保留了两个由 Style Scoped 生成的 Hash 值:

html
<!-- Child.vue 在浏览器里渲染后的 HTML DOM 解构 -->
+<div class="child" data-v-2dcc19c8="" data-v-7eb2bc79="">子组件</div>

这一类非 props 属性通常称之为 attrs 。

刚接触 Vue 的开发者可能容易混淆这两者,确实是非常接近,都是由父组件传递,由子组件接收,支持传递的数据类型也一样,但为什么一部分是在 props 获取,一部分在 attrs 获取呢?笔者给出一个比较容易记忆的方式,不一定特别准确,但相信可以帮助开发者加深两者的区别理解。

根据它们的缩写,其实是可以知道 Prop 是指 Property ,而 Attr 是指 Attribute ,虽然都是 “属性” ,但 Property 更接近于事物本身的属性,因此需要在组件里声明,而 Attribute 更偏向于赋予的属性,因此用于指代父组件传递的其他未被声明为 Property 的属性。

获取非 props 的属性 ~new

注:这一小节的步骤是在 Child.vue 里操作。

在上一小节 传递非 props 的属性 已经在父组件 Father.vue 里向子组件 Child.vue 传递了一些 attrs 自定义属性,在子组件里想要拿到这些属性,使用原生 JavaScript 操作是需要通过 Element.getAttribute() 方法,但 Vue 提供了更简单的操作方式。

在 Child.vue 里,可以通过 setup 的第二个参数 context 里的 attrs 来获取到这些属性,并且父组件传递了什么类型的值,获取到的也是一样的类型,这一点和使用 Element.getAttribute() 完全不同。

ts
// Child.vue
+export default defineComponent({
+  setup(props, { attrs }) {
+    // \`attrs\` 是个对象,每个 Attribute 都是它的 \`key\`
+    console.log(attrs.id) // child-component
+    console.log(attrs.class) // class-name-from-father
+
+    // 传递数组会被保留类型,不会被转换为 \`key1,key2\` 这样的字符串
+    // 这一点与 \`Element.getAttribute()\` 完全不同
+    console.log(attrs.keys) // ['foo', 'bar']
+
+    // 传递对象也可以正常获取
+    console.log(attrs.obj) // {foo: 'bar'}
+
+    // 如果传下来的 Attribute 带有短横线,需要通过这种方式获取
+    console.log(attrs['data-hash']) // b10a8db164e0754105b7a99be72e3fe5
+  },
+})

TIP

子组件不论是否设置 inheritAttrs 属性,都可以通过 attrs 拿到父组件传递下来的数据,但是如果要使用 Element.getAttribute() 则只有当 inheritAttrstrue 的时候才可以,因为此时在 DOM 上才会渲染这些属性。

与 Vue 2 的 <template /> 只能有一个根节点不同, Vue 3 允许多个根节点,多个根节点的情况下,无法直接继承这些 attrs 属性(在 inheritAttrs: true 的情况也下无法默认继承),需要在子组件 Child.vue 里通过 v-bind 绑定到要继承在节点上。

可以通过 Vue 实例属性 $attrs 或者从 setup 函数里把 attrs return 出来使用。

vue
<!-- Child.vue -->
+<template>
+  <!-- 默认不会继承属性 -->
+  <div class="child">不会继承</div>
+
+  <!-- 绑定后可继承, \`$attrs\` 是一个 Vue 提供的实例属性 -->
+  <div class="child" v-bind="$attrs">使用 $attrs 继承</div>
+
+  <!-- 绑定后可继承, \`attrs\` 是从 \`setup\` 里 \`return\` 出来的变量 -->
+  <div class="child" v-bind="attrs">使用 attrs 继承</div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup(props, { attrs }) {
+
+    return {
+      attrs,
+    }
+  },
+})
+</script>

绑定 emits ~new

注:这一小节的步骤是在 Father.vue 里操作。

如果父组件 Father.vue 需要获取子组件 Child.vue 的数据更新情况,可以由子组件通过 emits 进行通知,下面这个更新用户年龄的例子可以学习如何给子组件绑定 emit 事件。

事件的逻辑是由父组件决定的,因此需要在父组件 Father.vue 的 <script /> 里先声明数据变量和一个更新函数,并且这个更新函数通常会有一个入参作为数据的新值接收。

在本例子里,父组件声明了一个 updateAge 方法,它接受一个入参 newAge ,代表新的年龄数据,这个入参的值将由子组件 Child.vue 在触发 emits 时传入。

因为还需要在 <template /> 部分绑定给子组件,所以请记得 return 出来。

ts
// Father.vue
+import { defineComponent, reactive } from 'vue'
+import Child from '@cp/Child.vue'
+
+interface Member {
+  id: number
+  name: string
+  age: number
+}
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+  setup() {
+    const userInfo: Member = reactive({
+      id: 1,
+      name: 'Petter',
+      age: 0,
+    })
+
+    /**
+     * 声明一个更新年龄的方法
+     * @param newAge - 新的年龄,由子组件触发 emits 时传递
+     */
+    function updateAge(newAge: number) {
+      userInfo.age = newAge
+    }
+
+    return {
+      userInfo,
+      updateAge,
+    }
+  },
+})

再看 Father.vue 的 <template /> 部分,和 Click 事件使用 @click 一样,自定义的 emits 事件也是通过 v-on 或者是 @ 来绑定:

vue
<!-- Father.vue -->
+<template>
+  <Child @update-age="updateAge" />
+</template>

和 props 一样,官方文档也推荐将 camelCase 风格(小驼峰)命名的函数,在绑定时使用 kebab-case 风格(短横线),例如使用 update-age 代替 updateAge 传递。

接收并调用 emits ~new

注:这一小节的步骤是在 Child.vue 里操作。

和 props 一样,可以指定是一个数组,把要接收的 emit 事件名称写进去:

ts
// Child.vue
+export default defineComponent({
+  emits: ['update-age'],
+})

和 props 不同,通常情况下 emits 这样配置就足够使用了。

接下来如果子组件需要更新数据并通知父组件,可以使用 setup 第二个参数 context 里的 emit 方法触发:

ts
// Child.vue
+export default defineComponent({
+  emits: ['update-age'],
+  setup(props, { emit }) {
+    // 通知父组件将年龄设置为 \`2\`
+    emit('update-age', 2)
+  },
+})

emit 方法最少要传递一个参数:事件名称。

事件名称是指父组件 Father.vue 绑定事件时 @update-age="updateAge" 里的 update-age ,如果改成 @hello="updateAge" ,那么事件名称就需要使用 hello ,一般情况下事件名称和更新函数的名称会保持一致,方便维护。

对于需要更新数据的情况, emit 还支持传递更多的参数,对应更新函数里的入参,所以可以看到上面例子里的 emit('update-age', 2) 有第二个参数,传递了一个 2 的数值,就是作为父组件 updateAge 的入参 newAge 传递。

如果需要通信的数据很多,建议第二个入参使用一个对象来管理数据,例如父组件调整为:

ts
// Father.vue
+function updateInfo({ name, age }: Member) {
+  // 当 \`name\` 变化时更新 \`name\` 的值
+  if (name && name !== userInfo.name) {
+    userInfo.name = name
+  }
+
+  // 当 \`age\` 变化并且新值在正确的范围内时,更新 \`age\` 的值
+  if (age > 0 && age !== userInfo.age) {
+    userInfo.age = age
+  }
+}

子组件在传递新数据时,就应该使用对象的形式传递:

ts
// Child.vue
+emit('update-info', {
+  name: 'Tom',
+  age: 18,
+})

这对于更新表单等数据量较多的场景非常好用。

接收 emits 时做一些校验

注:这一小节的步骤是在 Child.vue 里操作。

和 props 一样,子组件在接收 emits 时也可以对这些事件做一些验证,这个时候就需要将 emits 配置为对象,然后把事件名称作为 keyvalue 则对应为一个用来校验的方法。

还是用回上文那个更新年龄的方法,如果需要增加一个条件:当达到成年人的年龄时才会更新父组件的数据,那么就可以将 emits 调整为:

ts
// Child.vue
+export default defineComponent({
+  emits: {
+    // 需要校验
+    'update-age': (age: number) => {
+      // 写一些条件拦截,返回 \`false\` 表示验证不通过
+      if (age < 18) {
+        console.log('未成年人不允许参与')
+        return false
+      }
+
+      // 通过则返回 \`true\`
+      return true
+    },
+
+    // 一些无需校验的,设置为 \`null\` 即可
+    'update-name': null,
+  },
+})

接下来如果提交 emit('update-age', 2) ,因为不满足验证条件,浏览器控制台将会出现一段 [Vue warn]: Invalid event arguments: event validation failed for event "update-age". 这样的警告信息。

v-model / emits

相对于 props / emits 这一对通信方案,使用 v-model 的方式更为简单:

  1. 在 Father.vue ,通过 v-model 向 Child.vue 传值

  2. Child.vue 通过自身设定的 emits 向 Father.vue 通知数据更新

v-model 的用法和 props 非常相似,但是很多操作上更为简化,但操作简单带来的 “副作用” ,就是功能上也没有 props 那么多。

绑定 v-model ~new

注:这一小节的步骤是在 Father.vue 里操作。

和下发 props 的方式类似,都是在子组件上绑定 Father.vue 定义好的数据,这是绑定一个数据的例子:

vue
<!-- Father.vue -->
+<template>
+  <Child v-model:username="userInfo.name" />
+</template>

和 Vue 2 不同, Vue 3 可以直接绑定 v-model ,而无需在子组件指定 model 选项 ,并且 Vue 3 的 v-model 需要使用英文冒号 : 指定要绑定的属性名,同时也支持绑定多个 v-model 。

如果要绑定多个数据,写多个 v-model 即可:

vue
<!-- Father.vue -->
+<template>
+  <Child
+    v-model:uid="userInfo.id"
+    v-model:username="userInfo.name"
+    v-model:age="userInfo.age"
+  />
+</template>

看到这里应该能明白了,一个 v-model 其实就是一个 prop ,它支持的数据类型和 prop 是一样的,所以子组件在接收数据的时候,完全按照 props 去定义就可以了。

点击回顾:接收 props ,了解在 Child.vue 如何接收 props,以及相关的 props 类型限制等部分内容。

配置 emits ~new

注:这一小节的步骤是在 Child.vue 里操作。

虽然 v-model 的配置和 props 相似,但是为什么出这么两个相似的东西?自然是为了简化一些开发上的操作。

使用 props / emits ,如果要更新父组件的数据,还需要在父组件声明一个更新函数并绑定事件给子组件,才能够更新。

而使用 v-model / emits ,无需在父组件声明更新函数,只需要在子组件 Child.vue 里通过 update: 前缀加上 v-model 的属性名这样的格式,即可直接定义一个更新事件。

ts
// Child.vue
+export default defineComponent({
+  props: {
+    uid: Number,
+    username: String,
+    age: Number,
+  },
+  // 注意这里的 \`update:\` 前缀
+  emits: ['update:uid', 'update:username', 'update:age'],
+})

这里的 update 后面的属性名,支持驼峰写法,这一部分和 Vue 2 的使用是相同的。

在配置 emits 时,也可以对数据更新做一些校验,配置方式和讲解 props / emits 时 接收 emits 时做一些校验 这一小节的操作是一样的。

在 Child.vue 配置好 emits 之后,就可以在 setup 里直接操作数据的更新了:

ts
// Child.vue
+export default defineComponent({
+  setup(props, { emit }) {
+    // 2s 后更新用户名
+    setTimeout(() => {
+      emit('update:username', 'Tom')
+    }, 2000)
+  },
+})

子组件通过调用 emit('update:xxx') 即可让父组件更新对应的数据。

ref / emits

在学习 响应式 API 之 ref 的时候,已讲解过 ref 是可以用在 DOM 元素与子组件 上面,所以也可以使用 ref 配合 emits 完成父子组件的通信。

父组件操作子组件 ~new

注:这一小节的步骤是在 Father.vue 里操作。

父组件可以给子组件绑定 ref 属性,然后通过 Ref 变量操作子组件的数据或者调用子组件里面的方法。

先在 <template /> 处给子组件标签绑定 ref 属性:

vue
<!-- Father.vue -->
+<template>
+  <Child ref="child" />
+</template>

然后在 <script /> 部分定义好对应的变量名称 child (记得要 return 出来哦),即可通过该变量操作子组件上的变量或方法:

ts
// Father.vue
+import { defineComponent, onMounted, ref } from 'vue'
+import Child from '@cp/Child.vue'
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+  setup() {
+    // 给子组件定义一个 \`ref\` 变量
+    const child = ref<InstanceType<typeof Child>>()
+
+    // 请保证视图渲染完毕后再执行操作
+    onMounted(async () => {
+      // 执行子组件里面的 AJAX 请求函数
+      await child.value!.queryList()
+
+      // 显示子组件里面的弹窗
+      child.value!.isShowDialog = true
+    })
+
+    // 必须 \`return\` 出去才可以给到 \`<template />\` 使用
+    return {
+      child,
+    }
+  },
+})

需要注意的是,在子组件 Child.vue 里,变量和方法也需要在 setup 里 return 出来才可以被父组件调用到。

子组件通知父组件

子组件如果想主动向父组件通讯,也需要使用 emits ,详细的配置方法可见:绑定 emits

爷孙组件通信

顾名思义,爷孙组件是比 父子组件通信 要更深层次的引用关系(也有称之为 “隔代组件” )。

C 组件被引入到 B 组件里, B 组件又被引入到 A 组件里渲染,此时 A 是 C 的爷爷级别(可能还有更多层级关系),它们之间的关系可以假设如下:

Grandfather.vue
+└─Son.vue
+  └─Grandson.vue

可以看到 Grandson.vue 并非直接挂载在 Grandfather.vue 下面,他们之间还隔着至少一个 Son.vue (在实际业务中可能存在更多层级),如果使用 props ,只能一级组件一级组件传递下去,就太繁琐了。

`,158),C=a('

因此需要更直接的通信方式来解决这种问题,这一 Part 就是讲一讲 C 和 A 之间的数据传递,常用的方法有:

方案爷组件向孙组件孙组件向爷组件对应章节传送门
provide / injectprovideinject点击查看
EventBusemit / onemit / on点击查看
Reactive State--点击查看
Vuex--点击查看
Pinia--点击查看

因为上下级的关系的一致性,爷孙组件通信的方案也适用于 父子组件通信 ,只需要把爷孙关系换成父子关系即可,为了方便阅读,下面的爷组件统一叫 Grandfather.vue,子组件统一叫 Grandson.vue 。

provide / inject

这个通信方式也是有两部分:

  1. Grandfather.vue 通过 provide 向孙组件 Grandson.vue 提供数据和方法
  2. Grandson.vue 通过 inject 注入爷爷组件 Grandfather.vue 的数据和方法

无论组件层次结构有多深,发起 provide 的组件都可以作为其所有下级组件的依赖提供者。

',7),A=a(`

Vue 3 的这一部分内容对比 Vue 2 来说变化很大,但使用起来其实也很简单,开发者学到这里不用慌,它们之间也有相同的地方:

  1. 爷组件不需要知道哪些子组件使用它 provide 的数据
  2. 子组件不需要知道 inject 的数据来自哪里

另外要切记一点就是: provide 和 inject 绑定并不是可响应的,这是刻意为之的,除非传入了一个可侦听的对象。

发起 provide ~new

注:这一小节的步骤是在 Grandfather.vue 里操作。

先来回顾一下 Vue 2 的用法:

ts
export default {
+  // 在 \`data\` 选项里定义好数据
+  data() {
+    return {
+      tags: ['中餐', '粤菜', '烧腊'],
+    }
+  },
+  // 在 \`provide\` 选项里添加要提供的数据
+  provide() {
+    return {
+      tags: this.tags,
+    }
+  },
+}

旧版的 provide 用法和 data 类似,都是配置为一个返回对象的函数,而 Vue 3 的新版 provide ,和 Vue 2 的用法区别比较大。

在 Vue 3 , provide 需要导入并在 setup 里启用,并且现在是一个全新的方法,每次要 provide 一个数据的时候,就要单独调用一次。

provide 的 TS 类型如下:

ts
// \`provide\` API 本身的类型
+function provide<T>(key: InjectionKey<T> | string, value: T): void
+
+// 入参 \`key\` 的其中一种类型
+interface InjectionKey<T> extends Symbol {}

每次调用 provide 的时候都需要传入两个参数:

参数说明
key数据的名称
value数据的值

其中 key 一般使用 string 类型就可以满足大部分业务场景,如果有特殊的需要(例如开发插件时可以避免和用户的业务冲突),可以使用 InjectionKey<T> 类型,这是一个继承自 Symbol 的泛型:

ts
import type { InjectionKey } from 'vue'
+const key = Symbol() as InjectionKey<string>

还需要注意的是, provide 不是响应式的,如果要使其具备响应性,需要传入响应式数据,详见:响应性数据的传递与接收

下面来试试在爷组件 Grandfather.vue 里创建数据 provide 下去:

ts
// Grandfather.vue
+import { defineComponent, provide, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 声明一个响应性变量并 provide 其自身
+    // 孙组件获取后可以保持响应性
+    const msg = ref('Hello World!')
+    provide('msg', msg)
+
+    // 只 provide 响应式变量的值
+    // 孙组件获取后只会得到当前的值
+    provide('msgValue', msg.value)
+
+    // 声明一个方法并 provide
+    function printMsg() {
+      console.log(msg.value)
+    }
+    provide('printMsg', printMsg)
+  },
+})

接收 inject ~new

注:这一小节的步骤是在 Grandson.vue 里操作。

也是先回顾一下在 Vue 2 里的用法,和接收 props 类似:

ts
export default {
+  // 通过 \`inject\` 选项获取
+  inject: ['tags'],
+  mounted() {
+    console.log(this.tags)
+  },
+}

Vue 3 的新版 inject 和 Vue 2 的用法区别也是比较大,在 Vue 3 , inject 和 provide 一样,也是需要先导入然后在 setup 里启用,也是一个全新的方法,每次要 inject 一个数据的时候,也是要单独调用一次。

另外还有一个特殊情况需要注意,当 Grandson.vue 的父级、爷级组件都 provide 了相同名字的数据下来,那么在 inject 的时候,会优先选择离它更近的组件的数据。

根据不同的场景, inject 可以接受不同数量的入参,入参类型也各不相同。

默认用法

默认情况下, inject API 的 TS 类型如下:

ts
function inject<T>(key: InjectionKey<T> | string): T | undefined

每次调用时只需要传入一个参数:

参数类型说明
keystring与 provide 相对应的数据名称

接下来看看如何在孙组件里 inject 爷组件 provide 下来的数据:

ts
// Grandson.vue
+import { defineComponent, inject } from 'vue'
+import type { Ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取响应式变量
+    const msg = inject<Ref<string>>('msg')
+    console.log(msg!.value)
+
+    // 获取普通的字符串
+    const msgValue = inject<string>('msgValue')
+    console.log(msgValue)
+
+    // 获取函数
+    const printMsg = inject<() => void>('printMsg')
+    if (typeof printMsg === 'function') {
+      printMsg()
+    }
+  },
+})

可以看到在每个 inject 都使用尖括号 <> 添加了相应的 TS 类型,并且在调用变量的时候都进行了判断,这是因为默认的情况下, inject 除了返回指定类型的数据之外,还默认带上 undefined 作为可能的值。

如果明确数据不会是 undefined ,也可以在后面添加 as 关键字指定其 TS 类型,这样 TypeScript 就不再因为可能出现 undefined 而提示代码有问题。

ts
// Grandson.vue
+import { defineComponent, inject } from 'vue'
+import type { Ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取响应式变量
+    const msg = inject('msg') as Ref<string>
+    console.log(msg.value)
+
+    // 获取普通的字符串
+    const msgValue = inject('msgValue') as string
+    console.log(msgValue)
+
+    // 获取函数
+    const printMsg = inject('printMsg') as () => void
+    printMsg()
+  },
+})

设置默认值

inject API 还支持设置默认值,可以接受更多的参数。

默认情况下,只需要传入第二个参数指定默认值即可,此时它的 TS 类型如下,

ts
function inject<T>(key: InjectionKey<T> | string, defaultValue: T): T

对于不可控的情况,建议在 inject 时添加一个兜底的默认值,防止程序报错:

ts
// Grandson.vue
+import { defineComponent, inject, ref } from 'vue'
+import type { Ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取响应式变量
+    const msg = inject<Ref<string>>('msg', ref('Hello'))
+    console.log(msg.value)
+
+    // 获取普通的字符串
+    const msgValue = inject<string>('msgValue', 'Hello')
+    console.log(msgValue)
+
+    // 获取函数
+    const printMsg = inject<() => void>('printMsg', () => {
+      console.log('Hello')
+    })
+    printMsg()
+  },
+})

需要注意的是, inject 的什么类型的数据,其默认值也需要保持相同的类型。

工厂函数选项

inject API 在第二个 TS 类型的基础上,还有第三个 TS 类型,可以传入第三个参数:

ts
function inject<T>(
+  key: InjectionKey<T> | string,
+  defaultValue: () => T,
+  treatDefaultAsFactory?: false
+): T

当第二个参数是一个工厂函数,那么可以添加第三个值,将其设置为 true ,此时默认值一定会是其 return 的值。

在 Grandson.vue 里新增一个 inject ,接收一个不存在的函数名,并提供一个工厂函数作为默认值:

ts
// Grandson.vue
+import { defineComponent, inject } from 'vue'
+
+interface Food {
+  name: string
+  count: number
+}
+
+export default defineComponent({
+  setup() {
+    // 获取工厂函数
+    const getFood = inject<() => Food>('nonexistentFunction', () => {
+      return {
+        name: 'Pizza',
+        count: 1,
+      }
+    })
+    console.log(typeof getFood) // function
+
+    const food = getFood()
+    console.log(food) // {name: 'Pizza', count: 1}
+  },
+})

此时因为第三个参数默认为 Falsy 值 ,所以可以得到一个函数作为默认值,并可以调用该函数获得一个 Food 对象。

如果将第三个参数传入为 true ,再运行程序则会在 const food = getFood() 这一行报错:

ts
// Grandson.vue
+import { defineComponent, inject } from 'vue'
+
+interface Food {
+  name: string
+  count: number
+}
+
+export default defineComponent({
+  setup() {
+    // 获取工厂函数
+    const getFood = inject<() => Food>(
+      'nonexistentFunction',
+      () => {
+        return {
+          name: 'Pizza',
+          count: 1,
+        }
+      },
+      true
+    )
+    console.log(typeof getFood) // object
+
+    // 此时下面的代码无法运行
+    // 报错 Uncaught (in promise) TypeError: getMsg is not a function
+    const food = getFood()
+    console.log(food)
+  },
+})

因为此时第三个入参告知 inject ,默认值是一个工厂函数,因此默认值不再是函数本身,而是函数的返回值,所以 typeof getFood 得到的不再是一个 function 而是一个 object

这个参数对于需要通过工厂函数返回数据的情况非常有用!

兄弟组件通信

兄弟组件是指两个组件都挂载在同一个 Father.vue 下,但两个组件之间并没有什么直接的关联,先看看它们的关系:

Father.vue
+├─Brother.vue
+└─LittleBrother.vue

这种层级关系下,如果组件之间要进行通信,目前通常有这两类选择:

  1. 【不推荐】先把数据传给 Father.vue ,再使用 父子组件通信 方案处理
  2. 【推荐】借助 全局组件通信 的方案达到目的

下面的内容将进入全局通信的讲解。

全局组件通信

全局组件通信是指项目下两个任意组件,不管是否有直接关联(例如父子关系、爷孙关系)都可以直接进行交流的通信方案。

举个例子,像下面这种项目结构, B2.vue 可以采用全局通信方案直接向 D2.vue 发起交流,而无需经过它们各自的父组件。

bash
A.vue
+├─B1.vue
+├───C1.vue
+├─────D1.vue
+├─────D2.vue
+├───C2.vue
+├─────D3.vue
+└─B2.vue

常用的方法有:

方案发起方接收方对应章节传送门
EventBusemiton点击查看
Reactive State--点击查看
Vuex--点击查看
Pinia--点击查看

EventBus ~new

EventBus 通常被称之为 “全局事件总线” ,是用在全局范围内通信的一个常用方案,在 Vue 2 时期该方案非常流行,其特点就是 “简单” 、 “灵活” 、 “轻量级” 。

回顾 Vue 2

在 Vue 2 ,使用 EventBus 无需导入第三方插件,可以在项目下的 libs 文件夹里,创建一个名为 eventBus.ts 的文件,导出一个新的 Vue 实例即可。

ts
// src/libs/eventBus.ts
+import Vue from 'vue'
+export default new Vue()

上面短短两句代码已完成了一个 EventBus 的创建,接下来就可以开始进行通信。

先在负责接收事件的组件里,利用 Vue 的生命周期,通过 eventBus.$on 添加事件侦听,通过 eventBus.$off 移除事件侦听。

ts
import eventBus from '@libs/eventBus'
+
+export default {
+  mounted() {
+    // 在组件创建时,添加一个名为 \`hello\` 的事件侦听
+    eventBus.$on('hello', () => {
+      console.log('Hello World')
+    })
+  },
+  beforeDestroy() {
+    // 在组件销毁前,通过 \`hello\` 这个名称移除该事件侦听
+    eventBus.$off('hello')
+  },
+}

然后在另外一个组件里通过 eventBus.$emit 触发事件侦听。

ts
import eventBus from './eventBus'
+
+export default {
+  methods: {
+    sayHello() {
+      // 触发名为 \`hello\` 的事件
+      eventBus.$emit('hello')
+    },
+  },
+}

这样一个简单的全局方案就完成了。

了解 Vue 3 ~new

Vue 3 应用实例不再实现事件触发接口,因此移除了 $on$off$once 这几个事件 API ,无法像 Vue 2 一样利用 Vue 实例创建 EventBus 。

根据官方文档在 事件 API 迁移策略 的推荐,可以使用 mitt 或者 tiny-emitter 等第三方插件实现 EventBus 。

创建 Vue 3 的 EventBus ~new

这里以 mitt 为例,示范如何创建一个 Vue 3 的 EventBus ,首先需要安装它。

npm i mitt

然后在 src/libs 文件夹下,创建一个名为 eventBus.ts 的文件,文件内容和 Vue 2 的写法其实是一样的,只不过是把 Vue 实例换成了 mitt 实例。

ts
// src/libs/eventBus.ts
+import mitt from 'mitt'
+export default mitt()

接下来就可以定义通信的相关事件了,常用的 API 和参数如下:

方法名称作用
on注册一个侦听事件,用于接收数据
emit调用方法发起数据传递
off用来移除侦听事件

on 的参数:

参数类型作用
typestring | symbol方法名
handlerfunction接收到数据之后要做什么处理的回调函数

这里的 handler 建议使用具名函数,因为匿名函数无法销毁。

emit 的参数:

参数类型作用
typestring | symbol与 on 对应的方法名
dataany与 on 对应的,允许接收的数据

off 的参数:

参数类型作用
typestring | symbol与 on 对应的方法名
handlerfunction要被删除的,与 on 对应的 handler 函数名

更多的 API 可以查阅 插件的官方文档 ,在了解了最基本的用法之后,来开始配置一对组件通信。

创建和移除侦听事件 ~new

在需要暴露交流事件的组件里,通过 on 配置好接收方法,同时为了避免路由切换过程中造成事件多次被绑定,从而引起多次触发,需要在适当的时机 off 掉:

ts
import { defineComponent, onBeforeUnmount } from 'vue'
+import eventBus from '@libs/eventBus'
+
+export default defineComponent({
+  setup() {
+    // 声明一个打招呼的方法
+    function sayHi(msg = 'Hello World!') {
+      console.log(msg)
+    }
+
+    // 启用侦听
+    eventBus.on('sayHi', sayHi)
+
+    // 在组件卸载之前移除侦听
+    onBeforeUnmount(() => {
+      eventBus.off('sayHi', sayHi)
+    })
+  },
+})

关于销毁的时机,可以参考 组件的生命周期

调用侦听事件 ~new

在需要调用交流事件的组件里,通过 emit 进行调用:

ts
import { defineComponent } from 'vue'
+import eventBus from '@libs/eventBus'
+
+export default defineComponent({
+  setup() {
+    // 调用打招呼事件,传入消息内容
+    eventBus.emit('sayHi', 'Hello')
+  },
+})

旧项目升级 EventBus

在 Vue 3 的 EventBus 里,可以看到它的 API 和旧版是非常接近的,只是去掉了 $ 符号。

如果要对旧的项目进行升级改造,由于原来都是使用了 $on$emit 等旧的 API ,一个一个组件去修改成新的 API 容易遗漏或者全局替换出错。

因此可以在创建 eventBus.ts 的时候,通过自定义一个 eventBus 对象来挂载 mitt 的 API 。

在 eventBus.ts 里,改成以下代码:

ts
// src/libs/eventBus.ts
+import mitt from 'mitt'
+
+// 初始化一个 mitt 实例
+const emitter = mitt()
+
+// 在导出时使用旧的 API 名称去调用 mitt 的 API
+export default {
+  $on: (...args) => emitter.on(...args),
+  $emit: (...args) => emitter.emit(...args),
+  $off: (...args) => emitter.off(...args),
+}

这样在组件里就可以继续使用 eventBus.$oneventBus.$emit 等旧 API ,不会影响旧项目的升级使用。

Reactive State ~new

在 Vue 3 里,使用响应式的 reactive API 也可以实现一个小型的状态共享库,如果运用在一个简单的 H5 活动页面这样小需求里,完全可以满足使用。

创建状态中心

首先在 src 目录下创建一个 state 文件夹,并添加一个 index.ts 文件,写入以下代码:

ts
// src/state/index.ts
+import { reactive } from 'vue'
+
+// 如果有多个不同业务的内部状态共享
+// 使用具名导出更容易维护
+export const state = reactive({
+  // 设置一个属性并赋予初始值
+  message: 'Hello World',
+
+  // 添加一个更新数据的方法
+  setMessage(msg: string) {
+    this.message = msg
+  },
+})

这就完成了一个简单的 Reactive State 响应式状态中心的创建。

设定状态更新逻辑

接下来在一个组件 Child.vue 的 <script /> 里添加以下代码,分别进行了以下操作:

  1. 打印初始值
  2. 对 state 里的数据启用侦听器
  3. 使用 state 里的方法更新数据
  4. 直接更新 state 的数据
ts
// Child.vue
+import { defineComponent, watch } from 'vue'
+import { state } from '@/state'
+
+export default defineComponent({
+  setup() {
+    console.log(state.message)
+    // Hello World
+
+    // 因为是响应式数据,所以可以侦听数据变化
+    watch(
+      () => state.message,
+      (val) => {
+        console.log('Message 发生变化:', val)
+      }
+    )
+
+    setTimeout(() => {
+      state.setMessage('Hello Hello')
+      // Message 发生变化: Hello Hello
+    }, 1000)
+
+    setTimeout(() => {
+      state.message = 'Hi Hi'
+      // Message 发生变化: Hi Hi
+    }, 2000)
+  },
+})

观察全局状态变化

继续在另外一个组件 Father.vue 里写入以下代码,导入 state 并在 <template /> 渲染其中的数据:

vue
<!-- Father.vue -->
+<template>
+  <div>{{ state.message }}</div>
+  <Child />
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+import Child from '@cp/Child.vue'
+import { state } from '@/state'
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+  setup() {
+    return {
+      state,
+    }
+  },
+})
+</script>

可以观察到当 Child.vue 里的定时器执行时, Father.vue 的视图也会同步得到更新。

一个无需额外插件即可实现的状态中心就这么完成了!

Vuex ~new

Vuex 是 Vue 生态里面非常重要的一个成员,运用于状态管理模式。

它也是一个全局的通信方案,对比 EventBus,Vuex 的功能更多,更灵活,但对应的学习成本和体积也相对较大,通常大型项目才会用上 Vuex 。

在了解之前

摘自 Vuex 仓库 README 文档的一段官方提示:

Pinia is now the new default
The official state management library for Vue has changed to Pinia. Pinia has almost the exact same or enhanced API as Vuex 5, described in Vuex 5 RFC. You could simply consider Pinia as Vuex 5 with a different name. Pinia also works with Vue 2.x as well.
Vuex 3 and 4 will still be maintained. However, it's unlikely to add new functionalities to it. Vuex and Pinia can be installed in the same project. If you're migrating existing Vuex app to Pinia, it might be a suitable option. However, if you're planning to start a new project, we highly recommend using Pinia instead.

意思是 Pinia 已经成为 Vue 生态最新的官方状态管理库,不仅适用于 Vue 3 ,也支持 Vue 2 ,而 Vuex 将进入维护状态,不再增加新功能, Vue 官方强烈建议在新项目中使用 Pinia 。

TIP

笔者建议:如果是全新的项目,建议直接使用 Pinia ,不仅更加适配 Vue 3 组合式 API 的使用,对 TypeScript 的支持也更完善,上手难度和使用舒适度均比 Vuex 更好, Vuex 正在逐渐退出舞台,请根据实际需求决定是否需要启用它。

Vuex 的目录结构

在 Vue 3 里使用 Vuex ,需要选择 4.x 版本,也是当前的 @latest 标签对应的版本,请先安装它。

bash
npm i vuex

接下来按照下面的目录结构创建对应的目录与文件:

bash
src
+ # Vuex 的目录
+├─store
+├───index.ts
+└─main.ts

一般情况下一个 index.ts 足矣,它是 Vuex 的入口文件,如果的项目比较庞大,可以在 store 目录下创建一个命名为 modules 的文件夹,使用 Vuex Modules 的方式导入到 index.ts 里去注册。

回顾 Vue 2

在 Vue 2 ,需要先分别导入 vuevuex,使用 use 方法启用 Vuex 后,通过 new Vuex.Store(...) 的方式进行初始化。

ts
// src/store/index.ts
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+Vue.use(Vuex)
+
+export default new Vuex.Store({
+  state: {},
+  mutations: {},
+  actions: {},
+  modules: {},
+})

之后在组件里就可以通过 this.$store 操作 Vuex 上的方法了。

ts
export default {
+  mounted() {
+    // 通过 \`this.$store\` 操作 Vuex
+    this.$store.commit('increment')
+    console.log(this.$store.state.count)
+  },
+}

了解 Vue 3 ~new

Vue 3 需要从 Vuex 里导入 createStore 创建实例:

ts
// src/store/index.ts
+import { createStore } from 'vuex'
+
+export default createStore({
+  state: {},
+  mutations: {},
+  actions: {},
+  modules: {},
+})

之后在 src/main.ts 里启用 Vuex :

ts
// src/main.ts
+import { createApp } from 'vue'
+import App from './App.vue'
+import store from './store'
+
+createApp(App)
+  .use(store) // 启用 Vuex
+  .mount('#app')

Vue 3 在组件里使用 Vuex 的方式和 Vue 2 有所不同,需要像使用路由那样通过一个组合式 API useStore 启用。

ts
import { defineComponent } from 'vue'
+import { useStore } from 'vuex'
+
+export default defineComponent({
+  setup() {
+    // 需要创建一个 store 变量
+    const store = useStore()
+
+    // 再使用 store 去操作 Vuex 的 API
+    // ...
+  },
+})

Vuex 的配置

除了初始化方式有一定的改变, Vuex 在 Vue 3 的其他配置和 Vue 2 是一样的。

由于现在在 Vue 3 里已经更推荐使用 Pinia , Vuex 已处于维护状态,因此关于 Vuex 的使用将不展开更多的介绍,有需要的开发者可以查看 Vuex 官网的 使用指南 了解更多。

Pinia ~new

Pinia 和 Vuex 一样,也是 Vue 生态里面非常重要的一个成员,也都是运用于全局的状态管理。

但面向 Componsition API 而生的 Pinia ,更受 Vue 3 喜爱,已被钦定为官方推荐的新状态管理工具。

为了阅读上的方便,对 Pinia 单独开了一章,请在 全局状态的管理 一章阅读。

`,156);function d(h,g,u,f,m,v){const e=n("ReadingTips"),o=n("ImgWrap"),l=n("ClientOnly"),t=n("GitalkComment");return r(),y("div",null,[D,s(e),i,s(l,null,{default:p(()=>[s(o,{src:"/assets/img/communication-prop-drilling.png",alt:"Props 的多级传递会非常繁琐(摘自 Vue 官网)"})]),_:1}),C,s(l,null,{default:p(()=>[s(o,{src:"/assets/img/communication-provide-inject.png",alt:"使用 provide / inject 后,问题将变得非常简单(摘自 Vue 官网)"})]),_:1}),A,s(l,null,{default:p(()=>[s(t,{issueId:62})]),_:1})])}const x=c(F,[["render",d]]);export{E as __pageData,x as default}; diff --git a/assets/communication.md.03c12ebf.lean.js b/assets/communication.md.03c12ebf.lean.js new file mode 100644 index 00000000..66811ddf --- /dev/null +++ b/assets/communication.md.03c12ebf.lean.js @@ -0,0 +1,672 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as c,v as r,b as y,t as s,O as p,R as a,M as n}from"./chunks/framework.0d8bea05.js";const E=JSON.parse('{"title":"组件之间的通信","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"communication.md","filePath":"communication.md"}'),F={name:"communication.md"},D=a('

组件之间的通信

经过前面几章的阅读,相信开发者已经可以搭建一个基础的 Vue 3 项目了!

但实际业务开发过程中,还会遇到一些组件之间的通信问题,父子组件通信、兄弟组件通信、爷孙组件通信,还有一些全局通信的场景。

TIP

这一章节的内容,Vue 3 对比 Vue 2 的变化都比较大!

这一章就按使用场景来划分对应的章节吧,在什么场景下遇到问题,也方便快速找到对应的处理办法。

通信场景快速定位
父子组件通信点击查看
爷孙组件通信点击查看
兄弟组件通信点击查看
全局组件通信点击查看
',6),i=a(`

父子组件通信

父子组件通信是指,B 组件引入到 A 组件里渲染,此时 A 是 B 的父级;B 组件的一些数据需要从 A 组件拿,B 组件有时也要告知 A 组件一些数据变化情况。

他们之间的关系如下, Child.vue 是直接挂载在 Father.vue 下面:

bash
# 父组件
+Father.vue
+ # 子组件
+└─Child.vue

常用的方法有:

方案父组件向子组件子组件向父组件对应章节传送门
props / emitspropsemits点击查看
v-model / emitsv-modelemits点击查看
ref / emitsrefemits点击查看
provide / injectprovideinject点击查看
EventBusemit / onemit / on点击查看
Reactive State--点击查看
Vuex--点击查看
Pinia--点击查看

为了方便阅读,下面的父组件统一叫 Father.vue ,子组件统一叫 Child.vue 。

WARNING

在 Vue 2 ,有的开发者可能喜欢用 $attrs / $listeners 来进行通信,但该方案在 Vue 3 已经移除了,详见 移除 $listeners

props / emits

这是 Vue 跨组件通信最常用,也是基础的一个方案,它的通信过程是:

  1. 父组件 Father.vue 通过 props 向子组件 Child.vue 传值
  2. 子组件 Child.vue 则可以通过 emits 向父组件 Father.vue 发起事件通知

最常见的场景就是统一在父组件发起 AJAX 请求,拿到数据后,再根据子组件的渲染需要传递不同的 props 给不同的子组件使用。

下发 props

注:这一小节的步骤是在 Father.vue 里操作。

下发的过程是在 Father.vue 里完成的,父组件在向子组件下发 props 之前,需要导入子组件并启用它作为自身的模板,然后在 setup 里处理好数据并 return 给 <template /> 用。

在 Father.vue 的 <script /> 里:

ts
// Father.vue
+import { defineComponent } from 'vue'
+import Child from '@cp/Child.vue'
+
+interface Member {
+  id: number
+  name: string
+}
+
+export default defineComponent({
+  // 需要启用子组件作为模板
+  components: {
+    Child,
+  },
+
+  // 定义一些数据并 \`return\` 给 \`<template />\` 用
+  setup() {
+    const userInfo: Member = {
+      id: 1,
+      name: 'Petter',
+    }
+
+    // 不要忘记 \`return\` ,否则 \`<template />\` 拿不到数据
+    return {
+      userInfo,
+    }
+  },
+})

然后在 Father.vue 的 <template /> 这边拿到 return 出来的数据,把要传递的数据通过属性的方式绑定在组件标签上。

vue
<!-- Father.vue -->
+<template>
+  <Child
+    title="用户信息"
+    :index="1"
+    :uid="userInfo.id"
+    :user-name="userInfo.name"
+  />
+</template>

这样就完成了 props 数据的下发。

<template /> 绑定属性这里,如果是普通的字符串,比如上面的 title,则直接给属性名赋值就可以。

如果是变量名,或者其他类型如 numberboolean 等,比如上面的 index,则需要通过属性动态绑定的方式来添加,使用 v-bind: 或者 : 符号进行绑定。

另外官方文档推荐对 camelCase 风格(小驼峰)命名的 props ,在绑定时使用和 HTML attribute 一样的 kebab-case 风格(短横线),例如使用 user-name 代替 userName 传递,详见官网的 传递 prop 的细节 一节。

接收 props

注:这一小节的步骤是在 Child.vue 里操作。

接收的过程是在 Child.vue 里完成的,在 <script /> 部分,子组件通过与 setup 同级的 props 来接收数据。

它可以是一个 string[] 数组,把要接受的变量名放到这个数组里,直接放进来作为数组的 item

ts
// Child.vue
+export default defineComponent({
+  props: ['title', 'index', 'userName', 'uid'],
+})

但这种情况下,使用者不知道这些属性的使用限制,例如是什么类型的值、是否必传等等。

带有类型限制的 props

注:这一小节的步骤是在 Child.vue 里操作。

和 TypeScript 一样,类型限制可以为程序带来更好的健壮性, Vue 的 props 也支持增加类型限制。

相对于传递一个 string[] 类型的数组,更推荐的方式是把 props 定义为一个对象,以对象形式列出,每个 Property 的名称和值分别是各自的名称和类型,只有合法的类型才允许传入。

TIP

注意,和 TS 的类型定义不同, props 这里的类型,首字母需要大写,也就是 JavaScript 的基本类型。

支持的类型有:

类型含义
String字符串
Number数值
Boolean布尔值
Array数组
Object对象
Date日期数据,e.g. new Date()
Function函数,e.g. 普通函数、箭头函数、构造函数
PromisePromise 类型的函数
SymbolSymbol 类型的值

了解了基本的类型限制用法之后,接下来给 props 加上类型限制:

ts
// Child.vue
+export default defineComponent({
+  props: {
+    title: String,
+    index: Number,
+    userName: String,
+    uid: Number,
+  },
+})

现在如果传入不正确的类型,程序就会抛出警告信息,告知开发者必须正确传值。

如果需要对某个 Prop 允许多类型,比如这个 uid 字段,可能是数值,也可能是字符串,那么可以在类型这里,使用一个数组,把允许的类型都加进去。

ts
// Child.vue
+export default defineComponent({
+  props: {
+    // 单类型
+    title: String,
+    index: Number,
+    userName: String,
+
+    // 这里使用了多种类型
+    uid: [Number, String],
+  },
+})

可选以及带有默认值的 props

注:这一小节的步骤是在 Child.vue 里操作。

所有 props 默认都是可选的,如果不传递具体的值,则默认值都是 undefined ,可能引起程序运行崩溃, Vue 支持对可选的 props 设置默认值,也是通过对象的形式配置 props 的选项。

其中支持配置的选项有:

选项类型含义
typestring类型
requiredboolean是否必传, true 代表必传, false 代表可选
defaultanytype 选项的类型相对应的默认值,如果 required 选项是 false ,但这里不设置默认值,则会默认为 undefined
validatorfunction自定义验证函数,需要 return 一个布尔值, true 代表校验通过, false 代表校验不通过,当校验不通过时,控制台会抛出警告信息

了解了配置选项后,接下来再对 props 进行改造,将其中部分选项设置为可选,并提供默认值:

ts
// Child.vue
+export default defineComponent({
+  props: {
+    // 可选,并提供默认值
+    title: {
+      type: String,
+      required: false,
+      default: '默认标题',
+    },
+
+    // 默认可选,单类型
+    index: Number,
+
+    // 添加一些自定义校验
+    userName: {
+      type: String,
+
+      // 在这里校验用户名必须至少 3 个字
+      validator: (v) => v.length >= 3,
+    },
+
+    // 默认可选,但允许多种类型
+    uid: [Number, String],
+  },
+})

使用 props ~new

注:这一小节的步骤是在 Child.vue 里操作。

<template /> 部分, Vue 3 的使用方法和 Vue 2 是一样的,比如要渲染父组件传入的 props :

vue
<!-- Child.vue -->
+<template>
+  <p>标题:{{ title }}</p>
+  <p>索引:{{ index }}</p>
+  <p>用户id:{{ uid }}</p>
+  <p>用户名:{{ userName }}</p>
+</template>

但是 <script /> 部分,变化非常大!

在 Vue 2 里,只需要通过 this.uidthis.userName 就可以使用父组件传下来的 Prop ,但是 Vue 3 没有了 this ,所以是通过 setup 的入参进行操作。

ts
// Child.vue
+export default defineComponent({
+  props: {
+    title: String,
+    index: Number,
+    userName: String,
+    uid: Number,
+  },
+
+  // 在这里需要添加一个入参
+  setup(props) {
+    // 该入参包含了当前组件定义的所有 props
+    console.log(props)
+  },
+})

关于 Setup 函数的第一个入参 props

  1. 该入参包含了当前组件定义的所有 props (如果父组件 Father.vue 传进来的数据在 Child.vue 里未定义,不仅不会拿到,并且在控制台会有警告信息)。
  2. 该入参可以随意命名,比如可以写成一个下划线 _ ,通过 _.uid 也可以拿到数据,但是语义化命名是一个良好的编程习惯。
  3. 该入参具备响应性,父组件修改了传递下来的值,子组件也会同步得到更新,因此请不要直接解构,可以通过 toRef 或 toRefs API 转换为响应式变量

传递非 props 的属性

上一小节最后有一句提示是:

如果父组件 Father.vue 传进来的数据在 Child.vue 里未定义,不仅不会拿到,并且在控制台会有警告信息。

这种情况虽然无法从 props 里拿到对应的数据,但也不意味着不能传递任何未定义的属性数据,在父组件,除了可以给子组件绑定 props ,还可以根据实际需要去绑定一些特殊的属性。

比如给子组件设置 classid,或者 data-xxx 之类的一些自定义属性,如果子组件 Child.vue 的 <template /> 里只有一个根节点,那么这些属性默认会自动继承并渲染在 Node 节点上。

假设当前在子组件 Child.vue 是如下这样只有一个根节点,并且未接收任何 props :

TIP

如果已安装 Vue VSCode Snippets 这个 VSCode 插件,可以在空的 .vue 文件里输入 v3 ,在出现的代码片段菜单里选择 vbase-3-ts 生成一个 Vue 组件的基础代码片段。

vue
<!-- Child.vue -->
+<template>
+  <div class="child">子组件</div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    return {}
+  },
+})
+</script>
+
+<style scoped>
+.child {
+  width: 100%;
+}
+</style>

在 Father.vue 里对 Child.vue 传递了多个属性:

vue
<!-- Father.vue -->
+<template>
+  <Child
+    id="child-component"
+    class="class-name-from-father"
+    :keys="['foo', 'bar']"
+    :obj="{ foo: 'bar' }"
+    data-hash="b10a8db164e0754105b7a99be72e3fe5"
+  />
+</template>

回到浏览器,通过 Chrome 的审查元素可以看到子组件 Child.vue 在渲染后,按照 HTML 属性的渲染规则生成了多个属性:

html
<!-- Child.vue 在浏览器里渲染后的 HTML DOM 结构 -->
+<div
+  class="child class-name-from-father"
+  id="child-component"
+  keys="foo,bar"
+  obj="[object Object]"
+  data-hash="b10a8db164e0754105b7a99be72e3fe5"
+  data-v-2dcc19c8=""
+  data-v-7eb2bc79=""
+>
+  子组件
+</div>

TIP

其中有两个以 data-v- 开头的属性是 <style /> 标签开启了 Style Scoped 功能自动生成的 Hash 值。

可以在 Child.vue 配置 inheritAttrsfalse 来屏蔽这些非 props 属性的渲染。

ts
// Child.vue
+export default defineComponent({
+  inheritAttrs: false,
+  setup() {
+    // ...
+  },
+})

关闭了 之后,现在的 DOM 结构如下,只保留了两个由 Style Scoped 生成的 Hash 值:

html
<!-- Child.vue 在浏览器里渲染后的 HTML DOM 解构 -->
+<div class="child" data-v-2dcc19c8="" data-v-7eb2bc79="">子组件</div>

这一类非 props 属性通常称之为 attrs 。

刚接触 Vue 的开发者可能容易混淆这两者,确实是非常接近,都是由父组件传递,由子组件接收,支持传递的数据类型也一样,但为什么一部分是在 props 获取,一部分在 attrs 获取呢?笔者给出一个比较容易记忆的方式,不一定特别准确,但相信可以帮助开发者加深两者的区别理解。

根据它们的缩写,其实是可以知道 Prop 是指 Property ,而 Attr 是指 Attribute ,虽然都是 “属性” ,但 Property 更接近于事物本身的属性,因此需要在组件里声明,而 Attribute 更偏向于赋予的属性,因此用于指代父组件传递的其他未被声明为 Property 的属性。

获取非 props 的属性 ~new

注:这一小节的步骤是在 Child.vue 里操作。

在上一小节 传递非 props 的属性 已经在父组件 Father.vue 里向子组件 Child.vue 传递了一些 attrs 自定义属性,在子组件里想要拿到这些属性,使用原生 JavaScript 操作是需要通过 Element.getAttribute() 方法,但 Vue 提供了更简单的操作方式。

在 Child.vue 里,可以通过 setup 的第二个参数 context 里的 attrs 来获取到这些属性,并且父组件传递了什么类型的值,获取到的也是一样的类型,这一点和使用 Element.getAttribute() 完全不同。

ts
// Child.vue
+export default defineComponent({
+  setup(props, { attrs }) {
+    // \`attrs\` 是个对象,每个 Attribute 都是它的 \`key\`
+    console.log(attrs.id) // child-component
+    console.log(attrs.class) // class-name-from-father
+
+    // 传递数组会被保留类型,不会被转换为 \`key1,key2\` 这样的字符串
+    // 这一点与 \`Element.getAttribute()\` 完全不同
+    console.log(attrs.keys) // ['foo', 'bar']
+
+    // 传递对象也可以正常获取
+    console.log(attrs.obj) // {foo: 'bar'}
+
+    // 如果传下来的 Attribute 带有短横线,需要通过这种方式获取
+    console.log(attrs['data-hash']) // b10a8db164e0754105b7a99be72e3fe5
+  },
+})

TIP

子组件不论是否设置 inheritAttrs 属性,都可以通过 attrs 拿到父组件传递下来的数据,但是如果要使用 Element.getAttribute() 则只有当 inheritAttrstrue 的时候才可以,因为此时在 DOM 上才会渲染这些属性。

与 Vue 2 的 <template /> 只能有一个根节点不同, Vue 3 允许多个根节点,多个根节点的情况下,无法直接继承这些 attrs 属性(在 inheritAttrs: true 的情况也下无法默认继承),需要在子组件 Child.vue 里通过 v-bind 绑定到要继承在节点上。

可以通过 Vue 实例属性 $attrs 或者从 setup 函数里把 attrs return 出来使用。

vue
<!-- Child.vue -->
+<template>
+  <!-- 默认不会继承属性 -->
+  <div class="child">不会继承</div>
+
+  <!-- 绑定后可继承, \`$attrs\` 是一个 Vue 提供的实例属性 -->
+  <div class="child" v-bind="$attrs">使用 $attrs 继承</div>
+
+  <!-- 绑定后可继承, \`attrs\` 是从 \`setup\` 里 \`return\` 出来的变量 -->
+  <div class="child" v-bind="attrs">使用 attrs 继承</div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup(props, { attrs }) {
+
+    return {
+      attrs,
+    }
+  },
+})
+</script>

绑定 emits ~new

注:这一小节的步骤是在 Father.vue 里操作。

如果父组件 Father.vue 需要获取子组件 Child.vue 的数据更新情况,可以由子组件通过 emits 进行通知,下面这个更新用户年龄的例子可以学习如何给子组件绑定 emit 事件。

事件的逻辑是由父组件决定的,因此需要在父组件 Father.vue 的 <script /> 里先声明数据变量和一个更新函数,并且这个更新函数通常会有一个入参作为数据的新值接收。

在本例子里,父组件声明了一个 updateAge 方法,它接受一个入参 newAge ,代表新的年龄数据,这个入参的值将由子组件 Child.vue 在触发 emits 时传入。

因为还需要在 <template /> 部分绑定给子组件,所以请记得 return 出来。

ts
// Father.vue
+import { defineComponent, reactive } from 'vue'
+import Child from '@cp/Child.vue'
+
+interface Member {
+  id: number
+  name: string
+  age: number
+}
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+  setup() {
+    const userInfo: Member = reactive({
+      id: 1,
+      name: 'Petter',
+      age: 0,
+    })
+
+    /**
+     * 声明一个更新年龄的方法
+     * @param newAge - 新的年龄,由子组件触发 emits 时传递
+     */
+    function updateAge(newAge: number) {
+      userInfo.age = newAge
+    }
+
+    return {
+      userInfo,
+      updateAge,
+    }
+  },
+})

再看 Father.vue 的 <template /> 部分,和 Click 事件使用 @click 一样,自定义的 emits 事件也是通过 v-on 或者是 @ 来绑定:

vue
<!-- Father.vue -->
+<template>
+  <Child @update-age="updateAge" />
+</template>

和 props 一样,官方文档也推荐将 camelCase 风格(小驼峰)命名的函数,在绑定时使用 kebab-case 风格(短横线),例如使用 update-age 代替 updateAge 传递。

接收并调用 emits ~new

注:这一小节的步骤是在 Child.vue 里操作。

和 props 一样,可以指定是一个数组,把要接收的 emit 事件名称写进去:

ts
// Child.vue
+export default defineComponent({
+  emits: ['update-age'],
+})

和 props 不同,通常情况下 emits 这样配置就足够使用了。

接下来如果子组件需要更新数据并通知父组件,可以使用 setup 第二个参数 context 里的 emit 方法触发:

ts
// Child.vue
+export default defineComponent({
+  emits: ['update-age'],
+  setup(props, { emit }) {
+    // 通知父组件将年龄设置为 \`2\`
+    emit('update-age', 2)
+  },
+})

emit 方法最少要传递一个参数:事件名称。

事件名称是指父组件 Father.vue 绑定事件时 @update-age="updateAge" 里的 update-age ,如果改成 @hello="updateAge" ,那么事件名称就需要使用 hello ,一般情况下事件名称和更新函数的名称会保持一致,方便维护。

对于需要更新数据的情况, emit 还支持传递更多的参数,对应更新函数里的入参,所以可以看到上面例子里的 emit('update-age', 2) 有第二个参数,传递了一个 2 的数值,就是作为父组件 updateAge 的入参 newAge 传递。

如果需要通信的数据很多,建议第二个入参使用一个对象来管理数据,例如父组件调整为:

ts
// Father.vue
+function updateInfo({ name, age }: Member) {
+  // 当 \`name\` 变化时更新 \`name\` 的值
+  if (name && name !== userInfo.name) {
+    userInfo.name = name
+  }
+
+  // 当 \`age\` 变化并且新值在正确的范围内时,更新 \`age\` 的值
+  if (age > 0 && age !== userInfo.age) {
+    userInfo.age = age
+  }
+}

子组件在传递新数据时,就应该使用对象的形式传递:

ts
// Child.vue
+emit('update-info', {
+  name: 'Tom',
+  age: 18,
+})

这对于更新表单等数据量较多的场景非常好用。

接收 emits 时做一些校验

注:这一小节的步骤是在 Child.vue 里操作。

和 props 一样,子组件在接收 emits 时也可以对这些事件做一些验证,这个时候就需要将 emits 配置为对象,然后把事件名称作为 keyvalue 则对应为一个用来校验的方法。

还是用回上文那个更新年龄的方法,如果需要增加一个条件:当达到成年人的年龄时才会更新父组件的数据,那么就可以将 emits 调整为:

ts
// Child.vue
+export default defineComponent({
+  emits: {
+    // 需要校验
+    'update-age': (age: number) => {
+      // 写一些条件拦截,返回 \`false\` 表示验证不通过
+      if (age < 18) {
+        console.log('未成年人不允许参与')
+        return false
+      }
+
+      // 通过则返回 \`true\`
+      return true
+    },
+
+    // 一些无需校验的,设置为 \`null\` 即可
+    'update-name': null,
+  },
+})

接下来如果提交 emit('update-age', 2) ,因为不满足验证条件,浏览器控制台将会出现一段 [Vue warn]: Invalid event arguments: event validation failed for event "update-age". 这样的警告信息。

v-model / emits

相对于 props / emits 这一对通信方案,使用 v-model 的方式更为简单:

  1. 在 Father.vue ,通过 v-model 向 Child.vue 传值

  2. Child.vue 通过自身设定的 emits 向 Father.vue 通知数据更新

v-model 的用法和 props 非常相似,但是很多操作上更为简化,但操作简单带来的 “副作用” ,就是功能上也没有 props 那么多。

绑定 v-model ~new

注:这一小节的步骤是在 Father.vue 里操作。

和下发 props 的方式类似,都是在子组件上绑定 Father.vue 定义好的数据,这是绑定一个数据的例子:

vue
<!-- Father.vue -->
+<template>
+  <Child v-model:username="userInfo.name" />
+</template>

和 Vue 2 不同, Vue 3 可以直接绑定 v-model ,而无需在子组件指定 model 选项 ,并且 Vue 3 的 v-model 需要使用英文冒号 : 指定要绑定的属性名,同时也支持绑定多个 v-model 。

如果要绑定多个数据,写多个 v-model 即可:

vue
<!-- Father.vue -->
+<template>
+  <Child
+    v-model:uid="userInfo.id"
+    v-model:username="userInfo.name"
+    v-model:age="userInfo.age"
+  />
+</template>

看到这里应该能明白了,一个 v-model 其实就是一个 prop ,它支持的数据类型和 prop 是一样的,所以子组件在接收数据的时候,完全按照 props 去定义就可以了。

点击回顾:接收 props ,了解在 Child.vue 如何接收 props,以及相关的 props 类型限制等部分内容。

配置 emits ~new

注:这一小节的步骤是在 Child.vue 里操作。

虽然 v-model 的配置和 props 相似,但是为什么出这么两个相似的东西?自然是为了简化一些开发上的操作。

使用 props / emits ,如果要更新父组件的数据,还需要在父组件声明一个更新函数并绑定事件给子组件,才能够更新。

而使用 v-model / emits ,无需在父组件声明更新函数,只需要在子组件 Child.vue 里通过 update: 前缀加上 v-model 的属性名这样的格式,即可直接定义一个更新事件。

ts
// Child.vue
+export default defineComponent({
+  props: {
+    uid: Number,
+    username: String,
+    age: Number,
+  },
+  // 注意这里的 \`update:\` 前缀
+  emits: ['update:uid', 'update:username', 'update:age'],
+})

这里的 update 后面的属性名,支持驼峰写法,这一部分和 Vue 2 的使用是相同的。

在配置 emits 时,也可以对数据更新做一些校验,配置方式和讲解 props / emits 时 接收 emits 时做一些校验 这一小节的操作是一样的。

在 Child.vue 配置好 emits 之后,就可以在 setup 里直接操作数据的更新了:

ts
// Child.vue
+export default defineComponent({
+  setup(props, { emit }) {
+    // 2s 后更新用户名
+    setTimeout(() => {
+      emit('update:username', 'Tom')
+    }, 2000)
+  },
+})

子组件通过调用 emit('update:xxx') 即可让父组件更新对应的数据。

ref / emits

在学习 响应式 API 之 ref 的时候,已讲解过 ref 是可以用在 DOM 元素与子组件 上面,所以也可以使用 ref 配合 emits 完成父子组件的通信。

父组件操作子组件 ~new

注:这一小节的步骤是在 Father.vue 里操作。

父组件可以给子组件绑定 ref 属性,然后通过 Ref 变量操作子组件的数据或者调用子组件里面的方法。

先在 <template /> 处给子组件标签绑定 ref 属性:

vue
<!-- Father.vue -->
+<template>
+  <Child ref="child" />
+</template>

然后在 <script /> 部分定义好对应的变量名称 child (记得要 return 出来哦),即可通过该变量操作子组件上的变量或方法:

ts
// Father.vue
+import { defineComponent, onMounted, ref } from 'vue'
+import Child from '@cp/Child.vue'
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+  setup() {
+    // 给子组件定义一个 \`ref\` 变量
+    const child = ref<InstanceType<typeof Child>>()
+
+    // 请保证视图渲染完毕后再执行操作
+    onMounted(async () => {
+      // 执行子组件里面的 AJAX 请求函数
+      await child.value!.queryList()
+
+      // 显示子组件里面的弹窗
+      child.value!.isShowDialog = true
+    })
+
+    // 必须 \`return\` 出去才可以给到 \`<template />\` 使用
+    return {
+      child,
+    }
+  },
+})

需要注意的是,在子组件 Child.vue 里,变量和方法也需要在 setup 里 return 出来才可以被父组件调用到。

子组件通知父组件

子组件如果想主动向父组件通讯,也需要使用 emits ,详细的配置方法可见:绑定 emits

爷孙组件通信

顾名思义,爷孙组件是比 父子组件通信 要更深层次的引用关系(也有称之为 “隔代组件” )。

C 组件被引入到 B 组件里, B 组件又被引入到 A 组件里渲染,此时 A 是 C 的爷爷级别(可能还有更多层级关系),它们之间的关系可以假设如下:

Grandfather.vue
+└─Son.vue
+  └─Grandson.vue

可以看到 Grandson.vue 并非直接挂载在 Grandfather.vue 下面,他们之间还隔着至少一个 Son.vue (在实际业务中可能存在更多层级),如果使用 props ,只能一级组件一级组件传递下去,就太繁琐了。

`,158),C=a('

因此需要更直接的通信方式来解决这种问题,这一 Part 就是讲一讲 C 和 A 之间的数据传递,常用的方法有:

方案爷组件向孙组件孙组件向爷组件对应章节传送门
provide / injectprovideinject点击查看
EventBusemit / onemit / on点击查看
Reactive State--点击查看
Vuex--点击查看
Pinia--点击查看

因为上下级的关系的一致性,爷孙组件通信的方案也适用于 父子组件通信 ,只需要把爷孙关系换成父子关系即可,为了方便阅读,下面的爷组件统一叫 Grandfather.vue,子组件统一叫 Grandson.vue 。

provide / inject

这个通信方式也是有两部分:

  1. Grandfather.vue 通过 provide 向孙组件 Grandson.vue 提供数据和方法
  2. Grandson.vue 通过 inject 注入爷爷组件 Grandfather.vue 的数据和方法

无论组件层次结构有多深,发起 provide 的组件都可以作为其所有下级组件的依赖提供者。

',7),A=a(`

Vue 3 的这一部分内容对比 Vue 2 来说变化很大,但使用起来其实也很简单,开发者学到这里不用慌,它们之间也有相同的地方:

  1. 爷组件不需要知道哪些子组件使用它 provide 的数据
  2. 子组件不需要知道 inject 的数据来自哪里

另外要切记一点就是: provide 和 inject 绑定并不是可响应的,这是刻意为之的,除非传入了一个可侦听的对象。

发起 provide ~new

注:这一小节的步骤是在 Grandfather.vue 里操作。

先来回顾一下 Vue 2 的用法:

ts
export default {
+  // 在 \`data\` 选项里定义好数据
+  data() {
+    return {
+      tags: ['中餐', '粤菜', '烧腊'],
+    }
+  },
+  // 在 \`provide\` 选项里添加要提供的数据
+  provide() {
+    return {
+      tags: this.tags,
+    }
+  },
+}

旧版的 provide 用法和 data 类似,都是配置为一个返回对象的函数,而 Vue 3 的新版 provide ,和 Vue 2 的用法区别比较大。

在 Vue 3 , provide 需要导入并在 setup 里启用,并且现在是一个全新的方法,每次要 provide 一个数据的时候,就要单独调用一次。

provide 的 TS 类型如下:

ts
// \`provide\` API 本身的类型
+function provide<T>(key: InjectionKey<T> | string, value: T): void
+
+// 入参 \`key\` 的其中一种类型
+interface InjectionKey<T> extends Symbol {}

每次调用 provide 的时候都需要传入两个参数:

参数说明
key数据的名称
value数据的值

其中 key 一般使用 string 类型就可以满足大部分业务场景,如果有特殊的需要(例如开发插件时可以避免和用户的业务冲突),可以使用 InjectionKey<T> 类型,这是一个继承自 Symbol 的泛型:

ts
import type { InjectionKey } from 'vue'
+const key = Symbol() as InjectionKey<string>

还需要注意的是, provide 不是响应式的,如果要使其具备响应性,需要传入响应式数据,详见:响应性数据的传递与接收

下面来试试在爷组件 Grandfather.vue 里创建数据 provide 下去:

ts
// Grandfather.vue
+import { defineComponent, provide, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 声明一个响应性变量并 provide 其自身
+    // 孙组件获取后可以保持响应性
+    const msg = ref('Hello World!')
+    provide('msg', msg)
+
+    // 只 provide 响应式变量的值
+    // 孙组件获取后只会得到当前的值
+    provide('msgValue', msg.value)
+
+    // 声明一个方法并 provide
+    function printMsg() {
+      console.log(msg.value)
+    }
+    provide('printMsg', printMsg)
+  },
+})

接收 inject ~new

注:这一小节的步骤是在 Grandson.vue 里操作。

也是先回顾一下在 Vue 2 里的用法,和接收 props 类似:

ts
export default {
+  // 通过 \`inject\` 选项获取
+  inject: ['tags'],
+  mounted() {
+    console.log(this.tags)
+  },
+}

Vue 3 的新版 inject 和 Vue 2 的用法区别也是比较大,在 Vue 3 , inject 和 provide 一样,也是需要先导入然后在 setup 里启用,也是一个全新的方法,每次要 inject 一个数据的时候,也是要单独调用一次。

另外还有一个特殊情况需要注意,当 Grandson.vue 的父级、爷级组件都 provide 了相同名字的数据下来,那么在 inject 的时候,会优先选择离它更近的组件的数据。

根据不同的场景, inject 可以接受不同数量的入参,入参类型也各不相同。

默认用法

默认情况下, inject API 的 TS 类型如下:

ts
function inject<T>(key: InjectionKey<T> | string): T | undefined

每次调用时只需要传入一个参数:

参数类型说明
keystring与 provide 相对应的数据名称

接下来看看如何在孙组件里 inject 爷组件 provide 下来的数据:

ts
// Grandson.vue
+import { defineComponent, inject } from 'vue'
+import type { Ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取响应式变量
+    const msg = inject<Ref<string>>('msg')
+    console.log(msg!.value)
+
+    // 获取普通的字符串
+    const msgValue = inject<string>('msgValue')
+    console.log(msgValue)
+
+    // 获取函数
+    const printMsg = inject<() => void>('printMsg')
+    if (typeof printMsg === 'function') {
+      printMsg()
+    }
+  },
+})

可以看到在每个 inject 都使用尖括号 <> 添加了相应的 TS 类型,并且在调用变量的时候都进行了判断,这是因为默认的情况下, inject 除了返回指定类型的数据之外,还默认带上 undefined 作为可能的值。

如果明确数据不会是 undefined ,也可以在后面添加 as 关键字指定其 TS 类型,这样 TypeScript 就不再因为可能出现 undefined 而提示代码有问题。

ts
// Grandson.vue
+import { defineComponent, inject } from 'vue'
+import type { Ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取响应式变量
+    const msg = inject('msg') as Ref<string>
+    console.log(msg.value)
+
+    // 获取普通的字符串
+    const msgValue = inject('msgValue') as string
+    console.log(msgValue)
+
+    // 获取函数
+    const printMsg = inject('printMsg') as () => void
+    printMsg()
+  },
+})

设置默认值

inject API 还支持设置默认值,可以接受更多的参数。

默认情况下,只需要传入第二个参数指定默认值即可,此时它的 TS 类型如下,

ts
function inject<T>(key: InjectionKey<T> | string, defaultValue: T): T

对于不可控的情况,建议在 inject 时添加一个兜底的默认值,防止程序报错:

ts
// Grandson.vue
+import { defineComponent, inject, ref } from 'vue'
+import type { Ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取响应式变量
+    const msg = inject<Ref<string>>('msg', ref('Hello'))
+    console.log(msg.value)
+
+    // 获取普通的字符串
+    const msgValue = inject<string>('msgValue', 'Hello')
+    console.log(msgValue)
+
+    // 获取函数
+    const printMsg = inject<() => void>('printMsg', () => {
+      console.log('Hello')
+    })
+    printMsg()
+  },
+})

需要注意的是, inject 的什么类型的数据,其默认值也需要保持相同的类型。

工厂函数选项

inject API 在第二个 TS 类型的基础上,还有第三个 TS 类型,可以传入第三个参数:

ts
function inject<T>(
+  key: InjectionKey<T> | string,
+  defaultValue: () => T,
+  treatDefaultAsFactory?: false
+): T

当第二个参数是一个工厂函数,那么可以添加第三个值,将其设置为 true ,此时默认值一定会是其 return 的值。

在 Grandson.vue 里新增一个 inject ,接收一个不存在的函数名,并提供一个工厂函数作为默认值:

ts
// Grandson.vue
+import { defineComponent, inject } from 'vue'
+
+interface Food {
+  name: string
+  count: number
+}
+
+export default defineComponent({
+  setup() {
+    // 获取工厂函数
+    const getFood = inject<() => Food>('nonexistentFunction', () => {
+      return {
+        name: 'Pizza',
+        count: 1,
+      }
+    })
+    console.log(typeof getFood) // function
+
+    const food = getFood()
+    console.log(food) // {name: 'Pizza', count: 1}
+  },
+})

此时因为第三个参数默认为 Falsy 值 ,所以可以得到一个函数作为默认值,并可以调用该函数获得一个 Food 对象。

如果将第三个参数传入为 true ,再运行程序则会在 const food = getFood() 这一行报错:

ts
// Grandson.vue
+import { defineComponent, inject } from 'vue'
+
+interface Food {
+  name: string
+  count: number
+}
+
+export default defineComponent({
+  setup() {
+    // 获取工厂函数
+    const getFood = inject<() => Food>(
+      'nonexistentFunction',
+      () => {
+        return {
+          name: 'Pizza',
+          count: 1,
+        }
+      },
+      true
+    )
+    console.log(typeof getFood) // object
+
+    // 此时下面的代码无法运行
+    // 报错 Uncaught (in promise) TypeError: getMsg is not a function
+    const food = getFood()
+    console.log(food)
+  },
+})

因为此时第三个入参告知 inject ,默认值是一个工厂函数,因此默认值不再是函数本身,而是函数的返回值,所以 typeof getFood 得到的不再是一个 function 而是一个 object

这个参数对于需要通过工厂函数返回数据的情况非常有用!

兄弟组件通信

兄弟组件是指两个组件都挂载在同一个 Father.vue 下,但两个组件之间并没有什么直接的关联,先看看它们的关系:

Father.vue
+├─Brother.vue
+└─LittleBrother.vue

这种层级关系下,如果组件之间要进行通信,目前通常有这两类选择:

  1. 【不推荐】先把数据传给 Father.vue ,再使用 父子组件通信 方案处理
  2. 【推荐】借助 全局组件通信 的方案达到目的

下面的内容将进入全局通信的讲解。

全局组件通信

全局组件通信是指项目下两个任意组件,不管是否有直接关联(例如父子关系、爷孙关系)都可以直接进行交流的通信方案。

举个例子,像下面这种项目结构, B2.vue 可以采用全局通信方案直接向 D2.vue 发起交流,而无需经过它们各自的父组件。

bash
A.vue
+├─B1.vue
+├───C1.vue
+├─────D1.vue
+├─────D2.vue
+├───C2.vue
+├─────D3.vue
+└─B2.vue

常用的方法有:

方案发起方接收方对应章节传送门
EventBusemiton点击查看
Reactive State--点击查看
Vuex--点击查看
Pinia--点击查看

EventBus ~new

EventBus 通常被称之为 “全局事件总线” ,是用在全局范围内通信的一个常用方案,在 Vue 2 时期该方案非常流行,其特点就是 “简单” 、 “灵活” 、 “轻量级” 。

回顾 Vue 2

在 Vue 2 ,使用 EventBus 无需导入第三方插件,可以在项目下的 libs 文件夹里,创建一个名为 eventBus.ts 的文件,导出一个新的 Vue 实例即可。

ts
// src/libs/eventBus.ts
+import Vue from 'vue'
+export default new Vue()

上面短短两句代码已完成了一个 EventBus 的创建,接下来就可以开始进行通信。

先在负责接收事件的组件里,利用 Vue 的生命周期,通过 eventBus.$on 添加事件侦听,通过 eventBus.$off 移除事件侦听。

ts
import eventBus from '@libs/eventBus'
+
+export default {
+  mounted() {
+    // 在组件创建时,添加一个名为 \`hello\` 的事件侦听
+    eventBus.$on('hello', () => {
+      console.log('Hello World')
+    })
+  },
+  beforeDestroy() {
+    // 在组件销毁前,通过 \`hello\` 这个名称移除该事件侦听
+    eventBus.$off('hello')
+  },
+}

然后在另外一个组件里通过 eventBus.$emit 触发事件侦听。

ts
import eventBus from './eventBus'
+
+export default {
+  methods: {
+    sayHello() {
+      // 触发名为 \`hello\` 的事件
+      eventBus.$emit('hello')
+    },
+  },
+}

这样一个简单的全局方案就完成了。

了解 Vue 3 ~new

Vue 3 应用实例不再实现事件触发接口,因此移除了 $on$off$once 这几个事件 API ,无法像 Vue 2 一样利用 Vue 实例创建 EventBus 。

根据官方文档在 事件 API 迁移策略 的推荐,可以使用 mitt 或者 tiny-emitter 等第三方插件实现 EventBus 。

创建 Vue 3 的 EventBus ~new

这里以 mitt 为例,示范如何创建一个 Vue 3 的 EventBus ,首先需要安装它。

npm i mitt

然后在 src/libs 文件夹下,创建一个名为 eventBus.ts 的文件,文件内容和 Vue 2 的写法其实是一样的,只不过是把 Vue 实例换成了 mitt 实例。

ts
// src/libs/eventBus.ts
+import mitt from 'mitt'
+export default mitt()

接下来就可以定义通信的相关事件了,常用的 API 和参数如下:

方法名称作用
on注册一个侦听事件,用于接收数据
emit调用方法发起数据传递
off用来移除侦听事件

on 的参数:

参数类型作用
typestring | symbol方法名
handlerfunction接收到数据之后要做什么处理的回调函数

这里的 handler 建议使用具名函数,因为匿名函数无法销毁。

emit 的参数:

参数类型作用
typestring | symbol与 on 对应的方法名
dataany与 on 对应的,允许接收的数据

off 的参数:

参数类型作用
typestring | symbol与 on 对应的方法名
handlerfunction要被删除的,与 on 对应的 handler 函数名

更多的 API 可以查阅 插件的官方文档 ,在了解了最基本的用法之后,来开始配置一对组件通信。

创建和移除侦听事件 ~new

在需要暴露交流事件的组件里,通过 on 配置好接收方法,同时为了避免路由切换过程中造成事件多次被绑定,从而引起多次触发,需要在适当的时机 off 掉:

ts
import { defineComponent, onBeforeUnmount } from 'vue'
+import eventBus from '@libs/eventBus'
+
+export default defineComponent({
+  setup() {
+    // 声明一个打招呼的方法
+    function sayHi(msg = 'Hello World!') {
+      console.log(msg)
+    }
+
+    // 启用侦听
+    eventBus.on('sayHi', sayHi)
+
+    // 在组件卸载之前移除侦听
+    onBeforeUnmount(() => {
+      eventBus.off('sayHi', sayHi)
+    })
+  },
+})

关于销毁的时机,可以参考 组件的生命周期

调用侦听事件 ~new

在需要调用交流事件的组件里,通过 emit 进行调用:

ts
import { defineComponent } from 'vue'
+import eventBus from '@libs/eventBus'
+
+export default defineComponent({
+  setup() {
+    // 调用打招呼事件,传入消息内容
+    eventBus.emit('sayHi', 'Hello')
+  },
+})

旧项目升级 EventBus

在 Vue 3 的 EventBus 里,可以看到它的 API 和旧版是非常接近的,只是去掉了 $ 符号。

如果要对旧的项目进行升级改造,由于原来都是使用了 $on$emit 等旧的 API ,一个一个组件去修改成新的 API 容易遗漏或者全局替换出错。

因此可以在创建 eventBus.ts 的时候,通过自定义一个 eventBus 对象来挂载 mitt 的 API 。

在 eventBus.ts 里,改成以下代码:

ts
// src/libs/eventBus.ts
+import mitt from 'mitt'
+
+// 初始化一个 mitt 实例
+const emitter = mitt()
+
+// 在导出时使用旧的 API 名称去调用 mitt 的 API
+export default {
+  $on: (...args) => emitter.on(...args),
+  $emit: (...args) => emitter.emit(...args),
+  $off: (...args) => emitter.off(...args),
+}

这样在组件里就可以继续使用 eventBus.$oneventBus.$emit 等旧 API ,不会影响旧项目的升级使用。

Reactive State ~new

在 Vue 3 里,使用响应式的 reactive API 也可以实现一个小型的状态共享库,如果运用在一个简单的 H5 活动页面这样小需求里,完全可以满足使用。

创建状态中心

首先在 src 目录下创建一个 state 文件夹,并添加一个 index.ts 文件,写入以下代码:

ts
// src/state/index.ts
+import { reactive } from 'vue'
+
+// 如果有多个不同业务的内部状态共享
+// 使用具名导出更容易维护
+export const state = reactive({
+  // 设置一个属性并赋予初始值
+  message: 'Hello World',
+
+  // 添加一个更新数据的方法
+  setMessage(msg: string) {
+    this.message = msg
+  },
+})

这就完成了一个简单的 Reactive State 响应式状态中心的创建。

设定状态更新逻辑

接下来在一个组件 Child.vue 的 <script /> 里添加以下代码,分别进行了以下操作:

  1. 打印初始值
  2. 对 state 里的数据启用侦听器
  3. 使用 state 里的方法更新数据
  4. 直接更新 state 的数据
ts
// Child.vue
+import { defineComponent, watch } from 'vue'
+import { state } from '@/state'
+
+export default defineComponent({
+  setup() {
+    console.log(state.message)
+    // Hello World
+
+    // 因为是响应式数据,所以可以侦听数据变化
+    watch(
+      () => state.message,
+      (val) => {
+        console.log('Message 发生变化:', val)
+      }
+    )
+
+    setTimeout(() => {
+      state.setMessage('Hello Hello')
+      // Message 发生变化: Hello Hello
+    }, 1000)
+
+    setTimeout(() => {
+      state.message = 'Hi Hi'
+      // Message 发生变化: Hi Hi
+    }, 2000)
+  },
+})

观察全局状态变化

继续在另外一个组件 Father.vue 里写入以下代码,导入 state 并在 <template /> 渲染其中的数据:

vue
<!-- Father.vue -->
+<template>
+  <div>{{ state.message }}</div>
+  <Child />
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+import Child from '@cp/Child.vue'
+import { state } from '@/state'
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+  setup() {
+    return {
+      state,
+    }
+  },
+})
+</script>

可以观察到当 Child.vue 里的定时器执行时, Father.vue 的视图也会同步得到更新。

一个无需额外插件即可实现的状态中心就这么完成了!

Vuex ~new

Vuex 是 Vue 生态里面非常重要的一个成员,运用于状态管理模式。

它也是一个全局的通信方案,对比 EventBus,Vuex 的功能更多,更灵活,但对应的学习成本和体积也相对较大,通常大型项目才会用上 Vuex 。

在了解之前

摘自 Vuex 仓库 README 文档的一段官方提示:

Pinia is now the new default
The official state management library for Vue has changed to Pinia. Pinia has almost the exact same or enhanced API as Vuex 5, described in Vuex 5 RFC. You could simply consider Pinia as Vuex 5 with a different name. Pinia also works with Vue 2.x as well.
Vuex 3 and 4 will still be maintained. However, it's unlikely to add new functionalities to it. Vuex and Pinia can be installed in the same project. If you're migrating existing Vuex app to Pinia, it might be a suitable option. However, if you're planning to start a new project, we highly recommend using Pinia instead.

意思是 Pinia 已经成为 Vue 生态最新的官方状态管理库,不仅适用于 Vue 3 ,也支持 Vue 2 ,而 Vuex 将进入维护状态,不再增加新功能, Vue 官方强烈建议在新项目中使用 Pinia 。

TIP

笔者建议:如果是全新的项目,建议直接使用 Pinia ,不仅更加适配 Vue 3 组合式 API 的使用,对 TypeScript 的支持也更完善,上手难度和使用舒适度均比 Vuex 更好, Vuex 正在逐渐退出舞台,请根据实际需求决定是否需要启用它。

Vuex 的目录结构

在 Vue 3 里使用 Vuex ,需要选择 4.x 版本,也是当前的 @latest 标签对应的版本,请先安装它。

bash
npm i vuex

接下来按照下面的目录结构创建对应的目录与文件:

bash
src
+ # Vuex 的目录
+├─store
+├───index.ts
+└─main.ts

一般情况下一个 index.ts 足矣,它是 Vuex 的入口文件,如果的项目比较庞大,可以在 store 目录下创建一个命名为 modules 的文件夹,使用 Vuex Modules 的方式导入到 index.ts 里去注册。

回顾 Vue 2

在 Vue 2 ,需要先分别导入 vuevuex,使用 use 方法启用 Vuex 后,通过 new Vuex.Store(...) 的方式进行初始化。

ts
// src/store/index.ts
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+Vue.use(Vuex)
+
+export default new Vuex.Store({
+  state: {},
+  mutations: {},
+  actions: {},
+  modules: {},
+})

之后在组件里就可以通过 this.$store 操作 Vuex 上的方法了。

ts
export default {
+  mounted() {
+    // 通过 \`this.$store\` 操作 Vuex
+    this.$store.commit('increment')
+    console.log(this.$store.state.count)
+  },
+}

了解 Vue 3 ~new

Vue 3 需要从 Vuex 里导入 createStore 创建实例:

ts
// src/store/index.ts
+import { createStore } from 'vuex'
+
+export default createStore({
+  state: {},
+  mutations: {},
+  actions: {},
+  modules: {},
+})

之后在 src/main.ts 里启用 Vuex :

ts
// src/main.ts
+import { createApp } from 'vue'
+import App from './App.vue'
+import store from './store'
+
+createApp(App)
+  .use(store) // 启用 Vuex
+  .mount('#app')

Vue 3 在组件里使用 Vuex 的方式和 Vue 2 有所不同,需要像使用路由那样通过一个组合式 API useStore 启用。

ts
import { defineComponent } from 'vue'
+import { useStore } from 'vuex'
+
+export default defineComponent({
+  setup() {
+    // 需要创建一个 store 变量
+    const store = useStore()
+
+    // 再使用 store 去操作 Vuex 的 API
+    // ...
+  },
+})

Vuex 的配置

除了初始化方式有一定的改变, Vuex 在 Vue 3 的其他配置和 Vue 2 是一样的。

由于现在在 Vue 3 里已经更推荐使用 Pinia , Vuex 已处于维护状态,因此关于 Vuex 的使用将不展开更多的介绍,有需要的开发者可以查看 Vuex 官网的 使用指南 了解更多。

Pinia ~new

Pinia 和 Vuex 一样,也是 Vue 生态里面非常重要的一个成员,也都是运用于全局的状态管理。

但面向 Componsition API 而生的 Pinia ,更受 Vue 3 喜爱,已被钦定为官方推荐的新状态管理工具。

为了阅读上的方便,对 Pinia 单独开了一章,请在 全局状态的管理 一章阅读。

`,156);function d(h,g,u,f,m,v){const e=n("ReadingTips"),o=n("ImgWrap"),l=n("ClientOnly"),t=n("GitalkComment");return r(),y("div",null,[D,s(e),i,s(l,null,{default:p(()=>[s(o,{src:"/assets/img/communication-prop-drilling.png",alt:"Props 的多级传递会非常繁琐(摘自 Vue 官网)"})]),_:1}),C,s(l,null,{default:p(()=>[s(o,{src:"/assets/img/communication-provide-inject.png",alt:"使用 provide / inject 后,问题将变得非常简单(摘自 Vue 官网)"})]),_:1}),A,s(l,null,{default:p(()=>[s(t,{issueId:62})]),_:1})])}const x=c(F,[["render",d]]);export{E as __pageData,x as default}; diff --git a/assets/component.md.b59f8845.js b/assets/component.md.b59f8845.js new file mode 100644 index 00000000..2d260347 --- /dev/null +++ b/assets/component.md.b59f8845.js @@ -0,0 +1,1949 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as e,v as t,b as c,t as s,O as r,R as a,M as n}from"./chunks/framework.0d8bea05.js";const m=JSON.parse('{"title":"单组件的编写","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"component.md","filePath":"component.md"}'),y={name:"component.md"},F=a('

单组件的编写

项目搭好了,第一个需要了解的是 Vue 组件的变化,由于这部分篇幅会非常大,所以会分成很多个小节,一部分一部分按照开发顺序来逐步了解。

因为 Vue 3 对 TypeScript 的支持真的是太完善了,并且 TypeScript 的发展趋势和市场需求度越来越高,所以接下来都将直接使用 TypeScript 进行编程。

TIP

对 TypeScript 不太熟悉的开发者,建议先阅读 快速上手 TypeScript 一章,有了一定的语言基础之后,再一边写代码一边加深印象。

',4),D=a(`

全新的 setup 函数 ~new

在开始编写 Vue 组件之前,需要了解两个全新的前置知识点:

  • 全新的 setup 函数,关系到组件的生命周期和渲染等问题
  • 写 TypeScript 组件离不开的 defineComponent API

setup 的含义

Vue 3 的 Composition API 系列里,推出了一个全新的 setup 函数,它是一个组件选项,在创建组件之前执行,一旦 props 被解析,并作为组合式 API 的入口点。

TIP

说的通俗一点,就是在使用 Vue 3 生命周期的情况下,整个组件相关的业务代码,都可以放在 setup 里执行。

因为在 setup 之后,其他的生命周期才会被启用(点击了解:组件的生命周期)。

基本语法:

ts
// 这是一个基于 TypeScript 的 Vue 组件
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup(props, context) {
+    // 在这里声明数据,或者编写函数并在这里执行它
+
+    return {
+      // 需要给 \`<template />\` 用的数据或函数,在这里 \`return\` 出去
+    }
+  },
+})

可以发现在这段代码里还导入了一个 defineComponent API ,也是 Vue 3 带来的新功能,下文的 defineComponent 的作用 将介绍其用法。

在使用 setup 的情况下,请牢记一点:不能再用 this 来获取 Vue 实例,也就是无法和 Vue 2 一样,通过 this.foothis.bar() 这样来获取实例上的数据,或者执行实例上的方法。

关于全新的 Vue 3 组件编写,笔者将在下文一步步说明。

setup 的参数使用

setup 函数包含了两个入参:

参数类型含义是否必传
propsobject由父组件传递下来的数据
contextobject组件的执行上下文

第一个参数 props

它是响应式的,当父组件传入新的数据时,它将被更新。

TIP

请不要解构它,这样会让数据失去响应性,一旦父组件发生数据变化,解构后的变量将无法同步更新为最新的值。

可以使用 Vue 3 全新的响应式 API toRef / toRefs 进行响应式数据转换,下文将会介绍全新的响应式 API 的用法。

第二个参数 context

context 只是一个普通的对象,它暴露三个组件的 Property :

属性类型作用
attrs非响应式对象未在 Props 里定义的属性都将变成 Attrs
slots非响应式对象组件插槽,用于接收父组件传递进来的模板内容
emit方法触发父组件绑定下来的事件

因为 context 只是一个普通对象,所以可以直接使用 ES6 解构。

平时使用可以通过直接传入 { emit } ,即可用 emit('xxx') 来代替使用 context.emit('xxx'),另外两个功能也是如此。

但是 attrsslots 请保持 attrs.xxxslots.xxx 的方式来使用其数据,不要进行解构,虽然这两个属性不是响应式对象,但对应的数据会随组件本身的更新而更新。

两个参数的具体使用,可查阅 组件之间的通信 一章详细了解。

defineComponent 的作用

defineComponent 是 Vue 3 推出的一个全新 API ,可用于对 TypeScript 代码的类型推导,帮助开发者简化掉很多编码过程中的类型声明。

比如,原本需要这样才可以使用 setup 函数:

ts
import { Slots } from 'vue'
+
+// 声明 \`props\` 和 \`return\` 的数据类型
+interface Data {
+  [key: string]: unknown
+}
+
+// 声明 \`context\` 的类型
+interface SetupContext {
+  attrs: Data
+  slots: Slots
+  emit: (event: string, ...args: unknown[]) => void
+}
+
+// 使用的时候入参要加上声明, \`return\` 也要加上声明
+export default {
+  setup(props: Data, context: SetupContext): Data {
+    // ...
+
+    return {
+      // ...
+    }
+  },
+}

每个组件都这样进行类型声明,会非常繁琐,如果使用了 defineComponent ,就可以省略这些类型声明:

ts
import { defineComponent } from 'vue'
+
+// 使用 \`defineComponent\` 包裹组件的内部逻辑
+export default defineComponent({
+  setup(props, context) {
+    // ...
+
+    return {
+      // ...
+    }
+  },
+})

代码量瞬间大幅度减少,只要是 Vue 本身的 API , defineComponent 都可以自动推导其类型,这样开发者在编写组件的过程中,只需要维护自己定义的数据类型就可以了,可专注于业务。

组件的生命周期 ~new

在了解了 Vue 3 组件的两个前置知识点后,不着急写组件,还需要先了解组件的生命周期,这个知识点非常重要,只有理解并记住组件的生命周期,才能够灵活的把控好每一处代码的执行,使程序的运行结果可以达到预期。

升级变化

从 Vue 2 升级到 Vue 3 ,在保留对 Vue 2 的生命周期支持的同时,Vue 3 也带来了一定的调整。

Vue 2 的生命周期写法名称是 Options API (选项式 API ), Vue 3 新的生命周期写法名称是 Composition API (组合式 API )。

Vue 3 组件默认支持 Options API ,而 Vue 2 可以通过 @vue/composition-api 插件获得 Composition API 的功能支持(其中 Vue 2.7 版本内置了该插件, 2.6 及以下的版本需要单独安装)。

为了减少理解成本,笔者将从读者的使用习惯上,使用 “ Vue 2 的生命周期” 代指 Options API 写法,用 “ Vue 3 的生命周期” 代指 Composition API 写法。

关于 Vue 生命周期的变化,可以从下表直观地了解:

Vue 2 生命周期Vue 3 生命周期执行时间说明
beforeCreatesetup组件创建前执行
createdsetup组件创建后执行
beforeMountonBeforeMount组件挂载到节点上之前执行
mountedonMounted组件挂载完成后执行
beforeUpdateonBeforeUpdate组件更新之前执行
updatedonUpdated组件更新完成之后执行
beforeDestroyonBeforeUnmount组件卸载之前执行
destroyedonUnmounted组件卸载完成后执行
errorCapturedonErrorCaptured当捕获一个来自子孙组件的异常时激活钩子函数

可以看到 Vue 2 生命周期里的 beforeCreatecreated ,在 Vue 3 里已被 setup 替代。

熟悉 Vue 2 的开发者应该都知道 Vue 有一个全局组件 <KeepAlive /> ,用于在多个组件间动态切换时缓存被移除的组件实例,当组件被包含在 <KeepAlive /> 组件里时,会多出两个生命周期钩子函数:

Vue 2 生命周期Vue 3 生命周期执行时间说明
activatedonActivated被激活时执行
deactivatedonDeactivated切换组件后,原组件消失前执行

TIP

虽然 Vue 3 依然支持 Vue 2 的生命周期,但是不建议混搭使用,前期可以继续使用 Vue 2 的生命周期作为过度阶段慢慢适应,但还是建议尽快熟悉并完全使用 Vue 3 的生命周期编写组件。

使用 3.x 的生命周期

在 Vue 3 的 Composition API 写法里,每个生命周期函数都要先导入才可以使用,并且所有生命周期函数统一放在 setup 里运行。

如果需要达到 Vue 2 的 beforeCreatecreated 生命周期的执行时机,直接在 setup 里执行函数即可。

以下是几个生命周期的执行顺序对比:

ts
import { defineComponent, onBeforeMount, onMounted } from 'vue'
+
+export default defineComponent({
+  setup() {
+    console.log(1)
+
+    onBeforeMount(() => {
+      console.log(2)
+    })
+
+    onMounted(() => {
+      console.log(3)
+    })
+
+    console.log(4)
+  },
+})

最终将按照生命周期的顺序输出:

js
// 1
+// 4
+// 2
+// 3

组件的基本写法

如果想在 Vue 2 里使用 TypeScript 编写组件,需要通过 Options API 的 Vue.extend 语法,或者是另外一种风格 Class Component 的语法声明组件,其中为了更好的进行类型推导, Class Component 语法更受开发者欢迎。

但是 Class Component 语法和默认的组件语法相差较大,带来了一定的学习成本,对于平时编写 JavaScript 代码很少使用 Class 的开发者,适应时间应该也会比较长。

因此 Vue 3 在保留对 Class Component 支持的同时,推出了全新的 Function-based Component ,更贴合 JavaScript 的函数式编程风格,这也是接下来要讲解并贯穿全文使用的 Composition API 新写法。

Composition API 虽然也是一个步伐迈得比较大的改动,但其组件结构并没有特别大的变化,区别比较大的地方在于组件生命周期和响应式 API 的使用,只要掌握了这些核心功能,上手 Vue 3 非常容易!

看到这里可能有开发者心里在想:

“这几种组件写法,加上视图部分又有 Template 和 TSX 的写法之分,生命周期方面 Vue 3 对 Vue 2 的写法又保持了兼容,在 Vue 里写 TypeScript 的组合方式一只手数不过来,在入门时选择合适的编程风格就遇到了困难,可怎么办?”

不用担心!笔者将九种常见的组合方式以表格的形式进行对比, Vue 3 组件最好的写法一目了然!

回顾 Vue 2

在 Vue 2 ,常用以下三种写法声明 TypeScript 组件:

适用版本基本写法视图写法
Vue 2Vue.extendTemplate
Vue 2Class ComponentTemplate
Vue 2Class ComponentTSX

其中最接近 Options API 的写法是使用 Vue.extend API 声明组件:

ts
// 这是一段摘选自 Vue 2 官网的代码演示
+import Vue from 'vue'
+
+// 推荐使用 Vue.extend 声明组件
+const Component = Vue.extend({
+  // 类型推断已启用
+})
+
+// 不推荐这种方式声明
+const Component = {
+  // 这里不会有类型推断,
+  // 因为 TypeScript 不能确认这是 Vue 组件的选项
+}

而为了更好地获得 TypeScript 类型推导支持,通常使用 Class Component 的写法,这是 Vue 官方推出的一个装饰器插件(需要单独安装):

ts
// 这是一段摘选自 Vue 2 官网的代码演示
+import Vue from 'vue'
+import Component from 'vue-class-component'
+
+// @Component 修饰符注明了此类为一个 Vue 组件
+@Component({
+  // 所有的组件选项都可以放在这里
+  template: '<button @click="onClick">Click!</button>',
+})
+
+// 使用 Class 声明一个组件
+export default class MyComponent extends Vue {
+  // 初始数据可以直接声明为实例的 property
+  message: string = 'Hello!'
+
+  // 组件方法也可以直接声明为实例的方法
+  onClick(): void {
+    window.alert(this.message)
+  }
+}

可在 Vue 2 官网的 TypeScript 支持 一章了解更多配置说明。

了解 Vue 3 ~new

Vue 3 从设计初期就考虑了 TypeScript 的支持,其中 defineComponent 这个 API 就是为了解决 Vue 2 对 TypeScript 类型推导不完善等问题而推出的。

在 Vue 3 ,至少有以下六种写法可以声明 TypeScript 组件:

适用版本基本写法视图写法生命周期版本官方是否推荐
Vue 3Class ComponentTemplateVue 2×
Vue 3defineComponentTemplateVue 2×
Vue 3defineComponentTemplateVue 3
Vue 3Class ComponentTSXVue 2×
Vue 3defineComponentTSXVue 2×
Vue 3defineComponentTSXVue 3

其中 defineComponent + Composition API + Template 的组合是 Vue 官方最为推荐的组件声明方式,本书接下来的内容都会以这种写法作为示范案例,也推荐开发者在学习的过程中,使用该组合进行入门。

下面看看如何使用 Composition API 编写一个最简单的 Hello World 组件:

vue
<!-- Template 代码和 Vue 2 一样 -->
+<template>
+  <p class="msg">{{ msg }}</p>
+</template>
+
+<!-- Script 代码需要使用 Vue 3 的新写法-->
+<script lang="ts">
+// Vue 3 的 API 需要导入才能使用
+import { defineComponent } from 'vue'
+
+// 使用 \`defineComponent\` 包裹组件代码
+// 即可获得完善的 TypeScript 类型推导支持
+export default defineComponent({
+  setup() {
+    // 在 \`setup\` 方法里声明变量
+    const msg = 'Hello World!'
+
+    // 将需要在 \`<template />\` 里使用的变量 \`return\` 出去
+    return {
+      msg,
+    }
+  },
+})
+</script>
+
+<!-- CSS 代码和 Vue 2 一样 -->
+<style scoped>
+.msg {
+  font-size: 14px;
+}
+</style>

可以看到 Vue 3 的组件也是 <template /> + <script /> + <style /> 的三段式组合,上手非常简单。

其中 Template 沿用了 Vue 2 时期类似 HTML 风格的模板写法, Style 则是使用原生 CSS 语法或者 Less 等 CSS 预处理器编写。

但需要注意的是,在 Vue 3 的 Composition API 写法里,数据或函数如果需要在 <template /> 中使用,就必须在 setup 里将其 return 出去,而仅在 <script /> 里被调用的函数或变量,不需要渲染到模板则无需 return

响应式数据的变化 ~new

响应式数据是 MVVM 数据驱动编程的特色, Vue 的设计也是受 MVVM 模型的启发,相信大部分开发者选择 MVVM 框架都是因为数据驱动编程比传统的事件驱动编程要来得方便,而选择 Vue ,则是方便中的方便。

TIP

Model-View-ViewModel (简称 MVVM ) 是一种软件架构模式,将视图 UI 和业务逻辑分开,通过对逻辑数据的修改即可驱动视图 UI 的更新,因此常将这种编程方式称为 “数据驱动” ,与之对应的需要操作 DOM 才能完成视图更新的编程方式则称为 “事件驱动” 。

设计上的变化

作为最重要的一个亮点, Vue 3 的响应式数据在设计上和 Vue 2 有着很大的不同。

回顾 Vue 2

Vue 2 是使用了 Object.defineProperty API 的 getter/setter 来实现数据的响应性,这个方法的具体用法可以参考 MDN 的文档: Object.defineProperty - MDN

下面使用 Object.defineProperty 实现一个简单的双向绑定 demo ,亲自敲代码试一下可以有更多的理解:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>DefineProperty Demo</title>
+  </head>
+  <body>
+    <!-- 输入框和按钮 -->
+    <div>
+      <input type="text" id="input" />
+      <button onclick="vm.text = 'Hello World'">设置为 Hello World</button>
+    </div>
+    <!-- 输入框和按钮 -->
+
+    <!-- 文本展示 -->
+    <div id="output"></div>
+    <!-- 文本展示 -->
+
+    <script>
+      // 声明一个响应式数据
+      const vm = {}
+      Object.defineProperty(vm, 'text', {
+        set(value) {
+          document.querySelector('#input').value = value
+          document.querySelector('#output').innerText = value
+        },
+      })
+
+      // 处理输入行为
+      document.querySelector('#input').oninput = function (e) {
+        vm.text = e.target.value
+      }
+    </script>
+  </body>
+</html>

这个小 demo 实现了这两个功能:

  1. 输入框的输入行为只修改 vm.text 的数据,但会同时更新 output 标签的文本内容
  2. 点击按钮修改 vm.text 的数据,也会触发输入框和 output 文本的更新

当然 Vue 做了非常多的工作,而非只是简单的调用了 Object.defineProperty ,可以在官网 深入 Vue 2 的响应式原理 一章了解更多 Vue 2 的响应式原理。

了解 Vue 3

Vue 3 是使用了 Proxy API 的 getter/setter 来实现数据的响应性,这个方法的具体用法可以参考 MDN 的文档: Proxy - MDN

同样的,也来实现一个简单的双向绑定 demo ,这次使用 Proxy 来实现:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Proxy Demo</title>
+  </head>
+  <body>
+    <!-- 输入框和按钮 -->
+    <div>
+      <input type="text" id="input" />
+      <button onclick="vm.text = 'Hello World'">设置为 Hello World</button>
+    </div>
+    <!-- 输入框和按钮 -->
+
+    <!-- 文本展示 -->
+    <div id="output"></div>
+    <!-- 文本展示 -->
+
+    <script>
+      // 声明一个响应式数据
+      const vm = new Proxy(
+        {},
+        {
+          set(obj, key, value) {
+            document.querySelector('#input').value = value
+            document.querySelector('#output').innerText = value
+          },
+        }
+      )
+
+      // 处理输入行为
+      document.querySelector('#input').oninput = function (e) {
+        vm.text = e.target.value
+      }
+    </script>
+  </body>
+</html>

这个 demo 实现的功能和使用 Object.defineProperty 的 demo 是完全一样的,也都是基于 setter 的行为完成数据更新的实现,那么为什么 Vue 3 要舍弃 Object.defineProperty ,换成 Proxy 呢?

主要原因在于 Object.defineProperty 有以下的不足:

  1. 无法侦听数组下标的变化,通过 arr[i] = newValue 这样的操作无法实时响应
  2. 无法侦听数组长度的变化,例如通过 arr.length = 10 去修改数组长度,无法响应
  3. 只能侦听对象的属性,对于整个对象需要遍历,特别是多级对象更是要通过嵌套来深度侦听
  4. 使用 Object.assign() 等方法给对象添加新属性时,也不会触发更新
  5. 更多细节上的问题 …

这也是为什么 Vue 2 要提供一个 Vue.set API 的原因,可以在官网 Vue 2 中检测变化的注意事项 一章了解更多说明。

而这些问题在 Proxy 都可以得到解决,可以在官网 深入 Vue 3 的响应式原理 一章了解更多这部分的内容。

用法上的变化

本书只使用 Composition API 编写组件,这是使用 Vue 3 的最大优势。

TIP

虽然官方文档在各个 API 的使用上都做了一定的举例,但在实际使用过程中可能会遇到一些问题,常见的情况就是有些数据用着用着就失去了响应,或者是在 TypeScript 里出现类型不匹配的报错等等。

当然,一般遇到这种情况并不一定是框架的 BUG ,而可能是使用方式不对,本章节将结合笔者最初入门 Vue 3 时遇到的问题和解决问题的心得,复盘这些响应式 API 的使用。

相对于 Vue 2 在 data 里声明后即可通过 this.xxx 调用响应式数据,在 Vue 3 的生命周期里没有了 Vue 实例的 this 指向,需要导入 refreactive 等响应式 API 才能声明并使用响应式数据。

ts
// 这里导入的 \`ref\` 是一个响应式 API
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 通过响应式 API 创建的变量具备了响应性
+    const msg = ref<string>('Hello World!')
+  },
+})

由于 Vue 3 新的 API 非常多,但有些 API 的使用场景却不多,因此本书当前只对常用的部分 API 的使用和常见问题进行说明,更多的 API 可以在官方文档的 响应性 API 一章查阅。

响应式 API 之 ref ~new

ref 是最常用的一个响应式 API,它可以用来定义所有类型的数据,包括 Node 节点和组件。

没错,在 Vue 2 常用的 this.$refs.xxx 来取代 document.querySelector('.xxx') 获取 Node 节点的方式,也是使用这个 API 来取代。

类型声明

在开始使用 API 之前,需要先了解在 TypeScript 中如何声明 Ref 变量的类型。

API 本身的类型

先看 API 本身, ref API 是一个函数,通过接受一个泛型入参,返回一个响应式对象,所有的值都通过 .value 属性获取,这是 API 本身的 TS 类型:

ts
// \`ref\` API 的 TS 类型
+function ref<T>(value: T): Ref<UnwrapRef<T>>
+
+// \`ref\` API 的返回值的 TS 类型
+interface Ref<T> {
+  value: T
+}

因此在声明变量时,是使用尖括号 <> 包裹其 TS 类型,紧跟在 ref API 之后:

ts
// 显式指定 \`msg.value\` 是 \`string\` 类型
+const msg = ref<string>('Hello World!')

再回看该 API 本身的类型,其中使用了 T 泛型,这表示在传入函数的入参时,可以不需要手动指定其 TS 类型, TypeScript 会根据这个 API 所返回的响应式对象的 .value 属性的类型,确定当前变量的类型。

因此也可以省略显式的类型指定,像下面这样声明变量,其类型交给 TypeScript 去自动推导:

ts
// TypeScript 会推导 \`msg.value\` 是 \`string\` 类型
+const msg = ref('Hello World')

对于声明时会赋予初始值,并且在使用过程中不会改变其类型的变量,是可以省略类型的显式指定的。

而如果有显式的指定的类型,那么在一些特殊情况下,初始化时可以不必赋值,这样 TypeScript 会自动添加 undefined 类型:

ts
const msg = ref<string>()
+console.log(msg.value) // undefined
+
+msg.value = 'Hello World!'
+console.log(msg.value) // Hello World!

因为入参留空时,虽然指定了 string 类型,但实际上此时的值是 undefined ,因此实际上这个时候的 msg.value 是一个 string | undefined 的联合类型。

对于声明时不知道是什么值,在某种条件下才进行初始化的情况,就可以省略其初始值,但是切记在调用该变量的时候对 .value 值进行有效性判断。

而如果既不显式指定类型,也不赋予初始值,那么会被默认为 any 类型,除非真的无法确认类型,否则不建议这么做。

API 返回值的类型

细心的开发者还会留意到 ref API 类型里面还标注了一个返回值的 TS 类型:

ts
interface Ref<T> {
+  value: T
+}

它是代表整个 Ref 变量的完整类型:

  • 上文声明 Ref 变量时,提到的 string 类型都是指 msg.value 这个 .value 属性的类型
  • msg 这个响应式变量,其本身是 Ref<string> 类型

如果在开发过程中需要在函数里返回一个 Ref 变量,那么其 TypeScript 类型就可以这样写(请留意 Calculator 里的 num 变量的类型):

ts
// 导入 \`ref\` API
+import { ref } from 'vue'
+// 导入 \`ref\` API 的返回值类型
+import type { Ref } from 'vue'
+
+// 声明 \`useCalculator\` 函数的返回值类型
+interface Calculator {
+  // 这里包含了一个 Ref 变量
+  num: Ref<number>
+  add: () => void
+}
+
+// 声明一个 “使用计算器” 的函数
+function useCalculator(): Calculator {
+  const num = ref<number>(0)
+
+  function add() {
+    num.value++
+  }
+
+  return {
+    num,
+    add,
+  }
+}
+
+// 在执行使用计算器函数时,可以获取到一个 Ref 变量和其他方法
+const { num, add } = useCalculator()
+add()
+console.log(num.value) // 1

上面这个简单的例子演示了如何手动指定 Ref 变量的类型,对于逻辑复用时的函数代码抽离、插件开发等场景非常有用!当然大部分情况下可以交给 TypeScript 自动推导,但掌握其用法,在必要的时候就派得上用场了!

变量的定义

在了解了如何对 Ref 变量进行类型声明之后,面对不同的数据类型,相信都得心应手了!但不同类型的值之间还是有少许差异和注意事项,例如上文提及到该 API 可以用来定义所有类型的数据,包括 Node 节点和组件,具体可以参考下文的示例。

基本类型

对字符串、布尔值等基本类型的定义方式,比较简单:

ts
// 字符串
+const msg = ref<string>('Hello World!')
+
+// 数值
+const count = ref<number>(1)
+
+// 布尔值
+const isVip = ref<boolean>(false)

引用类型

对于对象、数组等引用类型也适用,比如要定义一个对象:

ts
// 先声明对象的格式
+interface Member {
+  id: number
+  name: string
+}
+
+// 在定义对象时指定该类型
+const userInfo = ref<Member>({
+  id: 1,
+  name: 'Tom',
+})

定义一个普通数组:

ts
// 数值数组
+const uids = ref<number[]>([1, 2, 3])
+
+// 字符串数组
+const names = ref<string[]>(['Tom', 'Petter', 'Andy'])

定义一个对象数组:

ts
// 声明对象的格式
+interface Member {
+  id: number
+  name: string
+}
+
+// 定义一个对象数组
+const memberList = ref<Member[]>([
+  {
+    id: 1,
+    name: 'Tom',
+  },
+  {
+    id: 2,
+    name: 'Petter',
+  },
+])

DOM 元素与子组件

除了可以定义数据,ref 也有熟悉的用途,就是用来挂载节点,也可以挂在子组件上,也就是对应在 Vue 2 时常用的 this.$refs.xxx 获取 DOM 元素信息的作用。

模板部分依然是熟悉的用法,在要引用的 DOM 上添加一个 ref 属性:

vue
<template>
+  <!-- 给 DOM 元素添加 \`ref\` 属性 -->
+  <p ref="msg">请留意该节点,有一个 ref 属性</p>
+
+  <!-- 子组件也是同样的方式添加 -->
+  <Child ref="child" />
+</template>

<script /> 部分有三个最基本的注意事项:

  1. <template /> 代码里添加的 ref 属性的值,是对应 <script /> 里使用 ref API 声明的变量的名称;

  2. 请保证视图渲染完毕后再执行 DOM 或组件的相关操作(需要放到生命周期的 onMounted 或者 nextTick 函数里,这一点在 Vue 2 也是一样);

  3. 该 Ref 变量必须 return 出去才可以给到 <template /> 使用,这一点是 Vue 3 生命周期的硬性要求,子组件的数据和方法如果要给父组件操作,也要 return 出来才可以。

配合上面的 <template /> ,来看看 <script /> 部分的具体例子:

ts
import { defineComponent, onMounted, ref } from 'vue'
+import Child from '@cp/Child.vue'
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+  setup() {
+    // 定义挂载节点,声明的类型详见下方附表
+    const msg = ref<HTMLElement>()
+    const child = ref<InstanceType<typeof Child>>()
+
+    // 请保证视图渲染完毕后再执行节点操作 e.g. \`onMounted\` / \`nextTick\`
+    onMounted(() => {
+      // 比如获取 DOM 的文本
+      console.log(msg.value.innerText)
+
+      // 或者操作子组件里的数据
+      child.value.isShowDialog = true
+    })
+
+    // 必须 \`return\` 出去才可以给到 \`<template />\` 使用
+    return {
+      msg,
+      child,
+    }
+  },
+})

关于 DOM 和子组件的 TS 类型声明,可参考以下规则:

节点类型声明类型参考文档
DOM 元素使用 HTML 元素接口HTML 元素接口
子组件使用 InstanceType 配合 typeof 获取子组件的类型typeof 操作符

TIP

单纯使用 typeof Child 虽然可以获得 Child.vue 组件的 Props 和方法等提示,但在 VSCode 的类型推导还不够智能,缺乏更有效的代码补全支持。

上文使用的 InstanceType<T> 是 TypeScript 提供的一个工具类型,可以获取构造函数类型的实例类型,因此将组件的类型声明为 InstanceType<typeof Child> ,不仅可以得到更完善的类型提示,在编程过程中还可以让编辑器提供更完善的代码补全功能。

另外,关于这一小节,有一个可能会引起 TS 编译报错的情况是,一些脚手架创建出来的项目会默认启用 --strictNullChecks 选项,会导致案例中的代码无法正常编译,出现如下报错:

bash
 npm run build
+
+> hello-vue3@0.0.0 build
+> vue-tsc --noEmit && vite build
+
+src/views/home.vue:27:7 - error TS2532: Object is possibly 'undefined'.
+
+27       child.value.isShowDialog = true
+         ~~~~~~~~~~~
+
+
+Found 1 error in src/views/home.vue:27

这是因为在默认情况下 nullundefined 是所有类型的子类型,但开启了 strictNullChecks 选项之后,会使 nullundefined 只能赋值给 void 和它们各自,这是一个更为严谨的选项,可以保障程序代码的健壮性,但对于刚接触 TypeScript 不久的开发者可能不太友好。

有以下几种解决方案可以参考:

  1. 在涉及到相关操作的时候,对节点变量增加一个判断:
ts
// 添加 \`if\` 分支,判断 \`.value\` 存在时才执行相关代码
+if (child.value) {
+  // 读取子组件的数据
+  console.log(child.value.num)
+
+  // 执行子组件的方法
+  child.value.sayHi('Use \`if\` in \`onMounted\` API.')
+}
  1. 通过 TS 的可选符 ? 将目标设置为可选,避免出现错误(这个方式不能直接修改子组件数据的值):
ts
// 读取子组件的数据(留意 \`.num\` 前面有一个 \`?\` 问号)
+console.log(child.value?.num)
+
+// 执行子组件的方法(留意 \`.sayHi\` 前面有一个 \`?\` 问号)
+child.value?.sayHi('use ? in onMounted')
  1. 在项目根目录下的 tsconfig.json 文件里,显式的关闭 strictNullChecks 选项,关闭后,需要开发者在写代码的时候,自行把控好是否需要对 nullundefined 进行判断:
json
{
+  "compilerOptions": {
+    // ...
+    "strictNullChecks": false
+  }
+  // ...
+}
  1. 使用 any 类型代替,但是写 TypeScript 还是尽量不要使用 any ,满屏的 AnyScript 不如直接使用 JavaScript

变量的读取与赋值

前面在介绍 API 类型的时候已经了解,通过 ref 声明的变量会全部变成对象,不管定义的是什么类型的值,都会转化为一个 Ref 对象,其中 Ref 对象具有指向内部值的单个 Property .value

也就是说,任何 Ref 对象的值都必须通过 xxx.value 才可以正确获取。

请牢记上面这句话,初拥 Vue 3 的开发者很多 BUG 都是由于这个问题引起的(包括笔者刚开始使用 Vue 3 的那段时间,嘿嘿)。

读取变量

平时对于普通变量的值,读取的时候都是直接调用其变量名即可:

ts
// 读取一个字符串
+const msg: string = 'Hello World!'
+console.log(msg)
+
+// 读取一个数组
+const uids: number[] = [1, 2, 3]
+console.log(uids[1])

而 Ref 对象的值的读取,切记!必须通过 .value

ts
// 读取一个字符串
+const msg = ref<string>('Hello World!')
+console.log(msg.value)
+
+// 读取一个数组
+const uids = ref<number[]>([1, 2, 3])
+console.log(uids.value[1])

为变量赋值

普通变量需要使用 let 声明才可以修改其值,由于 Ref 对象是个引用类型,所以可以使用 const 声明,直接通过 .value 修改。

ts
// 声明一个字符串变量
+const msg = ref<string>('Hi!')
+
+// 等待 1s 后修改它的值
+setTimeout(() => {
+  msg.value = 'Hello!'
+}, 1000)

因此日常业务中,像在对接服务端 API 的接口数据时,可以自由的使用 forEachmapfilter 等方法操作 Ref 数组,或者直接重置它,而不必担心数据失去响应性。

ts
const data = ref<string[]>([])
+
+// 提取接口的数据
+data.value = api.data.map((item: any) => item.text)
+
+// 重置数组
+data.value = []

为什么突然要说这个呢?因为涉及到下一部分的知识,关于 reactive API 在使用上的注意事项。

响应式 API 之 reactive ~new

reactive 是继 ref 之后最常用的一个响应式 API 了,相对于 ref ,它的局限性在于只适合对象、数组。

TIP

使用 reactive 的好处就是写法跟平时的对象、数组几乎一模一样,但它也带来了一些特殊注意点,请留意赋值部分的特殊说明。

类型声明与定义

reactive 变量的声明方式没有 ref 的变化那么大,基本上和普通变量一样,它的 TS 类型如下:

ts
function reactive<T extends object>(target: T): UnwrapNestedRefs<T>

可以看到其用法还是比较简单的,下面是一个 Reactive 对象的声明方式:

ts
// 声明对象的类型
+interface Member {
+  id: number
+  name: string
+}
+
+// 定义一个对象
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Tom',
+})

下面是 Reactive 数组的声明方式:

ts
const uids: number[] = reactive([1, 2, 3])

还可以声明一个 Reactive 对象数组:

ts
// 对象数组也是先声明其中的对象类型
+interface Member {
+  id: number
+  name: string
+}
+
+// 再定义一个为对象数组
+const userList: Member[] = reactive([
+  {
+    id: 1,
+    name: 'Tom',
+  },
+  {
+    id: 2,
+    name: 'Petter',
+  },
+  {
+    id: 3,
+    name: 'Andy',
+  },
+])

变量的读取与赋值

虽然 reactive API 在使用上没有像 ref API 一样有 .value 的心智负担,但也有一些注意事项要留意。

处理对象

Reactive 对象在读取字段的值,或者修改值的时候,与普通对象是一样的,这部分没有太多问题。

ts
// 声明对象的类型
+interface Member {
+  id: number
+  name: string
+}
+
+// 定义一个对象
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Tom',
+})
+
+// 读取用户名
+console.log(userInfo.name)
+
+// 修改用户名
+userInfo.name = 'Petter'

处理数组

但是对于 Reactive 数组,和普通数组会有一些区别。

普通数组在 “重置” 或者 “修改值” 时都是可以直接操作:

ts
// 定义一个普通数组
+let uids: number[] = [1, 2, 3]
+
+// 从另外一个对象数组里提取数据过来
+uids = api.data.map((item: any) => item.id)
+
+// 合并另外一个数组
+let newUids: number[] = [4, 5, 6]
+uids = [...uids, ...newUids]
+
+// 重置数组
+uids = []

Vue 2 在操作数组的时候,也可以和普通数组这样处理数据的变化,依然能够保持响应性,但在 Vue 3 ,如果使用 reactive 定义数组,则不能这么处理,必须只使用那些不会改变引用地址的操作。

笔者刚开始接触时,按照原来的思维去处理 reactive 数组,于是遇到了 “数据变了,但模板不会更新的问题” ,如果开发者在学习的过程中也遇到了类似的情况,可以从这里去入手排查问题所在。

举个例子,比如要从服务端 API 接口获取翻页数据时,通常要先重置数组,再异步添加数据,如果使用常规的重置,会导致这个变量失去响应性:

ts
let uids: number[] = reactive([1, 2, 3])
+
+/**
+ * 不推荐使用这种方式,会丢失响应性
+ * 异步添加数据后,模板不会响应更新
+ */
+uids = []
+
+// 异步获取数据后,模板依然是空数组
+setTimeout(() => {
+  uids.push(1)
+}, 1000)

要让数据依然保持响应性,则必须在关键操作时,不破坏响应性 API ,以下是推荐的操作方式,通过重置数组的 length 长度来实现数据的重置:

ts
const uids: number[] = reactive([1, 2, 3])
+
+/**
+ * 推荐使用这种方式,不会破坏响应性
+ */
+uids.length = 0
+
+// 异步获取数据后,模板可以正确的展示
+setTimeout(() => {
+  uids.push(1)
+}, 1000)

特别注意

不要对 Reactive 数据进行 ES6 的解构 操作,因为解构后得到的变量会失去响应性。

比如这些情况,在 2s 后都得不到新的 name 信息:

ts
import { defineComponent, reactive } from 'vue'
+
+interface Member {
+  id: number
+  name: string
+}
+
+export default defineComponent({
+  setup() {
+    // 定义一个带有响应性的对象
+    const userInfo: Member = reactive({
+      id: 1,
+      name: 'Petter',
+    })
+
+    // 在 2s 后更新 \`userInfo\`
+    setTimeout(() => {
+      userInfo.name = 'Tom'
+    }, 2000)
+
+    // 这个变量在 2s 后不会同步更新
+    const newUserInfo: Member = { ...userInfo }
+
+    // 这个变量在 2s 后不会再同步更新
+    const { name } = userInfo
+
+    // 这样 \`return\` 出去给模板用,在 2s 后也不会同步更新
+    return {
+      ...userInfo,
+    }
+  },
+})

响应式 API 之 toRef 与 toRefs ~new

相信各位开发者看到这里时,应该已经对 refreactive API 都有所了解了,为了方便开发者使用, Vue 3 还推出了两个与之相关的 API : toReftoRefs ,都是用于 reactiveref 转换。

各自的作用

这两个 API 在拼写上非常接近,顾名思义,一个是只转换一个字段,一个是转换所有字段,转换后将得到新的变量,并且新变量和原来的变量可以保持同步更新。

API作用
toRef创建一个新的 Ref 变量,转换 Reactive 对象的某个字段为 Ref 变量
toRefs创建一个新的对象,它的每个字段都是 Reactive 对象各个字段的 Ref 变量

光看概念可能不容易理解,来看下面的例子,先声明一个 reactive 变量:

ts
interface Member {
+  id: number
+  name: string
+}
+
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Petter',
+})

然后分别看看这两个 API 应该怎么使用。

使用 toRef

先看这个转换单个字段的 toRef API ,了解了它的用法之后,再去看 toRefs 就很容易理解了。

API 类型和基本用法

toRef API 的 TS 类型如下:

ts
// \`toRef\` API 的 TS 类型
+function toRef<T extends object, K extends keyof T>(
+  object: T,
+  key: K,
+  defaultValue?: T[K]
+): ToRef<T[K]>
+
+// \`toRef\` API 的返回值的 TS 类型
+type ToRef<T> = T extends Ref ? T : Ref<T>

通过接收两个必传的参数(第一个是 reactive 对象, 第二个是要转换的 key ),返回一个 Ref 变量,在适当的时候也可以传递第三个参数,为该变量设置默认值。

以上文声明好的 userInfo 为例,如果想转换 name 这个字段为 Ref 变量,只需要这样操作:

ts
const name = toRef(userInfo, 'name')
+console.log(name.value) // Petter

等号左侧的 name 变量此时是一个 Ref 变量,这里因为 TypeScript 可以对其自动推导,因此声明时可以省略 TS 类型的显式指定,实际上该变量的类型是 Ref<string>

所以之后在读取和赋值时,就需要使用 name.value 来操作,在重新赋值时会同时更新 nameuserInfo.name 的值:

ts
// 修改前先查看初始值
+const name = toRef(userInfo, 'name')
+console.log(name.value) // Petter
+console.log(userInfo.name) // Petter
+
+// 修改 Ref 变量的值,两者同步更新
+name.value = 'Tom'
+console.log(name.value) // Tom
+console.log(userInfo.name) // Tom
+
+// 修改 Reactive 对象上该属性的值,两者也是同步更新
+userInfo.name = 'Jerry'
+console.log(name.value) // Jerry
+console.log(userInfo.name) // Jerry

这个 API 也可以接收一个 Reactive 数组,此时第二个参数应该传入数组的下标:

ts
// 这一次声明的是数组
+const words = reactive(['a', 'b', 'c'])
+
+// 通过下标 \`0\` 转换第一个 item
+const a = toRef(words, 0)
+console.log(a.value) // a
+console.log(words[0]) // a
+
+// 通过下标 \`2\` 转换第三个 item
+const c = toRef(words, 2)
+console.log(c.value) // c
+console.log(words[2]) // c

设置默认值

如果 Reactive 对象上有一个属性本身没有初始值,也可以传递第三个参数进行设置(默认值仅对 Ref 变量有效):

ts
interface Member {
+  id: number
+  name: string
+  // 类型上新增一个属性,因为是可选的,因此默认值会是 \`undefined\`
+  age?: number
+}
+
+// 声明变量时省略 \`age\` 属性
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Petter',
+})
+
+// 此时为了避免程序运行错误,可以指定一个初始值
+// 但初始值仅对 Ref 变量有效,不会影响 Reactive 字段的值
+const age = toRef(userInfo, 'age', 18)
+console.log(age.value)  // 18
+console.log(userInfo.age) // undefined
+
+// 除非重新赋值,才会使两者同时更新
+age.value = 25
+console.log(age.value)  // 25
+console.log(userInfo.age) // 25

数组也是同理,对于可能不存在的下标,可以传入默认值避免项目的逻辑代码出现问题:

ts
const words = reactive(['a', 'b', 'c'])
+
+// 当下标对应的值不存在时,也是返回 \`undefined\`
+const d = toRef(words, 3)
+console.log(d.value) // undefined
+console.log(words[3]) // undefined
+
+// 设置了默认值之后,就会对 Ref 变量使用默认值, Reactive 数组此时不影响
+const e = toRef(words, 4, 'e')
+console.log(e.value) // e
+console.log(words[4]) // undefined

其他用法

这个 API 还有一个特殊用法,但不建议在 TypeScript 里使用。

toRef 的过程中,如果使用了原对象上面不存在的 key ,那么定义出来的 Ref 变量的 .value 值将会是 undefined

ts
// 众所周知, Petter 是没有女朋友的
+const girlfriend = toRef(userInfo, 'girlfriend')
+console.log(girlfriend.value) // undefined
+console.log(userInfo.girlfriend) // undefined
+
+// 此时 Reactive 对象上只有两个 Key
+console.log(Object.keys(userInfo)) // ['id', 'name']

如果对这个不存在的 key 的 Ref 变量进行赋值,那么原来的 Reactive 对象也会同步增加这个 key,其值也会同步更新。

ts
// 赋值后,不仅 Ref 变量得到了 \`Marry\` , Reactive 对象也得到了 \`Marry\`
+girlfriend.value = 'Marry'
+console.log(girlfriend.value) // 'Marry'
+console.log(userInfo.girlfriend) // 'Marry'
+
+// 此时 Reactive 对象上有了三个 Key
+console.log(Object.keys(userInfo)) // ['id', 'name', 'girlfriend']

为什么强调不要在 TypeScript 里使用呢?因为在编译时,无法通过 TypeScript 的类型检查:

bash
 npm run build
+
+> hello-vue3@0.0.0 build
+> vue-tsc --noEmit && vite build
+
+src/views/home.vue:37:40 - error TS2345: Argument of type '"girlfriend"'
+is not assignable to parameter of type 'keyof Member'.
+
+37     const girlfriend = toRef(userInfo, 'girlfriend')
+                                          ~~~~~~~~~~~~
+
+src/views/home.vue:39:26 - error TS2339: Property 'girlfriend' does not exist
+on type 'Member'.
+
+39     console.log(userInfo.girlfriend) // undefined
+                            ~~~~~~~~~~
+
+src/views/home.vue:45:26 - error TS2339: Property 'girlfriend' does not exist
+on type 'Member'.
+
+45     console.log(userInfo.girlfriend) // 'Marry'
+                            ~~~~~~~~~~
+
+
+Found 3 errors in the same file, starting at: src/views/home.vue:37

如果不得不使用这种情况,可以考虑使用 any 类型:

ts
// 将该类型直接指定为 \`any\`
+type Member = any
+// 当然一般都是 \`const userInfo: any\`
+
+// 或者保持接口类型的情况下,允许任意键值
+interface Member {
+  [key: string]: any
+}
+
+// 使用 \`Record\` 也是同理
+type Member = Record<string, any>

但笔者还是更推荐保持良好的类型声明习惯,尽量避免这种用法。

使用 toRefs

在了解了 toRef API 之后,来看看 toRefs 的用法。

API 类型和基本用法

先看看它的 TS 类型:

ts
function toRefs<T extends object>(
+  object: T
+): {
+  [K in keyof T]: ToRef<T[K]>
+}
+
+type ToRef = T extends Ref ? T : Ref<T>

toRef 不同, toRefs 只接收了一个参数,是一个 reactive 变量。

ts
interface Member {
+  id: number
+  name: string
+}
+
+// 声明一个 Reactive 变量
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Petter',
+})
+
+// 传给 \`toRefs\` 作为入参
+const userInfoRefs = toRefs(userInfo)

此时这个新的 userInfoRefs 变量,它的 TS 类型就不再是 Member 了,而应该是:

ts
// 导入 \`toRefs\` API 的类型
+import type { ToRefs } from 'vue'
+
+// 上下文代码省略...
+
+// 将原来的类型传给 API 的类型
+const userInfoRefs: ToRefs<Member> = toRefs(userInfo)

也可以重新编写一个新的类型来指定它,因为每个字段都是与原来关联的 Ref 变量,所以也可以这样声明:

ts
// 导入 \`ref\` API 的类型
+import type { Ref } from 'vue'
+
+// 上下文代码省略...
+
+// 新声明的类型每个字段都是一个 Ref 变量的类型
+interface MemberRefs {
+  id: Ref<number>
+  name: Ref<string>
+}
+
+// 使用新的类型进行声明
+const userInfoRefs: MemberRefs = toRefs(userInfo)

当然实际上日常使用时并不需要手动指定其类型, TypeScript 会自动推导,可以节约非常多的开发工作量。

toRef API 一样,这个 API 也是可以对数组进行转换:

ts
const words = reactive(['a', 'b', 'c'])
+const wordsRefs = toRefs(words)

此时新数组的类型是 Ref<string>[] ,不再是原来的 string[] 类型。

解构与赋值

转换后的 Reactive 对象或数组支持 ES6 的解构,并且不会失去响应性,因为解构后的每一个变量都具备响应性。

ts
// 为了提高开发效率,可以直接将 Ref 变量直接解构出来使用
+const { name } = toRefs(userInfo)
+console.log(name.value) // Petter
+
+// 此时对解构出来的变量重新赋值,原来的变量也可以同步更新
+name.value = 'Tom'
+console.log(name.value) // Tom
+console.log(userInfo.name) // Tom

这一点和直接解构 Reactive 变量有非常大的不同,直接解构 Reactive 变量,得到的是一个普通的变量,不再具备响应性。

这个功能在使用 Hooks 函数非常好用(在 Vue 3 里也叫可组合函数, Composable Functions ),还是以一个计算器函数为例,这一次将其修改为内部有一个 Reactive 的数据状态中心,在函数返回时解构为多个 Ref 变量:

ts
import { reactive, toRefs } from 'vue'
+
+// 声明 \`useCalculator\` 数据状态类型
+interface CalculatorState {
+  // 这是要用来计算操作的数据
+  num: number
+  // 这是每次计算时要增加的幅度
+  step: number
+}
+
+// 声明一个 “使用计算器” 的函数
+function useCalculator() {
+  // 通过数据状态中心的形式,集中管理内部变量
+  const state: CalculatorState = reactive({
+    num: 0,
+    step: 10,
+  })
+
+  // 功能函数也是通过数据中心变量去调用
+  function add() {
+    state.num += state.step
+  }
+
+  return {
+    ...toRefs(state),
+    add,
+  }
+}

这样在调用 useCalculator 函数时,可以通过解构直接获取到 Ref 变量,不需要再进行额外的转换工作。

ts
// 解构出来的 \`num\` 和 \`step\` 都是 Ref 变量
+const { num, step, add } = useCalculator()
+console.log(num.value) // 0
+console.log(step.value) // 10
+
+// 调用计算器的方法,数据也是会得到响应式更新
+add()
+console.log(num.value) // 10

为什么要进行转换

关于为什么要出这么两个 API ,官方文档没有特别说明,不过经过笔者在业务中的一些实际使用感受,以及在写上一节 reactive特别注意,可能知道一些使用理由。

关于 refreactive 这两个 API 的好处就不重复了,但是在使用的过程中,各自都有不方便的地方:

ref API 虽然在 <template /> 里使用起来方便,但是在 <script /> 里进行读取 / 赋值的时候,要一直记得加上 .value ,否则 BUG 就来了。

reactive API 虽然在使用的时候,因为知道它本身是一个对象,所以不会忘记通过 foo.bar 这样的格式去操作,但是在 <template /> 渲染的时候,又因此不得不每次都使用 foo.bar 的格式去渲染。

那么有没有办法,既可以在编写 <script /> 的时候不容易出错,在写 <template /> 的时候又比较简单呢?

于是, toReftoRefs 因此诞生。

什么场景下比较适合使用它们

从便利性和可维护性来说,最好只在功能单一、代码量少的组件里使用,比如一个表单组件,通常表单的数据都放在一个对象里。

当然也可以把所有的数据都定义到一个 data 里,再去 data 里面取值,但是没有必要为了转换而转换,否则不如使用 Options API 风格。

在业务中的具体运用

继续使用上文一直在使用的 userInfo 来当案例,以一个用户信息表的小 demo 做个演示。

<script /> 部分:

  1. 先用 reactive 定义一个源数据,所有的数据更新,都是修改这个对象对应的值,按照对象的写法维护数据

  2. 再通过 toRefs 定义一个给 <template /> 使用的对象,这样可以得到一个每个字段都是 Ref 变量的新对象

  3. return 的时候,对步骤 2 里的 toRefs 对象进行解构,这样导出去就是各个字段对应的 Ref 变量,而不是一整个对象

ts
import { defineComponent, reactive, toRefs } from 'vue'
+
+interface Member {
+  id: number
+  name: string
+  age: number
+  gender: string
+}
+
+export default defineComponent({
+  setup() {
+    // 定义一个 reactive 对象
+    const userInfo = reactive({
+      id: 1,
+      name: 'Petter',
+      age: 18,
+      gender: 'male',
+    })
+
+    // 定义一个新的对象,它本身不具备响应性,但是它的字段全部是 Ref 变量
+    const userInfoRefs = toRefs(userInfo)
+
+    // 在 2s 后更新 \`userInfo\`
+    setTimeout(() => {
+      userInfo.id = 2
+      userInfo.name = 'Tom'
+      userInfo.age = 20
+    }, 2000)
+
+    // 在这里解构 \`toRefs\` 对象才能继续保持响应性
+    return {
+      ...userInfoRefs,
+    }
+  },
+})

<template /> 部分:

由于 return 出来的都是 Ref 变量,所以在模板里可以直接使用 userInfo 各个字段的 key ,不再需要写很长的 userInfo.name 了。

vue
<template>
+  <ul class="user-info">
+    <li class="item">
+      <span class="key">ID:</span>
+      <span class="value">{{ id }}</span>
+    </li>
+
+    <li class="item">
+      <span class="key">name:</span>
+      <span class="value">{{ name }}</span>
+    </li>
+
+    <li class="item">
+      <span class="key">age:</span>
+      <span class="value">{{ age }}</span>
+    </li>
+
+    <li class="item">
+      <span class="key">gender:</span>
+      <span class="value">{{ gender }}</span>
+    </li>
+  </ul>
+</template>

需要注意的问题

请注意是否有相同命名的变量存在,比如上面在 return<template /> 使用时,在解构 userInfoRefs 的时候已经包含了一个 name 字段,此时如果还有一个单独的变量也叫 name ,就会出现渲染上的数据显示问题。

此时它们在 <template /> 里哪个会生效,取决于谁排在后面,因为 return 出去的其实是一个对象,在对象里,如果存在相同的 key ,则后面的会覆盖前面的。

下面这种情况,会以单独的 name 为渲染数据:

ts
return {
+  ...userInfoRefs,
+  name,
+}

而下面这种情况,则是以 userInfoRefs 里的 name 为渲染数据:

ts
return {
+  name,
+  ...userInfoRefs,
+}

所以当决定使用 toReftoRefs API 的时候,请注意这个特殊情况!

函数的声明和使用 ~new

在了解了响应式数据如何使用之后,接下来就要开始了解函数了。

在 Vue 2 ,函数通常是作为当前组件实例上的方法在 methods 里声明,然后再在 mounted 等生命周期里调用,或者是在模板里通过 Click 等行为触发,由于组件内部经常需要使用 this 获取组件实例,因此不能使用箭头函数。

js
export default {
+  data: () => {
+    return {
+      num: 0,
+    }
+  },
+  mounted: function () {
+    this.add()
+  },
+  methods: {
+    // 不可以使用 \`add: () => this.num++\`
+    add: function () {
+      this.num++
+    },
+  },
+}

在 Vue 3 则灵活了很多,可以使用普通函数、 Class 类、箭头函数、匿名函数等等进行声明,可以将其写在 setup 里直接使用,也可以抽离在独立的 .js / .ts 文件里再导入使用。

需要在组件创建时自动执行的函数,其执行时机需要遵循 Vue 3 的生命周期,需要在模板里通过 @click@change 等行为触发,和变量一样,需要把函数名在 setup 里进行 return 出去。

下面是一个简单的例子,方便开发者更直观地了解:

vue
<template>
+  <p>{{ msg }}</p>
+
+  <!-- 在这里点击执行 \`return\` 出来的方法 -->
+  <button @click="updateMsg">修改MSG</button>
+</template>
+
+<script lang="ts">
+import { defineComponent, onMounted, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const msg = ref<string>('Hello World!')
+
+    // 这个要暴露给模板使用,必须 \`return\` 才可以使用
+    function updateMsg() {
+      msg.value = 'Hi World!'
+    }
+
+    // 这个要在页面载入时执行,无需 \`return\` 出去
+    const init = () => {
+      console.log('init')
+    }
+
+    onMounted(() => {
+      init()
+    })
+
+    return {
+      msg,
+      updateMsg,
+    }
+  },
+})
+</script>

数据的侦听 ~new

侦听数据变化也是组件里的一项重要工作,比如侦听路由变化、侦听参数变化等等。

Vue 3 在保留原来的 watch 功能之外,还新增了一个 watchEffect 帮助更简单的进行侦听。

watch

在 Vue 3 ,新版的 watch 和 Vue 2 的旧版写法对比,在使用方式上变化非常大!

回顾 Vue 2

在 Vue 2 是这样用的,和 datamethods 都在同级配置:

ts
export default {
+  data() {
+    return {
+      // ...
+    }
+  },
+  // 注意这里,放在 \`data\` 、 \`methods\` 同个级别
+  watch: {
+    // ...
+  },
+  methods: {
+    // ...
+  },
+}

并且类型繁多,选项式 API 的类型如下:

ts
watch: { [key: string]: string | Function | Object | Array}

联合类型过多,意味着用法复杂,下面是个很好的例子,虽然出自 官网 的用法介绍,但过于繁多的用法也反映出来对初学者不太友好,初次接触可能会觉得一头雾水:

ts
export default {
+  data() {
+    return {
+      a: 1,
+      b: 2,
+      c: {
+        d: 4,
+      },
+      e: 5,
+      f: 6,
+    }
+  },
+  watch: {
+    // 侦听顶级 Property
+    a(val, oldVal) {
+      console.log(\`new: \${val}, old: \${oldVal}\`)
+    },
+    // 字符串方法名
+    b: 'someMethod',
+    // 该回调会在任何被侦听的对象的 Property 改变时被调用,不论其被嵌套多深
+    c: {
+      handler(val, oldVal) {
+        console.log('c changed')
+      },
+      deep: true,
+    },
+    // 侦听单个嵌套 Property
+    'c.d': function (val, oldVal) {
+      // do something
+    },
+    // 该回调将会在侦听开始之后被立即调用
+    e: {
+      handler(val, oldVal) {
+        console.log('e changed')
+      },
+      immediate: true,
+    },
+    // 可以传入回调数组,它们会被逐一调用
+    f: [
+      'handle1',
+      function handle2(val, oldVal) {
+        console.log('handle2 triggered')
+      },
+      {
+        handler: function handle3(val, oldVal) {
+          console.log('handle3 triggered')
+        },
+        /* ... */
+      },
+    ],
+  },
+  methods: {
+    someMethod() {
+      console.log('b changed')
+    },
+    handle1() {
+      console.log('handle 1 triggered')
+    },
+  },
+}

当然肯定也会有开发者会觉得这样选择多是个好事,选择适合自己的就好,但笔者还是认为这种写法对于初学者来说不是那么友好,有些过于复杂化,如果一个用法可以适应各种各样的场景,岂不是更妙?

TIP

另外需要注意的是,不能使用箭头函数来定义 Watcher 函数 (例如 searchQuery: newValue => this.updateAutocomplete(newValue) )。

因为箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向组件实例, this.updateAutocomplete 将是 undefined

Vue 2 也可以通过 this.$watch() 这个 API 的用法来实现对某个数据的侦听,它接受三个参数: sourcecallbackoptions

ts
export default {
+  data() {
+    return {
+      a: 1,
+    }
+  },
+  // 生命周期钩子
+  mounted() {
+    this.$watch('a', (newVal, oldVal) => {
+      // ...
+    })
+  },
+}

由于 this.$watch 的用法和 Vue 3 比较接近,所以这里不做过多的回顾,请直接看 了解 Vue 3 部分。

了解 Vue 3

在 Vue 3 的组合式 API 写法, watch 是一个可以接受 3 个参数的函数(保留了 Vue 2 的 this.$watch 这种用法),在使用层面上简单了很多。

ts
import { watch } from 'vue'
+
+// 一个用法走天下
+watch(
+  source, // 必传,要侦听的数据源
+  callback // 必传,侦听到变化后要执行的回调函数
+  // options // 可选,一些侦听选项
+)

下面的内容都基于 Vue 3 的组合式 API 用法展开讲解。

API 的 TS 类型

在了解用法之前,先对它的 TS 类型声明做一个简单的了解, watch 作为组合式 API ,根据使用方式有两种类型声明:

  1. 基础用法的 TS 类型,详见 基础用法 部分
ts
// watch 部分的 TS 类型
+// ...
+export declare function watch<T, Immediate extends Readonly<boolean> = false>(
+  source: WatchSource<T>,
+  cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
+  options?: WatchOptions<Immediate>
+): WatchStopHandle
+// ...
  1. 批量侦听的 TS 类型,详见 批量侦听 部分
ts
// watch 部分的 TS 类型
+// ...
+export declare function watch<
+  T extends MultiWatchSources,
+  Immediate extends Readonly<boolean> = false
+>(
+  sources: [...T],
+  cb: WatchCallback<MapSources<T, false>, MapSources<T, Immediate>>,
+  options?: WatchOptions<Immediate>
+): WatchStopHandle
+
+// MultiWatchSources 是一个数组
+declare type MultiWatchSources = (WatchSource<unknown> | object)[]
+// ...

但是不管是基础用法还是批量侦听,可以看到这个 API 都是接受三个入参:

参数是否可选含义
source必传数据源(详见:要侦听的数据源
callback必传侦听到变化后要执行的回调函数(详见:侦听后的回调函数
options可选一些侦听选项(详见:侦听的选项

并返回一个可以用来停止侦听的函数(详见:停止侦听)。

要侦听的数据源

在上面 API 的 TS 类型 已经对 watch API 的组成有一定的了解了,这里先对数据源的类型和使用限制做下说明。

TIP

如果不提前了解,在使用的过程中可能会遇到 “侦听了但没有反应” 的情况出现。

另外,这部分内容会先围绕基础用法展开说明,批量侦听会在 批量侦听 部分单独说明。

watch API 的第 1 个参数 source 是要侦听的数据源,它的 TS 类型如下:

ts
// watch 第 1 个入参的 TS 类型
+// ...
+export declare type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T)
+// ...

可以看到能够用于侦听的数据,是通过 响应式 API 定义的变量( Ref<T> ),或者是一个 计算数据ComputedRef<T> ),或者是一个 getter 函数() => T )。

所以要想定义的 watch 能够做出预期的行为,数据源必须具备响应性或者是一个 getter ,如果只是通过 let 定义一个普通变量,然后去改变这个变量的值,这样是无法侦听的。

TIP

如果要侦听响应式对象里面的某个值(这种情况下对象本身是响应式,但它的 property 不是),需要写成 getter 函数,简单的说就是需要写成有返回值的函数,这个函数 return 要侦听的数据, e.g. () => foo.bar ,可以结合下方 基础用法 的例子一起理解。

侦听后的回调函数

在上面 API 的 TS 类型 介绍了 watch API 的组成,和数据源一样,先了解一下回调函数的定义。

TIP

和数据源部分一样,回调函数的内容也是会先围绕基础用法展开说明,批量侦听会在 批量侦听 部分单独说明。

watch API 的第 2 个参数 callback 是侦听到数据变化时要做出的行为,它的 TS 类型如下:

ts
// watch 第 2 个入参的 TS 类型
+// ...
+export declare type WatchCallback<V = any, OV = any> = (
+  value: V,
+  oldValue: OV,
+  onCleanup: OnCleanup
+) => any
+// ...

乍一看它有三个参数,但实际上这些参数不是自己定义的,而是 watch API 传给的,所以不管用或者不用,它们都在那里:

参数作用
value变化后的新值,类型和数据源保持一致
oldValue变化前的旧值,类型和数据源保持一致
onCleanup注册一个清理函数,详见 侦听效果清理 部分

注意:第一个参数是新值,第二个才是原来的旧值!

如同其他 JS 函数,在使用 watch 的回调函数时,可以对这三个参数任意命名,比如把 value 命名为觉得更容易理解的 newValue

TIP

如果侦听的数据源是一个 引用类型 时( e.g. ObjectArrayDate … ), valueoldValue 是完全相同的,因为指向同一个对象。

另外,默认情况下,watch 是惰性的,也就是只有当被侦听的数据源发生变化时才执行回调。

基础用法

来到这里,对 2 个必传的参数都有一定的了解了,先看看基础的用法,也就是日常最常编写的方案,只需要先关注前 2 个必传的参数。

ts
// 不要忘了导入要用的 API
+import { defineComponent, reactive, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 定义一个响应式数据
+    const userInfo = reactive({
+      name: 'Petter',
+      age: 18,
+    })
+
+    // 2s后改变数据
+    setTimeout(() => {
+      userInfo.name = 'Tom'
+    }, 2000)
+
+    /**
+     * 可以直接侦听这个响应式对象
+     * callback 的参数如果不用可以不写
+     */
+    watch(userInfo, () => {
+      console.log('侦听整个 userInfo ', userInfo.name)
+    })
+
+    /**
+     * 也可以侦听对象里面的某个值
+     * 此时数据源需要写成 getter 函数
+     */
+    watch(
+      // 数据源,getter 形式
+      () => userInfo.name,
+      // 回调函数 callback
+      (newValue, oldValue) => {
+        console.log('只侦听 name 的变化 ', userInfo.name)
+        console.log('打印变化前后的值', { oldValue, newValue })
+      }
+    )
+  },
+})

一般的业务场景,基础用法足以面对。

如果有多个数据源要侦听,并且侦听到变化后要执行的行为一样,那么可以使用 批量侦听

特殊的情况下,可以搭配 侦听的选项 做一些特殊的用法,详见下面部分的内容。

批量侦听

如果有多个数据源要侦听,并且侦听到变化后要执行的行为一样,第一反应可能是这样来写:

  1. 抽离相同的处理行为为公共函数
  2. 然后定义多个侦听操作,传入这个公共函数
ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const message = ref<string>('')
+    const index = ref<number>(0)
+
+    // 2s后改变数据
+    setTimeout(() => {
+      // 来到这里才会触发 watch 的回调
+      message.value = 'Hello World!'
+      index.value++
+    }, 2000)
+
+    // 抽离相同的处理行为为公共函数
+    const handleWatch = (
+      newValue: string | number,
+      oldValue: string | number
+    ): void => {
+      console.log({ newValue, oldValue })
+    }
+
+    // 然后定义多个侦听操作,传入这个公共函数
+    watch(message, handleWatch)
+    watch(index, handleWatch)
+  },
+})

这样写其实没什么问题,不过除了抽离公共代码的写法之外, watch API 还提供了一个批量侦听的用法,和 基础用法 的区别在于,数据源和回调参数都变成了数组的形式。

数据源:以数组的形式传入,里面每一项都是一个响应式数据。

回调参数:原来的 valuenewValue 也都变成了数组,每个数组里面的顺序和数据源数组排序一致。

可以看下面的这个例子更为直观:

ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 定义多个数据源
+    const message = ref<string>('')
+    const index = ref<number>(0)
+
+    // 2s后改变数据
+    setTimeout(() => {
+      message.value = 'Hello World!'
+      index.value++
+    }, 2000)
+
+    watch(
+      // 数据源改成了数组
+      [message, index],
+      // 回调的入参也变成了数组,每个数组里面的顺序和数据源数组排序一致
+      ([newMessage, newIndex], [oldMessage, oldIndex]) => {
+        console.log('message 的变化', { newMessage, oldMessage })
+        console.log('index 的变化', { newIndex, oldIndex })
+      }
+    )
+  },
+})

什么情况下可能会用到批量侦听呢?比如一个子组件有多个 props ,当有任意一个 prop 发生变化时,都需要执行初始化函数重置组件的状态,那么这个时候就可以用上这个功能啦!

TIP

在适当的业务场景,也可以使用 watchEffect 来完成批量侦听,但请留意 功能区别 部分的说明。

侦听的选项

API 的 TS 类型 里提到, watch API 还接受第 3 个参数 options ,可选的一些侦听选项。

它的 TS 类型如下:

ts
// watch 第 3 个入参的 TS 类型
+// ...
+export declare interface WatchOptions<Immediate = boolean>
+  extends WatchOptionsBase {
+  immediate?: Immediate
+  deep?: boolean
+}
+// ...
+
+// 继承的 base 类型
+export declare interface WatchOptionsBase extends DebuggerOptions {
+  flush?: 'pre' | 'post' | 'sync'
+}
+// ...
+
+// 继承的 debugger 选项类型
+export declare interface DebuggerOptions {
+  onTrack?: (event: DebuggerEvent) => void
+  onTrigger?: (event: DebuggerEvent) => void
+}
+// ...

options 是一个对象的形式传入,有以下几个选项:

选项类型默认值可选值作用
deepbooleanfalsetrue | false是否进行深度侦听
immediatebooleanfalsetrue | false是否立即执行侦听回调
flushstring'pre''pre' | 'post' | 'sync'控制侦听回调的调用时机
onTrack(e) => void在数据源被追踪时调用
onTrigger(e) => void在侦听回调被触发时调用

其中 onTrackonTriggere 是 debugger 事件,建议在回调内放置一个 debugger 语句 以调试依赖,这两个选项仅在开发模式下生效。

TIP

deep 默认是 false ,但是在侦听 reactive 对象或数组时,会默认为 true ,详见 侦听选项之 deep

侦听选项之 deep

deep 选项接受一个布尔值,可以设置为 true 开启深度侦听,或者是 false 关闭深度侦听,默认情况下这个选项是 false 关闭深度侦听的,但也存在特例。

设置为 false 的情况下,如果直接侦听一个响应式的 引用类型 数据(e.g. ObjectArray … ),虽然它的属性的值有变化,但对其本身来说是不变的,所以不会触发 watch 的 callback 。

下面是一个关闭了深度侦听的例子:

ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 定义一个响应式数据,注意用的是 ref 来定义
+    const nums = ref<number[]>([])
+
+    // 2s后给这个数组添加项目
+    setTimeout(() => {
+      nums.value.push(1)
+
+      // 可以打印一下,确保数据确实变化了
+      console.log('修改后', nums.value)
+    }, 2000)
+
+    // 但是这个 watch 不会按预期执行
+    watch(
+      nums,
+      // 这里的 callback 不会被触发
+      () => {
+        console.log('触发侦听', nums.value)
+      },
+      // 因为关闭了 deep
+      {
+        deep: false,
+      }
+    )
+  },
+})

类似这种情况,需要把 deep 设置为 true 才可以触发侦听。

可以看到上面的例子特地用了 ref API ,这是因为通过 reactive API 定义的对象无法将 deep 成功设置为 false (这一点在目前的官网文档未找到说明,最终是在 watch API 的源码 上找到了答案)。

ts
// ...
+if (isReactive(source)) {
+  getter = () => source
+  deep = true // 被强制开启了
+}
+// ...

这个情况就是上面所说的 “特例” ,可以通过 isReactive API 来判断是否需要手动开启深度侦听。

ts
// 导入 isReactive API
+import { defineComponent, isReactive, reactive, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 侦听这个数据时,会默认开启深度侦听
+    const foo = reactive({
+      name: 'Petter',
+      age: 18,
+    })
+    console.log(isReactive(foo)) // true
+
+    // 侦听这个数据时,不会默认开启深度侦听
+    const bar = ref({
+      name: 'Petter',
+      age: 18,
+    })
+    console.log(isReactive(bar)) // false
+  },
+})

侦听选项之 immediate

侦听后的回调函数 部分有了解过, watch 默认是惰性的,也就是只有当被侦听的数据源发生变化时才执行回调。

这句话是什么意思呢?来看一下这段代码,为了减少 deep 选项的干扰,换一个类型,换成 string 数据来演示,请留意注释:

ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 这个时候不会触发 watch 的回调
+    const message = ref<string>('')
+
+    // 2s后改变数据
+    setTimeout(() => {
+      // 来到这里才会触发 watch 的回调
+      message.value = 'Hello World!'
+    }, 2000)
+
+    watch(message, () => {
+      console.log('触发侦听', message.value)
+    })
+  },
+})

可以看到,数据在初始化的时候并不会触发侦听回调,如果有需要的话,通过 immediate 选项来让它直接触发。

immediate 选项接受一个布尔值,默认是 false ,可以设置为 true 让回调立即执行。

改成这样,请留意高亮的代码部分和新的注释:

ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 这一次在这里可以会触发 watch 的回调了
+    const message = ref<string>('')
+
+    // 2s后改变数据
+    setTimeout(() => {
+      // 这一次,这里是第二次触发 watch 的回调,不再是第一次
+      message.value = 'Hello World!'
+    }, 2000)
+
+    watch(
+      message,
+      () => {
+        console.log('触发侦听', message.value)
+      },
+      // 设置 immediate 选项
+      {
+        immediate: true,
+      }
+    )
+  },
+})

注意,在带有 immediate 选项时,不能在第一次回调时取消该数据源的侦听,详见 停止侦听 部分。

侦听选项之 flush

flush 选项是用来控制 侦听回调 的调用时机,接受指定的字符串,可选值如下,默认是 'pre'

可选值回调的调用时机使用场景
'pre'将在渲染前被调用允许回调在模板运行前更新了其他值
'sync'在渲染时被同步调用目前来说没什么好处,可以了解但不建议用…
'post'被推迟到渲染之后调用如果要通过 ref 操作 DOM 元素与子组件 ,需要使用这个值来启用该选项,以达到预期的执行效果

对于 'pre''post' ,回调使用队列进行缓冲。回调只被添加到队列中一次。

即使观察值变化了多次,值的中间变化将被跳过,不会传递给回调,这样做不仅可以提高性能,还有助于保证数据的一致性。

更多关于 flush 的信息,请参阅 回调的触发时机

停止侦听

如果在 setup 或者 script-setup 里使用 watch 的话, 组件被卸载 的时候也会一起被停止,一般情况下不太需要关心如何停止侦听。

不过有时候可能想要手动取消, Vue 3 也提供了方法。

TIP

随着组件被卸载一起停止的前提是,侦听器必须是 同步语句 创建的,这种情况下侦听器会绑定在当前组件上。

如果放在 setTimeout异步函数 里面创建,则不会绑定到当前组件,因此组件卸载的时候不会一起停止该侦听器,这种时候就需要手动停止侦听。

API 的 TS 类型 有提到,当在定义一个 watch 行为的时候,它会返回一个用来停止侦听的函数。

这个函数的 TS 类型如下:

ts
export declare type WatchStopHandle = () => void

用法很简单,做一下简单了解即可:

ts
// 定义一个取消观察的变量,它是一个函数
+const unwatch = watch(message, () => {
+  // ...
+})
+
+// 在合适的时期调用它,可以取消这个侦听
+unwatch()

但是也有一点需要注意的是,如果启用了 immediate 选项 ,不能在第一次触发侦听回调时执行它。

ts
// 注意:这是一段错误的代码,运行会报错
+const unwatch = watch(
+  message,
+  // 侦听的回调
+  () => {
+    // ...
+    // 在这里调用会有问题 ❌
+    unwatch()
+  },
+  // 启用 immediate 选项
+  {
+    immediate: true,
+  }
+)

会收获一段报错,告诉 unwatch 这个变量在初始化前无法被访问:

bash
Uncaught ReferenceError: Cannot access 'unwatch' before initialization

目前有两种方案可以让实现这个操作:

方案一:使用 var 并判断变量类型,利用 var 的变量提升 来实现目的。

ts
// 这里改成 var ,不要用 const 或 let
+var unwatch = watch(
+  message,
+  // 侦听回调
+  () => {
+    // 这里加一个判断,是函数才执行它
+    if (typeof unwatch === 'function') {
+      unwatch()
+    }
+  },
+  // 侦听选项
+  {
+    immediate: true,
+  }
+)

不过 var 已经属于过时的语句了,建议用方案二的 let

方案二:使用 let 并判断变量类型。

ts
// 如果不想用 any ,可以导入 TS 类型
+import type { WatchStopHandle } from 'vue'
+
+// 这里改成 let ,但是要另起一行,先定义,再赋值
+let unwatch: WatchStopHandle
+unwatch = watch(
+  message,
+  // 侦听回调
+  () => {
+    // 这里加一个判断,是函数才执行它
+    if (typeof unwatch === 'function') {
+      unwatch()
+    }
+  },
+  // 侦听选项
+  {
+    immediate: true,
+  }
+)

侦听效果清理

侦听后的回调函数 部分提及到一个参数 onCleanup ,它可以帮注册一个清理函数。

有时 watch 的回调会执行异步操作,当 watch 到数据变更的时候,需要取消这些操作,这个函数的作用就用于此,会在以下情况调用这个清理函数:

  • watcher 即将重新运行的时候
  • watcher 被停止(组件被卸载或者被手动 停止侦听

TS 类型:

ts
declare type OnCleanup = (cleanupFn: () => void) => void

用法方面比较简单,传入一个回调函数运行即可,不过需要注意的是,需要在停止侦听之前注册好清理行为,否则不会生效。

停止侦听 里的最后一个 immediate 例子的基础上继续添加代码,请注意注册的时机:

ts
let unwatch: WatchStopHandle
+unwatch = watch(
+  message,
+  (newValue, oldValue, onCleanup) => {
+    // 需要在停止侦听之前注册好清理行为
+    onCleanup(() => {
+      console.log('侦听清理ing')
+      // 根据实际的业务情况定义一些清理操作 ...
+    })
+    // 然后再停止侦听
+    if (typeof unwatch === 'function') {
+      unwatch()
+    }
+  },
+  {
+    immediate: true,
+  }
+)

watchEffect

如果一个函数里包含了多个需要侦听的数据,一个一个数据去侦听太麻烦了,在 Vue 3 ,可以直接使用 watchEffect API 来简化的操作。

API 的 TS 类型

这个 API 的类型如下,使用的时候需要传入一个副作用函数(相当于 watch 的 侦听后的回调函数 ),也可以根据的实际情况传入一些可选的 侦听选项

和 watch API 一样,它也会返回一个用于 停止侦听 的函数。

ts
// watchEffect 部分的 TS 类型
+// ...
+export declare type WatchEffect = (onCleanup: OnCleanup) => void
+
+export declare function watchEffect(
+  effect: WatchEffect,
+  options?: WatchOptionsBase
+): WatchStopHandle
+// ...

副作用函数也会传入一个清理回调作为参数,和 watch 的 侦听效果清理 一样的用法。

可以理解为它是一个简化版的 watch ,具体简化在哪里呢?请看下面的用法示例。

用法示例

它立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数。

ts
import { defineComponent, ref, watchEffect } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 单独定义两个数据,后面用来分开改变数值
+    const name = ref<string>('Petter')
+    const age = ref<number>(18)
+
+    // 定义一个调用这两个数据的函数
+    const getUserInfo = (): void => {
+      console.log({
+        name: name.value,
+        age: age.value,
+      })
+    }
+
+    // 2s后改变第一个数据
+    setTimeout(() => {
+      name.value = 'Tom'
+    }, 2000)
+
+    // 4s后改变第二个数据
+    setTimeout(() => {
+      age.value = 20
+    }, 4000)
+
+    // 直接侦听调用函数,在每个数据产生变化的时候,它都会自动执行
+    watchEffect(getUserInfo)
+  },
+})

和 watch 的区别

虽然理论上 watchEffectwatch 的一个简化操作,可以用来代替 批量侦听 ,但它们也有一定的区别:

  1. watch 可以访问侦听状态变化前后的值,而 watchEffect 没有。

  2. watch 是在属性改变的时候才执行,而 watchEffect 则默认会执行一次,然后在属性改变的时候也会执行。

第二点的意思,看下面这段代码可以有更直观的理解:

使用 watch :

ts
export default defineComponent({
+  setup() {
+    const foo = ref<string>('')
+
+    setTimeout(() => {
+      foo.value = 'Hello World!'
+    }, 2000)
+
+    function bar() {
+      console.log(foo.value)
+    }
+
+    // 使用 watch 需要先手动执行一次
+    bar()
+
+    // 然后当 foo 有变动时,才会通过 watch 来执行 bar()
+    watch(foo, bar)
+  },
+})

使用 watchEffect :

ts
export default defineComponent({
+  setup() {
+    const foo = ref<string>('')
+
+    setTimeout(() => {
+      foo.value = 'Hello World!'
+    }, 2000)
+
+    function bar() {
+      console.log(foo.value)
+    }
+
+    // 可以通过 watchEffect 实现 bar() + watch(foo, bar) 的效果
+    watchEffect(bar)
+  },
+})

可用的侦听选项

虽然用法和 watch 类似,但也简化了一些选项,它的侦听选项 TS 类型如下:

ts
// 只支持 base 类型
+export declare interface WatchOptionsBase extends DebuggerOptions {
+  flush?: 'pre' | 'post' | 'sync'
+}
+// ...
+
+// 继承的 debugger 选项类型
+export declare interface DebuggerOptions {
+  onTrack?: (event: DebuggerEvent) => void
+  onTrigger?: (event: DebuggerEvent) => void
+}
+// ...

对比 watch API ,它不支持 deepimmediate ,请记住这一点,其他的用法是一样的。

flush 选项的使用详见 侦听选项之 flushonTrackonTrigger 详见 侦听的选项 部分内容。

watchPostEffect

watchEffect API 使用 flush: 'post' 选项时的别名,具体区别详见 侦听选项之 flush 部分。

TIP

Vue v3.2.0 及以上版本才支持该 API 。

watchSyncEffect

watchEffect API 使用 flush: 'sync' 选项时的别名,具体区别详见 侦听选项之 flush 部分。

TIP

Vue v3.2.0 及以上版本才支持该 API 。

数据的计算 ~new

和 Vue 2.0 一样,数据的计算也是使用 computed API ,它可以通过现有的响应式数据,去通过计算得到新的响应式变量,用过 Vue 2.0 的开发者应该不会太陌生,但是在 Vue 3.0 ,在使用方式上也是变化非常大!

TIP

这里的响应式数据,可以简单理解为通过 ref API 、 reactive API 定义出来的数据,当然 Vuex 、Vue Router 等 Vue 数据也都具备响应式,可以在 响应式数据的变化 了解。

用法变化

先从一个简单的用例来看看在 Vue 新旧版本的用法区别:

假设定义了两个分开的数据 firstName 名字和 lastName 姓氏,但是在 template 展示时,需要展示完整的姓名,那么就可以通过 computed 来计算一个新的数据:

回顾 Vue 2

在 Vue 2.0 ,computeddata 在同级配置,并且不可以和 data 里的数据同名重复定义:

ts
// 在 Vue 2 的写法:
+export default {
+  data() {
+    return {
+      firstName: 'Bill',
+      lastName: 'Gates',
+    }
+  },
+  // 注意这里定义的变量,都要通过函数的形式来返回它的值
+  computed: {
+    // 普通函数可以直接通过熟悉的 this 来拿到 data 里的数据
+    fullName() {
+      return \`\${this.firstName} \${this.lastName}\`
+    },
+    // 箭头函数则需要通过参数来拿到实例上的数据
+    fullName2: (vm) => \`\${vm.firstName} \${vm.lastName}\`,
+  },
+}

这样在需要用到全名的地方,只需要通过 this.fullName 就可以得到 Bill Gates

了解 Vue 3

在 Vue 3.0 ,跟其他 API 的用法一样,需要先导入 computed 才能使用:

ts
// 在 Vue 3 的写法:
+import { defineComponent, ref, computed } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 定义基本的数据
+    const firstName = ref<string>('Bill')
+    const lastName = ref<string>('Gates')
+
+    // 定义需要计算拼接结果的数据
+    const fullName = computed(() => \`\${firstName.value} \${lastName.value}\`)
+
+    // 2s 后改变某个数据的值
+    setTimeout(() => {
+      firstName.value = 'Petter'
+    }, 2000)
+
+    // template 那边在 2s 后也会显示为 Petter Gates
+    return {
+      fullName,
+    }
+  },
+})

可以把这个用法简单的理解为,传入一个回调函数,并 return 一个值,对,它需要有明确的返回值。

TIP

需要注意的是:

  1. 定义出来的 computed 变量,和 Ref 变量的用法一样,也是需要通过 .value 才能拿到它的值

  2. 但是区别在于,默认情况下 computedvalue 是只读的

原因详见下方的 类型声明

类型声明

之前说过,在 defineComponent 里,会自动帮推导 Vue API 的类型,所以一般情况下,是不需要显式的去定义 computed 出来的变量类型的。

在确实需要手动指定的情况下,也可以导入它的类型然后定义:

ts
import { computed } from 'vue'
+import type { ComputedRef } from 'vue'
+
+// 注意这里添加了类型声明
+const fullName: ComputedRef<string> = computed(
+  () => \`\${firstName.value} \${lastName.value}\`
+)

要返回一个字符串,就写 ComputedRef<string> ;返回布尔值,就写 ComputedRef<boolean> ;返回一些复杂对象信息,可以先定义好的类型,再诸如 ComputedRef<UserInfo> 去写。

ts
// 这是 ComputedRef 的类型声明:
+export declare interface ComputedRef<T = any> extends WritableComputedRef<T> {
+  readonly value: T
+  [ComoutedRefSymbol]: true
+}

优势对比和注意事项

在继续往下看之前,先来了解一下这个 API 的一些优势和注意事项(如果在 Vue 2 已经有接触过的话,可以跳过这一段,因为优势和需要注意的东西比较一致)。

优势对比

看到这里,相信刚接触的开发者可能会有疑问,既然 computed 也是通过一个函数来返回值,那么和普通的 function 有什么区别,或者说优势?

  1. 性能优势

这一点在 官网文档 其实是有提到的:

数据的计算是基于它们的响应依赖关系缓存的,只在相关响应式依赖发生改变时它们才会重新求值。

也就是说,只要原始数据没有发生改变,多次访问 computed ,都是会立即返回之前的计算结果,而不是再次执行函数;而普通的 function 调用多少次就执行多少次,每调用一次就计算一次。

至于为何要如此设计,官网文档也给出了原因:

为什么需要缓存?假设有一个性能开销比较大的计算数据 list,它需要遍历一个巨大的数组并做大量的计算。然后可能有其他的计算数据依赖于 list。如果没有缓存,将不可避免的多次执行 list 的 getter!如果不希望有缓存,请用 function 来替代。

TIP

在这部分内容里,将官方文档的一些用词做了更换,比如把 method 都替换成了 function ,也把 “计算属性” 都换成了 “计算数据”,原因在于官网很多地方是基于 Options API 的写法去描述,而本文档是基于 Composition API 。

点击了解: 如何理解 JavaScript 中方法(method)和函数(function)的区别?

  1. 书写统一

假定 foo1 是 Ref 变量, foo2 是 computed 变量, foo3 是普通函数返回值

看到这里的开发者应该都已经清楚 Vue 3 的 Ref 变量是通过 foo1.value 来拿到值的,而 computed 也是通过 foo2.value ,并且在 template 里都可以省略 .value ,在读取方面,他们是有一致的风格和简洁性。

而 foo3 不管是在 script 还是 template ,都需要通过 foo3() 才能拿到结果,相对来说会有那么一丢丢别扭。

当然,关于这一点,如果涉及到的数据不是响应式数据,那么还是老老实实的用函数返回值吧,原因请见下面的 注意事项

注意事项

有优势当然也就有一定的 “劣势” ,当然这也是 Vue 框架的有意为之,所以在使用上也需要注意一些问题:

  1. 只会更新响应式数据的计算

假设要获取当前的时间信息,因为不是响应式数据,所以这种情况下就需要用普通的函数去获取返回值,才能拿到最新的时间。

ts
const nowTime = computed(() => new Date())
+console.log(nowTime.value)
+// 输出 Sun Nov 14 2021 21:07:00 GMT+0800 (GMT+08:00)
+
+// 2s 后依然是跟上面一样的结果
+setTimeout(() => {
+  console.log(nowTime.value)
+  // 还是输出 Sun Nov 14 2021 21:07:00 GMT+0800 (GMT+08:00)
+}, 2000)
  1. 数据是只读的

通过 computed 定义的数据,它是只读的,这一点在 类型声明 已经有所了解。

如果直接赋值,不仅无法变更数据,而且会收获一个报错。

bash
TS2540: Cannot assign to 'value' because it is a read-only property.

虽然无法直接赋值,但是在必要的情况下,依然可以通过 computedsetter 来更新数据。

点击了解:computed 的 setter 用法

setter 的使用

通过 computed 定义的变量默认都是只读的形式(只有一个 getter ),但是在必要的情况下,也可以使用其 setter 属性来更新数据。

基本格式

当需要用到 setter 的时候, computed 就不再是一个传入 callback 的形式了,而是传入一个带有 2 个方法的对象。

ts
// 注意这里computed接收的入参已经不再是函数
+const foo = computed({
+  // 这里需要明确的返回一个值
+  get() {
+    // ...
+  },
+  // 这里接收一个参数,代表修改 foo 时,赋值下来的新值
+  set(newValue) {
+    // ...
+  },
+})

这里的 get 就是 computed 的 getter ,跟原来传入 callback 的形式一样,是用于 foo.value 的读取,所以这里必须有明确的返回值。

这里的 set 就是 computed 的 setter ,它会接收一个参数,代表新的值,当通过 foo.value = xxx 赋值的时候,赋入的这个值,就会通过这个入参来传递进来,可以根据的业务需要,把这个值,赋给相关的数据源。

TIP

请注意,必须使用 getset 这 2 个方法名,也只接受这 2 个方法。

在了解了基本格式后,可以查看下面的例子来了解具体的用法。

使用示范

官网的 例子 是一个 Options API 的案例,这里改成 Composition API 的写法来演示:

ts
// 还是这2个数据源
+const firstName = ref<string>('Bill')
+const lastName = ref<string>('Gates')
+
+// 这里配合setter的需要,改成了另外一种写法
+const fullName = computed({
+  // getter还是返回一个拼接起来的全名
+  get() {
+    return \`\${firstName.value} \${lastName.value}\`
+  },
+  // setter这里改成只更新firstName,注意参数也定义TS类型
+  set(newFirstName: string) {
+    firstName.value = newFirstName
+  },
+})
+console.log(fullName.value) // 输出 Bill Gates
+
+// 2s后更新一下数据
+setTimeout(() => {
+  // 对fullName的赋值,其实更新的是firstName
+  fullName.value = 'Petter'
+
+  // 此时firstName已经得到了更新
+  console.log(firstName.value) // 会输出 Petter
+
+  // 当然,由于firstName变化了,所以fullName的getter也会得到更新
+  console.log(fullName.value) // 会输出 Petter Gates
+}, 2000)

应用场景

计算 API 的作用,官网文档只举了一个非常简单的例子,那么在实际项目中,什么情况下用它会让更方便呢?

简单举几个比较常见的例子吧,加深一下对 computed 的理解。

数据的拼接和计算

如上面的案例,与其每个用到的地方都要用到 firstName + ' ' + lastName 这样的多变量拼接,不如用一个 fullName 来的简单。

当然,不止是字符串拼接,数据的求和等操作更是合适,比如说做一个购物车,购物车里有商品列表,同时还要显示购物车内的商品总金额,这种情况就非常适合用计算数据。

复用组件的动态数据

在一个项目里,很多时候组件会涉及到复用,比如说:“首页的文章列表 vs 列表页的文章列表 vs 作者详情页的文章列表” ,特别常见于新闻网站等内容资讯站点,这种情况下,往往并不需要每次都重新写 UI 、数据渲染等代码,仅仅是接口 URL 的区别。

这种情况就可以通过路由名称来动态获取要调用哪个列表接口:

ts
const route = useRoute()
+
+// 定义一个根据路由名称来获取接口URL的计算数据
+const apiUrl = computed(() => {
+  switch (route.name) {
+    // 首页
+    case 'home':
+      return '/api/list1'
+    // 列表页
+    case 'list':
+      return '/api/list2'
+    // 作者页
+    case 'author':
+      return '/api/list3'
+    // 默认是随机列表
+    default:
+      return '/api/random'
+  }
+})
+
+// 请求列表
+const getArticleList = async (): Promise<void> => {
+  // ...
+  articleList.value = await axios({
+    method: 'get',
+    url: apiUrl.value,
+    // ...
+  })
+  // ...
+}

当然,这种情况也可以在父组件通过 props 传递接口 URL ,如果已经学到了 组件通讯 一章的话。

获取多级对象的值

应该很经常的遇到要在 template 显示一些多级对象的字段,但是有时候又可能存在某些字段不一定有,需要做一些判断的情况,虽然有 v-if ,但是嵌套层级一多,模板代码会难以维护。

如果把这些工作量转移给计算数据,结合 try / catch ,这样就无需在 template 里处理很多判断了。

ts
// 例子比较极端,但在 Vuex 这种大型数据树上,也不是完全不可能存在
+const foo = computed(() => {
+  // 正常情况下返回需要的数据
+  try {
+    return store.state.foo3.foo2.foo1.foo
+  } catch (e) {
+    // 处理失败则返回一个默认值
+    return ''
+  }
+})

这样在 template 里要拿到 foo 的值,完全不需要关心中间一级又一级的字段是否存在,只需要区分是不是默认值。

不同类型的数据转换

有时候会遇到一些需求类似于,让用户在输入框里,按一定的格式填写文本,比如用英文逗号 , 隔开每个词,然后保存的时候,是用数组的格式提交给接口。

这个时候 computed 的 setter 就可以妙用了,只需要一个简单的 computed ,就可以代替 inputchange 事件或者 watch 侦听,可以减少很多业务代码的编写。

vue
<template>
+  <input
+    type="text"
+    v-model="tagsStr"
+    placeholder="请输入标签,多个标签用英文逗号隔开"
+  />
+</template>
+
+<script lang="ts">
+import { defineComponent, computed, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 这个是最终要用到的数组
+    const tags = ref<string[]>([])
+
+    // 因为input必须绑定一个字符串
+    const tagsStr = computed({
+      // 所以通过getter来转成字符串
+      get() {
+        return tags.value.join(',')
+      },
+      // 然后在用户输入的时候,切割字符串转换回数组
+      set(newValue: string) {
+        tags.value = newValue.split(',')
+      },
+    })
+
+    return {
+      tagsStr,
+    }
+  },
+})
+</script>

所以在实际业务开发中,开发者可以多考虑一下是否可以使用 computed 代替 watch ,避免过多的数组侦听带来项目性能的下降。

指令

指令是 Vue 模板语法里的特殊标记,在使用上和 HTML 的 data-* 属性十分相似,统一以 v- 开头( e.g. v-html )。

它以简单的方式实现了常用的 JavaScript 表达式功能,当表达式的值改变的时候,响应式地作用到 DOM 上。

内置指令

Vue 提供了一些内置指令可以直接使用,例如:

vue
<template>
+  <!-- 渲染一段文本 -->
+  <span v-text="msg"></span>
+
+  <!-- 渲染一段 HTML -->
+  <div v-html="html"></div>
+
+  <!-- 循环创建一个列表 -->
+  <ul v-if="items.length">
+    <li v-for="(item, index) in items" :key="index">
+      <span>{{ item }}</span>
+    </li>
+  </ul>
+
+  <!-- 一些事件( \`@\` 等价于 \`v-on\` ) -->
+  <button @click="hello">Hello</button>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const msg = ref<string>('Hello World!')
+    const html = ref<string>('<p>Hello World!</p>')
+    const items = ref<string[]>(['a', 'b', 'c', 'd'])
+
+    function hello() {
+      console.log(msg.value)
+    }
+
+    return {
+      msg,
+      html,
+      items,
+      hello,
+    }
+  },
+})
+</script>

内置指令在使用上都非常的简单,可以在官方文档的 内置指令 一章查询完整的指令列表和用法,在模板上使用时,请了解 指令的模板语法

TIP

有两个指令可以使用别名:

  • v-on 的别名是 @ ,使用 @click 等价于 v-on:click
  • v-bind 的别名是 : ,使用 :src 等价于 v-bind:src

自定义指令 ~new

如果 Vue 的内置指令不能满足业务需求,还可以开发自定义指令。

相关的 TS 类型

在开始编写代码之前,先了解一下自定义指令相关的 TypeScript 类型。

自定义指令有两种实现形式,一种是作为一个对象,其中的写法比较接近于 Vue 组件,除了 getSSRPropsdeep 选项 外,其他的每一个属性都是一个 钩子函数 ,下一小节会介绍钩子函数的内容。

ts
// 对象式写法的 TS 类型
+// ...
+export declare interface ObjectDirective<T = any, V = any> {
+  created?: DirectiveHook<T, null, V>
+  beforeMount?: DirectiveHook<T, null, V>
+  mounted?: DirectiveHook<T, null, V>
+  beforeUpdate?: DirectiveHook<T, VNode<any, T>, V>
+  updated?: DirectiveHook<T, VNode<any, T>, V>
+  beforeUnmount?: DirectiveHook<T, null, V>
+  unmounted?: DirectiveHook<T, null, V>
+  getSSRProps?: SSRDirectiveHook
+  deep?: boolean
+}
+// ...

另外一种是函数式写法,只需要定义成一个函数,但这种写法只在 mountedupdated 这两个钩子生效,并且触发一样的行为。

ts
// 函数式写法的 TS 类型
+// ...
+export declare type FunctionDirective<T = any, V = any> = DirectiveHook<
+  T,
+  any,
+  V
+>
+// ...

这是每个钩子函数对应的类型,它有 4 个入参:

ts
// 钩子函数的 TS 类型
+// ...
+export declare type DirectiveHook<
+  T = any,
+  Prev = VNode<any, T> | null,
+  V = any
+> = (
+  el: T,
+  binding: DirectiveBinding<V>,
+  vnode: VNode<any, T>,
+  prevVNode: Prev
+) => void
+// ...

钩子函数第二个参数的类型:

ts
// 钩子函数第二个参数的 TS 类型
+// ...
+export declare interface DirectiveBinding<V = any> {
+  instance: ComponentPublicInstance | null
+  value: V
+  oldValue: V | null
+  arg?: string
+  modifiers: DirectiveModifiers
+  dir: ObjectDirective<any, V>
+}
+// ...

可以看到自定义指令最核心的就是 “钩子函数” 了,接下来来了解这部分的知识点。

钩子函数

组件的生命周期 类似,自定义指令里的逻辑代码也有一些特殊的调用时机,在这里称之为钩子函数:

钩子函数调用时机
created在绑定元素的 attribute 或事件侦听器被应用之前调用
beforeMount当指令第一次绑定到元素并且在挂载父组件之前调用
mounted在绑定元素的父组件被挂载后调用
beforeUpdate在更新包含组件的 VNode 之前调用
updated在包含组件的 VNode 及其子组件的 VNode 更新后调用
beforeUnmount在卸载绑定元素的父组件之前调用
unmounted当指令与元素解除绑定且父组件已卸载时,只调用一次

TIP

因为自定义指令的默认写法是一个对象,所以在代码风格上是遵循 Options API 的生命周期命名,而非 Vue 3 的 Composition API 风格。

钩子函数在用法上就是这样子:

ts
const myDirective = {
+  created(el, binding, vnode, prevVnode) {
+    // ...
+  },
+  mounted(el, binding, vnode, prevVnode) {
+    // ...
+  },
+  // 其他钩子...
+}

相关的 TS 类型 已了解,每个钩子函数都有 4 个入参:

参数作用
el指令绑定的 DOM 元素,可以直接操作它
binding一个对象数据,见下方的单独说明
vnodeel 对应在 Vue 里的虚拟节点信息
prevVNodeUpdate 时的上一个虚拟节点信息,仅在 beforeUpdateupdated 可用

其中用的最多是 elbinding 了。

  • el 的值就是通过 document.querySelector 拿到的那个 DOM 元素。

  • binding 是一个对象,里面包含了以下属性:

属性作用
value传递给指令的值,例如 v-foo="bar" 里的 bar ,支持任意有效的 JS 表达式
oldValue指令的上一个值,仅对 beforeUpdateupdated 可用
arg传给指令的参数,例如 v-foo:bar 里的 bar
modifiers传给指令的修饰符,例如 v-foo.bar 里的 bar
instance使用指令的组件实例
dir指令定义的对象(就是上面的 const myDirective = { /* ... */ } 这个对象)

在了解了指令的写法和参数作用之后,来看看如何注册一个自定义指令。

局部注册

自定义指令可以在单个组件内定义并使用,通过和 setup 函数 同级别的 directives 选项进行定义,可以参考下面的例子和注释:

vue
<template>
+  <!-- 这个使用默认值 \`unset\` -->
+  <div v-highlight>{{ msg }}</div>
+
+  <!-- 这个使用传进去的黄色 -->
+  <div v-highlight="\`yellow\`">{{ msg }}</div>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  // 自定义指令在这里编写,和 \`setup\` 同级别
+  directives: {
+    // \`directives\` 下的每个字段名就是指令名称
+    highlight: {
+      // 钩子函数
+      mounted(el, binding) {
+        el.style.backgroundColor =
+          typeof binding.value === 'string' ? binding.value : 'unset'
+      },
+    },
+  },
+  setup() {
+    const msg = ref<string>('Hello World!')
+
+    return {
+      msg,
+    }
+  },
+})
+</script>

上面是对象式的写法,也可以写成函数式:

ts
export default defineComponent({
+  directives: {
+    highlight(el, binding) {
+      el.style.backgroundColor =
+        typeof binding.value === 'string' ? binding.value : 'unset'
+    },
+  },
+})

TIP

局部注册的自定义指令,默认在子组件内生效,子组件内无需重新注册即可使用父组件的自定义指令。

全局注册

自定义指令也可以注册成全局,这样就无需在每个组件里定义了,只要在入口文件 main.ts 里启用它,任意组件里都可以使用自定义指令。

请查看 开发本地 Vue 专属插件 一节的内容了解如何注册一个全局的自定义指令插件。

deep 选项

除了 钩子函数 ,在 相关的 TS 类型 里还可以看到有一个 deep 选项,它是一个布尔值,作用是:

如果自定义指令用于一个有嵌套属性的对象,并且需要在嵌套属性更新的时候触发 beforeUpdateupdated 钩子,那么需要将这个选项设置为 true 才能够生效。

vue
<template>
+  <div v-foo="foo"></div>
+</template>
+
+<script lang="ts">
+import { defineComponent, reactive } from 'vue'
+
+export default defineComponent({
+  directives: {
+    foo: {
+      beforeUpdate(el, binding) {
+        console.log('beforeUpdate', binding)
+      },
+      updated(el, binding) {
+        console.log('updated', binding)
+      },
+      mounted(el, binding) {
+        console.log('mounted', binding)
+      },
+      // 需要设置为 \`true\` ,如果是 \`false\` 则不会触发
+      deep: true,
+    },
+  },
+  setup() {
+    // 定义一个有嵌套属性的对象
+    const foo = reactive({
+      bar: {
+        baz: 1,
+      },
+    })
+
+    // 2s 后修改其中一个值,会触发 \`beforeUpdate\` 和 \`updated\`
+    setTimeout(() => {
+      foo.bar.baz = 2
+      console.log(foo)
+    }, 2000)
+
+    return {
+      foo,
+    }
+  },
+})
+</script>

插槽

Vue 在使用子组件的时候,子组件在 template 里类似一个 HTML 标签,可以在这个子组件标签里传入任意模板代码以及 HTML 代码,这个功能就叫做 “插槽” 。

默认插槽

默认情况下,子组件使用 <slot /> 标签即可渲染父组件传下来的插槽内容,例如:

在父组件这边:

vue
<template>
+  <Child>
+    <!-- 注意这里,子组件标签里面传入了 HTML 代码 -->
+    <p>这是插槽内容</p>
+  </Child>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+import Child from '@cp/Child.vue'
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+})
+</script>

在子组件这边:

vue
<template>
+  <slot />
+</template>

默认插槽非常简单,一个 <slot /> 就可以了。

具名插槽

有时候可能需要指定多个插槽,例如一个子组件里有 “标题” 、 “作者”、 “内容” 等预留区域可以显示对应的内容,这时候就需要用到具名插槽来指定不同的插槽位。

子组件通过 name 属性来指定插槽名称:

vue
<template>
+  <!-- 显示标题的插槽内容 -->
+  <div class="title">
+    <slot name="title" />
+  </div>
+
+  <!-- 显示作者的插槽内容 -->
+  <div class="author">
+    <slot name="author" />
+  </div>
+
+  <!-- 其他插槽内容放到这里 -->
+  <div class="content">
+    <slot />
+  </div>
+</template>

父组件通过 template 标签绑定 v-slot:name 格式的属性,来指定传入哪个插槽里:

vue
<template>
+  <Child>
+    <!-- 传给标题插槽 -->
+    <template v-slot:title>
+      <h1>这是标题</h1>
+    </template>
+
+    <!-- 传给作者插槽 -->
+    <template v-slot:author>
+      <h1>这是作者信息</h1>
+    </template>
+
+    <!-- 传给默认插槽 -->
+    <p>这是插槽内容</p>
+  </Child>
+</template>

v-slot:name 有一个别名 #name 语法,上面父组件的代码也相当于:

vue
<template>
+  <Child>
+    <!-- 传给标题插槽 -->
+    <template #title>
+      <h1>这是标题</h1>
+    </template>
+
+    <!-- 传给作者插槽 -->
+    <template #author>
+      <h1>这是作者信息</h1>
+    </template>
+
+    <!-- 传给默认插槽 -->
+    <p>这是插槽内容</p>
+  </Child>
+</template>

TIP

在使用具名插槽的时候,子组件如果不指定默认插槽,那么在具名插槽之外的内容将不会被渲染。

默认内容

可以给 slot 标签添加内容,例如 <slot>默认内容</slot> ,当父组件没有传入插槽内容时,会使用默认内容来显示,默认插槽和具名插槽均支持该功能。

注意事项

有一条规则需要记住:

  • 父组件里的所有内容都是在父级作用域中编译的
  • 子组件里的所有内容都是在子作用域中编译的

CSS 样式与预处理器

Vue 组件的 CSS 样式部分,Vue 3 保留着和 Vue 2 完全一样的写法。

编写组件样式表

最基础的写法,就是在 .vue 文件里添加一个 <style /> 标签,即可在里面写 CSS 代码了。

vue
<template>
+  <div>
+    <!-- HTML 代码 -->
+  </div>
+</template>
+
+<script lang="ts">
+  // TypeScript 代码
+</script>
+
+<style>
+/* CSS 代码 */
+.msg {
+  width: 100%;
+}
+.msg p {
+  color: #333;
+  font-size: 14px;
+}
+</style>

动态绑定 CSS

动态绑定 CSS ,在 Vue 2 就已经存在了,在此之前常用的是 :class:style ,现在在 Vue 3 ,还可以通过 v-bind 来动态修改了。

使用 :class 动态修改样式名

它是绑定在 DOM 元素上面的一个属性,跟 class="class-name" 这样的属性同级别,它非常灵活!

TIP

使用 :class 是用来动态修改样式名,也就意味着必须提前把样式名对应的样式表先写好!

假设已经提前定义好了这几个变量:

vue
<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const activeClass = 'active-class'
+    const activeClass1 = 'active-class1'
+    const activeClass2 = 'active-class2'
+    const isActive = true
+
+    return {
+      activeClass,
+      activeClass1,
+      activeClass2,
+      isActive,
+    }
+  },
+})
+</script>

如果只想绑定一个单独的动态样式,可以传入一个字符串:

vue
<template>
+  <p :class="activeClass">Hello World!</p>
+</template>

如果有多个动态样式,也可以传入一个数组:

vue
<template>
+  <p :class="[activeClass1, activeClass2]">Hello World!</p>
+</template>

还可以对动态样式做一些判断,这个时候传入一个对象:

vue
<template>
+  <p :class="{ 'active-class': isActive }">Hello World!</p>
+</template>

多个判断的情况下,记得也用数组套起来:

vue
<template>
+  <p :class="[{ activeClass1: isActive }, { activeClass2: !isActive }]">
+    Hello World!
+  </p>
+</template>

那么什么情况下会用到 :class 呢?

最常见的场景,应该就是导航、选项卡了,比如要给一个当前选中的选项卡做一个突出高亮的状态,那么就可以使用 :class 来动态绑定一个样式。

vue
<template>
+  <ul class="list">
+    <li
+      class="item"
+      :class="{ cur: index === curIndex }"
+      v-for="(item, index) in 5"
+      :key="index"
+      @click="curIndex = index"
+    >
+      {{ item }}
+    </li>
+  </ul>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const curIndex = ref<number>(0)
+
+    return {
+      curIndex,
+    }
+  },
+})
+</script>
+
+<style scoped>
+.cur {
+  color: red;
+}
+</style>

这样就简单实现了一个点击切换选项卡高亮的功能。

使用 :style 动态修改内联样式

如果觉得使用 :class 需要提前先写样式,再去绑定样式名有点繁琐,有时候只想简简单单的修改几个样式,那么可以通过 :style 来处理。

默认的情况下,都是传入一个对象去绑定:

  • key 是符合 CSS 属性名的 “小驼峰式” 写法,或者套上引号的短横线分隔写法(原写法),例如在 CSS 里,定义字号是 font-size ,那么需要写成 fontSize 或者 'font-size' 作为它的键。

  • value 是 CSS 属性对应的 “合法值”,比如要修改字号大小,可以传入 13px0.4rem 这种带合法单位字符串值,但不可以是 13 这样的缺少单位的值,无效的 CSS 值会被过滤不渲染。

vue
<template>
+  <p
+    :style="{
+      fontSize: '13px',
+      'line-height': 2,
+      color: '#ff0000',
+      textAlign: 'center',
+    }"
+  >
+    Hello World!
+  </p>
+</template>

如果有些特殊场景需要绑定多套 style,需要在 script 先定义好各自的样式变量(也是符合上面说到的那几个要求的对象),然后通过数组来传入:

vue
<template>
+  <p :style="[style1, style2]">Hello World!</p>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const style1 = {
+      fontSize: '13px',
+      'line-height': 2,
+    }
+    const style2 = {
+      color: '#ff0000',
+      textAlign: 'center',
+    }
+
+    return {
+      style1,
+      style2,
+    }
+  },
+})
+</script>

使用 v-bind 动态修改 style ~new

当然,以上两种形式都是关于 <script /><template /> 部分的操作,如果觉得会给模板带来一定的维护成本的话,不妨考虑这个新方案,将变量绑定到 <style /> 部分去。

TIP

请注意这是一个在 3.2.0 版本之后才被归入正式队列的新功能!如果需要使用它,请确保的 vue 的版本号在 3.2.0 以上,最好是保持最新版本。

先来看看基本的用法:

vue
<template>
+  <p class="msg">Hello World!</p>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const fontColor = ref<string>('#ff0000')
+
+    return {
+      fontColor,
+    }
+  },
+})
+</script>
+
+<style scoped>
+.msg {
+  color: v-bind(fontColor);
+}
+</style>

如上面的代码,将渲染出一句红色文本的 Hello World!

这其实是利用了现代浏览器支持的 CSS 变量来实现的一个功能(所以如果打算用它的话,需要提前注意一下兼容性噢,点击查看:CSS Variables 兼容情况 )。

它渲染到 DOM 上,其实也是通过绑定 style 来实现,可以看到渲染出来的样式是:

html
<p class="msg" data-v-7eb2bc79="" style="--7eb2bc79-fontColor:#ff0000;">
+  Hello World!
+</p>

对应的 CSS 变成了:

css
.msg[data-v-7eb2bc79] {
+  color: var(--7eb2bc79-fontColor);
+}

理论上 v-bind 函数可以在 Vue 内部支持任意的 JavaScript 表达式,但由于可能包含在 CSS 标识符中无效的字符,因此官方是建议在大多数情况下,用引号括起来,如:

css
.text {
+  font-size: v-bind('theme.font.size');
+}

由于 CSS 变量的特性,因此对 CSS 响应式属性的更改不会触发模板的重新渲染(这也是和 :class:style 的最大不同)。

TIP

不管有没有开启 <style scoped> ,使用 v-bind 渲染出来的 CSS 变量,都会带上 scoped 的随机 hash 前缀,避免样式污染(永远不会意外泄漏到子组件中),所以请放心使用!

如果对 CSS 变量的使用还不是很了解的话,可以先阅读一下相关的基础知识点。

相关阅读:使用 CSS 自定义属性(变量) - MDN

样式表的组件作用域

CSS 不像 JS ,是没有作用域的概念的,一旦写了某个样式,直接就是全局污染。所以 BEM 命名法 等规范才应运而生。

但在 Vue 组件里,有两种方案可以避免出现这种污染问题:一个是 Vue 2 就有的 <style scoped> ,一个是 Vue 3 新推出的 <style module>

Style Scoped

Vue 组件在设计的时候,就想到了一个很优秀的解决方案,通过 scoped 来支持创建一个 CSS 作用域,使这部分代码只运行在这个组件渲染出来的虚拟 DOM 上。

使用方式很简单,只需要在 <style /> 上添加 scoped 属性:

vue
<!-- 注意这里多了一个 \`scoped\` -->
+<style scoped>
+.msg {
+  width: 100%;
+}
+.msg p {
+  color: #333;
+  font-size: 14px;
+}
+</style>

编译后,虚拟 DOM 都会带有一个 data-v-xxxxx 这样的属性,其中 xxxxx 是一个随机生成的 Hash ,同一个组件的 Hash 是相同并且唯一的:

html
<div class="msg" data-v-7eb2bc79>
+  <p data-v-7eb2bc79>Hello World!</p>
+</div>

而 CSS 则也会带上与 HTML 相同的属性,从而达到样式作用域的目的。

css
.msg[data-v-7eb2bc79] {
+  width: 100%;
+}
+.msg p[data-v-7eb2bc79] {
+  color: #333;
+  font-size: 14px;
+}

使用 scoped 可以有效的避免全局样式污染,可以在不同的组件里面都使用相同的 className,而不必担心会相互覆盖,不必再定义很长很长的样式名来防止冲突了。

TIP

添加 scoped 生成的样式,只作用于当前组件中的元素,并且权重高于全局 CSS ,可以覆盖全局样式

Style Module ~new

这是在 Vue 3 才推出的一个新方案,和 <style scoped> 不同,scoped 是通过给 DOM 元素添加自定义属性的方式来避免冲突,而 <style module> 则更为激进,将会编译成 CSS Modules

对于 CSS Modules 的处理方式,也可以通过一个小例子来更直观的了解它:

css
/* 案例来自阮一峰老师的博文《CSS Modules 用法教程》 */
+/* https://www.ruanyifeng.com/blog/2016/06/css_modules.html */
+
+/* 编译前 */
+.title {
+  color: red;
+}
+
+/* 编译后 */
+._3zyde4l1yATCOkgn-DBWEL {
+  color: red;
+}

可以看出,是通过比较 “暴力” 的方式,把编写的 “好看的” 样式名,直接改写成一个随机 Hash 样式名,来避免样式互相污染。

所以回到 Vue 这边,看看 <style module> 是怎么操作的。

vue
<template>
+  <p :class="$style.msg">Hello World!</p>
+</template>
+
+<style module>
+.msg {
+  color: #ff0000;
+}
+</style>

于是,将渲染出一句红色文本的 Hello World!

TIP

  1. 使用这个方案,需要了解如何 使用 :class 动态修改样式名

  2. 如果单纯只使用 <style module> ,那么在绑定样式的时候,是默认使用 $style 对象来操作的

  3. 必须显示的指定绑定到某个样式,比如 $style.msg ,才能生效

  4. 如果单纯的绑定 $style ,并不能得到 “把全部样式名直接绑定” 的期望结果

  5. 如果指定的 className 是短横杆命名,比如 .user-name ,那么需要通过 $style['user-name'] 去绑定

也可以给 module 进行命名,然后就可以通过命名的 “变量名” 来操作:

vue
<template>
+  <p :class="classes.msg">Hello World!</p>
+</template>
+
+<style module="classes">
+.msg {
+  color: #ff0000;
+}
+</style>

TIP

需要注意的一点是,一旦开启 <style module> ,那么在 <style module> 里所编写的样式都必须手动绑定才能生效,没有被绑定的样式虽然也会被编译,但不会主动生效到 DOM 上。

原因是编译出来的样式名已经变化,而原来的 DOM 未指定对应的样式名,或者指定的是编译前的命名,所以并不能匹配到正确的样式。

useCssModule ~new

这是一个全新的 API ,面向在 script 部分操作 CSS Modules 。

在上面的 CSS Modules 部分可以知道,可以在 style 定义好样式,然后在 template 部分通过变量名来绑定样式。

那么如果有一天有个需求,需要通过 v-html 来渲染 HTML 代码,那这里的样式岂不是凉凉了?当然不会!

Vue 3 提供了一个 Composition API useCssModule 来帮助在 setup 函数里操作的 CSS Modules (对,只能在 setup 或者 script setup 里使用)。

基本用法:

绑定多几个样式,再来操作:

vue
<template>
+  <p :class="$style.msg">
+    <span :class="$style.text">Hello World!</span>
+  </p>
+</template>
+
+<script lang="ts">
+import { defineComponent, useCssModule } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const style = useCssModule()
+    console.log(style)
+  },
+})
+</script>
+
+<style module>
+.msg {
+  color: #ff0000;
+}
+.text {
+  font-size: 14px;
+}
+</style>

可以看到打印出来的 style 是一个对象:

  • key 是在 <style modules> 里定义的原始样式名

  • value 则是编译后的新样式名

js
{
+  msg: 'home_msg_37Xmr',
+  text: 'home_text_2woQJ'
+}

所以来配合 模板字符串 的使用,看看刚刚说的,要通过 v-html 渲染出来的内容应该如何绑定样式:

vue
<template>
+  <div v-html="content"></div>
+</template>
+
+<script lang="ts">
+import { defineComponent, useCssModule } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取样式
+    const style = useCssModule()
+
+    // 编写模板内容
+    const content = \`<p class="\${style.msg}">
+      <span class="\${style.text}">Hello World! —— from v-html</span>
+    </p>\`
+
+    return {
+      content,
+    }
+  },
+})
+</script>
+
+<style module>
+.msg {
+  color: #ff0000;
+}
+.text {
+  font-size: 14px;
+}
+</style>

是不是也非常简单?可能刚开始不太习惯,但写多几次其实也蛮好玩的这个功能!

另外,需要注意的是,如果是指定了 modules 的名称,那么必须传入对应的名称作为入参才可以正确拿到这些样式:

比如指定了一个 classes 作为名称:

vue
<style module="classes">
+/* ... */
+</style>

那么需要通过传入 classes 这个名称才能拿到样式,否则会是一个空对象:

ts
const style = useCssModule('classes')

TIP

const style = useCssModule() 的时候,命名是随意的,跟在 <style module="classes"> 这里指定的命名没有关系。

深度操作符 ~new

样式表的组件作用域 部分了解到,使用 scoped 后,父组件的样式将不会渗透到子组件中,但也不能直接修改子组件的样式。

如果确实需要进行修改子组件的样式,必须通过 ::v-deep(完整写法) 或者 :deep(快捷写法) 操作符来实现。

TIP

  1. 旧版的深度操作符是 >>>/deep/::v-deep,现在 >>>/deep/ 已进入弃用阶段(虽然暂时还没完全移除)

  2. 同时需要注意的是,旧版 ::v-deep 的写法是作为组合器的方式,写在样式或者元素前面,如:::v-deep .class-name { /* ... */ },现在这种写法也废弃了。

现在不论是 ::v-deep 还是 :deep ,使用方法非常统一,来假设 .b 是子组件的样式名:

vue
<style scoped>
+.a :deep(.b) {
+  /* ... */
+}
+</style>

编译后:

css
.a[data-v-f3f3eg9] .b {
+  /* ... */
+}

TIP

可以看到,新的 deep 写法是作为一个类似 JS “函数” 那样去使用,需要深度操作的样式或者元素名,作为 “入参” 去传入。

同理,如果使用 Less 或者 Stylus 这种支持嵌套写法的预处理器,也是可以这样去深度操作的:

less
.a {
+  :deep(.b) {
+    /* ... */
+  }
+}

另外,除了操作子组件的样式,那些通过 v-html 创建的 DOM 内容,也不受作用域内的样式影响,也可以通过深度操作符来实现样式修改。

使用 CSS 预处理器

在工程化的现在,可以说前端都几乎不写 CSS 了,都是通过 sasslessstylus 等 CSS 预处理器来完成样式的编写。

为什么要用 CSS 预处理器?放一篇关于三大预处理器的点评,新开发者可以做个简单了解,具体的用法在对应的官网上有非常详细的说明。

可以查看了解:浅谈 CSS 预处理器,Sass、Less 和 Stylus

在 Vue 组件里使用预处理器非常简单,像 Vite 已内置了对预处理器文件的支持(可处理 .less.scss 之类的预处理器扩展名文件),因此只需要安装对应的依赖到项目里。

这里以 Less 为例,先安装该预处理器:

bash
# 因为是在开发阶段使用,所以添加到 \`devDependencies\`
+npm i -D less

接下来在 Vue 组件里,只需要在 <style /> 标签上,通过 lang="less" 属性指定使用哪个预处理器,即可直接编写对应的代码:

vue
<style lang="less" scoped>
+// 定义颜色变量
+@color-black: #333;
+@color-red: #ff0000;
+
+// 父级标签
+.msg {
+  width: 100%;
+  // 其子标签可以使用嵌套写法
+  p {
+    color: @color-black;
+    font-size: 14px;
+    // 支持多级嵌套
+    span {
+      color: @color-red;
+    }
+  }
+}
+</style>

编译后的 css 代码:

css
.msg {
+  width: 100%;
+}
+.msg p {
+  color: #333333;
+  font-size: 14px;
+}
+.msg p span {
+  color: #ff0000;
+}

预处理器也支持 scoped,用法请查阅 样式表的组件作用域 部分。

`,729);function C(i,A,d,u,g,h){const l=n("ReadingTips"),p=n("GitalkComment"),o=n("ClientOnly");return t(),c("div",null,[F,s(l),D,s(o,null,{default:r(()=>[s(p,{issueId:46})]),_:1})])}const E=e(y,[["render",C]]);export{m as __pageData,E as default}; diff --git a/assets/component.md.b59f8845.lean.js b/assets/component.md.b59f8845.lean.js new file mode 100644 index 00000000..2d260347 --- /dev/null +++ b/assets/component.md.b59f8845.lean.js @@ -0,0 +1,1949 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as e,v as t,b as c,t as s,O as r,R as a,M as n}from"./chunks/framework.0d8bea05.js";const m=JSON.parse('{"title":"单组件的编写","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"component.md","filePath":"component.md"}'),y={name:"component.md"},F=a('

单组件的编写

项目搭好了,第一个需要了解的是 Vue 组件的变化,由于这部分篇幅会非常大,所以会分成很多个小节,一部分一部分按照开发顺序来逐步了解。

因为 Vue 3 对 TypeScript 的支持真的是太完善了,并且 TypeScript 的发展趋势和市场需求度越来越高,所以接下来都将直接使用 TypeScript 进行编程。

TIP

对 TypeScript 不太熟悉的开发者,建议先阅读 快速上手 TypeScript 一章,有了一定的语言基础之后,再一边写代码一边加深印象。

',4),D=a(`

全新的 setup 函数 ~new

在开始编写 Vue 组件之前,需要了解两个全新的前置知识点:

  • 全新的 setup 函数,关系到组件的生命周期和渲染等问题
  • 写 TypeScript 组件离不开的 defineComponent API

setup 的含义

Vue 3 的 Composition API 系列里,推出了一个全新的 setup 函数,它是一个组件选项,在创建组件之前执行,一旦 props 被解析,并作为组合式 API 的入口点。

TIP

说的通俗一点,就是在使用 Vue 3 生命周期的情况下,整个组件相关的业务代码,都可以放在 setup 里执行。

因为在 setup 之后,其他的生命周期才会被启用(点击了解:组件的生命周期)。

基本语法:

ts
// 这是一个基于 TypeScript 的 Vue 组件
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup(props, context) {
+    // 在这里声明数据,或者编写函数并在这里执行它
+
+    return {
+      // 需要给 \`<template />\` 用的数据或函数,在这里 \`return\` 出去
+    }
+  },
+})

可以发现在这段代码里还导入了一个 defineComponent API ,也是 Vue 3 带来的新功能,下文的 defineComponent 的作用 将介绍其用法。

在使用 setup 的情况下,请牢记一点:不能再用 this 来获取 Vue 实例,也就是无法和 Vue 2 一样,通过 this.foothis.bar() 这样来获取实例上的数据,或者执行实例上的方法。

关于全新的 Vue 3 组件编写,笔者将在下文一步步说明。

setup 的参数使用

setup 函数包含了两个入参:

参数类型含义是否必传
propsobject由父组件传递下来的数据
contextobject组件的执行上下文

第一个参数 props

它是响应式的,当父组件传入新的数据时,它将被更新。

TIP

请不要解构它,这样会让数据失去响应性,一旦父组件发生数据变化,解构后的变量将无法同步更新为最新的值。

可以使用 Vue 3 全新的响应式 API toRef / toRefs 进行响应式数据转换,下文将会介绍全新的响应式 API 的用法。

第二个参数 context

context 只是一个普通的对象,它暴露三个组件的 Property :

属性类型作用
attrs非响应式对象未在 Props 里定义的属性都将变成 Attrs
slots非响应式对象组件插槽,用于接收父组件传递进来的模板内容
emit方法触发父组件绑定下来的事件

因为 context 只是一个普通对象,所以可以直接使用 ES6 解构。

平时使用可以通过直接传入 { emit } ,即可用 emit('xxx') 来代替使用 context.emit('xxx'),另外两个功能也是如此。

但是 attrsslots 请保持 attrs.xxxslots.xxx 的方式来使用其数据,不要进行解构,虽然这两个属性不是响应式对象,但对应的数据会随组件本身的更新而更新。

两个参数的具体使用,可查阅 组件之间的通信 一章详细了解。

defineComponent 的作用

defineComponent 是 Vue 3 推出的一个全新 API ,可用于对 TypeScript 代码的类型推导,帮助开发者简化掉很多编码过程中的类型声明。

比如,原本需要这样才可以使用 setup 函数:

ts
import { Slots } from 'vue'
+
+// 声明 \`props\` 和 \`return\` 的数据类型
+interface Data {
+  [key: string]: unknown
+}
+
+// 声明 \`context\` 的类型
+interface SetupContext {
+  attrs: Data
+  slots: Slots
+  emit: (event: string, ...args: unknown[]) => void
+}
+
+// 使用的时候入参要加上声明, \`return\` 也要加上声明
+export default {
+  setup(props: Data, context: SetupContext): Data {
+    // ...
+
+    return {
+      // ...
+    }
+  },
+}

每个组件都这样进行类型声明,会非常繁琐,如果使用了 defineComponent ,就可以省略这些类型声明:

ts
import { defineComponent } from 'vue'
+
+// 使用 \`defineComponent\` 包裹组件的内部逻辑
+export default defineComponent({
+  setup(props, context) {
+    // ...
+
+    return {
+      // ...
+    }
+  },
+})

代码量瞬间大幅度减少,只要是 Vue 本身的 API , defineComponent 都可以自动推导其类型,这样开发者在编写组件的过程中,只需要维护自己定义的数据类型就可以了,可专注于业务。

组件的生命周期 ~new

在了解了 Vue 3 组件的两个前置知识点后,不着急写组件,还需要先了解组件的生命周期,这个知识点非常重要,只有理解并记住组件的生命周期,才能够灵活的把控好每一处代码的执行,使程序的运行结果可以达到预期。

升级变化

从 Vue 2 升级到 Vue 3 ,在保留对 Vue 2 的生命周期支持的同时,Vue 3 也带来了一定的调整。

Vue 2 的生命周期写法名称是 Options API (选项式 API ), Vue 3 新的生命周期写法名称是 Composition API (组合式 API )。

Vue 3 组件默认支持 Options API ,而 Vue 2 可以通过 @vue/composition-api 插件获得 Composition API 的功能支持(其中 Vue 2.7 版本内置了该插件, 2.6 及以下的版本需要单独安装)。

为了减少理解成本,笔者将从读者的使用习惯上,使用 “ Vue 2 的生命周期” 代指 Options API 写法,用 “ Vue 3 的生命周期” 代指 Composition API 写法。

关于 Vue 生命周期的变化,可以从下表直观地了解:

Vue 2 生命周期Vue 3 生命周期执行时间说明
beforeCreatesetup组件创建前执行
createdsetup组件创建后执行
beforeMountonBeforeMount组件挂载到节点上之前执行
mountedonMounted组件挂载完成后执行
beforeUpdateonBeforeUpdate组件更新之前执行
updatedonUpdated组件更新完成之后执行
beforeDestroyonBeforeUnmount组件卸载之前执行
destroyedonUnmounted组件卸载完成后执行
errorCapturedonErrorCaptured当捕获一个来自子孙组件的异常时激活钩子函数

可以看到 Vue 2 生命周期里的 beforeCreatecreated ,在 Vue 3 里已被 setup 替代。

熟悉 Vue 2 的开发者应该都知道 Vue 有一个全局组件 <KeepAlive /> ,用于在多个组件间动态切换时缓存被移除的组件实例,当组件被包含在 <KeepAlive /> 组件里时,会多出两个生命周期钩子函数:

Vue 2 生命周期Vue 3 生命周期执行时间说明
activatedonActivated被激活时执行
deactivatedonDeactivated切换组件后,原组件消失前执行

TIP

虽然 Vue 3 依然支持 Vue 2 的生命周期,但是不建议混搭使用,前期可以继续使用 Vue 2 的生命周期作为过度阶段慢慢适应,但还是建议尽快熟悉并完全使用 Vue 3 的生命周期编写组件。

使用 3.x 的生命周期

在 Vue 3 的 Composition API 写法里,每个生命周期函数都要先导入才可以使用,并且所有生命周期函数统一放在 setup 里运行。

如果需要达到 Vue 2 的 beforeCreatecreated 生命周期的执行时机,直接在 setup 里执行函数即可。

以下是几个生命周期的执行顺序对比:

ts
import { defineComponent, onBeforeMount, onMounted } from 'vue'
+
+export default defineComponent({
+  setup() {
+    console.log(1)
+
+    onBeforeMount(() => {
+      console.log(2)
+    })
+
+    onMounted(() => {
+      console.log(3)
+    })
+
+    console.log(4)
+  },
+})

最终将按照生命周期的顺序输出:

js
// 1
+// 4
+// 2
+// 3

组件的基本写法

如果想在 Vue 2 里使用 TypeScript 编写组件,需要通过 Options API 的 Vue.extend 语法,或者是另外一种风格 Class Component 的语法声明组件,其中为了更好的进行类型推导, Class Component 语法更受开发者欢迎。

但是 Class Component 语法和默认的组件语法相差较大,带来了一定的学习成本,对于平时编写 JavaScript 代码很少使用 Class 的开发者,适应时间应该也会比较长。

因此 Vue 3 在保留对 Class Component 支持的同时,推出了全新的 Function-based Component ,更贴合 JavaScript 的函数式编程风格,这也是接下来要讲解并贯穿全文使用的 Composition API 新写法。

Composition API 虽然也是一个步伐迈得比较大的改动,但其组件结构并没有特别大的变化,区别比较大的地方在于组件生命周期和响应式 API 的使用,只要掌握了这些核心功能,上手 Vue 3 非常容易!

看到这里可能有开发者心里在想:

“这几种组件写法,加上视图部分又有 Template 和 TSX 的写法之分,生命周期方面 Vue 3 对 Vue 2 的写法又保持了兼容,在 Vue 里写 TypeScript 的组合方式一只手数不过来,在入门时选择合适的编程风格就遇到了困难,可怎么办?”

不用担心!笔者将九种常见的组合方式以表格的形式进行对比, Vue 3 组件最好的写法一目了然!

回顾 Vue 2

在 Vue 2 ,常用以下三种写法声明 TypeScript 组件:

适用版本基本写法视图写法
Vue 2Vue.extendTemplate
Vue 2Class ComponentTemplate
Vue 2Class ComponentTSX

其中最接近 Options API 的写法是使用 Vue.extend API 声明组件:

ts
// 这是一段摘选自 Vue 2 官网的代码演示
+import Vue from 'vue'
+
+// 推荐使用 Vue.extend 声明组件
+const Component = Vue.extend({
+  // 类型推断已启用
+})
+
+// 不推荐这种方式声明
+const Component = {
+  // 这里不会有类型推断,
+  // 因为 TypeScript 不能确认这是 Vue 组件的选项
+}

而为了更好地获得 TypeScript 类型推导支持,通常使用 Class Component 的写法,这是 Vue 官方推出的一个装饰器插件(需要单独安装):

ts
// 这是一段摘选自 Vue 2 官网的代码演示
+import Vue from 'vue'
+import Component from 'vue-class-component'
+
+// @Component 修饰符注明了此类为一个 Vue 组件
+@Component({
+  // 所有的组件选项都可以放在这里
+  template: '<button @click="onClick">Click!</button>',
+})
+
+// 使用 Class 声明一个组件
+export default class MyComponent extends Vue {
+  // 初始数据可以直接声明为实例的 property
+  message: string = 'Hello!'
+
+  // 组件方法也可以直接声明为实例的方法
+  onClick(): void {
+    window.alert(this.message)
+  }
+}

可在 Vue 2 官网的 TypeScript 支持 一章了解更多配置说明。

了解 Vue 3 ~new

Vue 3 从设计初期就考虑了 TypeScript 的支持,其中 defineComponent 这个 API 就是为了解决 Vue 2 对 TypeScript 类型推导不完善等问题而推出的。

在 Vue 3 ,至少有以下六种写法可以声明 TypeScript 组件:

适用版本基本写法视图写法生命周期版本官方是否推荐
Vue 3Class ComponentTemplateVue 2×
Vue 3defineComponentTemplateVue 2×
Vue 3defineComponentTemplateVue 3
Vue 3Class ComponentTSXVue 2×
Vue 3defineComponentTSXVue 2×
Vue 3defineComponentTSXVue 3

其中 defineComponent + Composition API + Template 的组合是 Vue 官方最为推荐的组件声明方式,本书接下来的内容都会以这种写法作为示范案例,也推荐开发者在学习的过程中,使用该组合进行入门。

下面看看如何使用 Composition API 编写一个最简单的 Hello World 组件:

vue
<!-- Template 代码和 Vue 2 一样 -->
+<template>
+  <p class="msg">{{ msg }}</p>
+</template>
+
+<!-- Script 代码需要使用 Vue 3 的新写法-->
+<script lang="ts">
+// Vue 3 的 API 需要导入才能使用
+import { defineComponent } from 'vue'
+
+// 使用 \`defineComponent\` 包裹组件代码
+// 即可获得完善的 TypeScript 类型推导支持
+export default defineComponent({
+  setup() {
+    // 在 \`setup\` 方法里声明变量
+    const msg = 'Hello World!'
+
+    // 将需要在 \`<template />\` 里使用的变量 \`return\` 出去
+    return {
+      msg,
+    }
+  },
+})
+</script>
+
+<!-- CSS 代码和 Vue 2 一样 -->
+<style scoped>
+.msg {
+  font-size: 14px;
+}
+</style>

可以看到 Vue 3 的组件也是 <template /> + <script /> + <style /> 的三段式组合,上手非常简单。

其中 Template 沿用了 Vue 2 时期类似 HTML 风格的模板写法, Style 则是使用原生 CSS 语法或者 Less 等 CSS 预处理器编写。

但需要注意的是,在 Vue 3 的 Composition API 写法里,数据或函数如果需要在 <template /> 中使用,就必须在 setup 里将其 return 出去,而仅在 <script /> 里被调用的函数或变量,不需要渲染到模板则无需 return

响应式数据的变化 ~new

响应式数据是 MVVM 数据驱动编程的特色, Vue 的设计也是受 MVVM 模型的启发,相信大部分开发者选择 MVVM 框架都是因为数据驱动编程比传统的事件驱动编程要来得方便,而选择 Vue ,则是方便中的方便。

TIP

Model-View-ViewModel (简称 MVVM ) 是一种软件架构模式,将视图 UI 和业务逻辑分开,通过对逻辑数据的修改即可驱动视图 UI 的更新,因此常将这种编程方式称为 “数据驱动” ,与之对应的需要操作 DOM 才能完成视图更新的编程方式则称为 “事件驱动” 。

设计上的变化

作为最重要的一个亮点, Vue 3 的响应式数据在设计上和 Vue 2 有着很大的不同。

回顾 Vue 2

Vue 2 是使用了 Object.defineProperty API 的 getter/setter 来实现数据的响应性,这个方法的具体用法可以参考 MDN 的文档: Object.defineProperty - MDN

下面使用 Object.defineProperty 实现一个简单的双向绑定 demo ,亲自敲代码试一下可以有更多的理解:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>DefineProperty Demo</title>
+  </head>
+  <body>
+    <!-- 输入框和按钮 -->
+    <div>
+      <input type="text" id="input" />
+      <button onclick="vm.text = 'Hello World'">设置为 Hello World</button>
+    </div>
+    <!-- 输入框和按钮 -->
+
+    <!-- 文本展示 -->
+    <div id="output"></div>
+    <!-- 文本展示 -->
+
+    <script>
+      // 声明一个响应式数据
+      const vm = {}
+      Object.defineProperty(vm, 'text', {
+        set(value) {
+          document.querySelector('#input').value = value
+          document.querySelector('#output').innerText = value
+        },
+      })
+
+      // 处理输入行为
+      document.querySelector('#input').oninput = function (e) {
+        vm.text = e.target.value
+      }
+    </script>
+  </body>
+</html>

这个小 demo 实现了这两个功能:

  1. 输入框的输入行为只修改 vm.text 的数据,但会同时更新 output 标签的文本内容
  2. 点击按钮修改 vm.text 的数据,也会触发输入框和 output 文本的更新

当然 Vue 做了非常多的工作,而非只是简单的调用了 Object.defineProperty ,可以在官网 深入 Vue 2 的响应式原理 一章了解更多 Vue 2 的响应式原理。

了解 Vue 3

Vue 3 是使用了 Proxy API 的 getter/setter 来实现数据的响应性,这个方法的具体用法可以参考 MDN 的文档: Proxy - MDN

同样的,也来实现一个简单的双向绑定 demo ,这次使用 Proxy 来实现:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Proxy Demo</title>
+  </head>
+  <body>
+    <!-- 输入框和按钮 -->
+    <div>
+      <input type="text" id="input" />
+      <button onclick="vm.text = 'Hello World'">设置为 Hello World</button>
+    </div>
+    <!-- 输入框和按钮 -->
+
+    <!-- 文本展示 -->
+    <div id="output"></div>
+    <!-- 文本展示 -->
+
+    <script>
+      // 声明一个响应式数据
+      const vm = new Proxy(
+        {},
+        {
+          set(obj, key, value) {
+            document.querySelector('#input').value = value
+            document.querySelector('#output').innerText = value
+          },
+        }
+      )
+
+      // 处理输入行为
+      document.querySelector('#input').oninput = function (e) {
+        vm.text = e.target.value
+      }
+    </script>
+  </body>
+</html>

这个 demo 实现的功能和使用 Object.defineProperty 的 demo 是完全一样的,也都是基于 setter 的行为完成数据更新的实现,那么为什么 Vue 3 要舍弃 Object.defineProperty ,换成 Proxy 呢?

主要原因在于 Object.defineProperty 有以下的不足:

  1. 无法侦听数组下标的变化,通过 arr[i] = newValue 这样的操作无法实时响应
  2. 无法侦听数组长度的变化,例如通过 arr.length = 10 去修改数组长度,无法响应
  3. 只能侦听对象的属性,对于整个对象需要遍历,特别是多级对象更是要通过嵌套来深度侦听
  4. 使用 Object.assign() 等方法给对象添加新属性时,也不会触发更新
  5. 更多细节上的问题 …

这也是为什么 Vue 2 要提供一个 Vue.set API 的原因,可以在官网 Vue 2 中检测变化的注意事项 一章了解更多说明。

而这些问题在 Proxy 都可以得到解决,可以在官网 深入 Vue 3 的响应式原理 一章了解更多这部分的内容。

用法上的变化

本书只使用 Composition API 编写组件,这是使用 Vue 3 的最大优势。

TIP

虽然官方文档在各个 API 的使用上都做了一定的举例,但在实际使用过程中可能会遇到一些问题,常见的情况就是有些数据用着用着就失去了响应,或者是在 TypeScript 里出现类型不匹配的报错等等。

当然,一般遇到这种情况并不一定是框架的 BUG ,而可能是使用方式不对,本章节将结合笔者最初入门 Vue 3 时遇到的问题和解决问题的心得,复盘这些响应式 API 的使用。

相对于 Vue 2 在 data 里声明后即可通过 this.xxx 调用响应式数据,在 Vue 3 的生命周期里没有了 Vue 实例的 this 指向,需要导入 refreactive 等响应式 API 才能声明并使用响应式数据。

ts
// 这里导入的 \`ref\` 是一个响应式 API
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 通过响应式 API 创建的变量具备了响应性
+    const msg = ref<string>('Hello World!')
+  },
+})

由于 Vue 3 新的 API 非常多,但有些 API 的使用场景却不多,因此本书当前只对常用的部分 API 的使用和常见问题进行说明,更多的 API 可以在官方文档的 响应性 API 一章查阅。

响应式 API 之 ref ~new

ref 是最常用的一个响应式 API,它可以用来定义所有类型的数据,包括 Node 节点和组件。

没错,在 Vue 2 常用的 this.$refs.xxx 来取代 document.querySelector('.xxx') 获取 Node 节点的方式,也是使用这个 API 来取代。

类型声明

在开始使用 API 之前,需要先了解在 TypeScript 中如何声明 Ref 变量的类型。

API 本身的类型

先看 API 本身, ref API 是一个函数,通过接受一个泛型入参,返回一个响应式对象,所有的值都通过 .value 属性获取,这是 API 本身的 TS 类型:

ts
// \`ref\` API 的 TS 类型
+function ref<T>(value: T): Ref<UnwrapRef<T>>
+
+// \`ref\` API 的返回值的 TS 类型
+interface Ref<T> {
+  value: T
+}

因此在声明变量时,是使用尖括号 <> 包裹其 TS 类型,紧跟在 ref API 之后:

ts
// 显式指定 \`msg.value\` 是 \`string\` 类型
+const msg = ref<string>('Hello World!')

再回看该 API 本身的类型,其中使用了 T 泛型,这表示在传入函数的入参时,可以不需要手动指定其 TS 类型, TypeScript 会根据这个 API 所返回的响应式对象的 .value 属性的类型,确定当前变量的类型。

因此也可以省略显式的类型指定,像下面这样声明变量,其类型交给 TypeScript 去自动推导:

ts
// TypeScript 会推导 \`msg.value\` 是 \`string\` 类型
+const msg = ref('Hello World')

对于声明时会赋予初始值,并且在使用过程中不会改变其类型的变量,是可以省略类型的显式指定的。

而如果有显式的指定的类型,那么在一些特殊情况下,初始化时可以不必赋值,这样 TypeScript 会自动添加 undefined 类型:

ts
const msg = ref<string>()
+console.log(msg.value) // undefined
+
+msg.value = 'Hello World!'
+console.log(msg.value) // Hello World!

因为入参留空时,虽然指定了 string 类型,但实际上此时的值是 undefined ,因此实际上这个时候的 msg.value 是一个 string | undefined 的联合类型。

对于声明时不知道是什么值,在某种条件下才进行初始化的情况,就可以省略其初始值,但是切记在调用该变量的时候对 .value 值进行有效性判断。

而如果既不显式指定类型,也不赋予初始值,那么会被默认为 any 类型,除非真的无法确认类型,否则不建议这么做。

API 返回值的类型

细心的开发者还会留意到 ref API 类型里面还标注了一个返回值的 TS 类型:

ts
interface Ref<T> {
+  value: T
+}

它是代表整个 Ref 变量的完整类型:

  • 上文声明 Ref 变量时,提到的 string 类型都是指 msg.value 这个 .value 属性的类型
  • msg 这个响应式变量,其本身是 Ref<string> 类型

如果在开发过程中需要在函数里返回一个 Ref 变量,那么其 TypeScript 类型就可以这样写(请留意 Calculator 里的 num 变量的类型):

ts
// 导入 \`ref\` API
+import { ref } from 'vue'
+// 导入 \`ref\` API 的返回值类型
+import type { Ref } from 'vue'
+
+// 声明 \`useCalculator\` 函数的返回值类型
+interface Calculator {
+  // 这里包含了一个 Ref 变量
+  num: Ref<number>
+  add: () => void
+}
+
+// 声明一个 “使用计算器” 的函数
+function useCalculator(): Calculator {
+  const num = ref<number>(0)
+
+  function add() {
+    num.value++
+  }
+
+  return {
+    num,
+    add,
+  }
+}
+
+// 在执行使用计算器函数时,可以获取到一个 Ref 变量和其他方法
+const { num, add } = useCalculator()
+add()
+console.log(num.value) // 1

上面这个简单的例子演示了如何手动指定 Ref 变量的类型,对于逻辑复用时的函数代码抽离、插件开发等场景非常有用!当然大部分情况下可以交给 TypeScript 自动推导,但掌握其用法,在必要的时候就派得上用场了!

变量的定义

在了解了如何对 Ref 变量进行类型声明之后,面对不同的数据类型,相信都得心应手了!但不同类型的值之间还是有少许差异和注意事项,例如上文提及到该 API 可以用来定义所有类型的数据,包括 Node 节点和组件,具体可以参考下文的示例。

基本类型

对字符串、布尔值等基本类型的定义方式,比较简单:

ts
// 字符串
+const msg = ref<string>('Hello World!')
+
+// 数值
+const count = ref<number>(1)
+
+// 布尔值
+const isVip = ref<boolean>(false)

引用类型

对于对象、数组等引用类型也适用,比如要定义一个对象:

ts
// 先声明对象的格式
+interface Member {
+  id: number
+  name: string
+}
+
+// 在定义对象时指定该类型
+const userInfo = ref<Member>({
+  id: 1,
+  name: 'Tom',
+})

定义一个普通数组:

ts
// 数值数组
+const uids = ref<number[]>([1, 2, 3])
+
+// 字符串数组
+const names = ref<string[]>(['Tom', 'Petter', 'Andy'])

定义一个对象数组:

ts
// 声明对象的格式
+interface Member {
+  id: number
+  name: string
+}
+
+// 定义一个对象数组
+const memberList = ref<Member[]>([
+  {
+    id: 1,
+    name: 'Tom',
+  },
+  {
+    id: 2,
+    name: 'Petter',
+  },
+])

DOM 元素与子组件

除了可以定义数据,ref 也有熟悉的用途,就是用来挂载节点,也可以挂在子组件上,也就是对应在 Vue 2 时常用的 this.$refs.xxx 获取 DOM 元素信息的作用。

模板部分依然是熟悉的用法,在要引用的 DOM 上添加一个 ref 属性:

vue
<template>
+  <!-- 给 DOM 元素添加 \`ref\` 属性 -->
+  <p ref="msg">请留意该节点,有一个 ref 属性</p>
+
+  <!-- 子组件也是同样的方式添加 -->
+  <Child ref="child" />
+</template>

<script /> 部分有三个最基本的注意事项:

  1. <template /> 代码里添加的 ref 属性的值,是对应 <script /> 里使用 ref API 声明的变量的名称;

  2. 请保证视图渲染完毕后再执行 DOM 或组件的相关操作(需要放到生命周期的 onMounted 或者 nextTick 函数里,这一点在 Vue 2 也是一样);

  3. 该 Ref 变量必须 return 出去才可以给到 <template /> 使用,这一点是 Vue 3 生命周期的硬性要求,子组件的数据和方法如果要给父组件操作,也要 return 出来才可以。

配合上面的 <template /> ,来看看 <script /> 部分的具体例子:

ts
import { defineComponent, onMounted, ref } from 'vue'
+import Child from '@cp/Child.vue'
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+  setup() {
+    // 定义挂载节点,声明的类型详见下方附表
+    const msg = ref<HTMLElement>()
+    const child = ref<InstanceType<typeof Child>>()
+
+    // 请保证视图渲染完毕后再执行节点操作 e.g. \`onMounted\` / \`nextTick\`
+    onMounted(() => {
+      // 比如获取 DOM 的文本
+      console.log(msg.value.innerText)
+
+      // 或者操作子组件里的数据
+      child.value.isShowDialog = true
+    })
+
+    // 必须 \`return\` 出去才可以给到 \`<template />\` 使用
+    return {
+      msg,
+      child,
+    }
+  },
+})

关于 DOM 和子组件的 TS 类型声明,可参考以下规则:

节点类型声明类型参考文档
DOM 元素使用 HTML 元素接口HTML 元素接口
子组件使用 InstanceType 配合 typeof 获取子组件的类型typeof 操作符

TIP

单纯使用 typeof Child 虽然可以获得 Child.vue 组件的 Props 和方法等提示,但在 VSCode 的类型推导还不够智能,缺乏更有效的代码补全支持。

上文使用的 InstanceType<T> 是 TypeScript 提供的一个工具类型,可以获取构造函数类型的实例类型,因此将组件的类型声明为 InstanceType<typeof Child> ,不仅可以得到更完善的类型提示,在编程过程中还可以让编辑器提供更完善的代码补全功能。

另外,关于这一小节,有一个可能会引起 TS 编译报错的情况是,一些脚手架创建出来的项目会默认启用 --strictNullChecks 选项,会导致案例中的代码无法正常编译,出现如下报错:

bash
 npm run build
+
+> hello-vue3@0.0.0 build
+> vue-tsc --noEmit && vite build
+
+src/views/home.vue:27:7 - error TS2532: Object is possibly 'undefined'.
+
+27       child.value.isShowDialog = true
+         ~~~~~~~~~~~
+
+
+Found 1 error in src/views/home.vue:27

这是因为在默认情况下 nullundefined 是所有类型的子类型,但开启了 strictNullChecks 选项之后,会使 nullundefined 只能赋值给 void 和它们各自,这是一个更为严谨的选项,可以保障程序代码的健壮性,但对于刚接触 TypeScript 不久的开发者可能不太友好。

有以下几种解决方案可以参考:

  1. 在涉及到相关操作的时候,对节点变量增加一个判断:
ts
// 添加 \`if\` 分支,判断 \`.value\` 存在时才执行相关代码
+if (child.value) {
+  // 读取子组件的数据
+  console.log(child.value.num)
+
+  // 执行子组件的方法
+  child.value.sayHi('Use \`if\` in \`onMounted\` API.')
+}
  1. 通过 TS 的可选符 ? 将目标设置为可选,避免出现错误(这个方式不能直接修改子组件数据的值):
ts
// 读取子组件的数据(留意 \`.num\` 前面有一个 \`?\` 问号)
+console.log(child.value?.num)
+
+// 执行子组件的方法(留意 \`.sayHi\` 前面有一个 \`?\` 问号)
+child.value?.sayHi('use ? in onMounted')
  1. 在项目根目录下的 tsconfig.json 文件里,显式的关闭 strictNullChecks 选项,关闭后,需要开发者在写代码的时候,自行把控好是否需要对 nullundefined 进行判断:
json
{
+  "compilerOptions": {
+    // ...
+    "strictNullChecks": false
+  }
+  // ...
+}
  1. 使用 any 类型代替,但是写 TypeScript 还是尽量不要使用 any ,满屏的 AnyScript 不如直接使用 JavaScript

变量的读取与赋值

前面在介绍 API 类型的时候已经了解,通过 ref 声明的变量会全部变成对象,不管定义的是什么类型的值,都会转化为一个 Ref 对象,其中 Ref 对象具有指向内部值的单个 Property .value

也就是说,任何 Ref 对象的值都必须通过 xxx.value 才可以正确获取。

请牢记上面这句话,初拥 Vue 3 的开发者很多 BUG 都是由于这个问题引起的(包括笔者刚开始使用 Vue 3 的那段时间,嘿嘿)。

读取变量

平时对于普通变量的值,读取的时候都是直接调用其变量名即可:

ts
// 读取一个字符串
+const msg: string = 'Hello World!'
+console.log(msg)
+
+// 读取一个数组
+const uids: number[] = [1, 2, 3]
+console.log(uids[1])

而 Ref 对象的值的读取,切记!必须通过 .value

ts
// 读取一个字符串
+const msg = ref<string>('Hello World!')
+console.log(msg.value)
+
+// 读取一个数组
+const uids = ref<number[]>([1, 2, 3])
+console.log(uids.value[1])

为变量赋值

普通变量需要使用 let 声明才可以修改其值,由于 Ref 对象是个引用类型,所以可以使用 const 声明,直接通过 .value 修改。

ts
// 声明一个字符串变量
+const msg = ref<string>('Hi!')
+
+// 等待 1s 后修改它的值
+setTimeout(() => {
+  msg.value = 'Hello!'
+}, 1000)

因此日常业务中,像在对接服务端 API 的接口数据时,可以自由的使用 forEachmapfilter 等方法操作 Ref 数组,或者直接重置它,而不必担心数据失去响应性。

ts
const data = ref<string[]>([])
+
+// 提取接口的数据
+data.value = api.data.map((item: any) => item.text)
+
+// 重置数组
+data.value = []

为什么突然要说这个呢?因为涉及到下一部分的知识,关于 reactive API 在使用上的注意事项。

响应式 API 之 reactive ~new

reactive 是继 ref 之后最常用的一个响应式 API 了,相对于 ref ,它的局限性在于只适合对象、数组。

TIP

使用 reactive 的好处就是写法跟平时的对象、数组几乎一模一样,但它也带来了一些特殊注意点,请留意赋值部分的特殊说明。

类型声明与定义

reactive 变量的声明方式没有 ref 的变化那么大,基本上和普通变量一样,它的 TS 类型如下:

ts
function reactive<T extends object>(target: T): UnwrapNestedRefs<T>

可以看到其用法还是比较简单的,下面是一个 Reactive 对象的声明方式:

ts
// 声明对象的类型
+interface Member {
+  id: number
+  name: string
+}
+
+// 定义一个对象
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Tom',
+})

下面是 Reactive 数组的声明方式:

ts
const uids: number[] = reactive([1, 2, 3])

还可以声明一个 Reactive 对象数组:

ts
// 对象数组也是先声明其中的对象类型
+interface Member {
+  id: number
+  name: string
+}
+
+// 再定义一个为对象数组
+const userList: Member[] = reactive([
+  {
+    id: 1,
+    name: 'Tom',
+  },
+  {
+    id: 2,
+    name: 'Petter',
+  },
+  {
+    id: 3,
+    name: 'Andy',
+  },
+])

变量的读取与赋值

虽然 reactive API 在使用上没有像 ref API 一样有 .value 的心智负担,但也有一些注意事项要留意。

处理对象

Reactive 对象在读取字段的值,或者修改值的时候,与普通对象是一样的,这部分没有太多问题。

ts
// 声明对象的类型
+interface Member {
+  id: number
+  name: string
+}
+
+// 定义一个对象
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Tom',
+})
+
+// 读取用户名
+console.log(userInfo.name)
+
+// 修改用户名
+userInfo.name = 'Petter'

处理数组

但是对于 Reactive 数组,和普通数组会有一些区别。

普通数组在 “重置” 或者 “修改值” 时都是可以直接操作:

ts
// 定义一个普通数组
+let uids: number[] = [1, 2, 3]
+
+// 从另外一个对象数组里提取数据过来
+uids = api.data.map((item: any) => item.id)
+
+// 合并另外一个数组
+let newUids: number[] = [4, 5, 6]
+uids = [...uids, ...newUids]
+
+// 重置数组
+uids = []

Vue 2 在操作数组的时候,也可以和普通数组这样处理数据的变化,依然能够保持响应性,但在 Vue 3 ,如果使用 reactive 定义数组,则不能这么处理,必须只使用那些不会改变引用地址的操作。

笔者刚开始接触时,按照原来的思维去处理 reactive 数组,于是遇到了 “数据变了,但模板不会更新的问题” ,如果开发者在学习的过程中也遇到了类似的情况,可以从这里去入手排查问题所在。

举个例子,比如要从服务端 API 接口获取翻页数据时,通常要先重置数组,再异步添加数据,如果使用常规的重置,会导致这个变量失去响应性:

ts
let uids: number[] = reactive([1, 2, 3])
+
+/**
+ * 不推荐使用这种方式,会丢失响应性
+ * 异步添加数据后,模板不会响应更新
+ */
+uids = []
+
+// 异步获取数据后,模板依然是空数组
+setTimeout(() => {
+  uids.push(1)
+}, 1000)

要让数据依然保持响应性,则必须在关键操作时,不破坏响应性 API ,以下是推荐的操作方式,通过重置数组的 length 长度来实现数据的重置:

ts
const uids: number[] = reactive([1, 2, 3])
+
+/**
+ * 推荐使用这种方式,不会破坏响应性
+ */
+uids.length = 0
+
+// 异步获取数据后,模板可以正确的展示
+setTimeout(() => {
+  uids.push(1)
+}, 1000)

特别注意

不要对 Reactive 数据进行 ES6 的解构 操作,因为解构后得到的变量会失去响应性。

比如这些情况,在 2s 后都得不到新的 name 信息:

ts
import { defineComponent, reactive } from 'vue'
+
+interface Member {
+  id: number
+  name: string
+}
+
+export default defineComponent({
+  setup() {
+    // 定义一个带有响应性的对象
+    const userInfo: Member = reactive({
+      id: 1,
+      name: 'Petter',
+    })
+
+    // 在 2s 后更新 \`userInfo\`
+    setTimeout(() => {
+      userInfo.name = 'Tom'
+    }, 2000)
+
+    // 这个变量在 2s 后不会同步更新
+    const newUserInfo: Member = { ...userInfo }
+
+    // 这个变量在 2s 后不会再同步更新
+    const { name } = userInfo
+
+    // 这样 \`return\` 出去给模板用,在 2s 后也不会同步更新
+    return {
+      ...userInfo,
+    }
+  },
+})

响应式 API 之 toRef 与 toRefs ~new

相信各位开发者看到这里时,应该已经对 refreactive API 都有所了解了,为了方便开发者使用, Vue 3 还推出了两个与之相关的 API : toReftoRefs ,都是用于 reactiveref 转换。

各自的作用

这两个 API 在拼写上非常接近,顾名思义,一个是只转换一个字段,一个是转换所有字段,转换后将得到新的变量,并且新变量和原来的变量可以保持同步更新。

API作用
toRef创建一个新的 Ref 变量,转换 Reactive 对象的某个字段为 Ref 变量
toRefs创建一个新的对象,它的每个字段都是 Reactive 对象各个字段的 Ref 变量

光看概念可能不容易理解,来看下面的例子,先声明一个 reactive 变量:

ts
interface Member {
+  id: number
+  name: string
+}
+
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Petter',
+})

然后分别看看这两个 API 应该怎么使用。

使用 toRef

先看这个转换单个字段的 toRef API ,了解了它的用法之后,再去看 toRefs 就很容易理解了。

API 类型和基本用法

toRef API 的 TS 类型如下:

ts
// \`toRef\` API 的 TS 类型
+function toRef<T extends object, K extends keyof T>(
+  object: T,
+  key: K,
+  defaultValue?: T[K]
+): ToRef<T[K]>
+
+// \`toRef\` API 的返回值的 TS 类型
+type ToRef<T> = T extends Ref ? T : Ref<T>

通过接收两个必传的参数(第一个是 reactive 对象, 第二个是要转换的 key ),返回一个 Ref 变量,在适当的时候也可以传递第三个参数,为该变量设置默认值。

以上文声明好的 userInfo 为例,如果想转换 name 这个字段为 Ref 变量,只需要这样操作:

ts
const name = toRef(userInfo, 'name')
+console.log(name.value) // Petter

等号左侧的 name 变量此时是一个 Ref 变量,这里因为 TypeScript 可以对其自动推导,因此声明时可以省略 TS 类型的显式指定,实际上该变量的类型是 Ref<string>

所以之后在读取和赋值时,就需要使用 name.value 来操作,在重新赋值时会同时更新 nameuserInfo.name 的值:

ts
// 修改前先查看初始值
+const name = toRef(userInfo, 'name')
+console.log(name.value) // Petter
+console.log(userInfo.name) // Petter
+
+// 修改 Ref 变量的值,两者同步更新
+name.value = 'Tom'
+console.log(name.value) // Tom
+console.log(userInfo.name) // Tom
+
+// 修改 Reactive 对象上该属性的值,两者也是同步更新
+userInfo.name = 'Jerry'
+console.log(name.value) // Jerry
+console.log(userInfo.name) // Jerry

这个 API 也可以接收一个 Reactive 数组,此时第二个参数应该传入数组的下标:

ts
// 这一次声明的是数组
+const words = reactive(['a', 'b', 'c'])
+
+// 通过下标 \`0\` 转换第一个 item
+const a = toRef(words, 0)
+console.log(a.value) // a
+console.log(words[0]) // a
+
+// 通过下标 \`2\` 转换第三个 item
+const c = toRef(words, 2)
+console.log(c.value) // c
+console.log(words[2]) // c

设置默认值

如果 Reactive 对象上有一个属性本身没有初始值,也可以传递第三个参数进行设置(默认值仅对 Ref 变量有效):

ts
interface Member {
+  id: number
+  name: string
+  // 类型上新增一个属性,因为是可选的,因此默认值会是 \`undefined\`
+  age?: number
+}
+
+// 声明变量时省略 \`age\` 属性
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Petter',
+})
+
+// 此时为了避免程序运行错误,可以指定一个初始值
+// 但初始值仅对 Ref 变量有效,不会影响 Reactive 字段的值
+const age = toRef(userInfo, 'age', 18)
+console.log(age.value)  // 18
+console.log(userInfo.age) // undefined
+
+// 除非重新赋值,才会使两者同时更新
+age.value = 25
+console.log(age.value)  // 25
+console.log(userInfo.age) // 25

数组也是同理,对于可能不存在的下标,可以传入默认值避免项目的逻辑代码出现问题:

ts
const words = reactive(['a', 'b', 'c'])
+
+// 当下标对应的值不存在时,也是返回 \`undefined\`
+const d = toRef(words, 3)
+console.log(d.value) // undefined
+console.log(words[3]) // undefined
+
+// 设置了默认值之后,就会对 Ref 变量使用默认值, Reactive 数组此时不影响
+const e = toRef(words, 4, 'e')
+console.log(e.value) // e
+console.log(words[4]) // undefined

其他用法

这个 API 还有一个特殊用法,但不建议在 TypeScript 里使用。

toRef 的过程中,如果使用了原对象上面不存在的 key ,那么定义出来的 Ref 变量的 .value 值将会是 undefined

ts
// 众所周知, Petter 是没有女朋友的
+const girlfriend = toRef(userInfo, 'girlfriend')
+console.log(girlfriend.value) // undefined
+console.log(userInfo.girlfriend) // undefined
+
+// 此时 Reactive 对象上只有两个 Key
+console.log(Object.keys(userInfo)) // ['id', 'name']

如果对这个不存在的 key 的 Ref 变量进行赋值,那么原来的 Reactive 对象也会同步增加这个 key,其值也会同步更新。

ts
// 赋值后,不仅 Ref 变量得到了 \`Marry\` , Reactive 对象也得到了 \`Marry\`
+girlfriend.value = 'Marry'
+console.log(girlfriend.value) // 'Marry'
+console.log(userInfo.girlfriend) // 'Marry'
+
+// 此时 Reactive 对象上有了三个 Key
+console.log(Object.keys(userInfo)) // ['id', 'name', 'girlfriend']

为什么强调不要在 TypeScript 里使用呢?因为在编译时,无法通过 TypeScript 的类型检查:

bash
 npm run build
+
+> hello-vue3@0.0.0 build
+> vue-tsc --noEmit && vite build
+
+src/views/home.vue:37:40 - error TS2345: Argument of type '"girlfriend"'
+is not assignable to parameter of type 'keyof Member'.
+
+37     const girlfriend = toRef(userInfo, 'girlfriend')
+                                          ~~~~~~~~~~~~
+
+src/views/home.vue:39:26 - error TS2339: Property 'girlfriend' does not exist
+on type 'Member'.
+
+39     console.log(userInfo.girlfriend) // undefined
+                            ~~~~~~~~~~
+
+src/views/home.vue:45:26 - error TS2339: Property 'girlfriend' does not exist
+on type 'Member'.
+
+45     console.log(userInfo.girlfriend) // 'Marry'
+                            ~~~~~~~~~~
+
+
+Found 3 errors in the same file, starting at: src/views/home.vue:37

如果不得不使用这种情况,可以考虑使用 any 类型:

ts
// 将该类型直接指定为 \`any\`
+type Member = any
+// 当然一般都是 \`const userInfo: any\`
+
+// 或者保持接口类型的情况下,允许任意键值
+interface Member {
+  [key: string]: any
+}
+
+// 使用 \`Record\` 也是同理
+type Member = Record<string, any>

但笔者还是更推荐保持良好的类型声明习惯,尽量避免这种用法。

使用 toRefs

在了解了 toRef API 之后,来看看 toRefs 的用法。

API 类型和基本用法

先看看它的 TS 类型:

ts
function toRefs<T extends object>(
+  object: T
+): {
+  [K in keyof T]: ToRef<T[K]>
+}
+
+type ToRef = T extends Ref ? T : Ref<T>

toRef 不同, toRefs 只接收了一个参数,是一个 reactive 变量。

ts
interface Member {
+  id: number
+  name: string
+}
+
+// 声明一个 Reactive 变量
+const userInfo: Member = reactive({
+  id: 1,
+  name: 'Petter',
+})
+
+// 传给 \`toRefs\` 作为入参
+const userInfoRefs = toRefs(userInfo)

此时这个新的 userInfoRefs 变量,它的 TS 类型就不再是 Member 了,而应该是:

ts
// 导入 \`toRefs\` API 的类型
+import type { ToRefs } from 'vue'
+
+// 上下文代码省略...
+
+// 将原来的类型传给 API 的类型
+const userInfoRefs: ToRefs<Member> = toRefs(userInfo)

也可以重新编写一个新的类型来指定它,因为每个字段都是与原来关联的 Ref 变量,所以也可以这样声明:

ts
// 导入 \`ref\` API 的类型
+import type { Ref } from 'vue'
+
+// 上下文代码省略...
+
+// 新声明的类型每个字段都是一个 Ref 变量的类型
+interface MemberRefs {
+  id: Ref<number>
+  name: Ref<string>
+}
+
+// 使用新的类型进行声明
+const userInfoRefs: MemberRefs = toRefs(userInfo)

当然实际上日常使用时并不需要手动指定其类型, TypeScript 会自动推导,可以节约非常多的开发工作量。

toRef API 一样,这个 API 也是可以对数组进行转换:

ts
const words = reactive(['a', 'b', 'c'])
+const wordsRefs = toRefs(words)

此时新数组的类型是 Ref<string>[] ,不再是原来的 string[] 类型。

解构与赋值

转换后的 Reactive 对象或数组支持 ES6 的解构,并且不会失去响应性,因为解构后的每一个变量都具备响应性。

ts
// 为了提高开发效率,可以直接将 Ref 变量直接解构出来使用
+const { name } = toRefs(userInfo)
+console.log(name.value) // Petter
+
+// 此时对解构出来的变量重新赋值,原来的变量也可以同步更新
+name.value = 'Tom'
+console.log(name.value) // Tom
+console.log(userInfo.name) // Tom

这一点和直接解构 Reactive 变量有非常大的不同,直接解构 Reactive 变量,得到的是一个普通的变量,不再具备响应性。

这个功能在使用 Hooks 函数非常好用(在 Vue 3 里也叫可组合函数, Composable Functions ),还是以一个计算器函数为例,这一次将其修改为内部有一个 Reactive 的数据状态中心,在函数返回时解构为多个 Ref 变量:

ts
import { reactive, toRefs } from 'vue'
+
+// 声明 \`useCalculator\` 数据状态类型
+interface CalculatorState {
+  // 这是要用来计算操作的数据
+  num: number
+  // 这是每次计算时要增加的幅度
+  step: number
+}
+
+// 声明一个 “使用计算器” 的函数
+function useCalculator() {
+  // 通过数据状态中心的形式,集中管理内部变量
+  const state: CalculatorState = reactive({
+    num: 0,
+    step: 10,
+  })
+
+  // 功能函数也是通过数据中心变量去调用
+  function add() {
+    state.num += state.step
+  }
+
+  return {
+    ...toRefs(state),
+    add,
+  }
+}

这样在调用 useCalculator 函数时,可以通过解构直接获取到 Ref 变量,不需要再进行额外的转换工作。

ts
// 解构出来的 \`num\` 和 \`step\` 都是 Ref 变量
+const { num, step, add } = useCalculator()
+console.log(num.value) // 0
+console.log(step.value) // 10
+
+// 调用计算器的方法,数据也是会得到响应式更新
+add()
+console.log(num.value) // 10

为什么要进行转换

关于为什么要出这么两个 API ,官方文档没有特别说明,不过经过笔者在业务中的一些实际使用感受,以及在写上一节 reactive特别注意,可能知道一些使用理由。

关于 refreactive 这两个 API 的好处就不重复了,但是在使用的过程中,各自都有不方便的地方:

ref API 虽然在 <template /> 里使用起来方便,但是在 <script /> 里进行读取 / 赋值的时候,要一直记得加上 .value ,否则 BUG 就来了。

reactive API 虽然在使用的时候,因为知道它本身是一个对象,所以不会忘记通过 foo.bar 这样的格式去操作,但是在 <template /> 渲染的时候,又因此不得不每次都使用 foo.bar 的格式去渲染。

那么有没有办法,既可以在编写 <script /> 的时候不容易出错,在写 <template /> 的时候又比较简单呢?

于是, toReftoRefs 因此诞生。

什么场景下比较适合使用它们

从便利性和可维护性来说,最好只在功能单一、代码量少的组件里使用,比如一个表单组件,通常表单的数据都放在一个对象里。

当然也可以把所有的数据都定义到一个 data 里,再去 data 里面取值,但是没有必要为了转换而转换,否则不如使用 Options API 风格。

在业务中的具体运用

继续使用上文一直在使用的 userInfo 来当案例,以一个用户信息表的小 demo 做个演示。

<script /> 部分:

  1. 先用 reactive 定义一个源数据,所有的数据更新,都是修改这个对象对应的值,按照对象的写法维护数据

  2. 再通过 toRefs 定义一个给 <template /> 使用的对象,这样可以得到一个每个字段都是 Ref 变量的新对象

  3. return 的时候,对步骤 2 里的 toRefs 对象进行解构,这样导出去就是各个字段对应的 Ref 变量,而不是一整个对象

ts
import { defineComponent, reactive, toRefs } from 'vue'
+
+interface Member {
+  id: number
+  name: string
+  age: number
+  gender: string
+}
+
+export default defineComponent({
+  setup() {
+    // 定义一个 reactive 对象
+    const userInfo = reactive({
+      id: 1,
+      name: 'Petter',
+      age: 18,
+      gender: 'male',
+    })
+
+    // 定义一个新的对象,它本身不具备响应性,但是它的字段全部是 Ref 变量
+    const userInfoRefs = toRefs(userInfo)
+
+    // 在 2s 后更新 \`userInfo\`
+    setTimeout(() => {
+      userInfo.id = 2
+      userInfo.name = 'Tom'
+      userInfo.age = 20
+    }, 2000)
+
+    // 在这里解构 \`toRefs\` 对象才能继续保持响应性
+    return {
+      ...userInfoRefs,
+    }
+  },
+})

<template /> 部分:

由于 return 出来的都是 Ref 变量,所以在模板里可以直接使用 userInfo 各个字段的 key ,不再需要写很长的 userInfo.name 了。

vue
<template>
+  <ul class="user-info">
+    <li class="item">
+      <span class="key">ID:</span>
+      <span class="value">{{ id }}</span>
+    </li>
+
+    <li class="item">
+      <span class="key">name:</span>
+      <span class="value">{{ name }}</span>
+    </li>
+
+    <li class="item">
+      <span class="key">age:</span>
+      <span class="value">{{ age }}</span>
+    </li>
+
+    <li class="item">
+      <span class="key">gender:</span>
+      <span class="value">{{ gender }}</span>
+    </li>
+  </ul>
+</template>

需要注意的问题

请注意是否有相同命名的变量存在,比如上面在 return<template /> 使用时,在解构 userInfoRefs 的时候已经包含了一个 name 字段,此时如果还有一个单独的变量也叫 name ,就会出现渲染上的数据显示问题。

此时它们在 <template /> 里哪个会生效,取决于谁排在后面,因为 return 出去的其实是一个对象,在对象里,如果存在相同的 key ,则后面的会覆盖前面的。

下面这种情况,会以单独的 name 为渲染数据:

ts
return {
+  ...userInfoRefs,
+  name,
+}

而下面这种情况,则是以 userInfoRefs 里的 name 为渲染数据:

ts
return {
+  name,
+  ...userInfoRefs,
+}

所以当决定使用 toReftoRefs API 的时候,请注意这个特殊情况!

函数的声明和使用 ~new

在了解了响应式数据如何使用之后,接下来就要开始了解函数了。

在 Vue 2 ,函数通常是作为当前组件实例上的方法在 methods 里声明,然后再在 mounted 等生命周期里调用,或者是在模板里通过 Click 等行为触发,由于组件内部经常需要使用 this 获取组件实例,因此不能使用箭头函数。

js
export default {
+  data: () => {
+    return {
+      num: 0,
+    }
+  },
+  mounted: function () {
+    this.add()
+  },
+  methods: {
+    // 不可以使用 \`add: () => this.num++\`
+    add: function () {
+      this.num++
+    },
+  },
+}

在 Vue 3 则灵活了很多,可以使用普通函数、 Class 类、箭头函数、匿名函数等等进行声明,可以将其写在 setup 里直接使用,也可以抽离在独立的 .js / .ts 文件里再导入使用。

需要在组件创建时自动执行的函数,其执行时机需要遵循 Vue 3 的生命周期,需要在模板里通过 @click@change 等行为触发,和变量一样,需要把函数名在 setup 里进行 return 出去。

下面是一个简单的例子,方便开发者更直观地了解:

vue
<template>
+  <p>{{ msg }}</p>
+
+  <!-- 在这里点击执行 \`return\` 出来的方法 -->
+  <button @click="updateMsg">修改MSG</button>
+</template>
+
+<script lang="ts">
+import { defineComponent, onMounted, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const msg = ref<string>('Hello World!')
+
+    // 这个要暴露给模板使用,必须 \`return\` 才可以使用
+    function updateMsg() {
+      msg.value = 'Hi World!'
+    }
+
+    // 这个要在页面载入时执行,无需 \`return\` 出去
+    const init = () => {
+      console.log('init')
+    }
+
+    onMounted(() => {
+      init()
+    })
+
+    return {
+      msg,
+      updateMsg,
+    }
+  },
+})
+</script>

数据的侦听 ~new

侦听数据变化也是组件里的一项重要工作,比如侦听路由变化、侦听参数变化等等。

Vue 3 在保留原来的 watch 功能之外,还新增了一个 watchEffect 帮助更简单的进行侦听。

watch

在 Vue 3 ,新版的 watch 和 Vue 2 的旧版写法对比,在使用方式上变化非常大!

回顾 Vue 2

在 Vue 2 是这样用的,和 datamethods 都在同级配置:

ts
export default {
+  data() {
+    return {
+      // ...
+    }
+  },
+  // 注意这里,放在 \`data\` 、 \`methods\` 同个级别
+  watch: {
+    // ...
+  },
+  methods: {
+    // ...
+  },
+}

并且类型繁多,选项式 API 的类型如下:

ts
watch: { [key: string]: string | Function | Object | Array}

联合类型过多,意味着用法复杂,下面是个很好的例子,虽然出自 官网 的用法介绍,但过于繁多的用法也反映出来对初学者不太友好,初次接触可能会觉得一头雾水:

ts
export default {
+  data() {
+    return {
+      a: 1,
+      b: 2,
+      c: {
+        d: 4,
+      },
+      e: 5,
+      f: 6,
+    }
+  },
+  watch: {
+    // 侦听顶级 Property
+    a(val, oldVal) {
+      console.log(\`new: \${val}, old: \${oldVal}\`)
+    },
+    // 字符串方法名
+    b: 'someMethod',
+    // 该回调会在任何被侦听的对象的 Property 改变时被调用,不论其被嵌套多深
+    c: {
+      handler(val, oldVal) {
+        console.log('c changed')
+      },
+      deep: true,
+    },
+    // 侦听单个嵌套 Property
+    'c.d': function (val, oldVal) {
+      // do something
+    },
+    // 该回调将会在侦听开始之后被立即调用
+    e: {
+      handler(val, oldVal) {
+        console.log('e changed')
+      },
+      immediate: true,
+    },
+    // 可以传入回调数组,它们会被逐一调用
+    f: [
+      'handle1',
+      function handle2(val, oldVal) {
+        console.log('handle2 triggered')
+      },
+      {
+        handler: function handle3(val, oldVal) {
+          console.log('handle3 triggered')
+        },
+        /* ... */
+      },
+    ],
+  },
+  methods: {
+    someMethod() {
+      console.log('b changed')
+    },
+    handle1() {
+      console.log('handle 1 triggered')
+    },
+  },
+}

当然肯定也会有开发者会觉得这样选择多是个好事,选择适合自己的就好,但笔者还是认为这种写法对于初学者来说不是那么友好,有些过于复杂化,如果一个用法可以适应各种各样的场景,岂不是更妙?

TIP

另外需要注意的是,不能使用箭头函数来定义 Watcher 函数 (例如 searchQuery: newValue => this.updateAutocomplete(newValue) )。

因为箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向组件实例, this.updateAutocomplete 将是 undefined

Vue 2 也可以通过 this.$watch() 这个 API 的用法来实现对某个数据的侦听,它接受三个参数: sourcecallbackoptions

ts
export default {
+  data() {
+    return {
+      a: 1,
+    }
+  },
+  // 生命周期钩子
+  mounted() {
+    this.$watch('a', (newVal, oldVal) => {
+      // ...
+    })
+  },
+}

由于 this.$watch 的用法和 Vue 3 比较接近,所以这里不做过多的回顾,请直接看 了解 Vue 3 部分。

了解 Vue 3

在 Vue 3 的组合式 API 写法, watch 是一个可以接受 3 个参数的函数(保留了 Vue 2 的 this.$watch 这种用法),在使用层面上简单了很多。

ts
import { watch } from 'vue'
+
+// 一个用法走天下
+watch(
+  source, // 必传,要侦听的数据源
+  callback // 必传,侦听到变化后要执行的回调函数
+  // options // 可选,一些侦听选项
+)

下面的内容都基于 Vue 3 的组合式 API 用法展开讲解。

API 的 TS 类型

在了解用法之前,先对它的 TS 类型声明做一个简单的了解, watch 作为组合式 API ,根据使用方式有两种类型声明:

  1. 基础用法的 TS 类型,详见 基础用法 部分
ts
// watch 部分的 TS 类型
+// ...
+export declare function watch<T, Immediate extends Readonly<boolean> = false>(
+  source: WatchSource<T>,
+  cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
+  options?: WatchOptions<Immediate>
+): WatchStopHandle
+// ...
  1. 批量侦听的 TS 类型,详见 批量侦听 部分
ts
// watch 部分的 TS 类型
+// ...
+export declare function watch<
+  T extends MultiWatchSources,
+  Immediate extends Readonly<boolean> = false
+>(
+  sources: [...T],
+  cb: WatchCallback<MapSources<T, false>, MapSources<T, Immediate>>,
+  options?: WatchOptions<Immediate>
+): WatchStopHandle
+
+// MultiWatchSources 是一个数组
+declare type MultiWatchSources = (WatchSource<unknown> | object)[]
+// ...

但是不管是基础用法还是批量侦听,可以看到这个 API 都是接受三个入参:

参数是否可选含义
source必传数据源(详见:要侦听的数据源
callback必传侦听到变化后要执行的回调函数(详见:侦听后的回调函数
options可选一些侦听选项(详见:侦听的选项

并返回一个可以用来停止侦听的函数(详见:停止侦听)。

要侦听的数据源

在上面 API 的 TS 类型 已经对 watch API 的组成有一定的了解了,这里先对数据源的类型和使用限制做下说明。

TIP

如果不提前了解,在使用的过程中可能会遇到 “侦听了但没有反应” 的情况出现。

另外,这部分内容会先围绕基础用法展开说明,批量侦听会在 批量侦听 部分单独说明。

watch API 的第 1 个参数 source 是要侦听的数据源,它的 TS 类型如下:

ts
// watch 第 1 个入参的 TS 类型
+// ...
+export declare type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T)
+// ...

可以看到能够用于侦听的数据,是通过 响应式 API 定义的变量( Ref<T> ),或者是一个 计算数据ComputedRef<T> ),或者是一个 getter 函数() => T )。

所以要想定义的 watch 能够做出预期的行为,数据源必须具备响应性或者是一个 getter ,如果只是通过 let 定义一个普通变量,然后去改变这个变量的值,这样是无法侦听的。

TIP

如果要侦听响应式对象里面的某个值(这种情况下对象本身是响应式,但它的 property 不是),需要写成 getter 函数,简单的说就是需要写成有返回值的函数,这个函数 return 要侦听的数据, e.g. () => foo.bar ,可以结合下方 基础用法 的例子一起理解。

侦听后的回调函数

在上面 API 的 TS 类型 介绍了 watch API 的组成,和数据源一样,先了解一下回调函数的定义。

TIP

和数据源部分一样,回调函数的内容也是会先围绕基础用法展开说明,批量侦听会在 批量侦听 部分单独说明。

watch API 的第 2 个参数 callback 是侦听到数据变化时要做出的行为,它的 TS 类型如下:

ts
// watch 第 2 个入参的 TS 类型
+// ...
+export declare type WatchCallback<V = any, OV = any> = (
+  value: V,
+  oldValue: OV,
+  onCleanup: OnCleanup
+) => any
+// ...

乍一看它有三个参数,但实际上这些参数不是自己定义的,而是 watch API 传给的,所以不管用或者不用,它们都在那里:

参数作用
value变化后的新值,类型和数据源保持一致
oldValue变化前的旧值,类型和数据源保持一致
onCleanup注册一个清理函数,详见 侦听效果清理 部分

注意:第一个参数是新值,第二个才是原来的旧值!

如同其他 JS 函数,在使用 watch 的回调函数时,可以对这三个参数任意命名,比如把 value 命名为觉得更容易理解的 newValue

TIP

如果侦听的数据源是一个 引用类型 时( e.g. ObjectArrayDate … ), valueoldValue 是完全相同的,因为指向同一个对象。

另外,默认情况下,watch 是惰性的,也就是只有当被侦听的数据源发生变化时才执行回调。

基础用法

来到这里,对 2 个必传的参数都有一定的了解了,先看看基础的用法,也就是日常最常编写的方案,只需要先关注前 2 个必传的参数。

ts
// 不要忘了导入要用的 API
+import { defineComponent, reactive, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 定义一个响应式数据
+    const userInfo = reactive({
+      name: 'Petter',
+      age: 18,
+    })
+
+    // 2s后改变数据
+    setTimeout(() => {
+      userInfo.name = 'Tom'
+    }, 2000)
+
+    /**
+     * 可以直接侦听这个响应式对象
+     * callback 的参数如果不用可以不写
+     */
+    watch(userInfo, () => {
+      console.log('侦听整个 userInfo ', userInfo.name)
+    })
+
+    /**
+     * 也可以侦听对象里面的某个值
+     * 此时数据源需要写成 getter 函数
+     */
+    watch(
+      // 数据源,getter 形式
+      () => userInfo.name,
+      // 回调函数 callback
+      (newValue, oldValue) => {
+        console.log('只侦听 name 的变化 ', userInfo.name)
+        console.log('打印变化前后的值', { oldValue, newValue })
+      }
+    )
+  },
+})

一般的业务场景,基础用法足以面对。

如果有多个数据源要侦听,并且侦听到变化后要执行的行为一样,那么可以使用 批量侦听

特殊的情况下,可以搭配 侦听的选项 做一些特殊的用法,详见下面部分的内容。

批量侦听

如果有多个数据源要侦听,并且侦听到变化后要执行的行为一样,第一反应可能是这样来写:

  1. 抽离相同的处理行为为公共函数
  2. 然后定义多个侦听操作,传入这个公共函数
ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const message = ref<string>('')
+    const index = ref<number>(0)
+
+    // 2s后改变数据
+    setTimeout(() => {
+      // 来到这里才会触发 watch 的回调
+      message.value = 'Hello World!'
+      index.value++
+    }, 2000)
+
+    // 抽离相同的处理行为为公共函数
+    const handleWatch = (
+      newValue: string | number,
+      oldValue: string | number
+    ): void => {
+      console.log({ newValue, oldValue })
+    }
+
+    // 然后定义多个侦听操作,传入这个公共函数
+    watch(message, handleWatch)
+    watch(index, handleWatch)
+  },
+})

这样写其实没什么问题,不过除了抽离公共代码的写法之外, watch API 还提供了一个批量侦听的用法,和 基础用法 的区别在于,数据源和回调参数都变成了数组的形式。

数据源:以数组的形式传入,里面每一项都是一个响应式数据。

回调参数:原来的 valuenewValue 也都变成了数组,每个数组里面的顺序和数据源数组排序一致。

可以看下面的这个例子更为直观:

ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 定义多个数据源
+    const message = ref<string>('')
+    const index = ref<number>(0)
+
+    // 2s后改变数据
+    setTimeout(() => {
+      message.value = 'Hello World!'
+      index.value++
+    }, 2000)
+
+    watch(
+      // 数据源改成了数组
+      [message, index],
+      // 回调的入参也变成了数组,每个数组里面的顺序和数据源数组排序一致
+      ([newMessage, newIndex], [oldMessage, oldIndex]) => {
+        console.log('message 的变化', { newMessage, oldMessage })
+        console.log('index 的变化', { newIndex, oldIndex })
+      }
+    )
+  },
+})

什么情况下可能会用到批量侦听呢?比如一个子组件有多个 props ,当有任意一个 prop 发生变化时,都需要执行初始化函数重置组件的状态,那么这个时候就可以用上这个功能啦!

TIP

在适当的业务场景,也可以使用 watchEffect 来完成批量侦听,但请留意 功能区别 部分的说明。

侦听的选项

API 的 TS 类型 里提到, watch API 还接受第 3 个参数 options ,可选的一些侦听选项。

它的 TS 类型如下:

ts
// watch 第 3 个入参的 TS 类型
+// ...
+export declare interface WatchOptions<Immediate = boolean>
+  extends WatchOptionsBase {
+  immediate?: Immediate
+  deep?: boolean
+}
+// ...
+
+// 继承的 base 类型
+export declare interface WatchOptionsBase extends DebuggerOptions {
+  flush?: 'pre' | 'post' | 'sync'
+}
+// ...
+
+// 继承的 debugger 选项类型
+export declare interface DebuggerOptions {
+  onTrack?: (event: DebuggerEvent) => void
+  onTrigger?: (event: DebuggerEvent) => void
+}
+// ...

options 是一个对象的形式传入,有以下几个选项:

选项类型默认值可选值作用
deepbooleanfalsetrue | false是否进行深度侦听
immediatebooleanfalsetrue | false是否立即执行侦听回调
flushstring'pre''pre' | 'post' | 'sync'控制侦听回调的调用时机
onTrack(e) => void在数据源被追踪时调用
onTrigger(e) => void在侦听回调被触发时调用

其中 onTrackonTriggere 是 debugger 事件,建议在回调内放置一个 debugger 语句 以调试依赖,这两个选项仅在开发模式下生效。

TIP

deep 默认是 false ,但是在侦听 reactive 对象或数组时,会默认为 true ,详见 侦听选项之 deep

侦听选项之 deep

deep 选项接受一个布尔值,可以设置为 true 开启深度侦听,或者是 false 关闭深度侦听,默认情况下这个选项是 false 关闭深度侦听的,但也存在特例。

设置为 false 的情况下,如果直接侦听一个响应式的 引用类型 数据(e.g. ObjectArray … ),虽然它的属性的值有变化,但对其本身来说是不变的,所以不会触发 watch 的 callback 。

下面是一个关闭了深度侦听的例子:

ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 定义一个响应式数据,注意用的是 ref 来定义
+    const nums = ref<number[]>([])
+
+    // 2s后给这个数组添加项目
+    setTimeout(() => {
+      nums.value.push(1)
+
+      // 可以打印一下,确保数据确实变化了
+      console.log('修改后', nums.value)
+    }, 2000)
+
+    // 但是这个 watch 不会按预期执行
+    watch(
+      nums,
+      // 这里的 callback 不会被触发
+      () => {
+        console.log('触发侦听', nums.value)
+      },
+      // 因为关闭了 deep
+      {
+        deep: false,
+      }
+    )
+  },
+})

类似这种情况,需要把 deep 设置为 true 才可以触发侦听。

可以看到上面的例子特地用了 ref API ,这是因为通过 reactive API 定义的对象无法将 deep 成功设置为 false (这一点在目前的官网文档未找到说明,最终是在 watch API 的源码 上找到了答案)。

ts
// ...
+if (isReactive(source)) {
+  getter = () => source
+  deep = true // 被强制开启了
+}
+// ...

这个情况就是上面所说的 “特例” ,可以通过 isReactive API 来判断是否需要手动开启深度侦听。

ts
// 导入 isReactive API
+import { defineComponent, isReactive, reactive, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 侦听这个数据时,会默认开启深度侦听
+    const foo = reactive({
+      name: 'Petter',
+      age: 18,
+    })
+    console.log(isReactive(foo)) // true
+
+    // 侦听这个数据时,不会默认开启深度侦听
+    const bar = ref({
+      name: 'Petter',
+      age: 18,
+    })
+    console.log(isReactive(bar)) // false
+  },
+})

侦听选项之 immediate

侦听后的回调函数 部分有了解过, watch 默认是惰性的,也就是只有当被侦听的数据源发生变化时才执行回调。

这句话是什么意思呢?来看一下这段代码,为了减少 deep 选项的干扰,换一个类型,换成 string 数据来演示,请留意注释:

ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 这个时候不会触发 watch 的回调
+    const message = ref<string>('')
+
+    // 2s后改变数据
+    setTimeout(() => {
+      // 来到这里才会触发 watch 的回调
+      message.value = 'Hello World!'
+    }, 2000)
+
+    watch(message, () => {
+      console.log('触发侦听', message.value)
+    })
+  },
+})

可以看到,数据在初始化的时候并不会触发侦听回调,如果有需要的话,通过 immediate 选项来让它直接触发。

immediate 选项接受一个布尔值,默认是 false ,可以设置为 true 让回调立即执行。

改成这样,请留意高亮的代码部分和新的注释:

ts
import { defineComponent, ref, watch } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 这一次在这里可以会触发 watch 的回调了
+    const message = ref<string>('')
+
+    // 2s后改变数据
+    setTimeout(() => {
+      // 这一次,这里是第二次触发 watch 的回调,不再是第一次
+      message.value = 'Hello World!'
+    }, 2000)
+
+    watch(
+      message,
+      () => {
+        console.log('触发侦听', message.value)
+      },
+      // 设置 immediate 选项
+      {
+        immediate: true,
+      }
+    )
+  },
+})

注意,在带有 immediate 选项时,不能在第一次回调时取消该数据源的侦听,详见 停止侦听 部分。

侦听选项之 flush

flush 选项是用来控制 侦听回调 的调用时机,接受指定的字符串,可选值如下,默认是 'pre'

可选值回调的调用时机使用场景
'pre'将在渲染前被调用允许回调在模板运行前更新了其他值
'sync'在渲染时被同步调用目前来说没什么好处,可以了解但不建议用…
'post'被推迟到渲染之后调用如果要通过 ref 操作 DOM 元素与子组件 ,需要使用这个值来启用该选项,以达到预期的执行效果

对于 'pre''post' ,回调使用队列进行缓冲。回调只被添加到队列中一次。

即使观察值变化了多次,值的中间变化将被跳过,不会传递给回调,这样做不仅可以提高性能,还有助于保证数据的一致性。

更多关于 flush 的信息,请参阅 回调的触发时机

停止侦听

如果在 setup 或者 script-setup 里使用 watch 的话, 组件被卸载 的时候也会一起被停止,一般情况下不太需要关心如何停止侦听。

不过有时候可能想要手动取消, Vue 3 也提供了方法。

TIP

随着组件被卸载一起停止的前提是,侦听器必须是 同步语句 创建的,这种情况下侦听器会绑定在当前组件上。

如果放在 setTimeout异步函数 里面创建,则不会绑定到当前组件,因此组件卸载的时候不会一起停止该侦听器,这种时候就需要手动停止侦听。

API 的 TS 类型 有提到,当在定义一个 watch 行为的时候,它会返回一个用来停止侦听的函数。

这个函数的 TS 类型如下:

ts
export declare type WatchStopHandle = () => void

用法很简单,做一下简单了解即可:

ts
// 定义一个取消观察的变量,它是一个函数
+const unwatch = watch(message, () => {
+  // ...
+})
+
+// 在合适的时期调用它,可以取消这个侦听
+unwatch()

但是也有一点需要注意的是,如果启用了 immediate 选项 ,不能在第一次触发侦听回调时执行它。

ts
// 注意:这是一段错误的代码,运行会报错
+const unwatch = watch(
+  message,
+  // 侦听的回调
+  () => {
+    // ...
+    // 在这里调用会有问题 ❌
+    unwatch()
+  },
+  // 启用 immediate 选项
+  {
+    immediate: true,
+  }
+)

会收获一段报错,告诉 unwatch 这个变量在初始化前无法被访问:

bash
Uncaught ReferenceError: Cannot access 'unwatch' before initialization

目前有两种方案可以让实现这个操作:

方案一:使用 var 并判断变量类型,利用 var 的变量提升 来实现目的。

ts
// 这里改成 var ,不要用 const 或 let
+var unwatch = watch(
+  message,
+  // 侦听回调
+  () => {
+    // 这里加一个判断,是函数才执行它
+    if (typeof unwatch === 'function') {
+      unwatch()
+    }
+  },
+  // 侦听选项
+  {
+    immediate: true,
+  }
+)

不过 var 已经属于过时的语句了,建议用方案二的 let

方案二:使用 let 并判断变量类型。

ts
// 如果不想用 any ,可以导入 TS 类型
+import type { WatchStopHandle } from 'vue'
+
+// 这里改成 let ,但是要另起一行,先定义,再赋值
+let unwatch: WatchStopHandle
+unwatch = watch(
+  message,
+  // 侦听回调
+  () => {
+    // 这里加一个判断,是函数才执行它
+    if (typeof unwatch === 'function') {
+      unwatch()
+    }
+  },
+  // 侦听选项
+  {
+    immediate: true,
+  }
+)

侦听效果清理

侦听后的回调函数 部分提及到一个参数 onCleanup ,它可以帮注册一个清理函数。

有时 watch 的回调会执行异步操作,当 watch 到数据变更的时候,需要取消这些操作,这个函数的作用就用于此,会在以下情况调用这个清理函数:

  • watcher 即将重新运行的时候
  • watcher 被停止(组件被卸载或者被手动 停止侦听

TS 类型:

ts
declare type OnCleanup = (cleanupFn: () => void) => void

用法方面比较简单,传入一个回调函数运行即可,不过需要注意的是,需要在停止侦听之前注册好清理行为,否则不会生效。

停止侦听 里的最后一个 immediate 例子的基础上继续添加代码,请注意注册的时机:

ts
let unwatch: WatchStopHandle
+unwatch = watch(
+  message,
+  (newValue, oldValue, onCleanup) => {
+    // 需要在停止侦听之前注册好清理行为
+    onCleanup(() => {
+      console.log('侦听清理ing')
+      // 根据实际的业务情况定义一些清理操作 ...
+    })
+    // 然后再停止侦听
+    if (typeof unwatch === 'function') {
+      unwatch()
+    }
+  },
+  {
+    immediate: true,
+  }
+)

watchEffect

如果一个函数里包含了多个需要侦听的数据,一个一个数据去侦听太麻烦了,在 Vue 3 ,可以直接使用 watchEffect API 来简化的操作。

API 的 TS 类型

这个 API 的类型如下,使用的时候需要传入一个副作用函数(相当于 watch 的 侦听后的回调函数 ),也可以根据的实际情况传入一些可选的 侦听选项

和 watch API 一样,它也会返回一个用于 停止侦听 的函数。

ts
// watchEffect 部分的 TS 类型
+// ...
+export declare type WatchEffect = (onCleanup: OnCleanup) => void
+
+export declare function watchEffect(
+  effect: WatchEffect,
+  options?: WatchOptionsBase
+): WatchStopHandle
+// ...

副作用函数也会传入一个清理回调作为参数,和 watch 的 侦听效果清理 一样的用法。

可以理解为它是一个简化版的 watch ,具体简化在哪里呢?请看下面的用法示例。

用法示例

它立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数。

ts
import { defineComponent, ref, watchEffect } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 单独定义两个数据,后面用来分开改变数值
+    const name = ref<string>('Petter')
+    const age = ref<number>(18)
+
+    // 定义一个调用这两个数据的函数
+    const getUserInfo = (): void => {
+      console.log({
+        name: name.value,
+        age: age.value,
+      })
+    }
+
+    // 2s后改变第一个数据
+    setTimeout(() => {
+      name.value = 'Tom'
+    }, 2000)
+
+    // 4s后改变第二个数据
+    setTimeout(() => {
+      age.value = 20
+    }, 4000)
+
+    // 直接侦听调用函数,在每个数据产生变化的时候,它都会自动执行
+    watchEffect(getUserInfo)
+  },
+})

和 watch 的区别

虽然理论上 watchEffectwatch 的一个简化操作,可以用来代替 批量侦听 ,但它们也有一定的区别:

  1. watch 可以访问侦听状态变化前后的值,而 watchEffect 没有。

  2. watch 是在属性改变的时候才执行,而 watchEffect 则默认会执行一次,然后在属性改变的时候也会执行。

第二点的意思,看下面这段代码可以有更直观的理解:

使用 watch :

ts
export default defineComponent({
+  setup() {
+    const foo = ref<string>('')
+
+    setTimeout(() => {
+      foo.value = 'Hello World!'
+    }, 2000)
+
+    function bar() {
+      console.log(foo.value)
+    }
+
+    // 使用 watch 需要先手动执行一次
+    bar()
+
+    // 然后当 foo 有变动时,才会通过 watch 来执行 bar()
+    watch(foo, bar)
+  },
+})

使用 watchEffect :

ts
export default defineComponent({
+  setup() {
+    const foo = ref<string>('')
+
+    setTimeout(() => {
+      foo.value = 'Hello World!'
+    }, 2000)
+
+    function bar() {
+      console.log(foo.value)
+    }
+
+    // 可以通过 watchEffect 实现 bar() + watch(foo, bar) 的效果
+    watchEffect(bar)
+  },
+})

可用的侦听选项

虽然用法和 watch 类似,但也简化了一些选项,它的侦听选项 TS 类型如下:

ts
// 只支持 base 类型
+export declare interface WatchOptionsBase extends DebuggerOptions {
+  flush?: 'pre' | 'post' | 'sync'
+}
+// ...
+
+// 继承的 debugger 选项类型
+export declare interface DebuggerOptions {
+  onTrack?: (event: DebuggerEvent) => void
+  onTrigger?: (event: DebuggerEvent) => void
+}
+// ...

对比 watch API ,它不支持 deepimmediate ,请记住这一点,其他的用法是一样的。

flush 选项的使用详见 侦听选项之 flushonTrackonTrigger 详见 侦听的选项 部分内容。

watchPostEffect

watchEffect API 使用 flush: 'post' 选项时的别名,具体区别详见 侦听选项之 flush 部分。

TIP

Vue v3.2.0 及以上版本才支持该 API 。

watchSyncEffect

watchEffect API 使用 flush: 'sync' 选项时的别名,具体区别详见 侦听选项之 flush 部分。

TIP

Vue v3.2.0 及以上版本才支持该 API 。

数据的计算 ~new

和 Vue 2.0 一样,数据的计算也是使用 computed API ,它可以通过现有的响应式数据,去通过计算得到新的响应式变量,用过 Vue 2.0 的开发者应该不会太陌生,但是在 Vue 3.0 ,在使用方式上也是变化非常大!

TIP

这里的响应式数据,可以简单理解为通过 ref API 、 reactive API 定义出来的数据,当然 Vuex 、Vue Router 等 Vue 数据也都具备响应式,可以在 响应式数据的变化 了解。

用法变化

先从一个简单的用例来看看在 Vue 新旧版本的用法区别:

假设定义了两个分开的数据 firstName 名字和 lastName 姓氏,但是在 template 展示时,需要展示完整的姓名,那么就可以通过 computed 来计算一个新的数据:

回顾 Vue 2

在 Vue 2.0 ,computeddata 在同级配置,并且不可以和 data 里的数据同名重复定义:

ts
// 在 Vue 2 的写法:
+export default {
+  data() {
+    return {
+      firstName: 'Bill',
+      lastName: 'Gates',
+    }
+  },
+  // 注意这里定义的变量,都要通过函数的形式来返回它的值
+  computed: {
+    // 普通函数可以直接通过熟悉的 this 来拿到 data 里的数据
+    fullName() {
+      return \`\${this.firstName} \${this.lastName}\`
+    },
+    // 箭头函数则需要通过参数来拿到实例上的数据
+    fullName2: (vm) => \`\${vm.firstName} \${vm.lastName}\`,
+  },
+}

这样在需要用到全名的地方,只需要通过 this.fullName 就可以得到 Bill Gates

了解 Vue 3

在 Vue 3.0 ,跟其他 API 的用法一样,需要先导入 computed 才能使用:

ts
// 在 Vue 3 的写法:
+import { defineComponent, ref, computed } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 定义基本的数据
+    const firstName = ref<string>('Bill')
+    const lastName = ref<string>('Gates')
+
+    // 定义需要计算拼接结果的数据
+    const fullName = computed(() => \`\${firstName.value} \${lastName.value}\`)
+
+    // 2s 后改变某个数据的值
+    setTimeout(() => {
+      firstName.value = 'Petter'
+    }, 2000)
+
+    // template 那边在 2s 后也会显示为 Petter Gates
+    return {
+      fullName,
+    }
+  },
+})

可以把这个用法简单的理解为,传入一个回调函数,并 return 一个值,对,它需要有明确的返回值。

TIP

需要注意的是:

  1. 定义出来的 computed 变量,和 Ref 变量的用法一样,也是需要通过 .value 才能拿到它的值

  2. 但是区别在于,默认情况下 computedvalue 是只读的

原因详见下方的 类型声明

类型声明

之前说过,在 defineComponent 里,会自动帮推导 Vue API 的类型,所以一般情况下,是不需要显式的去定义 computed 出来的变量类型的。

在确实需要手动指定的情况下,也可以导入它的类型然后定义:

ts
import { computed } from 'vue'
+import type { ComputedRef } from 'vue'
+
+// 注意这里添加了类型声明
+const fullName: ComputedRef<string> = computed(
+  () => \`\${firstName.value} \${lastName.value}\`
+)

要返回一个字符串,就写 ComputedRef<string> ;返回布尔值,就写 ComputedRef<boolean> ;返回一些复杂对象信息,可以先定义好的类型,再诸如 ComputedRef<UserInfo> 去写。

ts
// 这是 ComputedRef 的类型声明:
+export declare interface ComputedRef<T = any> extends WritableComputedRef<T> {
+  readonly value: T
+  [ComoutedRefSymbol]: true
+}

优势对比和注意事项

在继续往下看之前,先来了解一下这个 API 的一些优势和注意事项(如果在 Vue 2 已经有接触过的话,可以跳过这一段,因为优势和需要注意的东西比较一致)。

优势对比

看到这里,相信刚接触的开发者可能会有疑问,既然 computed 也是通过一个函数来返回值,那么和普通的 function 有什么区别,或者说优势?

  1. 性能优势

这一点在 官网文档 其实是有提到的:

数据的计算是基于它们的响应依赖关系缓存的,只在相关响应式依赖发生改变时它们才会重新求值。

也就是说,只要原始数据没有发生改变,多次访问 computed ,都是会立即返回之前的计算结果,而不是再次执行函数;而普通的 function 调用多少次就执行多少次,每调用一次就计算一次。

至于为何要如此设计,官网文档也给出了原因:

为什么需要缓存?假设有一个性能开销比较大的计算数据 list,它需要遍历一个巨大的数组并做大量的计算。然后可能有其他的计算数据依赖于 list。如果没有缓存,将不可避免的多次执行 list 的 getter!如果不希望有缓存,请用 function 来替代。

TIP

在这部分内容里,将官方文档的一些用词做了更换,比如把 method 都替换成了 function ,也把 “计算属性” 都换成了 “计算数据”,原因在于官网很多地方是基于 Options API 的写法去描述,而本文档是基于 Composition API 。

点击了解: 如何理解 JavaScript 中方法(method)和函数(function)的区别?

  1. 书写统一

假定 foo1 是 Ref 变量, foo2 是 computed 变量, foo3 是普通函数返回值

看到这里的开发者应该都已经清楚 Vue 3 的 Ref 变量是通过 foo1.value 来拿到值的,而 computed 也是通过 foo2.value ,并且在 template 里都可以省略 .value ,在读取方面,他们是有一致的风格和简洁性。

而 foo3 不管是在 script 还是 template ,都需要通过 foo3() 才能拿到结果,相对来说会有那么一丢丢别扭。

当然,关于这一点,如果涉及到的数据不是响应式数据,那么还是老老实实的用函数返回值吧,原因请见下面的 注意事项

注意事项

有优势当然也就有一定的 “劣势” ,当然这也是 Vue 框架的有意为之,所以在使用上也需要注意一些问题:

  1. 只会更新响应式数据的计算

假设要获取当前的时间信息,因为不是响应式数据,所以这种情况下就需要用普通的函数去获取返回值,才能拿到最新的时间。

ts
const nowTime = computed(() => new Date())
+console.log(nowTime.value)
+// 输出 Sun Nov 14 2021 21:07:00 GMT+0800 (GMT+08:00)
+
+// 2s 后依然是跟上面一样的结果
+setTimeout(() => {
+  console.log(nowTime.value)
+  // 还是输出 Sun Nov 14 2021 21:07:00 GMT+0800 (GMT+08:00)
+}, 2000)
  1. 数据是只读的

通过 computed 定义的数据,它是只读的,这一点在 类型声明 已经有所了解。

如果直接赋值,不仅无法变更数据,而且会收获一个报错。

bash
TS2540: Cannot assign to 'value' because it is a read-only property.

虽然无法直接赋值,但是在必要的情况下,依然可以通过 computedsetter 来更新数据。

点击了解:computed 的 setter 用法

setter 的使用

通过 computed 定义的变量默认都是只读的形式(只有一个 getter ),但是在必要的情况下,也可以使用其 setter 属性来更新数据。

基本格式

当需要用到 setter 的时候, computed 就不再是一个传入 callback 的形式了,而是传入一个带有 2 个方法的对象。

ts
// 注意这里computed接收的入参已经不再是函数
+const foo = computed({
+  // 这里需要明确的返回一个值
+  get() {
+    // ...
+  },
+  // 这里接收一个参数,代表修改 foo 时,赋值下来的新值
+  set(newValue) {
+    // ...
+  },
+})

这里的 get 就是 computed 的 getter ,跟原来传入 callback 的形式一样,是用于 foo.value 的读取,所以这里必须有明确的返回值。

这里的 set 就是 computed 的 setter ,它会接收一个参数,代表新的值,当通过 foo.value = xxx 赋值的时候,赋入的这个值,就会通过这个入参来传递进来,可以根据的业务需要,把这个值,赋给相关的数据源。

TIP

请注意,必须使用 getset 这 2 个方法名,也只接受这 2 个方法。

在了解了基本格式后,可以查看下面的例子来了解具体的用法。

使用示范

官网的 例子 是一个 Options API 的案例,这里改成 Composition API 的写法来演示:

ts
// 还是这2个数据源
+const firstName = ref<string>('Bill')
+const lastName = ref<string>('Gates')
+
+// 这里配合setter的需要,改成了另外一种写法
+const fullName = computed({
+  // getter还是返回一个拼接起来的全名
+  get() {
+    return \`\${firstName.value} \${lastName.value}\`
+  },
+  // setter这里改成只更新firstName,注意参数也定义TS类型
+  set(newFirstName: string) {
+    firstName.value = newFirstName
+  },
+})
+console.log(fullName.value) // 输出 Bill Gates
+
+// 2s后更新一下数据
+setTimeout(() => {
+  // 对fullName的赋值,其实更新的是firstName
+  fullName.value = 'Petter'
+
+  // 此时firstName已经得到了更新
+  console.log(firstName.value) // 会输出 Petter
+
+  // 当然,由于firstName变化了,所以fullName的getter也会得到更新
+  console.log(fullName.value) // 会输出 Petter Gates
+}, 2000)

应用场景

计算 API 的作用,官网文档只举了一个非常简单的例子,那么在实际项目中,什么情况下用它会让更方便呢?

简单举几个比较常见的例子吧,加深一下对 computed 的理解。

数据的拼接和计算

如上面的案例,与其每个用到的地方都要用到 firstName + ' ' + lastName 这样的多变量拼接,不如用一个 fullName 来的简单。

当然,不止是字符串拼接,数据的求和等操作更是合适,比如说做一个购物车,购物车里有商品列表,同时还要显示购物车内的商品总金额,这种情况就非常适合用计算数据。

复用组件的动态数据

在一个项目里,很多时候组件会涉及到复用,比如说:“首页的文章列表 vs 列表页的文章列表 vs 作者详情页的文章列表” ,特别常见于新闻网站等内容资讯站点,这种情况下,往往并不需要每次都重新写 UI 、数据渲染等代码,仅仅是接口 URL 的区别。

这种情况就可以通过路由名称来动态获取要调用哪个列表接口:

ts
const route = useRoute()
+
+// 定义一个根据路由名称来获取接口URL的计算数据
+const apiUrl = computed(() => {
+  switch (route.name) {
+    // 首页
+    case 'home':
+      return '/api/list1'
+    // 列表页
+    case 'list':
+      return '/api/list2'
+    // 作者页
+    case 'author':
+      return '/api/list3'
+    // 默认是随机列表
+    default:
+      return '/api/random'
+  }
+})
+
+// 请求列表
+const getArticleList = async (): Promise<void> => {
+  // ...
+  articleList.value = await axios({
+    method: 'get',
+    url: apiUrl.value,
+    // ...
+  })
+  // ...
+}

当然,这种情况也可以在父组件通过 props 传递接口 URL ,如果已经学到了 组件通讯 一章的话。

获取多级对象的值

应该很经常的遇到要在 template 显示一些多级对象的字段,但是有时候又可能存在某些字段不一定有,需要做一些判断的情况,虽然有 v-if ,但是嵌套层级一多,模板代码会难以维护。

如果把这些工作量转移给计算数据,结合 try / catch ,这样就无需在 template 里处理很多判断了。

ts
// 例子比较极端,但在 Vuex 这种大型数据树上,也不是完全不可能存在
+const foo = computed(() => {
+  // 正常情况下返回需要的数据
+  try {
+    return store.state.foo3.foo2.foo1.foo
+  } catch (e) {
+    // 处理失败则返回一个默认值
+    return ''
+  }
+})

这样在 template 里要拿到 foo 的值,完全不需要关心中间一级又一级的字段是否存在,只需要区分是不是默认值。

不同类型的数据转换

有时候会遇到一些需求类似于,让用户在输入框里,按一定的格式填写文本,比如用英文逗号 , 隔开每个词,然后保存的时候,是用数组的格式提交给接口。

这个时候 computed 的 setter 就可以妙用了,只需要一个简单的 computed ,就可以代替 inputchange 事件或者 watch 侦听,可以减少很多业务代码的编写。

vue
<template>
+  <input
+    type="text"
+    v-model="tagsStr"
+    placeholder="请输入标签,多个标签用英文逗号隔开"
+  />
+</template>
+
+<script lang="ts">
+import { defineComponent, computed, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 这个是最终要用到的数组
+    const tags = ref<string[]>([])
+
+    // 因为input必须绑定一个字符串
+    const tagsStr = computed({
+      // 所以通过getter来转成字符串
+      get() {
+        return tags.value.join(',')
+      },
+      // 然后在用户输入的时候,切割字符串转换回数组
+      set(newValue: string) {
+        tags.value = newValue.split(',')
+      },
+    })
+
+    return {
+      tagsStr,
+    }
+  },
+})
+</script>

所以在实际业务开发中,开发者可以多考虑一下是否可以使用 computed 代替 watch ,避免过多的数组侦听带来项目性能的下降。

指令

指令是 Vue 模板语法里的特殊标记,在使用上和 HTML 的 data-* 属性十分相似,统一以 v- 开头( e.g. v-html )。

它以简单的方式实现了常用的 JavaScript 表达式功能,当表达式的值改变的时候,响应式地作用到 DOM 上。

内置指令

Vue 提供了一些内置指令可以直接使用,例如:

vue
<template>
+  <!-- 渲染一段文本 -->
+  <span v-text="msg"></span>
+
+  <!-- 渲染一段 HTML -->
+  <div v-html="html"></div>
+
+  <!-- 循环创建一个列表 -->
+  <ul v-if="items.length">
+    <li v-for="(item, index) in items" :key="index">
+      <span>{{ item }}</span>
+    </li>
+  </ul>
+
+  <!-- 一些事件( \`@\` 等价于 \`v-on\` ) -->
+  <button @click="hello">Hello</button>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const msg = ref<string>('Hello World!')
+    const html = ref<string>('<p>Hello World!</p>')
+    const items = ref<string[]>(['a', 'b', 'c', 'd'])
+
+    function hello() {
+      console.log(msg.value)
+    }
+
+    return {
+      msg,
+      html,
+      items,
+      hello,
+    }
+  },
+})
+</script>

内置指令在使用上都非常的简单,可以在官方文档的 内置指令 一章查询完整的指令列表和用法,在模板上使用时,请了解 指令的模板语法

TIP

有两个指令可以使用别名:

  • v-on 的别名是 @ ,使用 @click 等价于 v-on:click
  • v-bind 的别名是 : ,使用 :src 等价于 v-bind:src

自定义指令 ~new

如果 Vue 的内置指令不能满足业务需求,还可以开发自定义指令。

相关的 TS 类型

在开始编写代码之前,先了解一下自定义指令相关的 TypeScript 类型。

自定义指令有两种实现形式,一种是作为一个对象,其中的写法比较接近于 Vue 组件,除了 getSSRPropsdeep 选项 外,其他的每一个属性都是一个 钩子函数 ,下一小节会介绍钩子函数的内容。

ts
// 对象式写法的 TS 类型
+// ...
+export declare interface ObjectDirective<T = any, V = any> {
+  created?: DirectiveHook<T, null, V>
+  beforeMount?: DirectiveHook<T, null, V>
+  mounted?: DirectiveHook<T, null, V>
+  beforeUpdate?: DirectiveHook<T, VNode<any, T>, V>
+  updated?: DirectiveHook<T, VNode<any, T>, V>
+  beforeUnmount?: DirectiveHook<T, null, V>
+  unmounted?: DirectiveHook<T, null, V>
+  getSSRProps?: SSRDirectiveHook
+  deep?: boolean
+}
+// ...

另外一种是函数式写法,只需要定义成一个函数,但这种写法只在 mountedupdated 这两个钩子生效,并且触发一样的行为。

ts
// 函数式写法的 TS 类型
+// ...
+export declare type FunctionDirective<T = any, V = any> = DirectiveHook<
+  T,
+  any,
+  V
+>
+// ...

这是每个钩子函数对应的类型,它有 4 个入参:

ts
// 钩子函数的 TS 类型
+// ...
+export declare type DirectiveHook<
+  T = any,
+  Prev = VNode<any, T> | null,
+  V = any
+> = (
+  el: T,
+  binding: DirectiveBinding<V>,
+  vnode: VNode<any, T>,
+  prevVNode: Prev
+) => void
+// ...

钩子函数第二个参数的类型:

ts
// 钩子函数第二个参数的 TS 类型
+// ...
+export declare interface DirectiveBinding<V = any> {
+  instance: ComponentPublicInstance | null
+  value: V
+  oldValue: V | null
+  arg?: string
+  modifiers: DirectiveModifiers
+  dir: ObjectDirective<any, V>
+}
+// ...

可以看到自定义指令最核心的就是 “钩子函数” 了,接下来来了解这部分的知识点。

钩子函数

组件的生命周期 类似,自定义指令里的逻辑代码也有一些特殊的调用时机,在这里称之为钩子函数:

钩子函数调用时机
created在绑定元素的 attribute 或事件侦听器被应用之前调用
beforeMount当指令第一次绑定到元素并且在挂载父组件之前调用
mounted在绑定元素的父组件被挂载后调用
beforeUpdate在更新包含组件的 VNode 之前调用
updated在包含组件的 VNode 及其子组件的 VNode 更新后调用
beforeUnmount在卸载绑定元素的父组件之前调用
unmounted当指令与元素解除绑定且父组件已卸载时,只调用一次

TIP

因为自定义指令的默认写法是一个对象,所以在代码风格上是遵循 Options API 的生命周期命名,而非 Vue 3 的 Composition API 风格。

钩子函数在用法上就是这样子:

ts
const myDirective = {
+  created(el, binding, vnode, prevVnode) {
+    // ...
+  },
+  mounted(el, binding, vnode, prevVnode) {
+    // ...
+  },
+  // 其他钩子...
+}

相关的 TS 类型 已了解,每个钩子函数都有 4 个入参:

参数作用
el指令绑定的 DOM 元素,可以直接操作它
binding一个对象数据,见下方的单独说明
vnodeel 对应在 Vue 里的虚拟节点信息
prevVNodeUpdate 时的上一个虚拟节点信息,仅在 beforeUpdateupdated 可用

其中用的最多是 elbinding 了。

  • el 的值就是通过 document.querySelector 拿到的那个 DOM 元素。

  • binding 是一个对象,里面包含了以下属性:

属性作用
value传递给指令的值,例如 v-foo="bar" 里的 bar ,支持任意有效的 JS 表达式
oldValue指令的上一个值,仅对 beforeUpdateupdated 可用
arg传给指令的参数,例如 v-foo:bar 里的 bar
modifiers传给指令的修饰符,例如 v-foo.bar 里的 bar
instance使用指令的组件实例
dir指令定义的对象(就是上面的 const myDirective = { /* ... */ } 这个对象)

在了解了指令的写法和参数作用之后,来看看如何注册一个自定义指令。

局部注册

自定义指令可以在单个组件内定义并使用,通过和 setup 函数 同级别的 directives 选项进行定义,可以参考下面的例子和注释:

vue
<template>
+  <!-- 这个使用默认值 \`unset\` -->
+  <div v-highlight>{{ msg }}</div>
+
+  <!-- 这个使用传进去的黄色 -->
+  <div v-highlight="\`yellow\`">{{ msg }}</div>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  // 自定义指令在这里编写,和 \`setup\` 同级别
+  directives: {
+    // \`directives\` 下的每个字段名就是指令名称
+    highlight: {
+      // 钩子函数
+      mounted(el, binding) {
+        el.style.backgroundColor =
+          typeof binding.value === 'string' ? binding.value : 'unset'
+      },
+    },
+  },
+  setup() {
+    const msg = ref<string>('Hello World!')
+
+    return {
+      msg,
+    }
+  },
+})
+</script>

上面是对象式的写法,也可以写成函数式:

ts
export default defineComponent({
+  directives: {
+    highlight(el, binding) {
+      el.style.backgroundColor =
+        typeof binding.value === 'string' ? binding.value : 'unset'
+    },
+  },
+})

TIP

局部注册的自定义指令,默认在子组件内生效,子组件内无需重新注册即可使用父组件的自定义指令。

全局注册

自定义指令也可以注册成全局,这样就无需在每个组件里定义了,只要在入口文件 main.ts 里启用它,任意组件里都可以使用自定义指令。

请查看 开发本地 Vue 专属插件 一节的内容了解如何注册一个全局的自定义指令插件。

deep 选项

除了 钩子函数 ,在 相关的 TS 类型 里还可以看到有一个 deep 选项,它是一个布尔值,作用是:

如果自定义指令用于一个有嵌套属性的对象,并且需要在嵌套属性更新的时候触发 beforeUpdateupdated 钩子,那么需要将这个选项设置为 true 才能够生效。

vue
<template>
+  <div v-foo="foo"></div>
+</template>
+
+<script lang="ts">
+import { defineComponent, reactive } from 'vue'
+
+export default defineComponent({
+  directives: {
+    foo: {
+      beforeUpdate(el, binding) {
+        console.log('beforeUpdate', binding)
+      },
+      updated(el, binding) {
+        console.log('updated', binding)
+      },
+      mounted(el, binding) {
+        console.log('mounted', binding)
+      },
+      // 需要设置为 \`true\` ,如果是 \`false\` 则不会触发
+      deep: true,
+    },
+  },
+  setup() {
+    // 定义一个有嵌套属性的对象
+    const foo = reactive({
+      bar: {
+        baz: 1,
+      },
+    })
+
+    // 2s 后修改其中一个值,会触发 \`beforeUpdate\` 和 \`updated\`
+    setTimeout(() => {
+      foo.bar.baz = 2
+      console.log(foo)
+    }, 2000)
+
+    return {
+      foo,
+    }
+  },
+})
+</script>

插槽

Vue 在使用子组件的时候,子组件在 template 里类似一个 HTML 标签,可以在这个子组件标签里传入任意模板代码以及 HTML 代码,这个功能就叫做 “插槽” 。

默认插槽

默认情况下,子组件使用 <slot /> 标签即可渲染父组件传下来的插槽内容,例如:

在父组件这边:

vue
<template>
+  <Child>
+    <!-- 注意这里,子组件标签里面传入了 HTML 代码 -->
+    <p>这是插槽内容</p>
+  </Child>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+import Child from '@cp/Child.vue'
+
+export default defineComponent({
+  components: {
+    Child,
+  },
+})
+</script>

在子组件这边:

vue
<template>
+  <slot />
+</template>

默认插槽非常简单,一个 <slot /> 就可以了。

具名插槽

有时候可能需要指定多个插槽,例如一个子组件里有 “标题” 、 “作者”、 “内容” 等预留区域可以显示对应的内容,这时候就需要用到具名插槽来指定不同的插槽位。

子组件通过 name 属性来指定插槽名称:

vue
<template>
+  <!-- 显示标题的插槽内容 -->
+  <div class="title">
+    <slot name="title" />
+  </div>
+
+  <!-- 显示作者的插槽内容 -->
+  <div class="author">
+    <slot name="author" />
+  </div>
+
+  <!-- 其他插槽内容放到这里 -->
+  <div class="content">
+    <slot />
+  </div>
+</template>

父组件通过 template 标签绑定 v-slot:name 格式的属性,来指定传入哪个插槽里:

vue
<template>
+  <Child>
+    <!-- 传给标题插槽 -->
+    <template v-slot:title>
+      <h1>这是标题</h1>
+    </template>
+
+    <!-- 传给作者插槽 -->
+    <template v-slot:author>
+      <h1>这是作者信息</h1>
+    </template>
+
+    <!-- 传给默认插槽 -->
+    <p>这是插槽内容</p>
+  </Child>
+</template>

v-slot:name 有一个别名 #name 语法,上面父组件的代码也相当于:

vue
<template>
+  <Child>
+    <!-- 传给标题插槽 -->
+    <template #title>
+      <h1>这是标题</h1>
+    </template>
+
+    <!-- 传给作者插槽 -->
+    <template #author>
+      <h1>这是作者信息</h1>
+    </template>
+
+    <!-- 传给默认插槽 -->
+    <p>这是插槽内容</p>
+  </Child>
+</template>

TIP

在使用具名插槽的时候,子组件如果不指定默认插槽,那么在具名插槽之外的内容将不会被渲染。

默认内容

可以给 slot 标签添加内容,例如 <slot>默认内容</slot> ,当父组件没有传入插槽内容时,会使用默认内容来显示,默认插槽和具名插槽均支持该功能。

注意事项

有一条规则需要记住:

  • 父组件里的所有内容都是在父级作用域中编译的
  • 子组件里的所有内容都是在子作用域中编译的

CSS 样式与预处理器

Vue 组件的 CSS 样式部分,Vue 3 保留着和 Vue 2 完全一样的写法。

编写组件样式表

最基础的写法,就是在 .vue 文件里添加一个 <style /> 标签,即可在里面写 CSS 代码了。

vue
<template>
+  <div>
+    <!-- HTML 代码 -->
+  </div>
+</template>
+
+<script lang="ts">
+  // TypeScript 代码
+</script>
+
+<style>
+/* CSS 代码 */
+.msg {
+  width: 100%;
+}
+.msg p {
+  color: #333;
+  font-size: 14px;
+}
+</style>

动态绑定 CSS

动态绑定 CSS ,在 Vue 2 就已经存在了,在此之前常用的是 :class:style ,现在在 Vue 3 ,还可以通过 v-bind 来动态修改了。

使用 :class 动态修改样式名

它是绑定在 DOM 元素上面的一个属性,跟 class="class-name" 这样的属性同级别,它非常灵活!

TIP

使用 :class 是用来动态修改样式名,也就意味着必须提前把样式名对应的样式表先写好!

假设已经提前定义好了这几个变量:

vue
<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const activeClass = 'active-class'
+    const activeClass1 = 'active-class1'
+    const activeClass2 = 'active-class2'
+    const isActive = true
+
+    return {
+      activeClass,
+      activeClass1,
+      activeClass2,
+      isActive,
+    }
+  },
+})
+</script>

如果只想绑定一个单独的动态样式,可以传入一个字符串:

vue
<template>
+  <p :class="activeClass">Hello World!</p>
+</template>

如果有多个动态样式,也可以传入一个数组:

vue
<template>
+  <p :class="[activeClass1, activeClass2]">Hello World!</p>
+</template>

还可以对动态样式做一些判断,这个时候传入一个对象:

vue
<template>
+  <p :class="{ 'active-class': isActive }">Hello World!</p>
+</template>

多个判断的情况下,记得也用数组套起来:

vue
<template>
+  <p :class="[{ activeClass1: isActive }, { activeClass2: !isActive }]">
+    Hello World!
+  </p>
+</template>

那么什么情况下会用到 :class 呢?

最常见的场景,应该就是导航、选项卡了,比如要给一个当前选中的选项卡做一个突出高亮的状态,那么就可以使用 :class 来动态绑定一个样式。

vue
<template>
+  <ul class="list">
+    <li
+      class="item"
+      :class="{ cur: index === curIndex }"
+      v-for="(item, index) in 5"
+      :key="index"
+      @click="curIndex = index"
+    >
+      {{ item }}
+    </li>
+  </ul>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const curIndex = ref<number>(0)
+
+    return {
+      curIndex,
+    }
+  },
+})
+</script>
+
+<style scoped>
+.cur {
+  color: red;
+}
+</style>

这样就简单实现了一个点击切换选项卡高亮的功能。

使用 :style 动态修改内联样式

如果觉得使用 :class 需要提前先写样式,再去绑定样式名有点繁琐,有时候只想简简单单的修改几个样式,那么可以通过 :style 来处理。

默认的情况下,都是传入一个对象去绑定:

  • key 是符合 CSS 属性名的 “小驼峰式” 写法,或者套上引号的短横线分隔写法(原写法),例如在 CSS 里,定义字号是 font-size ,那么需要写成 fontSize 或者 'font-size' 作为它的键。

  • value 是 CSS 属性对应的 “合法值”,比如要修改字号大小,可以传入 13px0.4rem 这种带合法单位字符串值,但不可以是 13 这样的缺少单位的值,无效的 CSS 值会被过滤不渲染。

vue
<template>
+  <p
+    :style="{
+      fontSize: '13px',
+      'line-height': 2,
+      color: '#ff0000',
+      textAlign: 'center',
+    }"
+  >
+    Hello World!
+  </p>
+</template>

如果有些特殊场景需要绑定多套 style,需要在 script 先定义好各自的样式变量(也是符合上面说到的那几个要求的对象),然后通过数组来传入:

vue
<template>
+  <p :style="[style1, style2]">Hello World!</p>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const style1 = {
+      fontSize: '13px',
+      'line-height': 2,
+    }
+    const style2 = {
+      color: '#ff0000',
+      textAlign: 'center',
+    }
+
+    return {
+      style1,
+      style2,
+    }
+  },
+})
+</script>

使用 v-bind 动态修改 style ~new

当然,以上两种形式都是关于 <script /><template /> 部分的操作,如果觉得会给模板带来一定的维护成本的话,不妨考虑这个新方案,将变量绑定到 <style /> 部分去。

TIP

请注意这是一个在 3.2.0 版本之后才被归入正式队列的新功能!如果需要使用它,请确保的 vue 的版本号在 3.2.0 以上,最好是保持最新版本。

先来看看基本的用法:

vue
<template>
+  <p class="msg">Hello World!</p>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const fontColor = ref<string>('#ff0000')
+
+    return {
+      fontColor,
+    }
+  },
+})
+</script>
+
+<style scoped>
+.msg {
+  color: v-bind(fontColor);
+}
+</style>

如上面的代码,将渲染出一句红色文本的 Hello World!

这其实是利用了现代浏览器支持的 CSS 变量来实现的一个功能(所以如果打算用它的话,需要提前注意一下兼容性噢,点击查看:CSS Variables 兼容情况 )。

它渲染到 DOM 上,其实也是通过绑定 style 来实现,可以看到渲染出来的样式是:

html
<p class="msg" data-v-7eb2bc79="" style="--7eb2bc79-fontColor:#ff0000;">
+  Hello World!
+</p>

对应的 CSS 变成了:

css
.msg[data-v-7eb2bc79] {
+  color: var(--7eb2bc79-fontColor);
+}

理论上 v-bind 函数可以在 Vue 内部支持任意的 JavaScript 表达式,但由于可能包含在 CSS 标识符中无效的字符,因此官方是建议在大多数情况下,用引号括起来,如:

css
.text {
+  font-size: v-bind('theme.font.size');
+}

由于 CSS 变量的特性,因此对 CSS 响应式属性的更改不会触发模板的重新渲染(这也是和 :class:style 的最大不同)。

TIP

不管有没有开启 <style scoped> ,使用 v-bind 渲染出来的 CSS 变量,都会带上 scoped 的随机 hash 前缀,避免样式污染(永远不会意外泄漏到子组件中),所以请放心使用!

如果对 CSS 变量的使用还不是很了解的话,可以先阅读一下相关的基础知识点。

相关阅读:使用 CSS 自定义属性(变量) - MDN

样式表的组件作用域

CSS 不像 JS ,是没有作用域的概念的,一旦写了某个样式,直接就是全局污染。所以 BEM 命名法 等规范才应运而生。

但在 Vue 组件里,有两种方案可以避免出现这种污染问题:一个是 Vue 2 就有的 <style scoped> ,一个是 Vue 3 新推出的 <style module>

Style Scoped

Vue 组件在设计的时候,就想到了一个很优秀的解决方案,通过 scoped 来支持创建一个 CSS 作用域,使这部分代码只运行在这个组件渲染出来的虚拟 DOM 上。

使用方式很简单,只需要在 <style /> 上添加 scoped 属性:

vue
<!-- 注意这里多了一个 \`scoped\` -->
+<style scoped>
+.msg {
+  width: 100%;
+}
+.msg p {
+  color: #333;
+  font-size: 14px;
+}
+</style>

编译后,虚拟 DOM 都会带有一个 data-v-xxxxx 这样的属性,其中 xxxxx 是一个随机生成的 Hash ,同一个组件的 Hash 是相同并且唯一的:

html
<div class="msg" data-v-7eb2bc79>
+  <p data-v-7eb2bc79>Hello World!</p>
+</div>

而 CSS 则也会带上与 HTML 相同的属性,从而达到样式作用域的目的。

css
.msg[data-v-7eb2bc79] {
+  width: 100%;
+}
+.msg p[data-v-7eb2bc79] {
+  color: #333;
+  font-size: 14px;
+}

使用 scoped 可以有效的避免全局样式污染,可以在不同的组件里面都使用相同的 className,而不必担心会相互覆盖,不必再定义很长很长的样式名来防止冲突了。

TIP

添加 scoped 生成的样式,只作用于当前组件中的元素,并且权重高于全局 CSS ,可以覆盖全局样式

Style Module ~new

这是在 Vue 3 才推出的一个新方案,和 <style scoped> 不同,scoped 是通过给 DOM 元素添加自定义属性的方式来避免冲突,而 <style module> 则更为激进,将会编译成 CSS Modules

对于 CSS Modules 的处理方式,也可以通过一个小例子来更直观的了解它:

css
/* 案例来自阮一峰老师的博文《CSS Modules 用法教程》 */
+/* https://www.ruanyifeng.com/blog/2016/06/css_modules.html */
+
+/* 编译前 */
+.title {
+  color: red;
+}
+
+/* 编译后 */
+._3zyde4l1yATCOkgn-DBWEL {
+  color: red;
+}

可以看出,是通过比较 “暴力” 的方式,把编写的 “好看的” 样式名,直接改写成一个随机 Hash 样式名,来避免样式互相污染。

所以回到 Vue 这边,看看 <style module> 是怎么操作的。

vue
<template>
+  <p :class="$style.msg">Hello World!</p>
+</template>
+
+<style module>
+.msg {
+  color: #ff0000;
+}
+</style>

于是,将渲染出一句红色文本的 Hello World!

TIP

  1. 使用这个方案,需要了解如何 使用 :class 动态修改样式名

  2. 如果单纯只使用 <style module> ,那么在绑定样式的时候,是默认使用 $style 对象来操作的

  3. 必须显示的指定绑定到某个样式,比如 $style.msg ,才能生效

  4. 如果单纯的绑定 $style ,并不能得到 “把全部样式名直接绑定” 的期望结果

  5. 如果指定的 className 是短横杆命名,比如 .user-name ,那么需要通过 $style['user-name'] 去绑定

也可以给 module 进行命名,然后就可以通过命名的 “变量名” 来操作:

vue
<template>
+  <p :class="classes.msg">Hello World!</p>
+</template>
+
+<style module="classes">
+.msg {
+  color: #ff0000;
+}
+</style>

TIP

需要注意的一点是,一旦开启 <style module> ,那么在 <style module> 里所编写的样式都必须手动绑定才能生效,没有被绑定的样式虽然也会被编译,但不会主动生效到 DOM 上。

原因是编译出来的样式名已经变化,而原来的 DOM 未指定对应的样式名,或者指定的是编译前的命名,所以并不能匹配到正确的样式。

useCssModule ~new

这是一个全新的 API ,面向在 script 部分操作 CSS Modules 。

在上面的 CSS Modules 部分可以知道,可以在 style 定义好样式,然后在 template 部分通过变量名来绑定样式。

那么如果有一天有个需求,需要通过 v-html 来渲染 HTML 代码,那这里的样式岂不是凉凉了?当然不会!

Vue 3 提供了一个 Composition API useCssModule 来帮助在 setup 函数里操作的 CSS Modules (对,只能在 setup 或者 script setup 里使用)。

基本用法:

绑定多几个样式,再来操作:

vue
<template>
+  <p :class="$style.msg">
+    <span :class="$style.text">Hello World!</span>
+  </p>
+</template>
+
+<script lang="ts">
+import { defineComponent, useCssModule } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const style = useCssModule()
+    console.log(style)
+  },
+})
+</script>
+
+<style module>
+.msg {
+  color: #ff0000;
+}
+.text {
+  font-size: 14px;
+}
+</style>

可以看到打印出来的 style 是一个对象:

  • key 是在 <style modules> 里定义的原始样式名

  • value 则是编译后的新样式名

js
{
+  msg: 'home_msg_37Xmr',
+  text: 'home_text_2woQJ'
+}

所以来配合 模板字符串 的使用,看看刚刚说的,要通过 v-html 渲染出来的内容应该如何绑定样式:

vue
<template>
+  <div v-html="content"></div>
+</template>
+
+<script lang="ts">
+import { defineComponent, useCssModule } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取样式
+    const style = useCssModule()
+
+    // 编写模板内容
+    const content = \`<p class="\${style.msg}">
+      <span class="\${style.text}">Hello World! —— from v-html</span>
+    </p>\`
+
+    return {
+      content,
+    }
+  },
+})
+</script>
+
+<style module>
+.msg {
+  color: #ff0000;
+}
+.text {
+  font-size: 14px;
+}
+</style>

是不是也非常简单?可能刚开始不太习惯,但写多几次其实也蛮好玩的这个功能!

另外,需要注意的是,如果是指定了 modules 的名称,那么必须传入对应的名称作为入参才可以正确拿到这些样式:

比如指定了一个 classes 作为名称:

vue
<style module="classes">
+/* ... */
+</style>

那么需要通过传入 classes 这个名称才能拿到样式,否则会是一个空对象:

ts
const style = useCssModule('classes')

TIP

const style = useCssModule() 的时候,命名是随意的,跟在 <style module="classes"> 这里指定的命名没有关系。

深度操作符 ~new

样式表的组件作用域 部分了解到,使用 scoped 后,父组件的样式将不会渗透到子组件中,但也不能直接修改子组件的样式。

如果确实需要进行修改子组件的样式,必须通过 ::v-deep(完整写法) 或者 :deep(快捷写法) 操作符来实现。

TIP

  1. 旧版的深度操作符是 >>>/deep/::v-deep,现在 >>>/deep/ 已进入弃用阶段(虽然暂时还没完全移除)

  2. 同时需要注意的是,旧版 ::v-deep 的写法是作为组合器的方式,写在样式或者元素前面,如:::v-deep .class-name { /* ... */ },现在这种写法也废弃了。

现在不论是 ::v-deep 还是 :deep ,使用方法非常统一,来假设 .b 是子组件的样式名:

vue
<style scoped>
+.a :deep(.b) {
+  /* ... */
+}
+</style>

编译后:

css
.a[data-v-f3f3eg9] .b {
+  /* ... */
+}

TIP

可以看到,新的 deep 写法是作为一个类似 JS “函数” 那样去使用,需要深度操作的样式或者元素名,作为 “入参” 去传入。

同理,如果使用 Less 或者 Stylus 这种支持嵌套写法的预处理器,也是可以这样去深度操作的:

less
.a {
+  :deep(.b) {
+    /* ... */
+  }
+}

另外,除了操作子组件的样式,那些通过 v-html 创建的 DOM 内容,也不受作用域内的样式影响,也可以通过深度操作符来实现样式修改。

使用 CSS 预处理器

在工程化的现在,可以说前端都几乎不写 CSS 了,都是通过 sasslessstylus 等 CSS 预处理器来完成样式的编写。

为什么要用 CSS 预处理器?放一篇关于三大预处理器的点评,新开发者可以做个简单了解,具体的用法在对应的官网上有非常详细的说明。

可以查看了解:浅谈 CSS 预处理器,Sass、Less 和 Stylus

在 Vue 组件里使用预处理器非常简单,像 Vite 已内置了对预处理器文件的支持(可处理 .less.scss 之类的预处理器扩展名文件),因此只需要安装对应的依赖到项目里。

这里以 Less 为例,先安装该预处理器:

bash
# 因为是在开发阶段使用,所以添加到 \`devDependencies\`
+npm i -D less

接下来在 Vue 组件里,只需要在 <style /> 标签上,通过 lang="less" 属性指定使用哪个预处理器,即可直接编写对应的代码:

vue
<style lang="less" scoped>
+// 定义颜色变量
+@color-black: #333;
+@color-red: #ff0000;
+
+// 父级标签
+.msg {
+  width: 100%;
+  // 其子标签可以使用嵌套写法
+  p {
+    color: @color-black;
+    font-size: 14px;
+    // 支持多级嵌套
+    span {
+      color: @color-red;
+    }
+  }
+}
+</style>

编译后的 css 代码:

css
.msg {
+  width: 100%;
+}
+.msg p {
+  color: #333333;
+  font-size: 14px;
+}
+.msg p span {
+  color: #ff0000;
+}

预处理器也支持 scoped,用法请查阅 样式表的组件作用域 部分。

`,729);function C(i,A,d,u,g,h){const l=n("ReadingTips"),p=n("GitalkComment"),o=n("ClientOnly");return t(),c("div",null,[F,s(l),D,s(o,null,{default:r(()=>[s(p,{issueId:46})]),_:1})])}const E=e(y,[["render",C]]);export{m as __pageData,E as default}; diff --git a/assets/efficient.md.a41d0892.js b/assets/efficient.md.a41d0892.js new file mode 100644 index 00000000..cac3dc46 --- /dev/null +++ b/assets/efficient.md.a41d0892.js @@ -0,0 +1,552 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as p,v as o,b as e,t as s,O as t,R as c,M as n}from"./chunks/framework.0d8bea05.js";const g=JSON.parse('{"title":"高效开发","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"efficient.md","filePath":"efficient.md"}'),r={name:"efficient.md"},y=c(`

高效开发

可能很多开发者(包括笔者)刚上手 Vue 3 的那段时间,都会觉得开发过程似乎变得更繁琐了, Vue 官方团队当然不会无视群众的呼声,如果基于脚手架和 .vue 文件开发,那么可以享受到更高效率的开发体验。

在阅读这一章之前,需要对 Vue 3 的单组件开发有一定的了解,如果还处于完全没有接触过的阶段,请先抽点时间阅读 单组件的编写 一章。

TIP

要体验以下新特性,请确保项目下 package.json 里的 vue 版本在 3.2.0 以上,最好同步 npm 上当前最新的 @latest 版本,否则可能出现 API 未定义等问题。

script-setup ~new

script-setup 是 Vue 3 组件的一个语法糖,旨在帮助开发者降低 setup 函数需要 return 的心智负担。

Vue 的 3.1.2 版本是针对 script-setup 的一个分水岭版本,自 3.1.4 开始 script-setup 进入定稿状态,部分旧的 API 已被舍弃,本章节内容将以最新的 API 为准进行整理说明,如果需要查阅旧版 API 的使用,请参阅笔者的 这篇开荒博文

script-setup 方案已在 Vue 3.2.0-beta.1 版本中脱离实验状态,正式进入 Vue 3 的队伍,此后所有的新版本均可以作为一个官方标准的开发方案使用。

新特性的产生背景

在了解 script-setup 怎么用之前,可以先了解一下推出该语法糖的一些开发背景,通过对比开发体验上的异同点,了解为什么会有这个新模式。

在 Vue 3 的组件标准写法里,如果数据和方法需要在 <template /> 里使用,都需要在 <script /> 的 setup 函数里 return 出来。

如果使用的是 TypeScript ,还需要借助 defineComponent 对 API 类型进行自动推导。

vue
<!-- 标准组件格式 -->
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // ...
+
+    return {
+      // ...
+    }
+  },
+})
+</script>

关于标准 setup 和 defineComponent 的说明和用法,可以查阅 全新的 setup 函数 一节。

script-setup 的推出是为了让熟悉 Vue 3 的开发者可以更高效率地开发组件,减少编码过程中的心智负担,只需要给 <script /> 标签添加一个 setup 属性,那么整个 <script /> 就直接会变成 setup 函数,所有顶级变量、函数,均会自动暴露给模板使用(无需再一个个 return 了)。

Vue 会通过单组件编译器,在编译的时候将其处理回标准组件,所以目前这个方案只适合用 .vue 文件写的工程化项目。

vue
<!-- 使用 script-setup 格式 -->
+<script setup lang="ts">
+// ...
+</script>

对,就是这样,代码量瞬间大幅度减少!

因为 script-setup 的大部分功能在书写上和标准版是一致的,因此下面的内容只提及有差异的写法。

全局编译器宏

在 script-setup 模式下,新增了 4 个全局编译器宏,他们无需 import 就可以直接使用。

但是默认的情况下直接使用,如果项目开启了 ESLint ,可能会提示 API 没有导入,但导入 API 后,控制台的 Vue 编译助手又会提示不需要导入,就很尴尬… 不过不用着急!可以通过配置 Lint 规则解决这个问题!

将这几个编译助手写进全局规则里,这样不导入也不会报错了。

js
// 项目根目录下的 .eslintrc.js
+module.exports = {
+  // ...
+  // 在原来的 Lint 规则后面,补充下面的 \`globals\` 选项
+  globals: {
+    defineProps: 'readonly',
+    defineEmits: 'readonly',
+    defineExpose: 'readonly',
+    withDefaults: 'readonly',
+  },
+}

关于几个宏的说明都在下面的文档部分有说明,也可以从这里导航过去直接查看。

说明
defineProps点击查看
defineEmits点击查看
defineExpose点击查看
withDefaults点击查看

下面继续了解 script-setup 的变化。

template 操作简化

如果使用 JSX / TSX 写法,这一点没有太大影响,但对于习惯使用 <template /> 的开发者来说,这是一个非常爽的体验。

主要体现在这两点:

  1. 变量无需进行 return
  2. 子组件无需手动注册

变量无需进行 return

标准组件模式下,变量和方法都需要在 setup 函数里 return 出去,才可以在 <template /> 部分拿到。

vue
<!-- 标准组件格式 -->
+<template>
+  <p>{{ msg }}</p>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const msg = 'Hello World!'
+
+    // 要给 \`<template />\` 用的数据需要 \`return\` 出去才可以
+    return {
+      msg,
+    }
+  },
+})
+</script>

在 script-setup 模式下,定义了就可以直接使用。

vue
<!-- 使用 script-setup 格式 -->
+<template>
+  <p>{{ msg }}</p>
+</template>
+
+<script setup lang="ts">
+const msg = 'Hello World!'
+</script>

子组件无需手动注册

子组件的挂载,在标准组件里的写法是需要 import 后再放到 components 里才能够启用:

vue
<!-- 标准组件格式 -->
+<template>
+  <Child />
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+// 导入子组件
+import Child from '@cp/Child.vue'
+
+export default defineComponent({
+  // 需要启用子组件作为模板
+  components: {
+    Child,
+  },
+
+  // 组件里的业务代码
+  setup() {
+    // ...
+  },
+})
+</script>

在 script-setup 模式下,只需要导入组件即可,编译器会自动识别并启用。

vue
<!-- 使用 script-setup 格式 -->
+<template>
+  <Child />
+</template>
+
+<script setup lang="ts">
+import Child from '@cp/Child.vue'
+</script>

props 的接收方式变化

由于整个 script 都变成了一个大的 setup 函数,没有了组件选项,也没有了 setup 的入参,所以没办法和标准写法一样去接收 props 了。

这里需要使用一个全新的 API :defineProps 。

defineProps 是一个方法,内部返回一个对象,也就是挂载到这个组件上的所有 props ,它和普通的 props 用法一样,如果不指定为 props ,则传下来的属性会被放到 attrs 那边去。

TIP

前置知识点:接收 props - 组件之间的通信

defineProps 的基础用法

如果只是单纯在 <template /> 里使用,那么这么简单定义就可以了:

ts
defineProps(['name', 'userInfo', 'tags'])

使用 string[] 数组作为入参,把 prop 的名称作为数组的 item 传给 defineProps 就可以了。

如果 <script /> 里的方法要拿到 props 的值,也可以使用字面量定义:

ts
const props = defineProps(['name', 'userInfo', 'tags'])
+console.log(props.name)

但作为 Vue 的老玩家,都清楚不显性的指定 props 的类型很容易在协作中引起程序报错,那么应该如何对每个 prop 进行类型检查呢?

有两种方式来处理类型定义:

  1. 通过构造函数检查 prop
  2. 使用类型注解检查 prop

通过构造函数检查 prop

这是第一种方式:使用 JavaScript 原生构造函数进行类型规定,也就是跟平时定义 prop 类型时一样, Vue 会通过 instanceof 来进行 类型检查

使用这种方法,需要通过一个 “对象” 入参来传递给 defineProps ,比如:

ts
defineProps({
+  name: String,
+  userInfo: Object,
+  tags: Array,
+})

所有原来 props 具备的校验机制,都可以适用,比如除了要限制类型外,还想指定 name 是可选,并且带有一个默认值:

ts
defineProps({
+  name: {
+    type: String,
+    required: false,
+    default: 'Petter',
+  },
+  userInfo: Object,
+  tags: Array,
+})

更多的 props 校验机制,可以点击 带有类型限制的 props可选以及带有默认值的 props 了解更多。

使用类型注解检查 prop

这是第二种方式:使用 TypeScript 的类型注解,和 ref 等 API 的用法一样,defineProps 也是可以使用尖括号 <> 来包裹类型定义,紧跟在 API 后面。

另外,由于 defineProps 返回的是一个对象(因为 props 本身是一个对象),所以尖括号里面的类型还要用大括号包裹,通过 key: value 的键值对形式表示,如:

ts
defineProps<{ name: string }>()

注意到了吗?这里使用的类型,和第一种方法提到的指定类型是不一样的。这里不再使用构造函数校验,而是需要遵循使用 TypeScript 的类型,比如字符串是 string,而不是 String

如果有多个 prop ,就跟写 interface 一样:

ts
defineProps<{
+  name: string
+  phoneNumber: number
+  userInfo: object
+  tags: string[]
+}>()

其中,举例里的 userInfo 是一个对象,可以简单的指定为 object,也可以先定义好它对应的类型,再进行指定:

ts
interface UserInfo {
+  id: number
+  age: number
+}
+
+defineProps<{
+  name: string
+  userInfo: UserInfo
+}>()

如果想对某个数据设置为可选,也是遵循 TS 规范,通过英文问号 ? 来允许可选:

ts
// name 是可选
+defineProps<{
+  name?: string
+  tags: string[]
+}>()

如果想设置可选参数的默认值,需要借助 withDefaults API。

WARNING

需要强调的一点是:在 构造函数类型注解 这两种校验方式只能二选一,不能同时使用,否则会引起程序报错。

withDefaults 的基础用法

这个新的 withDefaults API 可以让在使用 TS 类型系统时,也可以指定 props 的默认值。

它接收两个入参:

参数含义
props通过 defineProps 传入的 props
defaultValues根据 props 的 key 传入默认值

光看描述可能不容易理解,看看下面这段演示代码会更直观:

ts
withDefaults(
+  // 这是第一个参数,声明 props
+  defineProps<{
+    size?: number
+    labels?: string[]
+  }>(),
+  // 这是第二个参数,设置默认值
+  {
+    size: 3,
+    labels: () => ['default label'],
+  }
+)

也可以通过字面量获取 props :

ts
// 上面的写法可能比较复杂,存在阅读成本
+// 也可以跟平时一样先通过 interface 声明其类型
+interface Props {
+  size?: number
+  labels?: string[]
+}
+
+// 再作为 \`defineProps\` 的类型传入
+// 代码风格上会简洁很多
+const props = withDefaults(defineProps<Props>(), {
+  size: 3,
+  labels: () => ['default label'],
+})
+
+// 这样就可以通过 \`props\` 变量拿到需要的值
+console.log(props.size)

emits 的接收方式变化

和 props 一样,emits 的接收也是需要使用一个全新的 API 来操作,这个 API 就是 defineEmits 。

和 defineProps 一样, defineEmits 也是一个方法,它接受的入参格式和标准组件的要求是一致的。

TIP

前置知识点:接收 emits - 组件之间的通信

defineEmits 的基础用法

需要通过字面量来定义 emits ,最基础的用法也是传递一个 string[] 数组进来,把每个 emit 的名称作为数组的 item 。

ts
// 获取 emit
+const emit = defineEmits(['update-name'])
+
+// 调用 emit
+emit('update-name', 'Tom')

由于 defineEmits 的用法和原来的 emits 选项差别不大,这里也不重复说明更多的诸如校验之类的用法了,可以查看 接收 emits 一节了解更多。

attrs 的接收方式变化

attrs 和 props 很相似,也是基于父子通信的数据,如果父组件绑定下来的数据没有被指定为 props ,那么就会被 attrs 接收。

在标准组件里, attrs 的数据是通过 setup 的第二个入参 context 里的 attrs API 获取的。

ts
// 标准组件的写法
+export default defineComponent({
+  setup(props, { attrs }) {
+    // attrs 是个对象,每个 Attribute 都是它的 key
+    console.log(attrs.class)
+
+    // 如果传下来的 Attribute 带有短横线,需要通过这种方式获取
+    console.log(attrs['data-hash'])
+  },
+})

但和 props 一样,由于没有了 context 参数,需要使用一个新的 API 来拿到 attrs 数据,这个 API 就是 useAttrs 。

useAttrs 的基础用法

顾名思义, useAttrs 可以是用来获取 attrs 数据的,它的用法非常简单:

ts
import { useAttrs } from 'vue'
+
+// 获取 attrs
+const attrs = useAttrs()
+
+// attrs 是个对象,和 props 一样,需要通过 \`key\` 来得到对应的单个 attr
+console.log(attrs.msg)

对 attrs 不太了解的话,可以查阅 获取非 Prop 的 Attribute

slots 的接收方式变化

slots 是 Vue 组件的插槽数据,也是在父子通信里的一个重要成员。

对于使用 <template /> 的开发者来说,在 script-setup 里获取插槽数据并不困难,因为跟标准组件的写法是完全一样的,可以直接在 <template /> 里使用 <slot /> 标签渲染。

vue
<template>
+  <div>
+    <!-- 插槽数据 -->
+    <slot />
+    <!-- 插槽数据 -->
+  </div>
+</template>

但对使用 JSX / TSX 的开发者来说,就影响比较大了,在标准组件里,想在 script 里获取插槽数据,也是需要在 setup 的第二个入参里拿到 slots API 。

ts
// 标准组件的写法
+export default defineComponent({
+  // 这里的 slots 就是插槽
+  setup(props, { slots }) {
+    // ...
+  },
+})

新版本的 Vue 也提供了一个全新的 useSlots API 来帮助 script-setup 用户获取插槽。

useSlots 的基础用法

先来看看父组件,父组件先为子组件传入插槽数据,支持 “默认插槽” 和 “命名插槽” :

vue
<template>
+  <!-- 子组件 -->
+  <ChildTSX>
+    <!-- 默认插槽 -->
+    <p>Default slot for TSX.</p>
+    <!-- 默认插槽 -->
+
+    <!-- 命名插槽 -->
+    <template #msg>
+      <p>Named slot for TSX.</p>
+    </template>
+    <!-- 命名插槽 -->
+  </ChildTSX>
+  <!-- 子组件 -->
+</template>
+
+<script setup lang="ts">
+// 实际上是导入 ChildTSX.tsx 文件,扩展名默认可以省略
+import ChildTSX from '@cp/ChildTSX'
+</script>

在使用 JSX / TSX 编写的子组件里,就可以通过 useSlots 来获取父组件传进来的 slots 数据进行渲染:

tsx
// src/components/ChildTSX.tsx
+import { defineComponent, useSlots } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取插槽数据
+    const slots = useSlots()
+
+    // 渲染组件
+    return () => (
+      <div>
+        {/* 渲染默认插槽 */}
+        <p>{slots.default ? slots.default() : ''}</p>
+
+        {/* 渲染命名插槽 */}
+        <p>{slots.msg ? slots.msg() : ''}</p>
+      </div>
+    )
+  },
+})

请注意,这里的 TSX 组件代码需要使用 .tsx 作为文件扩展名,并且构建工具可能默认没有对 JSX / TSX 作支持,以 Vite 为例,需要安装官方提供的 JSX / TSX 支持插件才可以正常使用。

bash
# 该插件支持使用 JSX 或 TSX 作为 Vue 组件
+npm i -D @vitejs/plugin-vue-jsx

并在 vite.config.ts 里启用插件,添加对 JSX 和 TSX 的支持。

ts
// vite.config.ts
+import { defineConfig } from 'vite'
+import vueJsx from '@vitejs/plugin-vue-jsx'
+
+export default defineConfig({
+  // ...
+  plugins: [
+    // ...
+    // 启用插件
+    vueJsx(),
+  ],
+})

如果还存在报错的情况,可以检查项目下的 tsconfig.json 文件里,编译选项 jsx 是否设置为 preserve

json
{
+  "compilerOptions": {
+    "jsx": "preserve"
+  }
+}

ref 的通信方式变化

在标准组件写法里,子组件的数据和方法可以通过在 setup 里 return 出来给父组件调用,也就是父组件可以通过 childComponent.value.foo 这样的方式直接操作子组件的数据(参见:DOM 元素与子组件 - 响应式 API 之 ref)。

但在 script-setup 模式下,所有数据只是默认隐式 return 给 <template /> 使用,不会暴露到组件外,所以父组件是无法直接通过挂载 ref 变量获取子组件的数据。

在 script-setup 模式下,如果要调用子组件的数据,需要先在子组件显式的暴露出来,才能够正确的拿到,这个操作,就是由 defineExpose API 来完成。

defineExpose 的基础用法

defineExpose 的用法非常简单,它本身是一个函数,可以接受一个对象参数。

在子组件里,像这样把需要暴露出去的数据通过 key: value 的形式作为入参(下面的例子是用到了 ES6 的 属性的简洁表示法 ):

vue
<script setup lang="ts">
+const msg = 'Hello World!'
+
+// 通过该 API 显式暴露的数据,才可以在父组件拿到
+defineExpose({
+  msg,
+})
+</script>

然后在父组件就可以通过挂载在子组件上的 ref 变量,去拿到暴露出来的数据了。

顶级 await 的支持

在 script-setup 模式下,不必再配合 async 就可以直接使用 await 了,这种情况下,组件的 setup 会自动变成 async setup 。

vue
<script setup lang="ts">
+const res = await fetch(\`https://example.com/api/foo\`)
+const json = await res.json()
+console.log(json)
+</script>

它转换成标准组件的写法就是:

vue
<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  async setup() {
+    const res = await fetch(\`https://example.com/api/foo\`)
+    const json = await res.json()
+    console.log(json)
+
+    return {
+      json,
+    }
+  },
+})
+</script>

命名技巧

对于接触编程不久的开发者,在个人练习 demo 或者简单的代码片段里可能会经常看到 var avar b 这样的命名,因为本身是一段练习代码,因此都是 “能跑就行”,问题不大。

但在工作中,很多开发团队都会有语义化命名的规范要求,严格的团队会有 Code Review 环节,使用这种无意义命名的代码将无法通过审查,在这种背景下,开发者可能会在命名上花费很多时间,在这里也分享笔者的一些常用技巧,希望能够帮助开发者节约在命名上的时间开销。

文件命名技巧

在开始讲变量命名之前,先说说文件的命名,因为代码都是保存在文件里,并且可能会互相引用,如果后期再修改文件名或者保存位置而忘记更新代码里的引用路径,那么就会影响程序编译和运行。

Vue 组件

在 Vue 项目里,会有放在 views 下的路由组件,有放在 components 目录下的公共组件,虽然都是以 .vue 为扩展名的 Vue 组件文件,但根据用途,它们其实并不相同,因此命名上也有不同的技巧。

路由组件

路由组件组件通常存放在 src/views 目录下,在命名上容易困惑的点应该是风格问题,开发者容易陷入是使用 camelCase 小驼峰还是 kebab-case 短横线风格,或者是 snake_case 下划线风格的选择困难。

一般情况下路由组件都是以单个名词或动词进行命名,例如个人资料页使用 profile 命名路由,路由的访问路径使用 /profile ,对应的路由组件使用 profile.vue 命名,下面是几个常见的例子。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 首页
+  // e.g. \`https://example.com/\`
+  {
+    path: '/',
+    name: 'home',
+    component: () => import('@views/home.vue'),
+  },
+  // 个人资料页
+  // e.g. \`https://example.com/profile\`
+  {
+    path: '/profile',
+    name: 'profile',
+    component: () => import('@views/profile.vue'),
+  },
+  // 登录页
+  // e.g. \`https://example.com/login\`
+  {
+    path: '/login',
+    name: 'login',
+    component: () => import('@views/login.vue'),
+  },
+]
+
+export default routes

如果是一些数据列表类的页面,使用名词复数,或者名词单数加上 -list 结尾的 kebab-case 短横线风格写法,推荐短横线风格是因为在 URL 的风格设计里更为常见。

像文章列表可以使用 articles 或者 article-list ,但同一个项目建议只使用其中一种方式,以保持整个项目的风格统一,下面是几个常见的例子。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 文章列表页
+  // 翻页逻辑是改变页码进行跳转,因此需要添加动态参数 \`:page\`
+  // 可以在组件内使用路由实例 \`route.params.page\` 拿到页码
+  // e.g. \`https://example.com/articles/1\`
+  {
+    path: '/articles/:page',
+    name: 'articles',
+    component: () => import('@views/articles.vue'),
+  },
+  // 通知列表页
+  // 翻页逻辑使用 AJAX 无刷翻页,这种情况则可以不配置页码参数
+  // e.g. \`https://example.com/notifications\`
+  {
+    path: '/notifications',
+    name: 'notifications',
+    component: () => import('@views/notifications.vue'),
+  },
+]
+
+export default routes

列表里的资源详情页,因为访问的时候通常会带上具体的 ID 以通过接口查询详情数据,这种情况下资源就继续使用单数,例如下面这个例子。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 文章详情页
+  // 可以在组件内使用路由实例 \`route.params.id\` 拿到文章 ID
+  // e.g. \`https://example.com/article/1\`
+  {
+    path: '/article/:id',
+    name: 'article',
+    component: () => import('@views/article.vue'),
+  },
+]
+
+export default routes

如果项目路由比较多,通常会对同一业务的路由增加文件夹归类,因此上面的文章列表和文章详情页,可以统一放到 article 目录下,使用 listdetail 区分是列表还是详情。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 文章相关的路由统一放在这里管理
+  {
+    path: '/article',
+    name: 'article',
+    // 这是一个配置了 \`<router-view />\` 标签的路由中转站组件
+    // 目的是使其可以渲染子路由
+    component: () => import('@cp/TransferStation.vue'),
+    // 由于父级路由没有内容,所以重定向至列表的第 1 页
+    // e.g. \`https://example.com/article\`
+    redirect: {
+      name: 'article-list',
+      params: {
+        page: 1,
+      },
+    },
+    children: [
+      // 文章列表页
+      // e.g. \`https://example.com/article/list/1\`
+      {
+        path: 'list/:page',
+        name: 'article-list',
+        component: () => import('@views/article/list.vue'),
+      },
+      // 文章详情页
+      // e.g. \`https://example.com/article/detail/1\`
+      {
+        path: 'detail/:id',
+        name: 'article-detail',
+        component: () => import('@views/article/detail.vue'),
+      },
+    ],
+  },
+]
+
+export default routes

对于一些需要用多个单词才能描述的资源,可以使用 kebab-case 短横线风格命名,例如很常见的 “策划面对面” 这种栏目,在设置路由时,比较难用一个单词在 URL 里体现其含义,就需要使用这种多个单词的连接。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 面对面栏目
+  {
+    path: '/face-to-face',
+    name: 'face-to-face',
+    component: () => import('@views/face-to-face.vue'),
+  },
+]
+
+export default routes

这种情况如果需要使用文件夹管理多个路由,同样建议使用 kebab-case 短横线风格命名,例如上面这个 “策划面对面” 栏目,可能会归属于 “开发计划” 这个业务下,那么其父级文件夹就可以使用 development-plan 这样的短横线命名。

公共组件

公共组件组件通常存放在 src/components 目录下,也可以视不同的使用情况,在路由文件夹下创建属于当前路由的 components 目录,作为一个小范围共享的公共组件目录来管理,而 src/components 则只存放全局性质的公共组件。

本节最开始提到了路由组件和公共组件并不相同,虽然都是组件,但路由组件代表的是整个页面,而公共组件更多是作为一个页面上的某个可复用的部件,如果开发者写过 Flutter ,应该能够更深刻的理解到这里的公共组件更接近于 Widget 性质的小部件。

公共组件通常使用 PascalCase 帕斯卡命名法,也就是大驼峰,为什么不用小驼峰呢?

这是源于 Vue 官网的一个 组件名格式 命名推荐:

使用 PascalCase 作为组件名的注册格式,这是因为:
PascalCase 是合法的 JavaScript 标识符。这使得在 JavaScript 中导入和注册组件都很容易,同时 IDE 也能提供较好的自动补全。
><PascalCase /> 在模板中更明显地表明了这是一个 Vue 组件,而不是原生 HTML 元素。同时也能够将 Vue 组件和自定义元素( web components )区分开来。

而且实际使用 PascalCase 风格的编码过程中,在 VSCode 里可以得到不同颜色的高亮效果,这与 kebab-case 风格的 HTML 标签可以快速区分。

vue
<template>
+  <!-- 普通的 HTML 标签 -->
+  <!-- 在笔者的 VSCode 风格里呈现为桃红色 -->
+  <div></div>
+
+  <!-- 大驼峰组件 -->
+  <!-- 在笔者的 VSCode 风格里呈现为绿色 -->
+  <PascalCase />
+</template>

养成这种习惯还有一个好处,就是使用 UI 框架的时候,例如 Ant Design Vue 的 Select 组件 ,在其文档上演示的是全局安装的写法:

vue
<template>
+  <a-select>
+    <a-select-option value="Hello">Hello</a-select-option>
+  </a-select>
+</template>

而实际使用时,为了更好的配合构建工具进行 Tree Shaking 移除没有用到的组件,都是按需引入 UI 框架的组件,因此如果平时有养成习惯使用 PascalCase 命名,就可以很轻松的知道上面的 <a-select-option /> 组件应该对应的是 <SelectOption /> ,因此是这样按需导入:

ts
import { Select, SelectOption } from 'ant-design-vue'

可以说, PascalCase 这个命名方式也是目前流行 UI 框架都在使用的命名规范。

TypeScript 文件

在 Vue 项目里,虽然 TypeScript 代码可以写在组件里,但由于很多功能实现是可以解耦并复用,所以经常会有专门的目录管理公共方法,这样做也可以避免在一个组件里写出一两千行代码从而导致维护成本提高。

libs 文件

笔者习惯将这些方法统一放到 src/libs 目录下,按照业务模块或者功能的相似度,以一个名词或者动词作为文件命名。

例如常用的正则表达式,可以归类到 regexp.ts 里。

ts
// src/libs/regexp.ts
+
+// 校验手机号格式
+export function isMob(phoneNumber: number | string) {
+  // ...
+}
+
+// 校验电子邮箱格式
+export function isEmail(email: string) {
+  // ...
+}
+
+// 校验网址格式
+export function isUrl(url: string) {
+  // ...
+}
+
+// 校验身份证号码格式
+export function isIdCard(idCardNumber: string) {
+  // ...
+}
+
+// 校验银行卡号码格式
+export function isBankCard(bankCardNumber: string) {
+  // ...
+}

统一使用命名导出,这样一个 TS 文件就像一个 npm 包一样,在使用的时候就可以从这个 “包” 里面导出各种要用到的方法直接使用,无需在组件里重复编写判断逻辑。

ts
import { isMob, isEmail } from '@libs/regexp'

其他诸如常用到的短信验证 sms.ts 、登录逻辑 login.ts 、数据格式转换 format.ts 都可以像这样单独抽出来封装,这种与业务解耦的封装方式非常灵活,以后不同项目如果也有类似的需求,就可以直接拿过去复用了!

types 文件

对于经常用到的 TypeScript 类型,也可以抽离成公共文件,笔者习惯在 src/types 目录管理公共类型,统一使用 .ts 作为扩展名并在里面导出 TS 类型,而不使用 .d.ts 这个类型声明文件。

这样做的好处是在使用到相应类型时,可以通过 import type 显式导入,在后期的项目维护过程中,可以很明确的知道类型来自于哪里,并且更接近从 npm 包里导入类型使用的开发方式。

例如上文配置路由的例子里,就是从 Vue Router 里导入了路由的类型:

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // ...
+]
+
+export default routes

在 types 目录下,可以按照业务模块创建多个模块文件分别维护不同的 TS 类型,并统一在 index.ts 里导出:

bash
src
+└─types
+   # 入口文件
+  ├─index.ts
+   # 管理不同业务的公共类型
+  ├─user.ts
+  ├─game.ts
+  └─news.ts

例如 game.ts 可以维护经常用到的游戏业务相关类型,其中为了避免和其他模块命名冲突,以及一眼可以看出是来自哪个业务的类型,可以统一使用业务模块的名称作为前缀。

ts
// src/types/game.ts
+
+// 游戏公司信息
+export interface GameCompany {
+  // ...
+}
+
+// 游戏信息
+export interface GameInfo {
+  id: number
+  name: string
+  gameCompany: GameCompany
+  // ...
+}

将该模块的所有类型在 index.ts 里全部导出:

ts
// src/types/index.ts
+export * from './game'

在组件里就可以这样使用该类型:

ts
// 可以从 \`types\` 里统一导入,而不必明确到 \`types/game\`
+import type { GameInfo } from '@/types'
+
+const game: GameInfo = {
+  id: 1,
+  name: 'Contra',
+  gameCompany: {},
+}
+console.log(game)

TS 类型都遵循 PascalCase 命名风格,方便和声明的变量作为区分,大部分情况下一看到 GameInfo 就知道是类型,而 gameInfo 则是一个变量。

代码命名技巧

在编写 JavaScript / TypeScript 时,为变量和函数的命名也是新手开发者容易花费比较多时间的一件事情,笔者也分享自己常用的命名套路,可以大幅度降低命名的思考时间,而且可以体现一定的语义化。

变量的命名

首先笔者遵循变量只使用 camelCase 小驼峰风格的基本原则,并且根据不同的类型,搭配不同的命名前缀或后缀。

对于 string 字符串类型,使用相关的名词命名即可。

ts
import { ref } from 'vue'
+
+// 用户名
+const username = ref<string>('Petter')
+
+// 职业
+const profession = ref<string>('Front-end Engineer')

对于 number 数值类型,除了一些本身可以代表数字的名词,例如年龄 age 、秒数 seconds ,其他的情况可以搭配后缀命名,常用的后缀有 CountNumberSizeAmount 等和单位有关的名词。

ts
import { ref } from 'vue'
+
+// 最大数量
+const maxCount = ref<number>(100)
+
+// 页码
+const pageNumber = ref<number>(1)
+
+// 每页条数
+const pageSize = ref<number>(10)
+
+// 折扣金额
+const discountAmount = ref<number>(50)

对于 boolean 布尔值类型,可搭配 ishas 等 Be 动词或判断类的动词作为前缀命名,并视情况搭配行为动词和目标名词,或者直接使用一些状态形容词。

ts
import { ref } from 'vue'
+
+// 是否显示弹窗
+const isShowDialog = ref<boolean>(false)
+
+// 用户是否为 VIP 会员
+const isVIP = ref<boolean>(true)
+
+// 用户是否有头像
+const hasAvatar = ref<boolean>(true)
+
+// 是否被禁用
+const disabled = ref<boolean>(true)
+
+// 是否可见
+const visible = ref<boolean>(true)

之所以要搭配 is 开头,是为了和函数区分,例如 showDialog() 是显示弹窗的方法,而 isShowDialog 才是一个布尔值用于逻辑判断。

对于数组,通常使用名词的复数形式,或者名词加上 List 结尾作为命名,数组通常会有原始数据类型的数组,也有 JSON 对象数组,笔者习惯对前者使用名词复数,对后者使用 List 结尾。

ts
import { ref } from 'vue'
+
+// 每个 Item 都是字符串
+const tags = ref<string>(['食物', '粤菜', '卤水'])
+
+// 每个 Item 都是数值
+const tagIds = ref<number>([1, 2, 3])
+
+// 每个 Item 都是 JSON 对象
+const memberList = ref<Member[]>([
+  {
+    id: 1,
+    name: 'Petter',
+  },
+  {
+    id: 2,
+    name: 'Marry',
+  },
+])

如果是作为函数的入参,通常也遵循变量的命名规则。

除非是一些代码量很少的操作,可以使用 ij 等单个字母的变量名,例如提交接口参数时,经常只需要提交一个 ID 数组,从 JSON 数组里提取 ID 数组时就可以使用这种简短命名。

ts
// \`map\` 的参数命名就可以使用 \`i\` 这种简短命名
+const ids = dataList.map((i) => i.id)

函数的命名

函数的命名也是只使用 camelCase 小驼峰风格,通常根据该函数是同步操作还是异步操作,使用不同的动词前缀。

获取数据的函数,通常使用 getqueryread 等代表会返回数据的动词作为前缀,如果还是觉得很难确定使用哪一个,可以统一使用 get ,也可以根据函数的操作性质来决定:

  • 如果是同步操作,不涉及接口请求,使用 get 作为前缀
  • 如果是需要从 API 接口查询数据的异步操作,使用 query 作为前缀
  • 如果是 Node.js 程序这种需要进行文件内容读取的场景,就使用 read
ts
// 从本地存储读取数据
+// 因为是同步操作,所以使用 \`get\` 前缀
+function getLoginInfo() {
+  try {
+    const info = localStorage.getItem('loginInfo')
+    return info ? JSON.parse(info) : null
+  } catch (e) {
+    return null
+  }
+}
+
+// 从接口查询数据
+// 因为是异步操作,需要去数据库查数据,所以使用 \`query\` 前缀
+async function queryMemberInfo(id: number) {
+  try {
+    const res = await fetch(\`https://example.com/api/member/\${id}\`)
+    const json = await res.json()
+    return json
+  } catch (e) {
+    return null
+  }
+}

修改数据的函数,通常使用 saveupdatedelete 等会变更数据的动词作为前缀,一般情况下:

  • 数据存储可以统一使用 save
  • 如果要区分新建或者更新操作,可以对新建操作使用 create ,对更新操作使用 update
  • 删除使用 deleteremove
  • 如果是 Node.js 程序需要对文件写入内容,使用 write
  • 表单验证合法性等场景,可以使用 verifycheck
  • 切换可见性可以用 showhide ,如果是写在一个函数里,可以使用 toggle
  • 发送验证码、发送邮件等等可以使用 send
  • 打开路由、打开外部 URL 可以使用 open

当然以上只是一些常用到的命名技巧建议,对于简单的业务,例如一个 H5 活动页面,也可以在同步操作时使用 set 表示可以直接设置,在异步操作时使用 save 表示需要提交保存。

ts
// 将数据保存至本地存储
+// 因为是同步操作,所以使用 \`set\` 前缀
+function setLoginInfo(info: LoginInfo) {
+  try {
+    localStorage.setItem('loginInfo', JSON.stringify(info))
+    return true
+  } catch (e) {
+    return false
+  }
+}
+
+// 将数据通过接口保存到数据库
+// 因为是异步操作,所以使用 \`save\` 前缀
+async function saveMemberInfo(id: number, data: MemberDTO) {
+  try {
+    const res = await fetch(\`https://example.com/api/member/\${id}\`, {
+      method: 'POST',
+      body: JSON.stringify(data),
+    })
+    const json = await res.json()
+    return json.code === 200
+  } catch (e) {
+    return false
+  }
+}

Class 类上的方法和函数命名规则一样,但 Class 本身使用 PascalCase 命名法,代表这是一个类,在调用的时候需要 new

ts
// 类使用 PascalCase 命名法
+class Hello {
+  name: string
+
+  constructor(name: string) {
+    this.name = name
+  }
+
+  say() {
+    console.log(\`Hello \${this.name}\`)
+  }
+}
+
+const hello = new Hello('World')
+hello.say() // Hello World

希望曾经在命名上有过困扰的开发者,不再有此烦恼,编写代码更加高效率!

`,217);function D(F,i,C,A,d,u){const a=n("GitalkComment"),l=n("ClientOnly");return o(),e("div",null,[y,s(l,null,{default:t(()=>[s(a,{issueId:118})]),_:1})])}const h=p(r,[["render",D]]);export{g as __pageData,h as default}; diff --git a/assets/efficient.md.a41d0892.lean.js b/assets/efficient.md.a41d0892.lean.js new file mode 100644 index 00000000..cac3dc46 --- /dev/null +++ b/assets/efficient.md.a41d0892.lean.js @@ -0,0 +1,552 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as p,v as o,b as e,t as s,O as t,R as c,M as n}from"./chunks/framework.0d8bea05.js";const g=JSON.parse('{"title":"高效开发","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"efficient.md","filePath":"efficient.md"}'),r={name:"efficient.md"},y=c(`

高效开发

可能很多开发者(包括笔者)刚上手 Vue 3 的那段时间,都会觉得开发过程似乎变得更繁琐了, Vue 官方团队当然不会无视群众的呼声,如果基于脚手架和 .vue 文件开发,那么可以享受到更高效率的开发体验。

在阅读这一章之前,需要对 Vue 3 的单组件开发有一定的了解,如果还处于完全没有接触过的阶段,请先抽点时间阅读 单组件的编写 一章。

TIP

要体验以下新特性,请确保项目下 package.json 里的 vue 版本在 3.2.0 以上,最好同步 npm 上当前最新的 @latest 版本,否则可能出现 API 未定义等问题。

script-setup ~new

script-setup 是 Vue 3 组件的一个语法糖,旨在帮助开发者降低 setup 函数需要 return 的心智负担。

Vue 的 3.1.2 版本是针对 script-setup 的一个分水岭版本,自 3.1.4 开始 script-setup 进入定稿状态,部分旧的 API 已被舍弃,本章节内容将以最新的 API 为准进行整理说明,如果需要查阅旧版 API 的使用,请参阅笔者的 这篇开荒博文

script-setup 方案已在 Vue 3.2.0-beta.1 版本中脱离实验状态,正式进入 Vue 3 的队伍,此后所有的新版本均可以作为一个官方标准的开发方案使用。

新特性的产生背景

在了解 script-setup 怎么用之前,可以先了解一下推出该语法糖的一些开发背景,通过对比开发体验上的异同点,了解为什么会有这个新模式。

在 Vue 3 的组件标准写法里,如果数据和方法需要在 <template /> 里使用,都需要在 <script /> 的 setup 函数里 return 出来。

如果使用的是 TypeScript ,还需要借助 defineComponent 对 API 类型进行自动推导。

vue
<!-- 标准组件格式 -->
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // ...
+
+    return {
+      // ...
+    }
+  },
+})
+</script>

关于标准 setup 和 defineComponent 的说明和用法,可以查阅 全新的 setup 函数 一节。

script-setup 的推出是为了让熟悉 Vue 3 的开发者可以更高效率地开发组件,减少编码过程中的心智负担,只需要给 <script /> 标签添加一个 setup 属性,那么整个 <script /> 就直接会变成 setup 函数,所有顶级变量、函数,均会自动暴露给模板使用(无需再一个个 return 了)。

Vue 会通过单组件编译器,在编译的时候将其处理回标准组件,所以目前这个方案只适合用 .vue 文件写的工程化项目。

vue
<!-- 使用 script-setup 格式 -->
+<script setup lang="ts">
+// ...
+</script>

对,就是这样,代码量瞬间大幅度减少!

因为 script-setup 的大部分功能在书写上和标准版是一致的,因此下面的内容只提及有差异的写法。

全局编译器宏

在 script-setup 模式下,新增了 4 个全局编译器宏,他们无需 import 就可以直接使用。

但是默认的情况下直接使用,如果项目开启了 ESLint ,可能会提示 API 没有导入,但导入 API 后,控制台的 Vue 编译助手又会提示不需要导入,就很尴尬… 不过不用着急!可以通过配置 Lint 规则解决这个问题!

将这几个编译助手写进全局规则里,这样不导入也不会报错了。

js
// 项目根目录下的 .eslintrc.js
+module.exports = {
+  // ...
+  // 在原来的 Lint 规则后面,补充下面的 \`globals\` 选项
+  globals: {
+    defineProps: 'readonly',
+    defineEmits: 'readonly',
+    defineExpose: 'readonly',
+    withDefaults: 'readonly',
+  },
+}

关于几个宏的说明都在下面的文档部分有说明,也可以从这里导航过去直接查看。

说明
defineProps点击查看
defineEmits点击查看
defineExpose点击查看
withDefaults点击查看

下面继续了解 script-setup 的变化。

template 操作简化

如果使用 JSX / TSX 写法,这一点没有太大影响,但对于习惯使用 <template /> 的开发者来说,这是一个非常爽的体验。

主要体现在这两点:

  1. 变量无需进行 return
  2. 子组件无需手动注册

变量无需进行 return

标准组件模式下,变量和方法都需要在 setup 函数里 return 出去,才可以在 <template /> 部分拿到。

vue
<!-- 标准组件格式 -->
+<template>
+  <p>{{ msg }}</p>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  setup() {
+    const msg = 'Hello World!'
+
+    // 要给 \`<template />\` 用的数据需要 \`return\` 出去才可以
+    return {
+      msg,
+    }
+  },
+})
+</script>

在 script-setup 模式下,定义了就可以直接使用。

vue
<!-- 使用 script-setup 格式 -->
+<template>
+  <p>{{ msg }}</p>
+</template>
+
+<script setup lang="ts">
+const msg = 'Hello World!'
+</script>

子组件无需手动注册

子组件的挂载,在标准组件里的写法是需要 import 后再放到 components 里才能够启用:

vue
<!-- 标准组件格式 -->
+<template>
+  <Child />
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+// 导入子组件
+import Child from '@cp/Child.vue'
+
+export default defineComponent({
+  // 需要启用子组件作为模板
+  components: {
+    Child,
+  },
+
+  // 组件里的业务代码
+  setup() {
+    // ...
+  },
+})
+</script>

在 script-setup 模式下,只需要导入组件即可,编译器会自动识别并启用。

vue
<!-- 使用 script-setup 格式 -->
+<template>
+  <Child />
+</template>
+
+<script setup lang="ts">
+import Child from '@cp/Child.vue'
+</script>

props 的接收方式变化

由于整个 script 都变成了一个大的 setup 函数,没有了组件选项,也没有了 setup 的入参,所以没办法和标准写法一样去接收 props 了。

这里需要使用一个全新的 API :defineProps 。

defineProps 是一个方法,内部返回一个对象,也就是挂载到这个组件上的所有 props ,它和普通的 props 用法一样,如果不指定为 props ,则传下来的属性会被放到 attrs 那边去。

TIP

前置知识点:接收 props - 组件之间的通信

defineProps 的基础用法

如果只是单纯在 <template /> 里使用,那么这么简单定义就可以了:

ts
defineProps(['name', 'userInfo', 'tags'])

使用 string[] 数组作为入参,把 prop 的名称作为数组的 item 传给 defineProps 就可以了。

如果 <script /> 里的方法要拿到 props 的值,也可以使用字面量定义:

ts
const props = defineProps(['name', 'userInfo', 'tags'])
+console.log(props.name)

但作为 Vue 的老玩家,都清楚不显性的指定 props 的类型很容易在协作中引起程序报错,那么应该如何对每个 prop 进行类型检查呢?

有两种方式来处理类型定义:

  1. 通过构造函数检查 prop
  2. 使用类型注解检查 prop

通过构造函数检查 prop

这是第一种方式:使用 JavaScript 原生构造函数进行类型规定,也就是跟平时定义 prop 类型时一样, Vue 会通过 instanceof 来进行 类型检查

使用这种方法,需要通过一个 “对象” 入参来传递给 defineProps ,比如:

ts
defineProps({
+  name: String,
+  userInfo: Object,
+  tags: Array,
+})

所有原来 props 具备的校验机制,都可以适用,比如除了要限制类型外,还想指定 name 是可选,并且带有一个默认值:

ts
defineProps({
+  name: {
+    type: String,
+    required: false,
+    default: 'Petter',
+  },
+  userInfo: Object,
+  tags: Array,
+})

更多的 props 校验机制,可以点击 带有类型限制的 props可选以及带有默认值的 props 了解更多。

使用类型注解检查 prop

这是第二种方式:使用 TypeScript 的类型注解,和 ref 等 API 的用法一样,defineProps 也是可以使用尖括号 <> 来包裹类型定义,紧跟在 API 后面。

另外,由于 defineProps 返回的是一个对象(因为 props 本身是一个对象),所以尖括号里面的类型还要用大括号包裹,通过 key: value 的键值对形式表示,如:

ts
defineProps<{ name: string }>()

注意到了吗?这里使用的类型,和第一种方法提到的指定类型是不一样的。这里不再使用构造函数校验,而是需要遵循使用 TypeScript 的类型,比如字符串是 string,而不是 String

如果有多个 prop ,就跟写 interface 一样:

ts
defineProps<{
+  name: string
+  phoneNumber: number
+  userInfo: object
+  tags: string[]
+}>()

其中,举例里的 userInfo 是一个对象,可以简单的指定为 object,也可以先定义好它对应的类型,再进行指定:

ts
interface UserInfo {
+  id: number
+  age: number
+}
+
+defineProps<{
+  name: string
+  userInfo: UserInfo
+}>()

如果想对某个数据设置为可选,也是遵循 TS 规范,通过英文问号 ? 来允许可选:

ts
// name 是可选
+defineProps<{
+  name?: string
+  tags: string[]
+}>()

如果想设置可选参数的默认值,需要借助 withDefaults API。

WARNING

需要强调的一点是:在 构造函数类型注解 这两种校验方式只能二选一,不能同时使用,否则会引起程序报错。

withDefaults 的基础用法

这个新的 withDefaults API 可以让在使用 TS 类型系统时,也可以指定 props 的默认值。

它接收两个入参:

参数含义
props通过 defineProps 传入的 props
defaultValues根据 props 的 key 传入默认值

光看描述可能不容易理解,看看下面这段演示代码会更直观:

ts
withDefaults(
+  // 这是第一个参数,声明 props
+  defineProps<{
+    size?: number
+    labels?: string[]
+  }>(),
+  // 这是第二个参数,设置默认值
+  {
+    size: 3,
+    labels: () => ['default label'],
+  }
+)

也可以通过字面量获取 props :

ts
// 上面的写法可能比较复杂,存在阅读成本
+// 也可以跟平时一样先通过 interface 声明其类型
+interface Props {
+  size?: number
+  labels?: string[]
+}
+
+// 再作为 \`defineProps\` 的类型传入
+// 代码风格上会简洁很多
+const props = withDefaults(defineProps<Props>(), {
+  size: 3,
+  labels: () => ['default label'],
+})
+
+// 这样就可以通过 \`props\` 变量拿到需要的值
+console.log(props.size)

emits 的接收方式变化

和 props 一样,emits 的接收也是需要使用一个全新的 API 来操作,这个 API 就是 defineEmits 。

和 defineProps 一样, defineEmits 也是一个方法,它接受的入参格式和标准组件的要求是一致的。

TIP

前置知识点:接收 emits - 组件之间的通信

defineEmits 的基础用法

需要通过字面量来定义 emits ,最基础的用法也是传递一个 string[] 数组进来,把每个 emit 的名称作为数组的 item 。

ts
// 获取 emit
+const emit = defineEmits(['update-name'])
+
+// 调用 emit
+emit('update-name', 'Tom')

由于 defineEmits 的用法和原来的 emits 选项差别不大,这里也不重复说明更多的诸如校验之类的用法了,可以查看 接收 emits 一节了解更多。

attrs 的接收方式变化

attrs 和 props 很相似,也是基于父子通信的数据,如果父组件绑定下来的数据没有被指定为 props ,那么就会被 attrs 接收。

在标准组件里, attrs 的数据是通过 setup 的第二个入参 context 里的 attrs API 获取的。

ts
// 标准组件的写法
+export default defineComponent({
+  setup(props, { attrs }) {
+    // attrs 是个对象,每个 Attribute 都是它的 key
+    console.log(attrs.class)
+
+    // 如果传下来的 Attribute 带有短横线,需要通过这种方式获取
+    console.log(attrs['data-hash'])
+  },
+})

但和 props 一样,由于没有了 context 参数,需要使用一个新的 API 来拿到 attrs 数据,这个 API 就是 useAttrs 。

useAttrs 的基础用法

顾名思义, useAttrs 可以是用来获取 attrs 数据的,它的用法非常简单:

ts
import { useAttrs } from 'vue'
+
+// 获取 attrs
+const attrs = useAttrs()
+
+// attrs 是个对象,和 props 一样,需要通过 \`key\` 来得到对应的单个 attr
+console.log(attrs.msg)

对 attrs 不太了解的话,可以查阅 获取非 Prop 的 Attribute

slots 的接收方式变化

slots 是 Vue 组件的插槽数据,也是在父子通信里的一个重要成员。

对于使用 <template /> 的开发者来说,在 script-setup 里获取插槽数据并不困难,因为跟标准组件的写法是完全一样的,可以直接在 <template /> 里使用 <slot /> 标签渲染。

vue
<template>
+  <div>
+    <!-- 插槽数据 -->
+    <slot />
+    <!-- 插槽数据 -->
+  </div>
+</template>

但对使用 JSX / TSX 的开发者来说,就影响比较大了,在标准组件里,想在 script 里获取插槽数据,也是需要在 setup 的第二个入参里拿到 slots API 。

ts
// 标准组件的写法
+export default defineComponent({
+  // 这里的 slots 就是插槽
+  setup(props, { slots }) {
+    // ...
+  },
+})

新版本的 Vue 也提供了一个全新的 useSlots API 来帮助 script-setup 用户获取插槽。

useSlots 的基础用法

先来看看父组件,父组件先为子组件传入插槽数据,支持 “默认插槽” 和 “命名插槽” :

vue
<template>
+  <!-- 子组件 -->
+  <ChildTSX>
+    <!-- 默认插槽 -->
+    <p>Default slot for TSX.</p>
+    <!-- 默认插槽 -->
+
+    <!-- 命名插槽 -->
+    <template #msg>
+      <p>Named slot for TSX.</p>
+    </template>
+    <!-- 命名插槽 -->
+  </ChildTSX>
+  <!-- 子组件 -->
+</template>
+
+<script setup lang="ts">
+// 实际上是导入 ChildTSX.tsx 文件,扩展名默认可以省略
+import ChildTSX from '@cp/ChildTSX'
+</script>

在使用 JSX / TSX 编写的子组件里,就可以通过 useSlots 来获取父组件传进来的 slots 数据进行渲染:

tsx
// src/components/ChildTSX.tsx
+import { defineComponent, useSlots } from 'vue'
+
+export default defineComponent({
+  setup() {
+    // 获取插槽数据
+    const slots = useSlots()
+
+    // 渲染组件
+    return () => (
+      <div>
+        {/* 渲染默认插槽 */}
+        <p>{slots.default ? slots.default() : ''}</p>
+
+        {/* 渲染命名插槽 */}
+        <p>{slots.msg ? slots.msg() : ''}</p>
+      </div>
+    )
+  },
+})

请注意,这里的 TSX 组件代码需要使用 .tsx 作为文件扩展名,并且构建工具可能默认没有对 JSX / TSX 作支持,以 Vite 为例,需要安装官方提供的 JSX / TSX 支持插件才可以正常使用。

bash
# 该插件支持使用 JSX 或 TSX 作为 Vue 组件
+npm i -D @vitejs/plugin-vue-jsx

并在 vite.config.ts 里启用插件,添加对 JSX 和 TSX 的支持。

ts
// vite.config.ts
+import { defineConfig } from 'vite'
+import vueJsx from '@vitejs/plugin-vue-jsx'
+
+export default defineConfig({
+  // ...
+  plugins: [
+    // ...
+    // 启用插件
+    vueJsx(),
+  ],
+})

如果还存在报错的情况,可以检查项目下的 tsconfig.json 文件里,编译选项 jsx 是否设置为 preserve

json
{
+  "compilerOptions": {
+    "jsx": "preserve"
+  }
+}

ref 的通信方式变化

在标准组件写法里,子组件的数据和方法可以通过在 setup 里 return 出来给父组件调用,也就是父组件可以通过 childComponent.value.foo 这样的方式直接操作子组件的数据(参见:DOM 元素与子组件 - 响应式 API 之 ref)。

但在 script-setup 模式下,所有数据只是默认隐式 return 给 <template /> 使用,不会暴露到组件外,所以父组件是无法直接通过挂载 ref 变量获取子组件的数据。

在 script-setup 模式下,如果要调用子组件的数据,需要先在子组件显式的暴露出来,才能够正确的拿到,这个操作,就是由 defineExpose API 来完成。

defineExpose 的基础用法

defineExpose 的用法非常简单,它本身是一个函数,可以接受一个对象参数。

在子组件里,像这样把需要暴露出去的数据通过 key: value 的形式作为入参(下面的例子是用到了 ES6 的 属性的简洁表示法 ):

vue
<script setup lang="ts">
+const msg = 'Hello World!'
+
+// 通过该 API 显式暴露的数据,才可以在父组件拿到
+defineExpose({
+  msg,
+})
+</script>

然后在父组件就可以通过挂载在子组件上的 ref 变量,去拿到暴露出来的数据了。

顶级 await 的支持

在 script-setup 模式下,不必再配合 async 就可以直接使用 await 了,这种情况下,组件的 setup 会自动变成 async setup 。

vue
<script setup lang="ts">
+const res = await fetch(\`https://example.com/api/foo\`)
+const json = await res.json()
+console.log(json)
+</script>

它转换成标准组件的写法就是:

vue
<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  async setup() {
+    const res = await fetch(\`https://example.com/api/foo\`)
+    const json = await res.json()
+    console.log(json)
+
+    return {
+      json,
+    }
+  },
+})
+</script>

命名技巧

对于接触编程不久的开发者,在个人练习 demo 或者简单的代码片段里可能会经常看到 var avar b 这样的命名,因为本身是一段练习代码,因此都是 “能跑就行”,问题不大。

但在工作中,很多开发团队都会有语义化命名的规范要求,严格的团队会有 Code Review 环节,使用这种无意义命名的代码将无法通过审查,在这种背景下,开发者可能会在命名上花费很多时间,在这里也分享笔者的一些常用技巧,希望能够帮助开发者节约在命名上的时间开销。

文件命名技巧

在开始讲变量命名之前,先说说文件的命名,因为代码都是保存在文件里,并且可能会互相引用,如果后期再修改文件名或者保存位置而忘记更新代码里的引用路径,那么就会影响程序编译和运行。

Vue 组件

在 Vue 项目里,会有放在 views 下的路由组件,有放在 components 目录下的公共组件,虽然都是以 .vue 为扩展名的 Vue 组件文件,但根据用途,它们其实并不相同,因此命名上也有不同的技巧。

路由组件

路由组件组件通常存放在 src/views 目录下,在命名上容易困惑的点应该是风格问题,开发者容易陷入是使用 camelCase 小驼峰还是 kebab-case 短横线风格,或者是 snake_case 下划线风格的选择困难。

一般情况下路由组件都是以单个名词或动词进行命名,例如个人资料页使用 profile 命名路由,路由的访问路径使用 /profile ,对应的路由组件使用 profile.vue 命名,下面是几个常见的例子。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 首页
+  // e.g. \`https://example.com/\`
+  {
+    path: '/',
+    name: 'home',
+    component: () => import('@views/home.vue'),
+  },
+  // 个人资料页
+  // e.g. \`https://example.com/profile\`
+  {
+    path: '/profile',
+    name: 'profile',
+    component: () => import('@views/profile.vue'),
+  },
+  // 登录页
+  // e.g. \`https://example.com/login\`
+  {
+    path: '/login',
+    name: 'login',
+    component: () => import('@views/login.vue'),
+  },
+]
+
+export default routes

如果是一些数据列表类的页面,使用名词复数,或者名词单数加上 -list 结尾的 kebab-case 短横线风格写法,推荐短横线风格是因为在 URL 的风格设计里更为常见。

像文章列表可以使用 articles 或者 article-list ,但同一个项目建议只使用其中一种方式,以保持整个项目的风格统一,下面是几个常见的例子。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 文章列表页
+  // 翻页逻辑是改变页码进行跳转,因此需要添加动态参数 \`:page\`
+  // 可以在组件内使用路由实例 \`route.params.page\` 拿到页码
+  // e.g. \`https://example.com/articles/1\`
+  {
+    path: '/articles/:page',
+    name: 'articles',
+    component: () => import('@views/articles.vue'),
+  },
+  // 通知列表页
+  // 翻页逻辑使用 AJAX 无刷翻页,这种情况则可以不配置页码参数
+  // e.g. \`https://example.com/notifications\`
+  {
+    path: '/notifications',
+    name: 'notifications',
+    component: () => import('@views/notifications.vue'),
+  },
+]
+
+export default routes

列表里的资源详情页,因为访问的时候通常会带上具体的 ID 以通过接口查询详情数据,这种情况下资源就继续使用单数,例如下面这个例子。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 文章详情页
+  // 可以在组件内使用路由实例 \`route.params.id\` 拿到文章 ID
+  // e.g. \`https://example.com/article/1\`
+  {
+    path: '/article/:id',
+    name: 'article',
+    component: () => import('@views/article.vue'),
+  },
+]
+
+export default routes

如果项目路由比较多,通常会对同一业务的路由增加文件夹归类,因此上面的文章列表和文章详情页,可以统一放到 article 目录下,使用 listdetail 区分是列表还是详情。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 文章相关的路由统一放在这里管理
+  {
+    path: '/article',
+    name: 'article',
+    // 这是一个配置了 \`<router-view />\` 标签的路由中转站组件
+    // 目的是使其可以渲染子路由
+    component: () => import('@cp/TransferStation.vue'),
+    // 由于父级路由没有内容,所以重定向至列表的第 1 页
+    // e.g. \`https://example.com/article\`
+    redirect: {
+      name: 'article-list',
+      params: {
+        page: 1,
+      },
+    },
+    children: [
+      // 文章列表页
+      // e.g. \`https://example.com/article/list/1\`
+      {
+        path: 'list/:page',
+        name: 'article-list',
+        component: () => import('@views/article/list.vue'),
+      },
+      // 文章详情页
+      // e.g. \`https://example.com/article/detail/1\`
+      {
+        path: 'detail/:id',
+        name: 'article-detail',
+        component: () => import('@views/article/detail.vue'),
+      },
+    ],
+  },
+]
+
+export default routes

对于一些需要用多个单词才能描述的资源,可以使用 kebab-case 短横线风格命名,例如很常见的 “策划面对面” 这种栏目,在设置路由时,比较难用一个单词在 URL 里体现其含义,就需要使用这种多个单词的连接。

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // 面对面栏目
+  {
+    path: '/face-to-face',
+    name: 'face-to-face',
+    component: () => import('@views/face-to-face.vue'),
+  },
+]
+
+export default routes

这种情况如果需要使用文件夹管理多个路由,同样建议使用 kebab-case 短横线风格命名,例如上面这个 “策划面对面” 栏目,可能会归属于 “开发计划” 这个业务下,那么其父级文件夹就可以使用 development-plan 这样的短横线命名。

公共组件

公共组件组件通常存放在 src/components 目录下,也可以视不同的使用情况,在路由文件夹下创建属于当前路由的 components 目录,作为一个小范围共享的公共组件目录来管理,而 src/components 则只存放全局性质的公共组件。

本节最开始提到了路由组件和公共组件并不相同,虽然都是组件,但路由组件代表的是整个页面,而公共组件更多是作为一个页面上的某个可复用的部件,如果开发者写过 Flutter ,应该能够更深刻的理解到这里的公共组件更接近于 Widget 性质的小部件。

公共组件通常使用 PascalCase 帕斯卡命名法,也就是大驼峰,为什么不用小驼峰呢?

这是源于 Vue 官网的一个 组件名格式 命名推荐:

使用 PascalCase 作为组件名的注册格式,这是因为:
PascalCase 是合法的 JavaScript 标识符。这使得在 JavaScript 中导入和注册组件都很容易,同时 IDE 也能提供较好的自动补全。
><PascalCase /> 在模板中更明显地表明了这是一个 Vue 组件,而不是原生 HTML 元素。同时也能够将 Vue 组件和自定义元素( web components )区分开来。

而且实际使用 PascalCase 风格的编码过程中,在 VSCode 里可以得到不同颜色的高亮效果,这与 kebab-case 风格的 HTML 标签可以快速区分。

vue
<template>
+  <!-- 普通的 HTML 标签 -->
+  <!-- 在笔者的 VSCode 风格里呈现为桃红色 -->
+  <div></div>
+
+  <!-- 大驼峰组件 -->
+  <!-- 在笔者的 VSCode 风格里呈现为绿色 -->
+  <PascalCase />
+</template>

养成这种习惯还有一个好处,就是使用 UI 框架的时候,例如 Ant Design Vue 的 Select 组件 ,在其文档上演示的是全局安装的写法:

vue
<template>
+  <a-select>
+    <a-select-option value="Hello">Hello</a-select-option>
+  </a-select>
+</template>

而实际使用时,为了更好的配合构建工具进行 Tree Shaking 移除没有用到的组件,都是按需引入 UI 框架的组件,因此如果平时有养成习惯使用 PascalCase 命名,就可以很轻松的知道上面的 <a-select-option /> 组件应该对应的是 <SelectOption /> ,因此是这样按需导入:

ts
import { Select, SelectOption } from 'ant-design-vue'

可以说, PascalCase 这个命名方式也是目前流行 UI 框架都在使用的命名规范。

TypeScript 文件

在 Vue 项目里,虽然 TypeScript 代码可以写在组件里,但由于很多功能实现是可以解耦并复用,所以经常会有专门的目录管理公共方法,这样做也可以避免在一个组件里写出一两千行代码从而导致维护成本提高。

libs 文件

笔者习惯将这些方法统一放到 src/libs 目录下,按照业务模块或者功能的相似度,以一个名词或者动词作为文件命名。

例如常用的正则表达式,可以归类到 regexp.ts 里。

ts
// src/libs/regexp.ts
+
+// 校验手机号格式
+export function isMob(phoneNumber: number | string) {
+  // ...
+}
+
+// 校验电子邮箱格式
+export function isEmail(email: string) {
+  // ...
+}
+
+// 校验网址格式
+export function isUrl(url: string) {
+  // ...
+}
+
+// 校验身份证号码格式
+export function isIdCard(idCardNumber: string) {
+  // ...
+}
+
+// 校验银行卡号码格式
+export function isBankCard(bankCardNumber: string) {
+  // ...
+}

统一使用命名导出,这样一个 TS 文件就像一个 npm 包一样,在使用的时候就可以从这个 “包” 里面导出各种要用到的方法直接使用,无需在组件里重复编写判断逻辑。

ts
import { isMob, isEmail } from '@libs/regexp'

其他诸如常用到的短信验证 sms.ts 、登录逻辑 login.ts 、数据格式转换 format.ts 都可以像这样单独抽出来封装,这种与业务解耦的封装方式非常灵活,以后不同项目如果也有类似的需求,就可以直接拿过去复用了!

types 文件

对于经常用到的 TypeScript 类型,也可以抽离成公共文件,笔者习惯在 src/types 目录管理公共类型,统一使用 .ts 作为扩展名并在里面导出 TS 类型,而不使用 .d.ts 这个类型声明文件。

这样做的好处是在使用到相应类型时,可以通过 import type 显式导入,在后期的项目维护过程中,可以很明确的知道类型来自于哪里,并且更接近从 npm 包里导入类型使用的开发方式。

例如上文配置路由的例子里,就是从 Vue Router 里导入了路由的类型:

ts
// src/router/routes.ts
+import type { RouteRecordRaw } from 'vue-router'
+
+const routes: RouteRecordRaw[] = [
+  // ...
+]
+
+export default routes

在 types 目录下,可以按照业务模块创建多个模块文件分别维护不同的 TS 类型,并统一在 index.ts 里导出:

bash
src
+└─types
+   # 入口文件
+  ├─index.ts
+   # 管理不同业务的公共类型
+  ├─user.ts
+  ├─game.ts
+  └─news.ts

例如 game.ts 可以维护经常用到的游戏业务相关类型,其中为了避免和其他模块命名冲突,以及一眼可以看出是来自哪个业务的类型,可以统一使用业务模块的名称作为前缀。

ts
// src/types/game.ts
+
+// 游戏公司信息
+export interface GameCompany {
+  // ...
+}
+
+// 游戏信息
+export interface GameInfo {
+  id: number
+  name: string
+  gameCompany: GameCompany
+  // ...
+}

将该模块的所有类型在 index.ts 里全部导出:

ts
// src/types/index.ts
+export * from './game'

在组件里就可以这样使用该类型:

ts
// 可以从 \`types\` 里统一导入,而不必明确到 \`types/game\`
+import type { GameInfo } from '@/types'
+
+const game: GameInfo = {
+  id: 1,
+  name: 'Contra',
+  gameCompany: {},
+}
+console.log(game)

TS 类型都遵循 PascalCase 命名风格,方便和声明的变量作为区分,大部分情况下一看到 GameInfo 就知道是类型,而 gameInfo 则是一个变量。

代码命名技巧

在编写 JavaScript / TypeScript 时,为变量和函数的命名也是新手开发者容易花费比较多时间的一件事情,笔者也分享自己常用的命名套路,可以大幅度降低命名的思考时间,而且可以体现一定的语义化。

变量的命名

首先笔者遵循变量只使用 camelCase 小驼峰风格的基本原则,并且根据不同的类型,搭配不同的命名前缀或后缀。

对于 string 字符串类型,使用相关的名词命名即可。

ts
import { ref } from 'vue'
+
+// 用户名
+const username = ref<string>('Petter')
+
+// 职业
+const profession = ref<string>('Front-end Engineer')

对于 number 数值类型,除了一些本身可以代表数字的名词,例如年龄 age 、秒数 seconds ,其他的情况可以搭配后缀命名,常用的后缀有 CountNumberSizeAmount 等和单位有关的名词。

ts
import { ref } from 'vue'
+
+// 最大数量
+const maxCount = ref<number>(100)
+
+// 页码
+const pageNumber = ref<number>(1)
+
+// 每页条数
+const pageSize = ref<number>(10)
+
+// 折扣金额
+const discountAmount = ref<number>(50)

对于 boolean 布尔值类型,可搭配 ishas 等 Be 动词或判断类的动词作为前缀命名,并视情况搭配行为动词和目标名词,或者直接使用一些状态形容词。

ts
import { ref } from 'vue'
+
+// 是否显示弹窗
+const isShowDialog = ref<boolean>(false)
+
+// 用户是否为 VIP 会员
+const isVIP = ref<boolean>(true)
+
+// 用户是否有头像
+const hasAvatar = ref<boolean>(true)
+
+// 是否被禁用
+const disabled = ref<boolean>(true)
+
+// 是否可见
+const visible = ref<boolean>(true)

之所以要搭配 is 开头,是为了和函数区分,例如 showDialog() 是显示弹窗的方法,而 isShowDialog 才是一个布尔值用于逻辑判断。

对于数组,通常使用名词的复数形式,或者名词加上 List 结尾作为命名,数组通常会有原始数据类型的数组,也有 JSON 对象数组,笔者习惯对前者使用名词复数,对后者使用 List 结尾。

ts
import { ref } from 'vue'
+
+// 每个 Item 都是字符串
+const tags = ref<string>(['食物', '粤菜', '卤水'])
+
+// 每个 Item 都是数值
+const tagIds = ref<number>([1, 2, 3])
+
+// 每个 Item 都是 JSON 对象
+const memberList = ref<Member[]>([
+  {
+    id: 1,
+    name: 'Petter',
+  },
+  {
+    id: 2,
+    name: 'Marry',
+  },
+])

如果是作为函数的入参,通常也遵循变量的命名规则。

除非是一些代码量很少的操作,可以使用 ij 等单个字母的变量名,例如提交接口参数时,经常只需要提交一个 ID 数组,从 JSON 数组里提取 ID 数组时就可以使用这种简短命名。

ts
// \`map\` 的参数命名就可以使用 \`i\` 这种简短命名
+const ids = dataList.map((i) => i.id)

函数的命名

函数的命名也是只使用 camelCase 小驼峰风格,通常根据该函数是同步操作还是异步操作,使用不同的动词前缀。

获取数据的函数,通常使用 getqueryread 等代表会返回数据的动词作为前缀,如果还是觉得很难确定使用哪一个,可以统一使用 get ,也可以根据函数的操作性质来决定:

  • 如果是同步操作,不涉及接口请求,使用 get 作为前缀
  • 如果是需要从 API 接口查询数据的异步操作,使用 query 作为前缀
  • 如果是 Node.js 程序这种需要进行文件内容读取的场景,就使用 read
ts
// 从本地存储读取数据
+// 因为是同步操作,所以使用 \`get\` 前缀
+function getLoginInfo() {
+  try {
+    const info = localStorage.getItem('loginInfo')
+    return info ? JSON.parse(info) : null
+  } catch (e) {
+    return null
+  }
+}
+
+// 从接口查询数据
+// 因为是异步操作,需要去数据库查数据,所以使用 \`query\` 前缀
+async function queryMemberInfo(id: number) {
+  try {
+    const res = await fetch(\`https://example.com/api/member/\${id}\`)
+    const json = await res.json()
+    return json
+  } catch (e) {
+    return null
+  }
+}

修改数据的函数,通常使用 saveupdatedelete 等会变更数据的动词作为前缀,一般情况下:

  • 数据存储可以统一使用 save
  • 如果要区分新建或者更新操作,可以对新建操作使用 create ,对更新操作使用 update
  • 删除使用 deleteremove
  • 如果是 Node.js 程序需要对文件写入内容,使用 write
  • 表单验证合法性等场景,可以使用 verifycheck
  • 切换可见性可以用 showhide ,如果是写在一个函数里,可以使用 toggle
  • 发送验证码、发送邮件等等可以使用 send
  • 打开路由、打开外部 URL 可以使用 open

当然以上只是一些常用到的命名技巧建议,对于简单的业务,例如一个 H5 活动页面,也可以在同步操作时使用 set 表示可以直接设置,在异步操作时使用 save 表示需要提交保存。

ts
// 将数据保存至本地存储
+// 因为是同步操作,所以使用 \`set\` 前缀
+function setLoginInfo(info: LoginInfo) {
+  try {
+    localStorage.setItem('loginInfo', JSON.stringify(info))
+    return true
+  } catch (e) {
+    return false
+  }
+}
+
+// 将数据通过接口保存到数据库
+// 因为是异步操作,所以使用 \`save\` 前缀
+async function saveMemberInfo(id: number, data: MemberDTO) {
+  try {
+    const res = await fetch(\`https://example.com/api/member/\${id}\`, {
+      method: 'POST',
+      body: JSON.stringify(data),
+    })
+    const json = await res.json()
+    return json.code === 200
+  } catch (e) {
+    return false
+  }
+}

Class 类上的方法和函数命名规则一样,但 Class 本身使用 PascalCase 命名法,代表这是一个类,在调用的时候需要 new

ts
// 类使用 PascalCase 命名法
+class Hello {
+  name: string
+
+  constructor(name: string) {
+    this.name = name
+  }
+
+  say() {
+    console.log(\`Hello \${this.name}\`)
+  }
+}
+
+const hello = new Hello('World')
+hello.say() // Hello World

希望曾经在命名上有过困扰的开发者,不再有此烦恼,编写代码更加高效率!

`,217);function D(F,i,C,A,d,u){const a=n("GitalkComment"),l=n("ClientOnly");return o(),e("div",null,[y,s(l,null,{default:t(()=>[s(a,{issueId:118})]),_:1})])}const h=p(r,[["render",D]]);export{g as __pageData,h as default}; diff --git a/assets/engineering.md.43ce842b.js b/assets/engineering.md.43ce842b.js new file mode 100644 index 00000000..288e259c --- /dev/null +++ b/assets/engineering.md.43ce842b.js @@ -0,0 +1,291 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{v as y,b as D,t as s,O as n,F as o,L as e,X as F,R as p,M as t}from"./chunks/framework.0d8bea05.js";const i=p(`

了解前端工程化

现在前端的工作与以前的前端开发已经完全不同了。

刚接触前端的时候,做一个页面,是先创建 HTML 页面文件写页面结构,再在里面写 CSS 代码美化页面,再根据需要写一些 JavaScript 代码增加交互功能,需要几个页面就创建几个页面,相信大家的前端起步都是从这个模式开始的。

而实际上的前端开发工作,早已进入了前端工程化开发的时代,已经充满了各种现代化框架、预处理器、代码编译…

最终的产物也不再单纯是多个 HTML 页面,经常能看到 SPA / SSR / SSG 等词汇的身影。

TIP

现代化的开发概念 一节会介绍这些词汇的含义。

传统开发的弊端

在了解什么是前端工程化之前,先回顾一下传统开发存在的一些弊端,这样更能知道为什么需要它。

在传统的前端开发模式下,前端工程师大部分只需要单纯地写写页面,都是在 HTML 文件里直接编写代码,所需要的 JavaScript 代码是通过 script 标签以内联或者文件引用的形式放到 HTML 代码里的,当然 CSS 代码也是一样的处理方式。

例如这样:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Document</title>
+  </head>
+  <body>
+    <!-- 引入 JS 文件 -->
+    <script src="./js/lib-1.js"></script>
+    <script src="./js/lib-2.js"></script>
+    <!-- 引入 JS 文件 -->
+  </body>
+</html>

如演示代码,虽然可以把代码分成多个文件来维护,这样可以有效降低代码维护成本,但在实际开发过程中,还是会存在代码运行时的一些问题。

一个常见的案例

继续用上面的演示代码,来看一个最简单的一个例子。

先在 lib-1.js 文件里,声明一个变量:

js
var foo = 1

再在 lib-2.js 文件里,也声明一个变量(没错,也是 foo ):

js
var foo = 2

然后在 HTML 代码里追加一个 script ,打印这个值:

html
<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+</head>
+<body>
+
+  <!-- 引入 JS 文件 -->
+  <script src="./js/lib-1.js"></script>
+  <script src="./js/lib-2.js"></script>
+  <!-- 引入 JS 文件 -->
+
+  <!-- 假设这里是实际的业务代码 -->
+  <script>
+    console.log(foo)
+  </script>
+  <!-- 假设这里是实际的业务代码 -->
+
+</body>
+</html>

先猜猜会输出什么? —— 答案是 2

如果在开发的过程中,不知道在 lib-2.js 文件里也声明了一个 foo 变量,一旦在后面的代码里预期了 foo + 2 === 3 ,那么这样就得不到想要的结果(因为 lib-1.js 里的 foo11 + 2 等于 3 ) 。

原因是 JavaScript 的加载顺序是从上到下,当使用 var 声明变量时,如果命名有重复,那么后加载的变量会覆盖掉先加载的变量。

这是使用 var 声明的情况,它允许使用相同的名称来重复声明,那么换成 let 或者 const 呢?

虽然不会出现重复声明的情况,但同样会收到一段报错:

bash
Uncaught SyntaxError: Identifier 'foo' has already been declared (at lib-2.js:1:1)

这次程序直接崩溃了,因为 letconst 无法重复声明,从而抛出这个错误,程序依然无法正确运行。

更多问题

以上只是一个最简单的案例,就暴露出了传统开发很大的弊端,然而并不止于此,实际上,存在诸如以下这些问题:

  1. 如本案例,可能存在同名的变量声明,引起变量冲突
  2. 引入多个资源文件时,比如有多个 JS 文件,在其中一个 JS 文件里面使用了在别处声明的变量,无法快速找到是在哪里声明的,大型项目难以维护
  3. 类似第 1 、 2 点提到的问题无法轻松预先感知,很依赖开发人员人工定位原因
  4. 大部分代码缺乏分割,比如一个工具函数库,很多时候需要整包引入到 HTML 里,文件很大,然而实际上只需要用到其中一两个方法
  5. 由第 4 点大文件延伸出的问题, script 的加载从上到下,容易阻塞页面渲染
  6. 不同页面的资源引用都需要手动管理,容易造成依赖混乱,难以维护
  7. 如果要压缩 CSS 、混淆 JS 代码,也是要人力操作使用工具去一个个处理后替换,容易出错

当然,实际上还会有更多的问题会遇到。

工程化带来的优势

为了解决传统开发的弊端,前端也开始引入工程化开发的概念,借助工具来解决人工层面的烦琐事情。

开发层面的优势

传统开发的弊端 里,主要列举的是开发层面的问题,工程化首要解决的当然也是在开发层面遇到的问题。

在开发层面,前端工程化有以下这些好处:

  1. 引入了模块化和包的概念,作用域隔离,解决了代码冲突的问题
  2. 按需导出和导入机制,让编码过程更容易定位问题
  3. 自动化的代码检测流程,有问题的代码在开发过程中就可以被发现
  4. 编译打包机制可以让使用开发效率更高的编码方式,比如 Vue 组件、 CSS 的各种预处理器
  5. 引入了代码兼容处理的方案( e.g. Babel ),可以让开发者自由使用更先进的 JavaScript 语句,而无需顾忌浏览器兼容性,因为最终会转换为浏览器兼容的实现版本
  6. 引入了 Tree Shaking 机制,清理没有用到的代码,减少项目构建后的体积

还有非常多的体验提升,列举不完。而对应的工具,根据用途也会有非常多的选择,在后面的学习过程中,会一步一步体验到工程化带来的好处。

团队协作的优势

除了对开发者有更好的开发体验和效率提升,对于团队协作,前端工程化也带来了更多的便利,例如下面这些场景:

统一的项目结构

以前的项目结构比较看写代码的人的喜好,虽然一般在研发部门里都有 “团队规范” 这种东西,但靠自觉性去配合的事情,还是比较难做到统一,特别是项目很赶的时候。

工程化后的项目结构非常清晰和统一,以 Vue 项目来说,通过脚手架创建一个新项目之后,它除了提供能直接运行 Hello World 的基础代码之外,还具备了如下的统一目录结构:

  • src 是源码目录
  • src/main.ts 是入口文件
  • src/views 是路由组件目录
  • src/components 是子组件目录
  • src/router 是路由目录

虽然也可以自行调整成别的结构,但根据笔者在多年的工作实际接触下来,以及从很多开源项目的代码里看到的,都是沿用脚手架创建的项目结构(不同脚手架创建的结构会有所不同,但基于同一技术栈的项目基本上都具备相同的结构)。

TIP

脚手架的升级与配置 一章可以学习如何使用脚手架创建 Vue 3 项目。

统一的代码风格

不管是接手其他人的代码或者是修改自己不同时期的代码,可能都会遇到这样的情况,例如一个模板语句,上面包含了很多属性,有的人喜欢写成一行,属性多了维护起来很麻烦,需要花费较多时间辨认:

vue
<template>
+  <div class="list">
+    <!-- 这个循环模板有很多属性 -->
+    <div class="item" :class="{ \`top-\${index + 1}\`: index < 3 }" v-for="(item, index)
+    in list" :key="item.id" @click="handleClick(item.id)">
+      <span>{{ item.text }}</span>
+    </div>
+    <!-- 这个循环模板有很多属性 -->
+  </div>
+</template>

而工程化配合统一的代码格式化规范,可以让不同人维护的代码,最终提交到 Git 上的时候,风格都保持一致,并且类似这种很多属性的地方,都会自动帮格式化为一个属性一行,维护起来就很方便:

vue
<template>
+  <div class="list">
+    <!-- 这个循环模板有很多属性 -->
+    <div
+      class="item"
+      :class="{ \`top-\${index + 1}\`: index < 3 }"
+      v-for="(item, index) in list"
+      :key="item.id"
+      @click="handleClick(item.id)"
+    >
+      <span>{{ item.text }}</span>
+    </div>
+    <!-- 这个循环模板有很多属性 -->
+  </div>
+</template>

同样的,写 JavaScript 时也会有诸如字符串用双引号还是单引号,缩进是 Tab 还是空格,如果用空格到底是要 4 个空格还是 2 个空格等一堆 “没有什么实际意义” 、但是不统一的话协作起来又很难受的问题……

在工程化项目这些问题都可以交给程序去处理,在书写代码的时候,开发者可以先按照自己的习惯书写,然后再执行命令进行格式化,或者是在提交代码的时候配合 Git Hooks 自动格式化,都可以做到统一风格。

TIP

添加协作规范 一节可以学习如何给项目添加统一的协作规范。

可复用的模块和组件

传统项目比较容易被复用的只有 JavaScript 代码和 CSS 代码,会抽离公共函数文件上传到 CDN ,然后在 HTML 页面里引入这些远程资源, HTML 代码部分通常只有由 JS 创建的比较小段的 DOM 结构。

并且通过 CDN 引入的资源,很多时候都是完整引入,可能有时候只需要用到里面的一两个功能,却要把很大的完整文件都引用进来。

这种情况下,在前端工程化里,就可以抽离成一个开箱即用的 npm 组件包,并且很多包都提供了模块化导出,配合构建工具的 Tree Shaking ,可以抽离用到的代码,没有用到的其他功能都会被抛弃,不会一起发布到生产环境。

TIP

依赖包和插件 一节可以学习如何查找和使用开箱即用的 npm 包。

代码健壮性有保障

传统的开发模式里,只能够写 JavaScript ,而在工程项目里,可以在开发环境编写带有类型系统的 TypeScript ,然后再编译为浏览器能认识的 JavaScript 。

在开发过程中,编译器会检查代码是否有问题,比如在 TypeScript 里声明了一个布尔值的变量,然后不小心将它赋值为数值:

ts
// 声明一个布尔值变量
+let bool: boolean = true
+
+// 在 TypeScript ,不允许随意改变类型,这里会报错
+bool = 3

编译器检测到这个行为的时候就会抛出错误:

bash
# ...
+return new TSError(diagnosticText, diagnosticCodes);
+           ^
+TSError:  Unable to compile TypeScript:
+src/index.ts:2:1 - error TS2322: Type 'number' is not assignable to type 'boolean'.
+
+2 bool = 3
+  ~~~~
+# ...

从而得以及时发现问题并修复,减少线上事故的发生。

团队开发效率高

在前后端合作环节,可以提前 Mock 接口与后端工程师同步开发,如果遇到跨域等安全限制,也可以进行本地代理,不受跨域困扰。

前端工程在开发过程中,还有很多可以交给程序处理的环节,像前面提到的代码格式化、代码检查,还有在部署上线的时候也可以配合 CI/CD 完成自动化流水线,不像以前改个字都要找服务端工程师去更新,可以把非常多的人力操作剥离出来交给程序。

求职竞争上的优势

近几年前端开发领域的相关岗位,都会在招聘详情里出现类似的描述:

熟悉 Vue / React 等主流框架,对前端组件化和模块化有深入的理解和实践
熟悉面向组件的开发模式,熟悉 Webpack / Vite 等构建工具
熟练掌握微信小程序开发,熟悉 Taro 框架或 uni-app 框架优先
熟悉 Scss / Less / Stylus 等预处理器的使用
熟练掌握 TypeScript 者优先
有良好的代码风格,结构设计与程序架构者优先
了解或熟悉后端开发者优先(如 Java / Go / Node.js )

知名企业对 1-3 年工作经验的初中级工程师,更是明确要求具备前端工程化开发的能力:

`,73),C=p('

组件化开发、模块化开发、 Webpack / Vite 构建工具、 Node.js 开发… 这些技能都属于前端工程化开发的知识范畴,不仅在面试的时候会提问,入职后新人接触的项目通常也是直接指派前端工程化项目,如果能够提前掌握相关的知识点,对求职也是非常有帮助的!

Vue.js 与工程化

在上一节提到了前端工程化 在求职竞争上的优势 ,里面列出的招聘要求例子都提及到了 Vue 和 React 这些主流的前端框架,前端框架是前端工程化开发里面不可或缺的成员。

框架能够充分的利用前端工程化相关的领先技术,不仅在开发层面降低开发者的上手难度、提升项目开发效率,在构建出来的项目成果上也有着远比传统开发更优秀的用户体验。

本书结合 Vue.js 框架 3.0 系列的全新版本,将从项目开发的角度,在帮助开发者入门前端工程化的同时,更快速的掌握一个流行框架的学习和使用。

了解 Vue.js 与全新的 3.0 版本

Vue.js(发音为 /vjuː/ ,类似 view )是一个易学易用,性能出色,适用场景丰富的 Web 前端框架,从 2015 年发布 1.0 版本以来,受到了全世界范围的前端开发者喜爱,已成为当下最受欢迎的前端框架之一。

',7),d=p(`

Vue 一直紧跟广大开发者的需求迭代发展,保持着它活跃的生命力。

2020 年 9 月 18 日, Vue.js 发布了 3.0 正式版,在大量开发者长达约一年半的使用和功能改进反馈之后, Vue 又于 2022 年 2 月 7 日发布了 3.2 版本,同一天, Vue 3 成为 Vue.js 框架全新的默认版本 (在此之前,通过 npm install vue 的默认版本还是 Vue 2 )。

也就是在未来的日子里, Vue 3 将随着时间的推移,逐步成为 Vue 生态的主流版本,是时候学习 Vue 3 了!

如果还没有体验过 Vue ,可以把以下代码复制到的代码编辑器,保存成一个 HTML 文件(例如: hello.html ),并在浏览器里打开访问,同时请唤起浏览器的控制台面板(例如 Chrome 浏览器是按 F12 或者鼠标右键点 “检查” ),在 Console 面板查看 Log 的打印。

html
<!-- 这是使用 Vue 实现的 demo -->
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Hello Vue</title>
+    <script src="https://unpkg.com/vue@3"></script>
+  </head>
+  <body>
+    <div id="app">
+      <!-- 通过 \`{{ 变量名 }}\` 语法渲染响应式变量 -->
+      <p>Hello {{ name }}!</p>
+
+      <!-- 通过 \`v-model\` 双向绑定响应式变量 -->
+      <!-- 通过 \`@input\` 给输入框绑定输入事件 -->
+      <input
+        type="text"
+        v-model="name"
+        placeholder="输入名称打招呼"
+        @input="printLog"
+      />
+
+      <!-- 通过 \`@click\` 给按钮绑定点击事件 -->
+      <button @click="reset">重置</button>
+    </div>
+
+    <script>
+      const { createApp, ref } = Vue
+      createApp({
+        // \`setup\` 是一个生命周期钩子
+        setup() {
+          // 默认值
+          const DEFAULT_NAME = 'World'
+
+          // 用于双向绑定的响应式变量
+          const name = ref(DEFAULT_NAME)
+
+          // 打印响应式变量的值到控制台
+          function printLog() {
+            // \`ref\` 变量需要通过 \`.value\` 操作值
+            console.log(name.value)
+          }
+
+          // 重置响应式变量为默认值
+          function reset() {
+            name.value = DEFAULT_NAME
+            printLog()
+          }
+
+          // 需要 \`return\` 出去才可以被模板使用
+          return { name, printLog, reset }
+        },
+      }).mount('#app')
+    </script>
+  </body>
+</html>

这是一个基于 Vue 3 组合式 API 语法的 demo ,它包含了两个主要功能:

  1. 可以在输入框修改输入内容,上方的 Hello World! 以及浏览器控制台的 Log 输出,都会随着输入框内容的变更而变化
  2. 可以点击 “重置” 按钮,响应式变量被重新赋值的时候,输入框的内容也会一起变化为新的值

这是 Vue 的特色之一:数据的双向绑定。

对比普通的 HTML 文件需要通过输入框的 oninput 事件手动编写视图的更新逻辑, Vue 的双向绑定功能大幅度减少了开发过程的编码量。

在未接触 Vue 这种编程方式之前,相信大部分人首先想到的是直接操作 DOM 来实现需求,为了更好的进行对比,接下来用原生 JavaScript 实现一次相同的功能:

html
<!-- 这是使用原生 JavaScript 实现的 demo -->
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Hello World</title>
+  </head>
+  <body>
+    <div id="app">
+      <!-- 通过一个 \`span\` 标签来指定要渲染数据的位置 -->
+      <p>Hello <span id="name"></span>!</p>
+
+      <!-- 通过 \`oninput\` 给输入框绑定输入事件 -->
+      <input
+        id="input"
+        type="text"
+        placeholder="输入名称打招呼"
+        oninput="handleInput()"
+      />
+
+      <!-- 通过 \`onclick\` 给按钮绑定点击事件 -->
+      <button onclick="reset()">重置</button>
+    </div>
+
+    <script>
+      // 默认值
+      const DEFAULT_NAME = 'World'
+
+      // 要操作的 DOM 元素
+      const nameElement = document.querySelector('#name')
+      const inputElement = document.querySelector('#input')
+
+      // 处理输入
+      function handleInput() {
+        const name = inputElement.value
+        nameElement.innerText = name
+        printLog()
+      }
+
+      // 打印输入框的值到控制台
+      function printLog() {
+        const name = inputElement.value
+        console.log(name)
+      }
+
+      // 重置 DOM 元素的文本和输入框的值
+      function reset() {
+        nameElement.innerText = DEFAULT_NAME
+        inputElement.value = DEFAULT_NAME
+        printLog()
+      }
+
+      // 执行一次初始化,赋予 DOM 元素默认文本和输入框的默认值
+      window.addEventListener('load', reset)
+    </script>
+  </body>
+</html>

虽然两个方案总的代码量相差不大,但可以看到两者的明显区别:

  1. Vue 只需要对一个 name 变量的进行赋值操作,就可以轻松实现视图的同步更新
  2. 使用原生 JavaScript 则需要频繁的操作 DOM 才能达到输入内容即时体现在文本 DOM 上面,并且还要考虑 DOM 是否已渲染完毕,否则操作会出错

Vue 的这种编程方式,称之为 “数据驱动” 编程。

如果在一个页面上频繁且大量的操作真实 DOM ,频繁的触发浏览器回流( Reflow )与重绘( Repaint ),会带来很大的性能开销,从而造成页面卡顿,在大型项目的性能上很是致命。

而 Vue 则是通过操作虚拟 DOM ( Virtual DOM ,简称 VDOM ),每一次数据更新都通过 Diff 算法找出需要更新的节点,只更新对应的虚拟 DOM ,再去映射到真实 DOM 上面渲染,以此避免频繁或大量的操作真实 DOM 。

TIP

虚拟 DOM 是一种编程概念,是指将原本应该是真实 DOM 元素的 UI 界面,用数据结构来组织起完整的 DOM 结构,再同步给真实 DOM 渲染,减少浏览器的回流与重绘。

在 JavaScript 里,虚拟 DOM 的表现是一个 Object 对象,其中需要包含指定的属性(例如 Vue 的虚拟 DOM 需要用 type 来指定当前标签是一个 <div /> 还是 <span /> ),然后框架会根据对象的属性去转换为 DOM 结构并最终完成内容的显示。

更多关于 Vue 虚拟 DOM 和性能优化可以查看官网的 渲染机制 一章进行了解。

Vue 3.0 版本还引入了组合式 API 的概念,更符合软件工程 “高内聚,低耦合” 的思想,让开发者可以更灵活的管理自己的逻辑代码,更方便的进行抽离封装再复用,不管是大型项目还是流水线业务,开箱即用的逻辑代码都是提升开发效率的利器。

Vue 与工程化之间的关联

在已经对 Vue 做了初步了解之后,可能有读者会问:“既然 Vue 的使用方式也非常简单,可以像 jQuery 这些经典类库一样在 HTML 引入使用,那么 Vue 和工程化有什么关联呢?”

Vue.js 是一个框架,框架除了简化编码过程中的复杂度之外,面对不同的业务需求还提供了通用的解决方案,而这些解决方案,通常是将前端工程化里的很多种技术栈组合起来串成一条条技术链,一环扣一环,串起来就是一个完整的工程化项目。

举一个常见的例子,比如上一节内容 了解 Vue.js 与全新的 3.0 版本 里的 demo 是一个简单的 HTML 页面,如果业务稍微复杂一点,比如区分了 “首页” 、 “列表页” 、 “内容页” 这样涉及到多个页面,传统的开发方案是通过 A 标签跳转到另外一个页面,在跳转期间会产生 “新页面需要重新加载资源、会有短暂白屏” 等情况,用户体验不太好。

Vue 提供了 Vue Router 实现路由功能,利用 History API 实现单页面模式(可在 现代化的开发概念 部分了解区别),在一个 HTML 页面里也可以体验 “页面跳转” 这样的体验,但如果页面很多,所有代码都堆积在一个 HTML 页面里,就很难维护。

借助前端工程化的构建工具,开发者可以编写 .vue 单组件文件,将多个页面的代码根据其功能模块进行划分,可拆分到多个单组件文件里维护并进行合理复用,最终通过构建工具编译再合并,最终生成浏览器能访问的 HTML / CSS / JS 文件,这样的开发过程,用户体验没有影响,但开发体验大大提升。

类似这样一个个业务场景会积少成多,把 Vue 和工程化结合起来,处理问题更高效更简单。

选择 Vue 入门工程化的理由

虽然前端的流行框架有主流的 Angular 、 React 和 Vue ,也有新兴的 Svelte 等等,每一个框架都有自己的特色,那为什么建议选择 Vue 来入门工程化呢?

最主要的两个原因是:

  1. 职场对 Vue 技术栈的需求量大,容易找工作
  2. 上手门槛低,会一些基础的 HTML / CSS / JavaScript 语法知识,就能够轻松上手 Vue 的组件开发

第一个原因在 求职竞争上的优势 已有进行过说明,掌握一门流行框架已经是前端岗位必备的技能,几乎所有公司在招聘前端工程师的时候都要求会 Vue 。

这里主要讲讲第二个原因,在 Vue 与工程化之间的关联 里提到了开发者可以编写 .vue 文件,这是一个 Vue 专属的文件扩展名,官方名称是 Single-File Component ,简称 SFC ,也就是单文件组件。

.vue 文件最大的特色就是支持像编写 .html 文件一样,在文件里写 HTML / CSS / JS 代码,不仅结构相似,在代码书写上,两者的语法也是十分接近:

.vue 文件.html 文件
<template /> 部分HTML 代码
<style /> 部分CSS 代码
<script /> 部分JavaScript 代码

下面就是一个最基础的 Vue 组件结构,可以看到和 HTML 文件是非常的相似:

vue
<!-- \`template\` 对应 HTML 代码 -->
+<template>
+  <div>
+    <!-- 一些 HTML  -->
+  </div>
+</template>
+
+<!-- \`script\` 部分对应 JavaScript 代码 -->
+<!-- 还支持其他语言,例如 \`lang="ts"\` 代表当前使用 TypeScript 编写 -->
+<script>
+export default {
+  // 这里是变量、函数等逻辑代码
+}
+</script>
+
+<!-- \`style\` 部分对应 CSS 代码 -->
+<!-- 还支持开启 \`scoped\` 标识,让 CSS 代码仅对当前组件生效,不会全局污染 -->
+<style scoped>
+/* 一些 CSS 代码 */
+</style>

Vue 组件不仅支持这些语言的所有基础用法,还增加了非常多更高效的功能,在后面 Vue3 教程的 单组件的编写 一章会有详细的介绍。

现代化的开发概念

在本章最开始的时候提到了 SPA / SSR / SSG 等词汇,这些词汇是一些现代前端工程化开发的概念名词缩写,代表着不同的开发模式和用户体验。

当下主流的前端框架都提供了这些开发模式的支持,因此在学习前端工程化和 Vue 开发的过程中,会不定期的看到这一类词汇,在实际工作业务的技术选型时,面对不同的业务场景也要考虑好需要使用什么样的开发模式,提前了解这些概念,对以后的工作也会很有帮助。

MPA 与 SPA

首先来看 MPA 与 SPA ,这代表着两个完全相反的开发模式和用户体验,它们的全称和中文含义如下:

名词全称中文
MPAMulti-Page Application多页面应用
SPASingle-Page Application单页面应用

多页面应用

MPA 多页面应用是最传统的网站体验,当一个网站有多个页面时,会对应有多个实际存在的 HTML 文件,访问每一个页面都需要经历一次完整的页面请求过程:

bash
# 传统的页面跳转过程
+
+从用户点击跳转开始:
+---> 浏览器打开新的页面
+---> 请求【所有】资源
+---> 加载 HTML 、CSS  JS  图片等资源
+---> 完成新页面的渲染
MPA 的优点

作为最传统也是最被广泛运用的模式,自然有它的优势存在:

  • 首屏加载速度快

因为 MPA 的页面源码都是实实在在的写在 HTML 文件里,所以当 HTML 文件被访问成功,内容也就随即呈现(在不考虑额外的 CSS 、 图片加载速度的情况下,这种模式的内容呈现速度是最快的)。

  • SEO 友好,容易被搜索引擎收录

如果读者有稍微了解过一些 SEO 知识,会知道除了网页的 TKD 三要素之外,网页的内容也影响收录的关键因素,传统的多页面应用,网页的内容都是直接位于 HTML 文件内,例如下面这个有很多内容的网页:

`,51),A=o("p",null,[e("右键查看该网页的源代码,可以看到网页内容对应的 HTML 结构也是包含在 "),o("code",null,".html"),e(" 文件里。")],-1),h=p(`

TIP

网页的 TKD 三要素是指一个网页的三个关键信息,含义如下:

T ,指 Title ,网站的标题,即网页的 <title>网站的标题</title> 标签。

K ,指 Keywords ,网站的关键词,即网页的 <meta name="Keywords" content="关键词1,关键词2,关键词3" /> 标签。

D ,指 Description ,网站的描述,即网页的 <meta name="description" content="网站的描述" /> 标签。

这三个要素标签都位于 HTML 文件的 <head /> 标签内。

  • 容易与服务端语言结合

由于传统的页面都是由服务端直出,所以可以使用 PHP 、 JSP 、 ASP 、 Python 等非前端语言或技术栈来编写页面模板,最终输出 HTML 页面到浏览器访问。

MPA 的缺点

说完 MPA 的优点,再来看看它的缺点,正因为有这些缺点的存在,才会催生出其他更优秀的开发模式出现。

  • 页面之间的跳转访问速度慢

正如它的访问流程,每一次页面访问都需要完整的经历一次渲染过程,哪怕从详情页 A 的 “相关阅读” 跳转到详情页 B ,这种网页结构一样,只有内容不同的两个页面,也需要经历这样的过程。

  • 用户体验不够友好

如果网页上的资源较多或者网速不好,这个过程就会有明显的卡顿或者布局错乱,影响用户体验。

  • 开发成本高

传统的多页面模式缺少前端工程化的很多优秀技术栈支持,前端开发者在刀耕火种的开发过程中效率低下。如果是基于 PHP 等非前端语言开发,工作量通常更是压在一名开发者身上,无法做到前后端分离来利用好跨岗位协作。

TIP

此处列举的多页面应用问题均指传统开发模式下的多页面,之所以特地说明,是因为后文还会有新的技术栈来实现多页面应用,但实现原理和体验并不一样。

单页面应用

正因为传统的多页面应用存在了很多无法解决的开发问题和用户体验问题,催生了现代化的 SPA 单页面应用技术的诞生。

SPA 单页面应用是现代化的网站体验,与 MPA 相反,不论站点内有多少个页面,在 SPA 项目实际上只有一个 HTML 文件,也就是 index.html 首页文件。

它只有第一次访问的时候才需要经历一次完整的页面请求过程,之后的每个内部跳转或者数据更新操作,都是通过 AJAX 技术来获取需要呈现的内容并只更新指定的网页位置。

TIP

AJAX 技术( Asynchronous JavaScript and XML )是指在不离开页面的情况下,通过 JavaScript 发出 HTTP 请求,让网页通过增量更新的方式呈现给用户界面,而不需要刷新整个页面来重新加载,是一种 “无刷体验” 。

SPA 在页面跳转的时候,地址栏也会发生变化,主要有以下两种方式:

  1. 通过修改 Location:hash 修改 URL 的 Hash 值(也就是 # 号后面部分),例如从 https://example.com/#/foo 变成 https://example.com/#/bar
  2. 通过 History API 的 pushState 方法更新 URL ,例如从 https://example.com/foo 变成 https://example.com/bar

这两个方式的共同特点是更新地址栏 URL 的时候,均不会刷新页面,只是单纯的变更地址栏的访问地址,而网页的内容则通过 AJAX 更新,配合起来就形成了一种网页的 “前进 / 后退” 等行为效果。

TIP

Vue Router 默认提供了这两种 URL 改变方式的支持,分别是 createWebHashHistory 的 Hash 模式和 createWebHistory 对应的 History 模式,在 路由的使用 一章可以学习更多 Vue 路由的使用。

理解了实现原理之后,可以把 SPA 的请求过程简化为如下步骤:

bash
# SPA 页面跳转过程
+
+从用户点击跳转开始:
+---> 浏览器通过 \`pushState\` 等方法更新 URL
+---> 请求接口数据(如果有涉及到前后端交互)
+---> 通过 JavaScript 处理数据,拼接 HTML 片段
+--->  HTML 片段渲染到指定位置,完成页面的 “刷新”
SPA 的优点

从上面的实现原理已经能总结出它的优势了:

  • 只有一次完全请求的等待时间(首屏加载)
  • 用户体验好,内部跳转的时候可以实现 “无刷切换”
  • 因为不需要重新请求整个页面,所以切换页面的时候速度更快
  • 因为没有脱离当前页面,所以 “页” 与 “页” 之间在切换过程中支持动画效果
  • 脱离了页面跳页面的框架,让整个网站形成一个 Web App ,更接近原生 App 的访问体验
  • 开发效率高,前后端分离,后端负责 API 接口,前端负责界面和联调,同步进行缩短工期

这也是为什么短短几年时间, SPA 的体验模式成为前端领域的主流。

SPA 的缺点

虽然 SPA 应用在使用过程中的用户体验非常好,但也有自身的缺点存在:

  • 首屏加载相对较慢

由于 SPA 应用的路由是由前端控制, SPA 在打开首页后,还要根据当前的路由再执行一次内容渲染,相对于 MPA 应用从服务端直出 HTML ,首屏渲染所花费的时间会更长。

  • 不利于 SEO 优化

由于 SPA 应用全程是由 JavaScript 控制内容的渲染,因此唯一的一个 HTML 页面 index.html 通常是一个空的页面,只有最基础的 HTML 结构,不仅无法设置每个路由页面的 TDK ,页面内容也无法呈现在 HTML 代码里,因此对搜索引擎来说,网站的内容再丰富,依然只是一个 “空壳” ,无法让搜索引擎进行内容爬取。

`,33),u=p('

为了减少用户等待过程中的焦虑感,可以通过增加 Loading 过程,或者 Skeleton 骨架屏等优化方案,但其实也是治标不治本,因此为了结合 SPA 和 MPA 的优点,又进一步催生出了更多实用的技术方案以适配更多的业务场景,在后面的小节将逐一介绍。

CSR 与 SSR

在了解了 MPA 与 SPA 之后,先了解另外两个有相关联的名词: CSR 与 SSR ,同样的,这一对也是代表着相反的开发模式和用户体验,它们的全称和中文含义如下:

名词全称中文
CSRClient-Side Rendering客户端渲染
SSRServer-Side Rendering服务端渲染

正如它们的名称,这两者代表的是渲染网页过程中使用到的技术栈。

客户端渲染

MPA 多页面应用与 SPA 单页面应用 部分的介绍过的 SPA 单页面应用,正是基于 CSR 客户端渲染实现的(因此大部分情况下, CSR 等同于 SPA ,包括实现原理和优势),这是一种利用 AJAX 技术,把渲染工作从服务端转移到客户端完成,不仅客户端的用户体验更好,前后端分离的开发模式更加高效。

但随之而来的首屏加载较慢、不利于 SEO 优化等缺点,而 SPA 的这几个缺点,却是传统 MPA 多页面应用所具备的优势,但同样的, MPA 也有着自己开发成本高、用户体验差等问题。

既然原来的技术方案无法完美满足项目需求,因此在结合 MPA 的优点和 SPA 的优点之后,一种新的技术随之诞生,这就是 SSR 服务端渲染。

服务端渲染

和传统的 MPA 使用 PHP / JSP 等技术栈做服务端渲染不同,现代前端工程化里的 SSR 通常是指使用 Node.js 作为服务端技术栈。

TIP

工程化神器 Node.js 一节会介绍 Node ,以及它对前端工程化带来的重大变化,现代前端工程化发展离不开它的存在。

传统的服务端渲染通常由后端开发者一起维护前后端代码,需要写后端语言支持的模板、 JavaScript 代码维护成本也比较高;而 SSR 服务端渲染则是交给前端开发者来维护,利用 Node 提供的能力进行同构渲染,由于本身前后端都使用 JavaScript 编写,维护成本也大大的降低。

SSR 技术利用的同构渲染方案( Isomorphic Rendering ),指的是一套代码不仅可以在客户端运行,也可以在服务端运行,在一些合适的时机先由服务端完成渲染( Server-Side Rendering )再直出给客户端激活( Client-Side Hydration ),这种开发模式带来了:

  • 更好的 SEO 支持,解决了 SPA 单页面应用的痛点
  • 更快的首屏加载速度,保持了 MPA 多页面应用的优点
  • 和 SPA 一样支持前后端分离,开发效率依然很高
  • 有更好的客户端体验,当用户完全打开页面后,本地访问过程中也可以保持 SPA 单页面应用的体验
  • 统一的心智模型,由于支持同构,因此没有额外的心智负担

那么,使用 Vue 开发项目时,应该如何实现 SSR 呢?

Vue 的 SSR 支持非常好, Vue 官方不仅提供了一个 Vue.js 服务器端渲染指南 介绍了基于 Vue 的 SSR 入门实践,还有基于 Vue 的 Nuxt.jsQuasar 框架帮助开发者更简单地落地 SSR 开发,构建工具 Vite 也有内置的 Vue SSR 支持。

Pre-Rendering 与 SSG

在介绍了 SSR 服务端渲染技术后,读者可能会想到一个问题,就是 SSR 的开发成本总归比较高,如果本身项目比较简单,例如一个静态博客,或者静态官网、落地页等内容不多,仅需要简单的 SEO 支持的项目需求,是否有更简便的方案呢?

以下两种方案正是用于满足这类需求的技术:

名词全称中文
Pre-RenderingPre-Rendering预渲染
SSGStatic-Site Generation静态站点生成

预渲染

预渲染也是一种可以让 SPA 单页面应用 解决 SEO 问题的技术手段。

预渲染的原理是在构建的时候启动无头浏览器( Headless Browser ),加载页面的路由并将访问结果按照路由的路径保存到静态 HTML 文件里,这样部署到服务端的页面,不再是一个空的 HTML 页面,而是有真实内容的存在,但由于只在构建时运行,因此用户每次访问的时候 HTML 里的内容不会产生变化,直到下一次构建。

TIP

无头浏览器( Headless Browser ),指没有 GUI 界面的浏览器,使用代码通过编程接口来控制浏览器的行为,常用于网络爬虫、自动化测试等场景,预渲染也使用它来完成页面的渲染,以获取渲染后的代码来填充 HTML 文件。

预渲染和 服务端渲染 最大的区别在于,预渲染只在构建的时候就完成了页面内容的输出(发生在用户请求前),因此构建后不论用户何时访问, HTML 文件里的内容都是构建的时候的那份内容,所以预渲染适合一些简单的、有一定的 SEO 要求但对内容更新频率没有太高要求、内容多为静态展示的页面。

例如企业用于宣传的官网页面、营销活动的推广落地页都非常适合使用预渲染技术,现代的构建工具都提供了预渲染的内置实现,例如这个教程: 用 Vite 更简单的解决 Vue3 项目的预渲染问题 ,就是通过 Vite 的内置功能来实现预渲染,最终也运用到了公司的业务上。

静态站点生成

SSG 静态站点生成是基于预渲染技术,通过开放简单的 API 和配置文件,就让开发者可以实现一个预渲染静态站点的技术方案。

它可以让开发者定制站点的个性化渲染方案,但更多情况下,通常是作为一些开箱即用的技术产品来简化开发过程中的繁琐步骤,这一类技术产品通常称之为静态站点生成器( Static-Site Generator ,也是简称 SSG )。

常见的 SSG 静态站点生成器有:基于 Vue 技术的 VuePressVitePress ,自带了 Vue 组件的支持,还有基于 React 的 Docusaurus ,以及很多各有特色的生成器,例如 JekyllHugo 等等。

如果有写技术文档或者博客等内容创作需求,使用静态站点生成器是一个非常方便的选择,通常这一类产品还有非常多的个性化主题可以使用。

ISR 与 DPR

在现代化的开发概念这一节,从 MPA 多页面应用到 SPA 单页面应用 ,再到 CSR 客户端渲染和 SSR 服务端渲染 ,以及 Pre-Rendering 预渲染与 SSG 静态站点生成 ,似乎已经把所有常见的开发场景覆盖完了。

那接下来要讲的 ISR 和 DPR 又是什么用途的技术方案呢?先看看它们的全称和中文含义:

名词全称中文
ISRIncremental Site Rendering增量式的网站渲染
DPRDistributed Persistent Rendering分布式的持续渲染

当网站的内容体量达到一定程度的时候,从头开始构建进行预渲染所花费的时间会非常久,而实际上并不是所有页面的内容都需要更新,这两项技术的推出是为了提升大型项目的渲染效率。

ISR 增量式的网站渲染,通过区分 “关键页面” 和 “非关键页面” 进行构建,优先预渲染 “关键页面” 以保证内容的最新和正确,同时缓存到 CDN ,而 “非关键页面” 则交给用户访问的时候再执行 CSR 客户端渲染,并触发异步的预渲染缓存到 CDN 。

这样做的好处是,大幅度的提升了每次构建的时间,但由于只保证部分 “关键页面” 的构建和内容正确,所以访问 “非关键页面” 的时候,有可能先看到旧的内容,再由 CSR 刷新为新的内容,会丢失一部分用户体验。

更多 ISR 技术细节可以阅读 Netlify 的开发者体验总监 Cassidy Williams 的一篇文章: Incremental Static Regeneration: Its Benefits and Its Flaws

DPR 分布式的持续渲染则是为了解决 ISR 方案下可能访问到旧内容的问题,这也是由 Cassidy Williams 发起的一个提案,详情可在 GitHub 查看:Distributed Persistent Rendering (DPR)

由于目前这两项技术还在发展初期,能够支持的框架和服务还比较少,在这里建议作为一种技术知识储备提前了解,在未来的某一天有业务需要的时候,也可以知道有这样的方案可以解决问题。

工程化不止于前端

现代化的开发概念 部分所讲述的都是关于网页开发的变化,当然,前端这个岗位本身就是从页面开发发展起来的,自然还是离不开网页这个老本行。

但随着前端工程化的发展,前端越来越不止于写前端,已经有很多前端工程师利用前端工程化带来的优势,不仅仅只是做一个 Web 前端,开始逐步发展为一个全栈工程师,在企业内部承担起了更多的岗位职责,包括作者笔者也是。

之所以能做这么多事情,得益于 Node.js 在前端开发带来的翻天覆地的变化,可以在保持原有的 JavaScript 和 TypeScript 基础上,几乎没有过多的学习成本就可以过度到其他端的开发。

在了解 Node.js 之前,先来看看现在的前端开发工程师除了写 Web 前端,还可以做到哪些岗位的工作。

服务端开发

在传统的认知里,如果一个前端工程师想自己搭建一个服务端项目,需要学习 Java 、 PHP 、 Go 等后端语言,还需要学习 Nginx 、 Apache 等 Web Server 程序的使用,并使用这些技术来开发并部署一个项目的服务端。

现在的前端工程师可以利用 Node.js ,单纯使用 JavaScript 或者 TypeScript 来开发一个基于 Node 的服务端项目。

Node 本身是一个 JavaScript 的运行时,还提供了 HTTP 模块 可以启动一个本地 HTTP 服务,如果把 Node 项目部署到服务器上,就可以运行一个可对外访问的公网服务。

但 Node 的原生服务端开发成本比较高,因此在 GitHub 开源社区也诞生了很多更方便的、开箱即用、功能全面的服务端框架,根据它们的特点,可以简单归类如下:

ExpressKoaFastify 为代表的轻量级服务端框架,这一类框架的特点是 “短平快” ,对于服务端需求不高,只是跑一些小项目的话,开箱即用非常地方便,比如 Build 了一个 Vue 项目,然后提供一个读取静态目录的服务来访问它。

但是 “短平快” 框架带来了一些团队协作上的弊端,如果缺少一些架构设计的能力,很容易把一个服务端搭的很乱以至于难以维护,比如项目的目录结构、代码的分层设计等等,每个创建项目的人都有自己的想法和个人喜好,就很难做到统一管理。

因此在这些框架的基础上,又诞生了以 Nest (底层基于 Express ,可切换为 Fastify )、 Egg (基于 Koa )为代表的基于 MVC 架构的企业级服务端框架,这一类框架的特点是基于底层服务进行了更进一步的架构设计并实现了代码分层,还自带了很多开箱即用的 Building Blocks ,例如 TypeORM 、WebSockets 、Swagger 等等,同样也是开箱即用,对大型项目的开发更加友好。

TIP

当然, Node.js 所做的事情是解决服务端程序部分的工作,如果涉及到数据存储的需求,学习 MySQL 和 Redis 的技术知识还是必不可少的!

App 开发

常规的 Native App 原生开发需要配备两条技术线的支持:使用 Java / Kotlin 语言开发 Android 版本,使用 Objective-C / Swift 语言开发 iOS 版本,这对于创业团队或者个人开发者来说都是一个比较高的开发成本。

前端开发者在项目组里对 App 的作用通常是做一些活动页面、工具页面内嵌到 App 的 WebView 里,如果是在一些产品比较少的团队里,例如只有一个 App 产品,那么前端的存在感会比较低。

而 Hybrid App 的出现,使得前端开发者也可以使用 JavaScript / TypeScript 来编写混合 App ,只需要了解简单的打包知识,就可以参与到一个 App 的开发工作中。

开发 Hybrid App 的过程通常称为混合开发,最大的特色就是一套代码可以运行到多个平台,这是因为整个 App 只有一个基座,里面的 App 页面都是使用 UI WebView 来渲染的 Web 界面,因此混合开发的开发成本相对于原生开发是非常低的,通常只需要一个人 / 一个小团队就可以输出双平台的 App ,并且整个 App 的开发周期也会更短。

在用户体验方面, Hybrid App 相对于 Native App ,一样可以做到:

  • 双平台的体验一致性
  • 支持热更新,无需用户重新下载整个 App
  • 内置的 WebView 在交互体验上也可以做到和系统交互,比如读取 / 存储照片、通讯录,获取定位等等
  • 支持 App Push 系统通知推送
  • 还有很多 Native App 具备的功能

基本上 Native App 的常见功能,在 Hybrid App 都能满足。

而且大部分情况下,在构建 Hybrid App 的时候还可以顺带输出一个 Web App 版本,也就是让这个 App 在被用户下载前,也有一模一样的网页版可以体验,这对于吸引新用户是非常有用的。

在混合开发的过程中,通常是由前端开发者来负责 App 项目从 “开发” 到 “打包” 再到 “发版” 的整个流程,在开发的过程中是使用常见的前端技术栈,例如目前主流的有基于 Vue 的 uni-app 、基于 React 的 React Native 等等,这些 Hybrid 框架都具备了 “学习成本低、开发成本低、一套代码编译多个平台” 的特点。

在 App 开发完毕后,使用 Hybrid 框架提供的 CLI 工具编译出 App 资源包,再根据框架提供的原生基座打包教程去完成 Android / iOS 的安装包构建,这个环节会涉及到原生开发的知识,例如 Android 包的构建会使用到 Android Studio ,但整个过程使用到原生开发的环节非常少,几乎没有太高的学习门槛。

桌面程序开发

放在以前要开发一个 Windows 桌面程序,需要用上 QT / WPF / WinForm 等技术栈,还要学习 C++ / C# 之类的语言,对于只想在业余写几个小工具的开发者来说,上手难度和学习成本都很高,但在前端工程化的时代里,使用 JavaScript 或 TypeScript 也可以满足程序开发的需要。

这得益于 Electron / Tauri 等技术栈的出现,其中 Electron 的成熟度最高、生态最完善、最被广泛使用,除了可以构建 Windows 平台支持的 .exe 文件之外,对 macOS 和 Linux 平台也提供了对应的文件构建支持。

广大前端开发者每天都在使用的 Visual Studio Code 以及知名的 HTTP 网络测试工具 Postman 都是使用 Electron 开发的。

',71),g=p('

笔者也通过 Electron 构建了多个给公司内部使用的界面化工具客户端,这一类技术栈对于前端开发者来说,真的非常方便!在这里以 Electron 为例,简单讲解下它的工作原理,以了解为什么程序开发可以如此简单。

Electron 的底层是基于 Chromium 和 Node.js ,它提供了两个进程供开发者使用:

  1. 主进程:它是整个应用的入口点,主进程运行在 Node 环境中,可以使用所有的 Node API ,程序也因此具备了和系统进行交互的能力,例如文件的读写操作。

  2. 渲染进程:负责与用户交互的 GUI 界面,基于 Chromium 运行,所以开发者得以使用 HTML / CSS / JavaScript 像编写网页一样来编写程序的 GUI 界面。

一个程序应用只会有一个主进程,而渲染进程则可以根据实际需求创建多个,渲染进程如果需要和系统交互,则必须与主进程通信,借助主进程的能力来实现。

在构建的时候, Electron 会把 Node 和 Chromium 一起打包为一个诸如 .exe 这样的安装文件(或者是包含了两者的免安装版本),这样用户不需要 Node 环境也可以运行桌面程序。

应用脚本开发

桌面程序开发 部分讲的是构建一种拥有可视化 GUI 界面的程序,但有时候并不需要复杂的 GUI ,可能只想提供一个双击运行的脚本类程序给用户,现在的前端工程化也支持使用 JavaScript 构建一个无界面的应用脚本。

假如某一天公司的运营小姐姐希望能做一个自动化的脚本减轻她们的机械操作,或者是自己工作过程中发现一些日常工作可以交付给脚本解决的情况,就可以使用这种方式来输出一个脚本程序,使用的时候双击运行非常方便。

笔者之前为了让团队的工程师减少写日报的心智负担,也是使用了这个方式编写了一个 git-commit-analytics 工具,部门里的工程师可以通过规范化 commit 来生成每天的工作日报,每天双击一下就可以生成一份报告,很受团队的喜欢。

',9),b=p(`

在这里推荐一个工具 Pkg ,它可以把 Node 项目打包为一个可执行文件,支持 Windows 、 macOS 、 Linux 等多个平台,它的打包机制和 Electron 打包的思路类似,也是通过把 Node 一起打包,让用户可以在不安装 Node 环境的情况下也可以直接运行脚本程序。

实践工程化的流程

基于 Vue 3 的项目,最主流的工程化组合拳有以下两种:

常用方案Runtime构建工具前端框架
方案一NodeWebpackVue
方案二NodeViteVue

方案一是比较传统并且过去项目使用最多的方案组合,但从 2021 年初随着 Vite 2.0 的发布,伴随着更快的开发体验和日渐丰富的社区生态,新项目很多都开始迁移到方案二,因此本书秉着面向当下与未来的原则,会侧重 Vite 的使用来开展讲解,包括一些 demo 的创建等等。

当技术成熟的时候,还可以选择更喜欢的方案自行组合,例如用 Deno 来代替 Node ,但前期还是按照主流的方案来进入工程化的学习。

下面的内容将根据 Vue 3 的工程化开发,逐一讲解涉及到常用的工具,了解它们的用途和用法。

工程化神器 Node.js

只要在近几年有接触过前端开发,哪怕没有实际使用过,也应该有听说过 Node.js ,那么它是一个什么样的存在?

什么是 Node.js

Node.js (简称 Node ) 是一个基于 Chrome V8 引擎构建的 JS 运行时( JavaScript Runtime )。

它让 JavaScript 代码不再局限于网页上,还可以跑在客户端、服务端等场景,极大的推动了前端开发的发展,现代的前端开发几乎都离不开 Node 。

什么是 Runtime

Runtime ,可以叫它 “运行时” 或者 “运行时环境” ,这个概念是指,项目的代码在哪里运行,哪里就是运行时。

传统的 JavaScript 只能跑在浏览器上,每个浏览器都为 JS 提供了一个运行时环境,可以简单地把浏览器当成一个 Runtime ,明白了这一点,相信就能明白什么是 Node 。

Node 就是一个让 JS 可以脱离浏览器运行的环境,当然,这里并不是说 Node 就是浏览器。

Node 和浏览器的区别

虽然 Node 也是基于 Chrome V8 引擎构建,但它并不是一个浏览器,它提供了一个完全不一样的运行时环境,没有 Window 、没有 Document 、没有 DOM 、没有 Web API ,没有 UI 界面…

但它提供了很多浏览器做不到的能力,比如和操作系统的交互,例如 “文件读写” 这样的操作在浏览器有诸多的限制,而在 Node 则轻轻松松。

对于前端开发者来说, Node 的巨大优势在于,使用一种语言就可以编写所有东西(前端和后端),不再花费很多精力去学习各种各样的开发语言。

哪怕仅仅只做 Web 开发,也不再需要顾虑新的语言特性在浏览器上的兼容性( e.g. ES6 、 ES7 、 ES8 、 ES9 …), Node 配合构建工具,以及诸如 Babel 这样的代码编译器,可以帮转换为浏览器兼容性最高的 ES5 。

当然还有很多工程化方面的好处,总之一句话,使用 Node 的开发体验会非常好。

工程化的入门准备 一章中,会对 Node 开发做进一步的讲解,下面先继续顺着 Node 的工具链,了解与日常开发息息相关的前端构建工具。

工程化的构建工具

在前端开发领域,构建工具已经成为现在必不可少的开发工具了,很多刚接触前端工程化的开发者可能会有疑惑,为什么以前的前端页面直接编写代码就可以在浏览器访问,现在却还要进行构建编译,是否 “多此一举” ?

要消除这些困惑,就需要了解一下为什么要使用构建工具,知道构建工具在开发上能够给带来什么好处。

为什么要使用构建工具

目前已经有很多流行的构建工具,例如: GruntGulpWebpackSnowpackParcelRollupVite … 每一个工具都有自己的特色。

如上面列举的构建工具,虽然具体到某一个工具的时候,是 “一个” 工具,但实际上可以理解为是 “一套” 工具链、工具集,构建工具通常集 “语言转换 / 编译” 、 “资源解析” 、 “代码分析” 、 “错误检查” 、 “任务队列” 等非常多的功能于一身。

构建工具可以帮解决很多问题,先看看最基础的一个功能支持: “语言转换 / 编译” 。

且不说构建工具让可以自由自在的在项目里使用 TypeScript 这些新兴的语言,单纯看历史悠久的 JavaScript ,从 2015 年开始,每年也都会有新的版本发布(例如 ES6 对应 ES2015 、 ES7 对应 ES2016 、 ES8 对应 ES2017 等等)。

虽然新版本的 JS API 更便捷更好用,但浏览器可能还没有完全支持,这种情况下可以通过构建工具去转换成兼容度更高的低版本 JS 代码。

举个很常用到的例子,现在判断一个数组是否包含某个值,通常会这么写:

js
// 声明一个数组
+const arr = ['foo', 'bar', 'baz']
+
+// 当数组包含 foo 这个值时,处理一些逻辑
+if (arr.includes('foo')) {
+  // do something…
+}

通过 Array.prototype.includes() 这个实例方法返回的布尔值,判断数组是否包含目标值,而这个方法是从 ES6 开始支持的,对于不支持 ES6 的古董浏览器,只能使用其他更早期的方法代替( e.g. indexOf ),或者手动引入它的 Polyfill 来保证这个方法可用。

TIP

Polyfill 是在浏览器不支持的情况下实现某个功能的代码,可以在概念发明者 Remy Sharp 的博文里了解到它的由来,是一个挺有意思的命名。

点击阅读: What is a Polyfill?

以下是摘选自 MDN 网站上关于 Array.prototype.includes() 的 Polyfill 实现:

js
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
+if (!Array.prototype.includes) {
+  Object.defineProperty(Array.prototype, 'includes', {
+    value: function (valueToFind, fromIndex) {
+      if (this == null) {
+        throw new TypeError('"this" is null or not defined')
+      }
+
+      // 1. Let O be ? ToObject(this value).
+      var o = Object(this)
+
+      // 2. Let len be ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0
+
+      // 3. If len is 0, return false.
+      if (len === 0) {
+        return false
+      }
+
+      // 4. Let n be ? ToInteger(fromIndex).
+      //    (If fromIndex is undefined, this step produces the value 0.)
+      var n = fromIndex | 0
+
+      // 5. If n ≥ 0, then
+      //  a. Let k be n.
+      // 6. Else n < 0,
+      //  a. Let k be len + n.
+      //  b. If k < 0, let k be 0.
+      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0)
+
+      function sameValueZero(x, y) {
+        return (
+          x === y ||
+          (typeof x === 'number' &&
+            typeof y === 'number' &&
+            isNaN(x) &&
+            isNaN(y))
+        )
+      }
+
+      // 7. Repeat, while k < len
+      while (k < len) {
+        // a. Let elementK be the result of ? Get(O, ! ToString(k)).
+        // b. If SameValueZero(valueToFind, elementK) is true, return true.
+        if (sameValueZero(o[k], valueToFind)) {
+          return true
+        }
+        // c. Increase k by 1.
+        k++
+      }
+
+      // 8. Return false
+      return false
+    },
+  })
+}

由于 JavaScript 允许更改 prototype ,所以 Polyfill 的原理就是先检查浏览器是否支持某个方法,当浏览器不支持的时候,会借助已经被广泛支持的方法来实现相同的功能,达到在旧浏览器上也可以使用新方法的目的。

下面是一个简单的 includes 方法实现,也借用浏览器支持的 indexOf 方法,让不支持 includes 的浏览器也可以使用 includes

js
// 借助 indexOf 来实现一个简单的 includes
+if (!Array.prototype.includes) {
+  Array.prototype.includes = function (v) {
+    return this.indexOf(v) > -1
+  }
+}

WARNING

请注意,上面这个实现方案很粗糙,没有 Polyfill 的方案考虑的足够周到,只是在这里做一个简单的实现演示。

Polyfill 会考虑到多种异常情况,最大幅度保证浏览器的兼容支持,当然一些复杂的方法实现起来会比较臃肿,全靠人工维护 Polyfill 很不现实。

而且实际的项目里,要用到的 JavaScript 原生方法非常多,不可能手动去维护每一个方法的兼容性,所以这部分工作,通常会让构建工具来自动化完成,常见的方案就有 Babel

除了 “语言转换 / 编译” 这个好处之外,在实际的开发中,构建工具可以更好地提高开发效率、提供自动化的代码检查、规避上线后的生产风险,例如:

  • 项目好多代码可以复用,可以直接抽离成 模块组件 ,交给构建工具去合并打包
  • TypeScript 的类型系统和代码检查真好用,也可以放心写,交给构建工具去编译
  • CSS 写起来很慢,可以使用 Sass 、 Less 等 CSS 预处理器 ,利用它们的变量支持、混合继承等功能提高开发效率,最终交给构建工具去编译回 CSS 代码
  • 海量的 npm 包 开箱即用,剩下的工作交给构建工具去按需抽离与合并
  • 项目上线前代码要混淆,人工处理太费劲,交给构建工具自动化处理
  • 还有很多列举不完的其他场景…

下面基于接下来要学习的 Vue3 技术栈,介绍两个流行且强相关的构建工具: WebpackVite

Webpack

Webpack 是一个老牌的构建工具,前些年可以说几乎所有的项目都是基于 Webpack 构建的,生态最庞大,各种各样的插件最全面,对旧版本的浏览器支持程度也最全面。

点击访问:Webpack 官网

在升级与配置一章里的 使用 @vue/cli 创建项目 会指导如何使用 Vue CLI 创建一个基于 Webpack 的 Vue 项目。

Vite

Vite 的作者也是熟悉的 Vue 作者尤雨溪,它是一个基于 ESM 实现的构建工具,主打更轻、更快的开发体验,主要面向现代浏览器,于 2021 年推出 2.x 版本之后,进入了一个飞速发展的时代,目前市场上的 npm 包基本都对 Vite 做了支持,用来做业务已经没有问题了。

毫秒级的开发服务启动和热重载,对 TypeScript 、 CSS 预处理器等常用开发工具都提供了开箱即用的支持,也兼容海量的 npm 包,如果是先用 Webpack 再用的 Vite ,会很快就喜欢上它!

点击访问:Vite 官网

在升级与配置一章里的 使用 Vite 创建项目 会指导如何使用流行脚手架创建一个基于 Vite 的 Vue 项目。

两者的区别

在开发流程上, Webpack 会先打包,再启动开发服务器,访问开发服务器时,会把打包好的结果直接给过去,下面是 Webpack 使用的 bundler 机制的工作流程。

`,58),m=o("p",null,"Vite 是基于浏览器原生的 ES Module ,所以不需要预先打包,而是直接启动开发服务器,请求到对应的模块的时候再进行编译,下面是 Vite 使用的 ESM 机制的工作流程。",-1),f=p('

所以当项目体积越大的时候,在开发启动速度上, Vite 和 Webpack 的差距会越来越大。

可以点击 Vite 官网的这篇文章: 为什么选 Vite 了解更多的技术细节。

构建方面,为了更好的加载体验,以及 Tree Shaking 按需打包 、懒加载和 Chunk 分割利于缓存,两者都需要进行打包;但由于 Vite 是面向现代浏览器,所以如果项目有兼容低版本浏览器的需求的话,建议还是用 Webpack 来打包,否则, Vite 是目前的更优解。

开发环境和生产环境

在使用构建工具的时候,需要了解一下 “环境” 的概念,对构建工具而言,会有 “开发环境( development )” 和 “生产环境( production )” 之分。

TIP

需要注意的是,这和业务上的 “测试 -> 预发 -> 生产” 那几个环境的概念是不一样的,业务上线流程的这几个环境,对于项目来说,都属于 “生产环境” ,因为需要打包部署。

开发环境

前面在编写 Hello TypeScript 这个 demo 的时候,使用了 npm run dev:ts 这样的命令来测试 TypeScript 代码的可运行性,可以把这个阶段认为是一个 “测试环境” ,这个时候代码不管怎么写,它都是 TypeScript 代码,不是最终要编译出来的 JavaScript 。

如果基于 Webpack 或者 Vite 这样的构建工具,测试环境提供了更多的功能,例如:

  • 可以使用 TypeScript 、 CSS 预处理器之类的需要编译的语言提高开发效率
  • 提供了热重载( Hot Module Replacement , 简称 HMR ),当修改了代码之后,无需重新运行或者刷新页面,构建工具会检测的修改自动帮更新
  • 代码不会压缩,并有 Source Mapping 源码映射,方便 BUG 调试
  • 默认提供局域网服务,无需自己做本地部署
  • 更多 …

生产环境

Hello TypeScript demo 最后配置的一个 npm run build 命令,将 TypeScript 代码编译成了 JavaScript ,这个时候 dist 文件夹下的代码文件就处于 “生产环境” 了,因为之后不论源代码怎么修改,都不会直接影响到它们,直到再次执行 build 编译。

可以看出生产环境和开发环境最大的区别就是稳定!除非再次打包发布,否则不会影响到已部署的代码。

  • 代码会编译为浏览器最兼容的版本,一些不兼容的新语法会进行 Polyfill
  • 稳定,除非重新发布,否则不会影响到已部署的代码
  • 打包的时候代码会进行压缩混淆,缩小项目的体积,也降低源码被直接曝光的风险

环境判断

',15),E=p('

在 Vite ,还可以通过判断 import.meta.env.DEVtrue 时是开发环境,判断 import.meta.env.PRODtrue 时是生产环境(这两个值永远相反)。

有关环境变量的问题可以查阅以下文档:

工具文档
Webpack模式
Vite环境变量和模式
',3),x=JSON.parse('{"title":"了解前端工程化","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"engineering.md","filePath":"engineering.md"}'),S={name:"engineering.md"},V=Object.assign(S,{setup(k){const c="process.env.NODE_ENV";return(v,q)=>{const l=t("ImgWrap"),a=t("ClientOnly"),r=t("GitalkComment");return y(),D("div",null,[i,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/job-details.png",dark:"/assets/img/job-details-dark.png",alt:"知名企业对 1-3 年经验的前端工程师招聘要求"})]),_:1}),C,s(a,null,{default:n(()=>[s(l,{src:"/logo.png",alt:"Vue.js Logo",maxWidth:240})]),_:1}),d,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/seo-page.jpg",dark:"/assets/img/seo-page-dark.jpg",alt:"网页呈现的内容"})]),_:1}),A,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/seo-page-code.jpg",dark:"/assets/img/seo-page-code-dark.jpg",alt:"网页内容对应的 HTML 源码"})]),_:1}),h,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/seo-spa-page-code.jpg",dark:"/assets/img/seo-spa-page-code-dark.jpg",alt:"单页面应用的网页内容只有一个空的 HTML 结构"})]),_:1}),u,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/screenshot-vscode.jpg",dark:"/assets/img/screenshot-vscode-dark.jpg",alt:"Visual Studio Code 界面截图"})]),_:1}),s(a,null,{default:n(()=>[s(l,{src:"/assets/img/screenshot-postman.jpg",dark:"/assets/img/screenshot-postman-dark.jpg",alt:"Postman 界面截图"})]),_:1}),g,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/screenshot-pkg.jpg",dark:"/assets/img/screenshot-pkg-dark.jpg",alt:"使用 Pkg 构建后的程序运行截图"})]),_:1}),b,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/bundler.png",alt:"Webpack 的工作原理(摘自 Vite 官网)"})]),_:1}),m,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/esm.png",alt:"Vite 的工作原理(摘自 Vite 官网)"})]),_:1}),f,o("p",null,[e("在 Webpack ,可以使用 "),o("code",null,F(c)),e(" 来区分开发环境( development )还是生产环境( production ),它会返回当前所处环境的名称。")]),E,s(a,null,{default:n(()=>[s(r,{issueId:194})]),_:1})])}}});export{x as __pageData,V as default}; diff --git a/assets/engineering.md.43ce842b.lean.js b/assets/engineering.md.43ce842b.lean.js new file mode 100644 index 00000000..288e259c --- /dev/null +++ b/assets/engineering.md.43ce842b.lean.js @@ -0,0 +1,291 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{v as y,b as D,t as s,O as n,F as o,L as e,X as F,R as p,M as t}from"./chunks/framework.0d8bea05.js";const i=p(`

了解前端工程化

现在前端的工作与以前的前端开发已经完全不同了。

刚接触前端的时候,做一个页面,是先创建 HTML 页面文件写页面结构,再在里面写 CSS 代码美化页面,再根据需要写一些 JavaScript 代码增加交互功能,需要几个页面就创建几个页面,相信大家的前端起步都是从这个模式开始的。

而实际上的前端开发工作,早已进入了前端工程化开发的时代,已经充满了各种现代化框架、预处理器、代码编译…

最终的产物也不再单纯是多个 HTML 页面,经常能看到 SPA / SSR / SSG 等词汇的身影。

TIP

现代化的开发概念 一节会介绍这些词汇的含义。

传统开发的弊端

在了解什么是前端工程化之前,先回顾一下传统开发存在的一些弊端,这样更能知道为什么需要它。

在传统的前端开发模式下,前端工程师大部分只需要单纯地写写页面,都是在 HTML 文件里直接编写代码,所需要的 JavaScript 代码是通过 script 标签以内联或者文件引用的形式放到 HTML 代码里的,当然 CSS 代码也是一样的处理方式。

例如这样:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Document</title>
+  </head>
+  <body>
+    <!-- 引入 JS 文件 -->
+    <script src="./js/lib-1.js"></script>
+    <script src="./js/lib-2.js"></script>
+    <!-- 引入 JS 文件 -->
+  </body>
+</html>

如演示代码,虽然可以把代码分成多个文件来维护,这样可以有效降低代码维护成本,但在实际开发过程中,还是会存在代码运行时的一些问题。

一个常见的案例

继续用上面的演示代码,来看一个最简单的一个例子。

先在 lib-1.js 文件里,声明一个变量:

js
var foo = 1

再在 lib-2.js 文件里,也声明一个变量(没错,也是 foo ):

js
var foo = 2

然后在 HTML 代码里追加一个 script ,打印这个值:

html
<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+</head>
+<body>
+
+  <!-- 引入 JS 文件 -->
+  <script src="./js/lib-1.js"></script>
+  <script src="./js/lib-2.js"></script>
+  <!-- 引入 JS 文件 -->
+
+  <!-- 假设这里是实际的业务代码 -->
+  <script>
+    console.log(foo)
+  </script>
+  <!-- 假设这里是实际的业务代码 -->
+
+</body>
+</html>

先猜猜会输出什么? —— 答案是 2

如果在开发的过程中,不知道在 lib-2.js 文件里也声明了一个 foo 变量,一旦在后面的代码里预期了 foo + 2 === 3 ,那么这样就得不到想要的结果(因为 lib-1.js 里的 foo11 + 2 等于 3 ) 。

原因是 JavaScript 的加载顺序是从上到下,当使用 var 声明变量时,如果命名有重复,那么后加载的变量会覆盖掉先加载的变量。

这是使用 var 声明的情况,它允许使用相同的名称来重复声明,那么换成 let 或者 const 呢?

虽然不会出现重复声明的情况,但同样会收到一段报错:

bash
Uncaught SyntaxError: Identifier 'foo' has already been declared (at lib-2.js:1:1)

这次程序直接崩溃了,因为 letconst 无法重复声明,从而抛出这个错误,程序依然无法正确运行。

更多问题

以上只是一个最简单的案例,就暴露出了传统开发很大的弊端,然而并不止于此,实际上,存在诸如以下这些问题:

  1. 如本案例,可能存在同名的变量声明,引起变量冲突
  2. 引入多个资源文件时,比如有多个 JS 文件,在其中一个 JS 文件里面使用了在别处声明的变量,无法快速找到是在哪里声明的,大型项目难以维护
  3. 类似第 1 、 2 点提到的问题无法轻松预先感知,很依赖开发人员人工定位原因
  4. 大部分代码缺乏分割,比如一个工具函数库,很多时候需要整包引入到 HTML 里,文件很大,然而实际上只需要用到其中一两个方法
  5. 由第 4 点大文件延伸出的问题, script 的加载从上到下,容易阻塞页面渲染
  6. 不同页面的资源引用都需要手动管理,容易造成依赖混乱,难以维护
  7. 如果要压缩 CSS 、混淆 JS 代码,也是要人力操作使用工具去一个个处理后替换,容易出错

当然,实际上还会有更多的问题会遇到。

工程化带来的优势

为了解决传统开发的弊端,前端也开始引入工程化开发的概念,借助工具来解决人工层面的烦琐事情。

开发层面的优势

传统开发的弊端 里,主要列举的是开发层面的问题,工程化首要解决的当然也是在开发层面遇到的问题。

在开发层面,前端工程化有以下这些好处:

  1. 引入了模块化和包的概念,作用域隔离,解决了代码冲突的问题
  2. 按需导出和导入机制,让编码过程更容易定位问题
  3. 自动化的代码检测流程,有问题的代码在开发过程中就可以被发现
  4. 编译打包机制可以让使用开发效率更高的编码方式,比如 Vue 组件、 CSS 的各种预处理器
  5. 引入了代码兼容处理的方案( e.g. Babel ),可以让开发者自由使用更先进的 JavaScript 语句,而无需顾忌浏览器兼容性,因为最终会转换为浏览器兼容的实现版本
  6. 引入了 Tree Shaking 机制,清理没有用到的代码,减少项目构建后的体积

还有非常多的体验提升,列举不完。而对应的工具,根据用途也会有非常多的选择,在后面的学习过程中,会一步一步体验到工程化带来的好处。

团队协作的优势

除了对开发者有更好的开发体验和效率提升,对于团队协作,前端工程化也带来了更多的便利,例如下面这些场景:

统一的项目结构

以前的项目结构比较看写代码的人的喜好,虽然一般在研发部门里都有 “团队规范” 这种东西,但靠自觉性去配合的事情,还是比较难做到统一,特别是项目很赶的时候。

工程化后的项目结构非常清晰和统一,以 Vue 项目来说,通过脚手架创建一个新项目之后,它除了提供能直接运行 Hello World 的基础代码之外,还具备了如下的统一目录结构:

  • src 是源码目录
  • src/main.ts 是入口文件
  • src/views 是路由组件目录
  • src/components 是子组件目录
  • src/router 是路由目录

虽然也可以自行调整成别的结构,但根据笔者在多年的工作实际接触下来,以及从很多开源项目的代码里看到的,都是沿用脚手架创建的项目结构(不同脚手架创建的结构会有所不同,但基于同一技术栈的项目基本上都具备相同的结构)。

TIP

脚手架的升级与配置 一章可以学习如何使用脚手架创建 Vue 3 项目。

统一的代码风格

不管是接手其他人的代码或者是修改自己不同时期的代码,可能都会遇到这样的情况,例如一个模板语句,上面包含了很多属性,有的人喜欢写成一行,属性多了维护起来很麻烦,需要花费较多时间辨认:

vue
<template>
+  <div class="list">
+    <!-- 这个循环模板有很多属性 -->
+    <div class="item" :class="{ \`top-\${index + 1}\`: index < 3 }" v-for="(item, index)
+    in list" :key="item.id" @click="handleClick(item.id)">
+      <span>{{ item.text }}</span>
+    </div>
+    <!-- 这个循环模板有很多属性 -->
+  </div>
+</template>

而工程化配合统一的代码格式化规范,可以让不同人维护的代码,最终提交到 Git 上的时候,风格都保持一致,并且类似这种很多属性的地方,都会自动帮格式化为一个属性一行,维护起来就很方便:

vue
<template>
+  <div class="list">
+    <!-- 这个循环模板有很多属性 -->
+    <div
+      class="item"
+      :class="{ \`top-\${index + 1}\`: index < 3 }"
+      v-for="(item, index) in list"
+      :key="item.id"
+      @click="handleClick(item.id)"
+    >
+      <span>{{ item.text }}</span>
+    </div>
+    <!-- 这个循环模板有很多属性 -->
+  </div>
+</template>

同样的,写 JavaScript 时也会有诸如字符串用双引号还是单引号,缩进是 Tab 还是空格,如果用空格到底是要 4 个空格还是 2 个空格等一堆 “没有什么实际意义” 、但是不统一的话协作起来又很难受的问题……

在工程化项目这些问题都可以交给程序去处理,在书写代码的时候,开发者可以先按照自己的习惯书写,然后再执行命令进行格式化,或者是在提交代码的时候配合 Git Hooks 自动格式化,都可以做到统一风格。

TIP

添加协作规范 一节可以学习如何给项目添加统一的协作规范。

可复用的模块和组件

传统项目比较容易被复用的只有 JavaScript 代码和 CSS 代码,会抽离公共函数文件上传到 CDN ,然后在 HTML 页面里引入这些远程资源, HTML 代码部分通常只有由 JS 创建的比较小段的 DOM 结构。

并且通过 CDN 引入的资源,很多时候都是完整引入,可能有时候只需要用到里面的一两个功能,却要把很大的完整文件都引用进来。

这种情况下,在前端工程化里,就可以抽离成一个开箱即用的 npm 组件包,并且很多包都提供了模块化导出,配合构建工具的 Tree Shaking ,可以抽离用到的代码,没有用到的其他功能都会被抛弃,不会一起发布到生产环境。

TIP

依赖包和插件 一节可以学习如何查找和使用开箱即用的 npm 包。

代码健壮性有保障

传统的开发模式里,只能够写 JavaScript ,而在工程项目里,可以在开发环境编写带有类型系统的 TypeScript ,然后再编译为浏览器能认识的 JavaScript 。

在开发过程中,编译器会检查代码是否有问题,比如在 TypeScript 里声明了一个布尔值的变量,然后不小心将它赋值为数值:

ts
// 声明一个布尔值变量
+let bool: boolean = true
+
+// 在 TypeScript ,不允许随意改变类型,这里会报错
+bool = 3

编译器检测到这个行为的时候就会抛出错误:

bash
# ...
+return new TSError(diagnosticText, diagnosticCodes);
+           ^
+TSError:  Unable to compile TypeScript:
+src/index.ts:2:1 - error TS2322: Type 'number' is not assignable to type 'boolean'.
+
+2 bool = 3
+  ~~~~
+# ...

从而得以及时发现问题并修复,减少线上事故的发生。

团队开发效率高

在前后端合作环节,可以提前 Mock 接口与后端工程师同步开发,如果遇到跨域等安全限制,也可以进行本地代理,不受跨域困扰。

前端工程在开发过程中,还有很多可以交给程序处理的环节,像前面提到的代码格式化、代码检查,还有在部署上线的时候也可以配合 CI/CD 完成自动化流水线,不像以前改个字都要找服务端工程师去更新,可以把非常多的人力操作剥离出来交给程序。

求职竞争上的优势

近几年前端开发领域的相关岗位,都会在招聘详情里出现类似的描述:

熟悉 Vue / React 等主流框架,对前端组件化和模块化有深入的理解和实践
熟悉面向组件的开发模式,熟悉 Webpack / Vite 等构建工具
熟练掌握微信小程序开发,熟悉 Taro 框架或 uni-app 框架优先
熟悉 Scss / Less / Stylus 等预处理器的使用
熟练掌握 TypeScript 者优先
有良好的代码风格,结构设计与程序架构者优先
了解或熟悉后端开发者优先(如 Java / Go / Node.js )

知名企业对 1-3 年工作经验的初中级工程师,更是明确要求具备前端工程化开发的能力:

`,73),C=p('

组件化开发、模块化开发、 Webpack / Vite 构建工具、 Node.js 开发… 这些技能都属于前端工程化开发的知识范畴,不仅在面试的时候会提问,入职后新人接触的项目通常也是直接指派前端工程化项目,如果能够提前掌握相关的知识点,对求职也是非常有帮助的!

Vue.js 与工程化

在上一节提到了前端工程化 在求职竞争上的优势 ,里面列出的招聘要求例子都提及到了 Vue 和 React 这些主流的前端框架,前端框架是前端工程化开发里面不可或缺的成员。

框架能够充分的利用前端工程化相关的领先技术,不仅在开发层面降低开发者的上手难度、提升项目开发效率,在构建出来的项目成果上也有着远比传统开发更优秀的用户体验。

本书结合 Vue.js 框架 3.0 系列的全新版本,将从项目开发的角度,在帮助开发者入门前端工程化的同时,更快速的掌握一个流行框架的学习和使用。

了解 Vue.js 与全新的 3.0 版本

Vue.js(发音为 /vjuː/ ,类似 view )是一个易学易用,性能出色,适用场景丰富的 Web 前端框架,从 2015 年发布 1.0 版本以来,受到了全世界范围的前端开发者喜爱,已成为当下最受欢迎的前端框架之一。

',7),d=p(`

Vue 一直紧跟广大开发者的需求迭代发展,保持着它活跃的生命力。

2020 年 9 月 18 日, Vue.js 发布了 3.0 正式版,在大量开发者长达约一年半的使用和功能改进反馈之后, Vue 又于 2022 年 2 月 7 日发布了 3.2 版本,同一天, Vue 3 成为 Vue.js 框架全新的默认版本 (在此之前,通过 npm install vue 的默认版本还是 Vue 2 )。

也就是在未来的日子里, Vue 3 将随着时间的推移,逐步成为 Vue 生态的主流版本,是时候学习 Vue 3 了!

如果还没有体验过 Vue ,可以把以下代码复制到的代码编辑器,保存成一个 HTML 文件(例如: hello.html ),并在浏览器里打开访问,同时请唤起浏览器的控制台面板(例如 Chrome 浏览器是按 F12 或者鼠标右键点 “检查” ),在 Console 面板查看 Log 的打印。

html
<!-- 这是使用 Vue 实现的 demo -->
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Hello Vue</title>
+    <script src="https://unpkg.com/vue@3"></script>
+  </head>
+  <body>
+    <div id="app">
+      <!-- 通过 \`{{ 变量名 }}\` 语法渲染响应式变量 -->
+      <p>Hello {{ name }}!</p>
+
+      <!-- 通过 \`v-model\` 双向绑定响应式变量 -->
+      <!-- 通过 \`@input\` 给输入框绑定输入事件 -->
+      <input
+        type="text"
+        v-model="name"
+        placeholder="输入名称打招呼"
+        @input="printLog"
+      />
+
+      <!-- 通过 \`@click\` 给按钮绑定点击事件 -->
+      <button @click="reset">重置</button>
+    </div>
+
+    <script>
+      const { createApp, ref } = Vue
+      createApp({
+        // \`setup\` 是一个生命周期钩子
+        setup() {
+          // 默认值
+          const DEFAULT_NAME = 'World'
+
+          // 用于双向绑定的响应式变量
+          const name = ref(DEFAULT_NAME)
+
+          // 打印响应式变量的值到控制台
+          function printLog() {
+            // \`ref\` 变量需要通过 \`.value\` 操作值
+            console.log(name.value)
+          }
+
+          // 重置响应式变量为默认值
+          function reset() {
+            name.value = DEFAULT_NAME
+            printLog()
+          }
+
+          // 需要 \`return\` 出去才可以被模板使用
+          return { name, printLog, reset }
+        },
+      }).mount('#app')
+    </script>
+  </body>
+</html>

这是一个基于 Vue 3 组合式 API 语法的 demo ,它包含了两个主要功能:

  1. 可以在输入框修改输入内容,上方的 Hello World! 以及浏览器控制台的 Log 输出,都会随着输入框内容的变更而变化
  2. 可以点击 “重置” 按钮,响应式变量被重新赋值的时候,输入框的内容也会一起变化为新的值

这是 Vue 的特色之一:数据的双向绑定。

对比普通的 HTML 文件需要通过输入框的 oninput 事件手动编写视图的更新逻辑, Vue 的双向绑定功能大幅度减少了开发过程的编码量。

在未接触 Vue 这种编程方式之前,相信大部分人首先想到的是直接操作 DOM 来实现需求,为了更好的进行对比,接下来用原生 JavaScript 实现一次相同的功能:

html
<!-- 这是使用原生 JavaScript 实现的 demo -->
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Hello World</title>
+  </head>
+  <body>
+    <div id="app">
+      <!-- 通过一个 \`span\` 标签来指定要渲染数据的位置 -->
+      <p>Hello <span id="name"></span>!</p>
+
+      <!-- 通过 \`oninput\` 给输入框绑定输入事件 -->
+      <input
+        id="input"
+        type="text"
+        placeholder="输入名称打招呼"
+        oninput="handleInput()"
+      />
+
+      <!-- 通过 \`onclick\` 给按钮绑定点击事件 -->
+      <button onclick="reset()">重置</button>
+    </div>
+
+    <script>
+      // 默认值
+      const DEFAULT_NAME = 'World'
+
+      // 要操作的 DOM 元素
+      const nameElement = document.querySelector('#name')
+      const inputElement = document.querySelector('#input')
+
+      // 处理输入
+      function handleInput() {
+        const name = inputElement.value
+        nameElement.innerText = name
+        printLog()
+      }
+
+      // 打印输入框的值到控制台
+      function printLog() {
+        const name = inputElement.value
+        console.log(name)
+      }
+
+      // 重置 DOM 元素的文本和输入框的值
+      function reset() {
+        nameElement.innerText = DEFAULT_NAME
+        inputElement.value = DEFAULT_NAME
+        printLog()
+      }
+
+      // 执行一次初始化,赋予 DOM 元素默认文本和输入框的默认值
+      window.addEventListener('load', reset)
+    </script>
+  </body>
+</html>

虽然两个方案总的代码量相差不大,但可以看到两者的明显区别:

  1. Vue 只需要对一个 name 变量的进行赋值操作,就可以轻松实现视图的同步更新
  2. 使用原生 JavaScript 则需要频繁的操作 DOM 才能达到输入内容即时体现在文本 DOM 上面,并且还要考虑 DOM 是否已渲染完毕,否则操作会出错

Vue 的这种编程方式,称之为 “数据驱动” 编程。

如果在一个页面上频繁且大量的操作真实 DOM ,频繁的触发浏览器回流( Reflow )与重绘( Repaint ),会带来很大的性能开销,从而造成页面卡顿,在大型项目的性能上很是致命。

而 Vue 则是通过操作虚拟 DOM ( Virtual DOM ,简称 VDOM ),每一次数据更新都通过 Diff 算法找出需要更新的节点,只更新对应的虚拟 DOM ,再去映射到真实 DOM 上面渲染,以此避免频繁或大量的操作真实 DOM 。

TIP

虚拟 DOM 是一种编程概念,是指将原本应该是真实 DOM 元素的 UI 界面,用数据结构来组织起完整的 DOM 结构,再同步给真实 DOM 渲染,减少浏览器的回流与重绘。

在 JavaScript 里,虚拟 DOM 的表现是一个 Object 对象,其中需要包含指定的属性(例如 Vue 的虚拟 DOM 需要用 type 来指定当前标签是一个 <div /> 还是 <span /> ),然后框架会根据对象的属性去转换为 DOM 结构并最终完成内容的显示。

更多关于 Vue 虚拟 DOM 和性能优化可以查看官网的 渲染机制 一章进行了解。

Vue 3.0 版本还引入了组合式 API 的概念,更符合软件工程 “高内聚,低耦合” 的思想,让开发者可以更灵活的管理自己的逻辑代码,更方便的进行抽离封装再复用,不管是大型项目还是流水线业务,开箱即用的逻辑代码都是提升开发效率的利器。

Vue 与工程化之间的关联

在已经对 Vue 做了初步了解之后,可能有读者会问:“既然 Vue 的使用方式也非常简单,可以像 jQuery 这些经典类库一样在 HTML 引入使用,那么 Vue 和工程化有什么关联呢?”

Vue.js 是一个框架,框架除了简化编码过程中的复杂度之外,面对不同的业务需求还提供了通用的解决方案,而这些解决方案,通常是将前端工程化里的很多种技术栈组合起来串成一条条技术链,一环扣一环,串起来就是一个完整的工程化项目。

举一个常见的例子,比如上一节内容 了解 Vue.js 与全新的 3.0 版本 里的 demo 是一个简单的 HTML 页面,如果业务稍微复杂一点,比如区分了 “首页” 、 “列表页” 、 “内容页” 这样涉及到多个页面,传统的开发方案是通过 A 标签跳转到另外一个页面,在跳转期间会产生 “新页面需要重新加载资源、会有短暂白屏” 等情况,用户体验不太好。

Vue 提供了 Vue Router 实现路由功能,利用 History API 实现单页面模式(可在 现代化的开发概念 部分了解区别),在一个 HTML 页面里也可以体验 “页面跳转” 这样的体验,但如果页面很多,所有代码都堆积在一个 HTML 页面里,就很难维护。

借助前端工程化的构建工具,开发者可以编写 .vue 单组件文件,将多个页面的代码根据其功能模块进行划分,可拆分到多个单组件文件里维护并进行合理复用,最终通过构建工具编译再合并,最终生成浏览器能访问的 HTML / CSS / JS 文件,这样的开发过程,用户体验没有影响,但开发体验大大提升。

类似这样一个个业务场景会积少成多,把 Vue 和工程化结合起来,处理问题更高效更简单。

选择 Vue 入门工程化的理由

虽然前端的流行框架有主流的 Angular 、 React 和 Vue ,也有新兴的 Svelte 等等,每一个框架都有自己的特色,那为什么建议选择 Vue 来入门工程化呢?

最主要的两个原因是:

  1. 职场对 Vue 技术栈的需求量大,容易找工作
  2. 上手门槛低,会一些基础的 HTML / CSS / JavaScript 语法知识,就能够轻松上手 Vue 的组件开发

第一个原因在 求职竞争上的优势 已有进行过说明,掌握一门流行框架已经是前端岗位必备的技能,几乎所有公司在招聘前端工程师的时候都要求会 Vue 。

这里主要讲讲第二个原因,在 Vue 与工程化之间的关联 里提到了开发者可以编写 .vue 文件,这是一个 Vue 专属的文件扩展名,官方名称是 Single-File Component ,简称 SFC ,也就是单文件组件。

.vue 文件最大的特色就是支持像编写 .html 文件一样,在文件里写 HTML / CSS / JS 代码,不仅结构相似,在代码书写上,两者的语法也是十分接近:

.vue 文件.html 文件
<template /> 部分HTML 代码
<style /> 部分CSS 代码
<script /> 部分JavaScript 代码

下面就是一个最基础的 Vue 组件结构,可以看到和 HTML 文件是非常的相似:

vue
<!-- \`template\` 对应 HTML 代码 -->
+<template>
+  <div>
+    <!-- 一些 HTML  -->
+  </div>
+</template>
+
+<!-- \`script\` 部分对应 JavaScript 代码 -->
+<!-- 还支持其他语言,例如 \`lang="ts"\` 代表当前使用 TypeScript 编写 -->
+<script>
+export default {
+  // 这里是变量、函数等逻辑代码
+}
+</script>
+
+<!-- \`style\` 部分对应 CSS 代码 -->
+<!-- 还支持开启 \`scoped\` 标识,让 CSS 代码仅对当前组件生效,不会全局污染 -->
+<style scoped>
+/* 一些 CSS 代码 */
+</style>

Vue 组件不仅支持这些语言的所有基础用法,还增加了非常多更高效的功能,在后面 Vue3 教程的 单组件的编写 一章会有详细的介绍。

现代化的开发概念

在本章最开始的时候提到了 SPA / SSR / SSG 等词汇,这些词汇是一些现代前端工程化开发的概念名词缩写,代表着不同的开发模式和用户体验。

当下主流的前端框架都提供了这些开发模式的支持,因此在学习前端工程化和 Vue 开发的过程中,会不定期的看到这一类词汇,在实际工作业务的技术选型时,面对不同的业务场景也要考虑好需要使用什么样的开发模式,提前了解这些概念,对以后的工作也会很有帮助。

MPA 与 SPA

首先来看 MPA 与 SPA ,这代表着两个完全相反的开发模式和用户体验,它们的全称和中文含义如下:

名词全称中文
MPAMulti-Page Application多页面应用
SPASingle-Page Application单页面应用

多页面应用

MPA 多页面应用是最传统的网站体验,当一个网站有多个页面时,会对应有多个实际存在的 HTML 文件,访问每一个页面都需要经历一次完整的页面请求过程:

bash
# 传统的页面跳转过程
+
+从用户点击跳转开始:
+---> 浏览器打开新的页面
+---> 请求【所有】资源
+---> 加载 HTML 、CSS  JS  图片等资源
+---> 完成新页面的渲染
MPA 的优点

作为最传统也是最被广泛运用的模式,自然有它的优势存在:

  • 首屏加载速度快

因为 MPA 的页面源码都是实实在在的写在 HTML 文件里,所以当 HTML 文件被访问成功,内容也就随即呈现(在不考虑额外的 CSS 、 图片加载速度的情况下,这种模式的内容呈现速度是最快的)。

  • SEO 友好,容易被搜索引擎收录

如果读者有稍微了解过一些 SEO 知识,会知道除了网页的 TKD 三要素之外,网页的内容也影响收录的关键因素,传统的多页面应用,网页的内容都是直接位于 HTML 文件内,例如下面这个有很多内容的网页:

`,51),A=o("p",null,[e("右键查看该网页的源代码,可以看到网页内容对应的 HTML 结构也是包含在 "),o("code",null,".html"),e(" 文件里。")],-1),h=p(`

TIP

网页的 TKD 三要素是指一个网页的三个关键信息,含义如下:

T ,指 Title ,网站的标题,即网页的 <title>网站的标题</title> 标签。

K ,指 Keywords ,网站的关键词,即网页的 <meta name="Keywords" content="关键词1,关键词2,关键词3" /> 标签。

D ,指 Description ,网站的描述,即网页的 <meta name="description" content="网站的描述" /> 标签。

这三个要素标签都位于 HTML 文件的 <head /> 标签内。

  • 容易与服务端语言结合

由于传统的页面都是由服务端直出,所以可以使用 PHP 、 JSP 、 ASP 、 Python 等非前端语言或技术栈来编写页面模板,最终输出 HTML 页面到浏览器访问。

MPA 的缺点

说完 MPA 的优点,再来看看它的缺点,正因为有这些缺点的存在,才会催生出其他更优秀的开发模式出现。

  • 页面之间的跳转访问速度慢

正如它的访问流程,每一次页面访问都需要完整的经历一次渲染过程,哪怕从详情页 A 的 “相关阅读” 跳转到详情页 B ,这种网页结构一样,只有内容不同的两个页面,也需要经历这样的过程。

  • 用户体验不够友好

如果网页上的资源较多或者网速不好,这个过程就会有明显的卡顿或者布局错乱,影响用户体验。

  • 开发成本高

传统的多页面模式缺少前端工程化的很多优秀技术栈支持,前端开发者在刀耕火种的开发过程中效率低下。如果是基于 PHP 等非前端语言开发,工作量通常更是压在一名开发者身上,无法做到前后端分离来利用好跨岗位协作。

TIP

此处列举的多页面应用问题均指传统开发模式下的多页面,之所以特地说明,是因为后文还会有新的技术栈来实现多页面应用,但实现原理和体验并不一样。

单页面应用

正因为传统的多页面应用存在了很多无法解决的开发问题和用户体验问题,催生了现代化的 SPA 单页面应用技术的诞生。

SPA 单页面应用是现代化的网站体验,与 MPA 相反,不论站点内有多少个页面,在 SPA 项目实际上只有一个 HTML 文件,也就是 index.html 首页文件。

它只有第一次访问的时候才需要经历一次完整的页面请求过程,之后的每个内部跳转或者数据更新操作,都是通过 AJAX 技术来获取需要呈现的内容并只更新指定的网页位置。

TIP

AJAX 技术( Asynchronous JavaScript and XML )是指在不离开页面的情况下,通过 JavaScript 发出 HTTP 请求,让网页通过增量更新的方式呈现给用户界面,而不需要刷新整个页面来重新加载,是一种 “无刷体验” 。

SPA 在页面跳转的时候,地址栏也会发生变化,主要有以下两种方式:

  1. 通过修改 Location:hash 修改 URL 的 Hash 值(也就是 # 号后面部分),例如从 https://example.com/#/foo 变成 https://example.com/#/bar
  2. 通过 History API 的 pushState 方法更新 URL ,例如从 https://example.com/foo 变成 https://example.com/bar

这两个方式的共同特点是更新地址栏 URL 的时候,均不会刷新页面,只是单纯的变更地址栏的访问地址,而网页的内容则通过 AJAX 更新,配合起来就形成了一种网页的 “前进 / 后退” 等行为效果。

TIP

Vue Router 默认提供了这两种 URL 改变方式的支持,分别是 createWebHashHistory 的 Hash 模式和 createWebHistory 对应的 History 模式,在 路由的使用 一章可以学习更多 Vue 路由的使用。

理解了实现原理之后,可以把 SPA 的请求过程简化为如下步骤:

bash
# SPA 页面跳转过程
+
+从用户点击跳转开始:
+---> 浏览器通过 \`pushState\` 等方法更新 URL
+---> 请求接口数据(如果有涉及到前后端交互)
+---> 通过 JavaScript 处理数据,拼接 HTML 片段
+--->  HTML 片段渲染到指定位置,完成页面的 “刷新”
SPA 的优点

从上面的实现原理已经能总结出它的优势了:

  • 只有一次完全请求的等待时间(首屏加载)
  • 用户体验好,内部跳转的时候可以实现 “无刷切换”
  • 因为不需要重新请求整个页面,所以切换页面的时候速度更快
  • 因为没有脱离当前页面,所以 “页” 与 “页” 之间在切换过程中支持动画效果
  • 脱离了页面跳页面的框架,让整个网站形成一个 Web App ,更接近原生 App 的访问体验
  • 开发效率高,前后端分离,后端负责 API 接口,前端负责界面和联调,同步进行缩短工期

这也是为什么短短几年时间, SPA 的体验模式成为前端领域的主流。

SPA 的缺点

虽然 SPA 应用在使用过程中的用户体验非常好,但也有自身的缺点存在:

  • 首屏加载相对较慢

由于 SPA 应用的路由是由前端控制, SPA 在打开首页后,还要根据当前的路由再执行一次内容渲染,相对于 MPA 应用从服务端直出 HTML ,首屏渲染所花费的时间会更长。

  • 不利于 SEO 优化

由于 SPA 应用全程是由 JavaScript 控制内容的渲染,因此唯一的一个 HTML 页面 index.html 通常是一个空的页面,只有最基础的 HTML 结构,不仅无法设置每个路由页面的 TDK ,页面内容也无法呈现在 HTML 代码里,因此对搜索引擎来说,网站的内容再丰富,依然只是一个 “空壳” ,无法让搜索引擎进行内容爬取。

`,33),u=p('

为了减少用户等待过程中的焦虑感,可以通过增加 Loading 过程,或者 Skeleton 骨架屏等优化方案,但其实也是治标不治本,因此为了结合 SPA 和 MPA 的优点,又进一步催生出了更多实用的技术方案以适配更多的业务场景,在后面的小节将逐一介绍。

CSR 与 SSR

在了解了 MPA 与 SPA 之后,先了解另外两个有相关联的名词: CSR 与 SSR ,同样的,这一对也是代表着相反的开发模式和用户体验,它们的全称和中文含义如下:

名词全称中文
CSRClient-Side Rendering客户端渲染
SSRServer-Side Rendering服务端渲染

正如它们的名称,这两者代表的是渲染网页过程中使用到的技术栈。

客户端渲染

MPA 多页面应用与 SPA 单页面应用 部分的介绍过的 SPA 单页面应用,正是基于 CSR 客户端渲染实现的(因此大部分情况下, CSR 等同于 SPA ,包括实现原理和优势),这是一种利用 AJAX 技术,把渲染工作从服务端转移到客户端完成,不仅客户端的用户体验更好,前后端分离的开发模式更加高效。

但随之而来的首屏加载较慢、不利于 SEO 优化等缺点,而 SPA 的这几个缺点,却是传统 MPA 多页面应用所具备的优势,但同样的, MPA 也有着自己开发成本高、用户体验差等问题。

既然原来的技术方案无法完美满足项目需求,因此在结合 MPA 的优点和 SPA 的优点之后,一种新的技术随之诞生,这就是 SSR 服务端渲染。

服务端渲染

和传统的 MPA 使用 PHP / JSP 等技术栈做服务端渲染不同,现代前端工程化里的 SSR 通常是指使用 Node.js 作为服务端技术栈。

TIP

工程化神器 Node.js 一节会介绍 Node ,以及它对前端工程化带来的重大变化,现代前端工程化发展离不开它的存在。

传统的服务端渲染通常由后端开发者一起维护前后端代码,需要写后端语言支持的模板、 JavaScript 代码维护成本也比较高;而 SSR 服务端渲染则是交给前端开发者来维护,利用 Node 提供的能力进行同构渲染,由于本身前后端都使用 JavaScript 编写,维护成本也大大的降低。

SSR 技术利用的同构渲染方案( Isomorphic Rendering ),指的是一套代码不仅可以在客户端运行,也可以在服务端运行,在一些合适的时机先由服务端完成渲染( Server-Side Rendering )再直出给客户端激活( Client-Side Hydration ),这种开发模式带来了:

  • 更好的 SEO 支持,解决了 SPA 单页面应用的痛点
  • 更快的首屏加载速度,保持了 MPA 多页面应用的优点
  • 和 SPA 一样支持前后端分离,开发效率依然很高
  • 有更好的客户端体验,当用户完全打开页面后,本地访问过程中也可以保持 SPA 单页面应用的体验
  • 统一的心智模型,由于支持同构,因此没有额外的心智负担

那么,使用 Vue 开发项目时,应该如何实现 SSR 呢?

Vue 的 SSR 支持非常好, Vue 官方不仅提供了一个 Vue.js 服务器端渲染指南 介绍了基于 Vue 的 SSR 入门实践,还有基于 Vue 的 Nuxt.jsQuasar 框架帮助开发者更简单地落地 SSR 开发,构建工具 Vite 也有内置的 Vue SSR 支持。

Pre-Rendering 与 SSG

在介绍了 SSR 服务端渲染技术后,读者可能会想到一个问题,就是 SSR 的开发成本总归比较高,如果本身项目比较简单,例如一个静态博客,或者静态官网、落地页等内容不多,仅需要简单的 SEO 支持的项目需求,是否有更简便的方案呢?

以下两种方案正是用于满足这类需求的技术:

名词全称中文
Pre-RenderingPre-Rendering预渲染
SSGStatic-Site Generation静态站点生成

预渲染

预渲染也是一种可以让 SPA 单页面应用 解决 SEO 问题的技术手段。

预渲染的原理是在构建的时候启动无头浏览器( Headless Browser ),加载页面的路由并将访问结果按照路由的路径保存到静态 HTML 文件里,这样部署到服务端的页面,不再是一个空的 HTML 页面,而是有真实内容的存在,但由于只在构建时运行,因此用户每次访问的时候 HTML 里的内容不会产生变化,直到下一次构建。

TIP

无头浏览器( Headless Browser ),指没有 GUI 界面的浏览器,使用代码通过编程接口来控制浏览器的行为,常用于网络爬虫、自动化测试等场景,预渲染也使用它来完成页面的渲染,以获取渲染后的代码来填充 HTML 文件。

预渲染和 服务端渲染 最大的区别在于,预渲染只在构建的时候就完成了页面内容的输出(发生在用户请求前),因此构建后不论用户何时访问, HTML 文件里的内容都是构建的时候的那份内容,所以预渲染适合一些简单的、有一定的 SEO 要求但对内容更新频率没有太高要求、内容多为静态展示的页面。

例如企业用于宣传的官网页面、营销活动的推广落地页都非常适合使用预渲染技术,现代的构建工具都提供了预渲染的内置实现,例如这个教程: 用 Vite 更简单的解决 Vue3 项目的预渲染问题 ,就是通过 Vite 的内置功能来实现预渲染,最终也运用到了公司的业务上。

静态站点生成

SSG 静态站点生成是基于预渲染技术,通过开放简单的 API 和配置文件,就让开发者可以实现一个预渲染静态站点的技术方案。

它可以让开发者定制站点的个性化渲染方案,但更多情况下,通常是作为一些开箱即用的技术产品来简化开发过程中的繁琐步骤,这一类技术产品通常称之为静态站点生成器( Static-Site Generator ,也是简称 SSG )。

常见的 SSG 静态站点生成器有:基于 Vue 技术的 VuePressVitePress ,自带了 Vue 组件的支持,还有基于 React 的 Docusaurus ,以及很多各有特色的生成器,例如 JekyllHugo 等等。

如果有写技术文档或者博客等内容创作需求,使用静态站点生成器是一个非常方便的选择,通常这一类产品还有非常多的个性化主题可以使用。

ISR 与 DPR

在现代化的开发概念这一节,从 MPA 多页面应用到 SPA 单页面应用 ,再到 CSR 客户端渲染和 SSR 服务端渲染 ,以及 Pre-Rendering 预渲染与 SSG 静态站点生成 ,似乎已经把所有常见的开发场景覆盖完了。

那接下来要讲的 ISR 和 DPR 又是什么用途的技术方案呢?先看看它们的全称和中文含义:

名词全称中文
ISRIncremental Site Rendering增量式的网站渲染
DPRDistributed Persistent Rendering分布式的持续渲染

当网站的内容体量达到一定程度的时候,从头开始构建进行预渲染所花费的时间会非常久,而实际上并不是所有页面的内容都需要更新,这两项技术的推出是为了提升大型项目的渲染效率。

ISR 增量式的网站渲染,通过区分 “关键页面” 和 “非关键页面” 进行构建,优先预渲染 “关键页面” 以保证内容的最新和正确,同时缓存到 CDN ,而 “非关键页面” 则交给用户访问的时候再执行 CSR 客户端渲染,并触发异步的预渲染缓存到 CDN 。

这样做的好处是,大幅度的提升了每次构建的时间,但由于只保证部分 “关键页面” 的构建和内容正确,所以访问 “非关键页面” 的时候,有可能先看到旧的内容,再由 CSR 刷新为新的内容,会丢失一部分用户体验。

更多 ISR 技术细节可以阅读 Netlify 的开发者体验总监 Cassidy Williams 的一篇文章: Incremental Static Regeneration: Its Benefits and Its Flaws

DPR 分布式的持续渲染则是为了解决 ISR 方案下可能访问到旧内容的问题,这也是由 Cassidy Williams 发起的一个提案,详情可在 GitHub 查看:Distributed Persistent Rendering (DPR)

由于目前这两项技术还在发展初期,能够支持的框架和服务还比较少,在这里建议作为一种技术知识储备提前了解,在未来的某一天有业务需要的时候,也可以知道有这样的方案可以解决问题。

工程化不止于前端

现代化的开发概念 部分所讲述的都是关于网页开发的变化,当然,前端这个岗位本身就是从页面开发发展起来的,自然还是离不开网页这个老本行。

但随着前端工程化的发展,前端越来越不止于写前端,已经有很多前端工程师利用前端工程化带来的优势,不仅仅只是做一个 Web 前端,开始逐步发展为一个全栈工程师,在企业内部承担起了更多的岗位职责,包括作者笔者也是。

之所以能做这么多事情,得益于 Node.js 在前端开发带来的翻天覆地的变化,可以在保持原有的 JavaScript 和 TypeScript 基础上,几乎没有过多的学习成本就可以过度到其他端的开发。

在了解 Node.js 之前,先来看看现在的前端开发工程师除了写 Web 前端,还可以做到哪些岗位的工作。

服务端开发

在传统的认知里,如果一个前端工程师想自己搭建一个服务端项目,需要学习 Java 、 PHP 、 Go 等后端语言,还需要学习 Nginx 、 Apache 等 Web Server 程序的使用,并使用这些技术来开发并部署一个项目的服务端。

现在的前端工程师可以利用 Node.js ,单纯使用 JavaScript 或者 TypeScript 来开发一个基于 Node 的服务端项目。

Node 本身是一个 JavaScript 的运行时,还提供了 HTTP 模块 可以启动一个本地 HTTP 服务,如果把 Node 项目部署到服务器上,就可以运行一个可对外访问的公网服务。

但 Node 的原生服务端开发成本比较高,因此在 GitHub 开源社区也诞生了很多更方便的、开箱即用、功能全面的服务端框架,根据它们的特点,可以简单归类如下:

ExpressKoaFastify 为代表的轻量级服务端框架,这一类框架的特点是 “短平快” ,对于服务端需求不高,只是跑一些小项目的话,开箱即用非常地方便,比如 Build 了一个 Vue 项目,然后提供一个读取静态目录的服务来访问它。

但是 “短平快” 框架带来了一些团队协作上的弊端,如果缺少一些架构设计的能力,很容易把一个服务端搭的很乱以至于难以维护,比如项目的目录结构、代码的分层设计等等,每个创建项目的人都有自己的想法和个人喜好,就很难做到统一管理。

因此在这些框架的基础上,又诞生了以 Nest (底层基于 Express ,可切换为 Fastify )、 Egg (基于 Koa )为代表的基于 MVC 架构的企业级服务端框架,这一类框架的特点是基于底层服务进行了更进一步的架构设计并实现了代码分层,还自带了很多开箱即用的 Building Blocks ,例如 TypeORM 、WebSockets 、Swagger 等等,同样也是开箱即用,对大型项目的开发更加友好。

TIP

当然, Node.js 所做的事情是解决服务端程序部分的工作,如果涉及到数据存储的需求,学习 MySQL 和 Redis 的技术知识还是必不可少的!

App 开发

常规的 Native App 原生开发需要配备两条技术线的支持:使用 Java / Kotlin 语言开发 Android 版本,使用 Objective-C / Swift 语言开发 iOS 版本,这对于创业团队或者个人开发者来说都是一个比较高的开发成本。

前端开发者在项目组里对 App 的作用通常是做一些活动页面、工具页面内嵌到 App 的 WebView 里,如果是在一些产品比较少的团队里,例如只有一个 App 产品,那么前端的存在感会比较低。

而 Hybrid App 的出现,使得前端开发者也可以使用 JavaScript / TypeScript 来编写混合 App ,只需要了解简单的打包知识,就可以参与到一个 App 的开发工作中。

开发 Hybrid App 的过程通常称为混合开发,最大的特色就是一套代码可以运行到多个平台,这是因为整个 App 只有一个基座,里面的 App 页面都是使用 UI WebView 来渲染的 Web 界面,因此混合开发的开发成本相对于原生开发是非常低的,通常只需要一个人 / 一个小团队就可以输出双平台的 App ,并且整个 App 的开发周期也会更短。

在用户体验方面, Hybrid App 相对于 Native App ,一样可以做到:

  • 双平台的体验一致性
  • 支持热更新,无需用户重新下载整个 App
  • 内置的 WebView 在交互体验上也可以做到和系统交互,比如读取 / 存储照片、通讯录,获取定位等等
  • 支持 App Push 系统通知推送
  • 还有很多 Native App 具备的功能

基本上 Native App 的常见功能,在 Hybrid App 都能满足。

而且大部分情况下,在构建 Hybrid App 的时候还可以顺带输出一个 Web App 版本,也就是让这个 App 在被用户下载前,也有一模一样的网页版可以体验,这对于吸引新用户是非常有用的。

在混合开发的过程中,通常是由前端开发者来负责 App 项目从 “开发” 到 “打包” 再到 “发版” 的整个流程,在开发的过程中是使用常见的前端技术栈,例如目前主流的有基于 Vue 的 uni-app 、基于 React 的 React Native 等等,这些 Hybrid 框架都具备了 “学习成本低、开发成本低、一套代码编译多个平台” 的特点。

在 App 开发完毕后,使用 Hybrid 框架提供的 CLI 工具编译出 App 资源包,再根据框架提供的原生基座打包教程去完成 Android / iOS 的安装包构建,这个环节会涉及到原生开发的知识,例如 Android 包的构建会使用到 Android Studio ,但整个过程使用到原生开发的环节非常少,几乎没有太高的学习门槛。

桌面程序开发

放在以前要开发一个 Windows 桌面程序,需要用上 QT / WPF / WinForm 等技术栈,还要学习 C++ / C# 之类的语言,对于只想在业余写几个小工具的开发者来说,上手难度和学习成本都很高,但在前端工程化的时代里,使用 JavaScript 或 TypeScript 也可以满足程序开发的需要。

这得益于 Electron / Tauri 等技术栈的出现,其中 Electron 的成熟度最高、生态最完善、最被广泛使用,除了可以构建 Windows 平台支持的 .exe 文件之外,对 macOS 和 Linux 平台也提供了对应的文件构建支持。

广大前端开发者每天都在使用的 Visual Studio Code 以及知名的 HTTP 网络测试工具 Postman 都是使用 Electron 开发的。

',71),g=p('

笔者也通过 Electron 构建了多个给公司内部使用的界面化工具客户端,这一类技术栈对于前端开发者来说,真的非常方便!在这里以 Electron 为例,简单讲解下它的工作原理,以了解为什么程序开发可以如此简单。

Electron 的底层是基于 Chromium 和 Node.js ,它提供了两个进程供开发者使用:

  1. 主进程:它是整个应用的入口点,主进程运行在 Node 环境中,可以使用所有的 Node API ,程序也因此具备了和系统进行交互的能力,例如文件的读写操作。

  2. 渲染进程:负责与用户交互的 GUI 界面,基于 Chromium 运行,所以开发者得以使用 HTML / CSS / JavaScript 像编写网页一样来编写程序的 GUI 界面。

一个程序应用只会有一个主进程,而渲染进程则可以根据实际需求创建多个,渲染进程如果需要和系统交互,则必须与主进程通信,借助主进程的能力来实现。

在构建的时候, Electron 会把 Node 和 Chromium 一起打包为一个诸如 .exe 这样的安装文件(或者是包含了两者的免安装版本),这样用户不需要 Node 环境也可以运行桌面程序。

应用脚本开发

桌面程序开发 部分讲的是构建一种拥有可视化 GUI 界面的程序,但有时候并不需要复杂的 GUI ,可能只想提供一个双击运行的脚本类程序给用户,现在的前端工程化也支持使用 JavaScript 构建一个无界面的应用脚本。

假如某一天公司的运营小姐姐希望能做一个自动化的脚本减轻她们的机械操作,或者是自己工作过程中发现一些日常工作可以交付给脚本解决的情况,就可以使用这种方式来输出一个脚本程序,使用的时候双击运行非常方便。

笔者之前为了让团队的工程师减少写日报的心智负担,也是使用了这个方式编写了一个 git-commit-analytics 工具,部门里的工程师可以通过规范化 commit 来生成每天的工作日报,每天双击一下就可以生成一份报告,很受团队的喜欢。

',9),b=p(`

在这里推荐一个工具 Pkg ,它可以把 Node 项目打包为一个可执行文件,支持 Windows 、 macOS 、 Linux 等多个平台,它的打包机制和 Electron 打包的思路类似,也是通过把 Node 一起打包,让用户可以在不安装 Node 环境的情况下也可以直接运行脚本程序。

实践工程化的流程

基于 Vue 3 的项目,最主流的工程化组合拳有以下两种:

常用方案Runtime构建工具前端框架
方案一NodeWebpackVue
方案二NodeViteVue

方案一是比较传统并且过去项目使用最多的方案组合,但从 2021 年初随着 Vite 2.0 的发布,伴随着更快的开发体验和日渐丰富的社区生态,新项目很多都开始迁移到方案二,因此本书秉着面向当下与未来的原则,会侧重 Vite 的使用来开展讲解,包括一些 demo 的创建等等。

当技术成熟的时候,还可以选择更喜欢的方案自行组合,例如用 Deno 来代替 Node ,但前期还是按照主流的方案来进入工程化的学习。

下面的内容将根据 Vue 3 的工程化开发,逐一讲解涉及到常用的工具,了解它们的用途和用法。

工程化神器 Node.js

只要在近几年有接触过前端开发,哪怕没有实际使用过,也应该有听说过 Node.js ,那么它是一个什么样的存在?

什么是 Node.js

Node.js (简称 Node ) 是一个基于 Chrome V8 引擎构建的 JS 运行时( JavaScript Runtime )。

它让 JavaScript 代码不再局限于网页上,还可以跑在客户端、服务端等场景,极大的推动了前端开发的发展,现代的前端开发几乎都离不开 Node 。

什么是 Runtime

Runtime ,可以叫它 “运行时” 或者 “运行时环境” ,这个概念是指,项目的代码在哪里运行,哪里就是运行时。

传统的 JavaScript 只能跑在浏览器上,每个浏览器都为 JS 提供了一个运行时环境,可以简单地把浏览器当成一个 Runtime ,明白了这一点,相信就能明白什么是 Node 。

Node 就是一个让 JS 可以脱离浏览器运行的环境,当然,这里并不是说 Node 就是浏览器。

Node 和浏览器的区别

虽然 Node 也是基于 Chrome V8 引擎构建,但它并不是一个浏览器,它提供了一个完全不一样的运行时环境,没有 Window 、没有 Document 、没有 DOM 、没有 Web API ,没有 UI 界面…

但它提供了很多浏览器做不到的能力,比如和操作系统的交互,例如 “文件读写” 这样的操作在浏览器有诸多的限制,而在 Node 则轻轻松松。

对于前端开发者来说, Node 的巨大优势在于,使用一种语言就可以编写所有东西(前端和后端),不再花费很多精力去学习各种各样的开发语言。

哪怕仅仅只做 Web 开发,也不再需要顾虑新的语言特性在浏览器上的兼容性( e.g. ES6 、 ES7 、 ES8 、 ES9 …), Node 配合构建工具,以及诸如 Babel 这样的代码编译器,可以帮转换为浏览器兼容性最高的 ES5 。

当然还有很多工程化方面的好处,总之一句话,使用 Node 的开发体验会非常好。

工程化的入门准备 一章中,会对 Node 开发做进一步的讲解,下面先继续顺着 Node 的工具链,了解与日常开发息息相关的前端构建工具。

工程化的构建工具

在前端开发领域,构建工具已经成为现在必不可少的开发工具了,很多刚接触前端工程化的开发者可能会有疑惑,为什么以前的前端页面直接编写代码就可以在浏览器访问,现在却还要进行构建编译,是否 “多此一举” ?

要消除这些困惑,就需要了解一下为什么要使用构建工具,知道构建工具在开发上能够给带来什么好处。

为什么要使用构建工具

目前已经有很多流行的构建工具,例如: GruntGulpWebpackSnowpackParcelRollupVite … 每一个工具都有自己的特色。

如上面列举的构建工具,虽然具体到某一个工具的时候,是 “一个” 工具,但实际上可以理解为是 “一套” 工具链、工具集,构建工具通常集 “语言转换 / 编译” 、 “资源解析” 、 “代码分析” 、 “错误检查” 、 “任务队列” 等非常多的功能于一身。

构建工具可以帮解决很多问题,先看看最基础的一个功能支持: “语言转换 / 编译” 。

且不说构建工具让可以自由自在的在项目里使用 TypeScript 这些新兴的语言,单纯看历史悠久的 JavaScript ,从 2015 年开始,每年也都会有新的版本发布(例如 ES6 对应 ES2015 、 ES7 对应 ES2016 、 ES8 对应 ES2017 等等)。

虽然新版本的 JS API 更便捷更好用,但浏览器可能还没有完全支持,这种情况下可以通过构建工具去转换成兼容度更高的低版本 JS 代码。

举个很常用到的例子,现在判断一个数组是否包含某个值,通常会这么写:

js
// 声明一个数组
+const arr = ['foo', 'bar', 'baz']
+
+// 当数组包含 foo 这个值时,处理一些逻辑
+if (arr.includes('foo')) {
+  // do something…
+}

通过 Array.prototype.includes() 这个实例方法返回的布尔值,判断数组是否包含目标值,而这个方法是从 ES6 开始支持的,对于不支持 ES6 的古董浏览器,只能使用其他更早期的方法代替( e.g. indexOf ),或者手动引入它的 Polyfill 来保证这个方法可用。

TIP

Polyfill 是在浏览器不支持的情况下实现某个功能的代码,可以在概念发明者 Remy Sharp 的博文里了解到它的由来,是一个挺有意思的命名。

点击阅读: What is a Polyfill?

以下是摘选自 MDN 网站上关于 Array.prototype.includes() 的 Polyfill 实现:

js
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
+if (!Array.prototype.includes) {
+  Object.defineProperty(Array.prototype, 'includes', {
+    value: function (valueToFind, fromIndex) {
+      if (this == null) {
+        throw new TypeError('"this" is null or not defined')
+      }
+
+      // 1. Let O be ? ToObject(this value).
+      var o = Object(this)
+
+      // 2. Let len be ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0
+
+      // 3. If len is 0, return false.
+      if (len === 0) {
+        return false
+      }
+
+      // 4. Let n be ? ToInteger(fromIndex).
+      //    (If fromIndex is undefined, this step produces the value 0.)
+      var n = fromIndex | 0
+
+      // 5. If n ≥ 0, then
+      //  a. Let k be n.
+      // 6. Else n < 0,
+      //  a. Let k be len + n.
+      //  b. If k < 0, let k be 0.
+      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0)
+
+      function sameValueZero(x, y) {
+        return (
+          x === y ||
+          (typeof x === 'number' &&
+            typeof y === 'number' &&
+            isNaN(x) &&
+            isNaN(y))
+        )
+      }
+
+      // 7. Repeat, while k < len
+      while (k < len) {
+        // a. Let elementK be the result of ? Get(O, ! ToString(k)).
+        // b. If SameValueZero(valueToFind, elementK) is true, return true.
+        if (sameValueZero(o[k], valueToFind)) {
+          return true
+        }
+        // c. Increase k by 1.
+        k++
+      }
+
+      // 8. Return false
+      return false
+    },
+  })
+}

由于 JavaScript 允许更改 prototype ,所以 Polyfill 的原理就是先检查浏览器是否支持某个方法,当浏览器不支持的时候,会借助已经被广泛支持的方法来实现相同的功能,达到在旧浏览器上也可以使用新方法的目的。

下面是一个简单的 includes 方法实现,也借用浏览器支持的 indexOf 方法,让不支持 includes 的浏览器也可以使用 includes

js
// 借助 indexOf 来实现一个简单的 includes
+if (!Array.prototype.includes) {
+  Array.prototype.includes = function (v) {
+    return this.indexOf(v) > -1
+  }
+}

WARNING

请注意,上面这个实现方案很粗糙,没有 Polyfill 的方案考虑的足够周到,只是在这里做一个简单的实现演示。

Polyfill 会考虑到多种异常情况,最大幅度保证浏览器的兼容支持,当然一些复杂的方法实现起来会比较臃肿,全靠人工维护 Polyfill 很不现实。

而且实际的项目里,要用到的 JavaScript 原生方法非常多,不可能手动去维护每一个方法的兼容性,所以这部分工作,通常会让构建工具来自动化完成,常见的方案就有 Babel

除了 “语言转换 / 编译” 这个好处之外,在实际的开发中,构建工具可以更好地提高开发效率、提供自动化的代码检查、规避上线后的生产风险,例如:

  • 项目好多代码可以复用,可以直接抽离成 模块组件 ,交给构建工具去合并打包
  • TypeScript 的类型系统和代码检查真好用,也可以放心写,交给构建工具去编译
  • CSS 写起来很慢,可以使用 Sass 、 Less 等 CSS 预处理器 ,利用它们的变量支持、混合继承等功能提高开发效率,最终交给构建工具去编译回 CSS 代码
  • 海量的 npm 包 开箱即用,剩下的工作交给构建工具去按需抽离与合并
  • 项目上线前代码要混淆,人工处理太费劲,交给构建工具自动化处理
  • 还有很多列举不完的其他场景…

下面基于接下来要学习的 Vue3 技术栈,介绍两个流行且强相关的构建工具: WebpackVite

Webpack

Webpack 是一个老牌的构建工具,前些年可以说几乎所有的项目都是基于 Webpack 构建的,生态最庞大,各种各样的插件最全面,对旧版本的浏览器支持程度也最全面。

点击访问:Webpack 官网

在升级与配置一章里的 使用 @vue/cli 创建项目 会指导如何使用 Vue CLI 创建一个基于 Webpack 的 Vue 项目。

Vite

Vite 的作者也是熟悉的 Vue 作者尤雨溪,它是一个基于 ESM 实现的构建工具,主打更轻、更快的开发体验,主要面向现代浏览器,于 2021 年推出 2.x 版本之后,进入了一个飞速发展的时代,目前市场上的 npm 包基本都对 Vite 做了支持,用来做业务已经没有问题了。

毫秒级的开发服务启动和热重载,对 TypeScript 、 CSS 预处理器等常用开发工具都提供了开箱即用的支持,也兼容海量的 npm 包,如果是先用 Webpack 再用的 Vite ,会很快就喜欢上它!

点击访问:Vite 官网

在升级与配置一章里的 使用 Vite 创建项目 会指导如何使用流行脚手架创建一个基于 Vite 的 Vue 项目。

两者的区别

在开发流程上, Webpack 会先打包,再启动开发服务器,访问开发服务器时,会把打包好的结果直接给过去,下面是 Webpack 使用的 bundler 机制的工作流程。

`,58),m=o("p",null,"Vite 是基于浏览器原生的 ES Module ,所以不需要预先打包,而是直接启动开发服务器,请求到对应的模块的时候再进行编译,下面是 Vite 使用的 ESM 机制的工作流程。",-1),f=p('

所以当项目体积越大的时候,在开发启动速度上, Vite 和 Webpack 的差距会越来越大。

可以点击 Vite 官网的这篇文章: 为什么选 Vite 了解更多的技术细节。

构建方面,为了更好的加载体验,以及 Tree Shaking 按需打包 、懒加载和 Chunk 分割利于缓存,两者都需要进行打包;但由于 Vite 是面向现代浏览器,所以如果项目有兼容低版本浏览器的需求的话,建议还是用 Webpack 来打包,否则, Vite 是目前的更优解。

开发环境和生产环境

在使用构建工具的时候,需要了解一下 “环境” 的概念,对构建工具而言,会有 “开发环境( development )” 和 “生产环境( production )” 之分。

TIP

需要注意的是,这和业务上的 “测试 -> 预发 -> 生产” 那几个环境的概念是不一样的,业务上线流程的这几个环境,对于项目来说,都属于 “生产环境” ,因为需要打包部署。

开发环境

前面在编写 Hello TypeScript 这个 demo 的时候,使用了 npm run dev:ts 这样的命令来测试 TypeScript 代码的可运行性,可以把这个阶段认为是一个 “测试环境” ,这个时候代码不管怎么写,它都是 TypeScript 代码,不是最终要编译出来的 JavaScript 。

如果基于 Webpack 或者 Vite 这样的构建工具,测试环境提供了更多的功能,例如:

  • 可以使用 TypeScript 、 CSS 预处理器之类的需要编译的语言提高开发效率
  • 提供了热重载( Hot Module Replacement , 简称 HMR ),当修改了代码之后,无需重新运行或者刷新页面,构建工具会检测的修改自动帮更新
  • 代码不会压缩,并有 Source Mapping 源码映射,方便 BUG 调试
  • 默认提供局域网服务,无需自己做本地部署
  • 更多 …

生产环境

Hello TypeScript demo 最后配置的一个 npm run build 命令,将 TypeScript 代码编译成了 JavaScript ,这个时候 dist 文件夹下的代码文件就处于 “生产环境” 了,因为之后不论源代码怎么修改,都不会直接影响到它们,直到再次执行 build 编译。

可以看出生产环境和开发环境最大的区别就是稳定!除非再次打包发布,否则不会影响到已部署的代码。

  • 代码会编译为浏览器最兼容的版本,一些不兼容的新语法会进行 Polyfill
  • 稳定,除非重新发布,否则不会影响到已部署的代码
  • 打包的时候代码会进行压缩混淆,缩小项目的体积,也降低源码被直接曝光的风险

环境判断

',15),E=p('

在 Vite ,还可以通过判断 import.meta.env.DEVtrue 时是开发环境,判断 import.meta.env.PRODtrue 时是生产环境(这两个值永远相反)。

有关环境变量的问题可以查阅以下文档:

工具文档
Webpack模式
Vite环境变量和模式
',3),x=JSON.parse('{"title":"了解前端工程化","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"engineering.md","filePath":"engineering.md"}'),S={name:"engineering.md"},V=Object.assign(S,{setup(k){const c="process.env.NODE_ENV";return(v,q)=>{const l=t("ImgWrap"),a=t("ClientOnly"),r=t("GitalkComment");return y(),D("div",null,[i,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/job-details.png",dark:"/assets/img/job-details-dark.png",alt:"知名企业对 1-3 年经验的前端工程师招聘要求"})]),_:1}),C,s(a,null,{default:n(()=>[s(l,{src:"/logo.png",alt:"Vue.js Logo",maxWidth:240})]),_:1}),d,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/seo-page.jpg",dark:"/assets/img/seo-page-dark.jpg",alt:"网页呈现的内容"})]),_:1}),A,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/seo-page-code.jpg",dark:"/assets/img/seo-page-code-dark.jpg",alt:"网页内容对应的 HTML 源码"})]),_:1}),h,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/seo-spa-page-code.jpg",dark:"/assets/img/seo-spa-page-code-dark.jpg",alt:"单页面应用的网页内容只有一个空的 HTML 结构"})]),_:1}),u,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/screenshot-vscode.jpg",dark:"/assets/img/screenshot-vscode-dark.jpg",alt:"Visual Studio Code 界面截图"})]),_:1}),s(a,null,{default:n(()=>[s(l,{src:"/assets/img/screenshot-postman.jpg",dark:"/assets/img/screenshot-postman-dark.jpg",alt:"Postman 界面截图"})]),_:1}),g,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/screenshot-pkg.jpg",dark:"/assets/img/screenshot-pkg-dark.jpg",alt:"使用 Pkg 构建后的程序运行截图"})]),_:1}),b,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/bundler.png",alt:"Webpack 的工作原理(摘自 Vite 官网)"})]),_:1}),m,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/esm.png",alt:"Vite 的工作原理(摘自 Vite 官网)"})]),_:1}),f,o("p",null,[e("在 Webpack ,可以使用 "),o("code",null,F(c)),e(" 来区分开发环境( development )还是生产环境( production ),它会返回当前所处环境的名称。")]),E,s(a,null,{default:n(()=>[s(r,{issueId:194})]),_:1})])}}});export{x as __pageData,V as default}; diff --git a/assets/guide.md.82bb6597.js b/assets/guide.md.82bb6597.js new file mode 100644 index 00000000..94be6db3 --- /dev/null +++ b/assets/guide.md.82bb6597.js @@ -0,0 +1,650 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as t,v as c,b as r,t as s,O as n,R as l,M as p}from"./chunks/framework.0d8bea05.js";const q=JSON.parse('{"title":"工程化的前期准备","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide.md","filePath":"guide.md"}'),y={name:"guide.md"},D=l(`

工程化的前期准备

对于刚刚迈入前端工程化、或者还没有接触过前端工程化的开发者,从传统的用 HTML + CSS + JS 手写页面的认知阶段走到工程化的世界,会面对翻天覆地的变化,需要先学习一些入门准备知识。

这一章会介绍一些前置的知识点科普,方便开始学习 Vue3 的时候,不会对一些基本的认知和操作存在太多疑惑。

TIP

本指南需要具备一定的 HTML 、 CSS 和 JavaScript 基础,如果完全不懂,请先对这三个知识点进行一些入门的学习。

命令行工具

在前端工程化开发过程中,已经离不开各种命令行操作,例如:管理项目依赖、本地服务启动、打包构建,还有拉取代码 / 提交代码这些 Git 操作等等。

命令行界面( Command-line Interface ,缩写 CLI ),是一种通过命令行来实现人机交互的工具,需要提前准备好命令行界面工具。

如果有所留意,会发现很多工具都可以实现命令行操作,比如:命令行界面( CLI )、终端( Terminal )、 Shell 、控制台( Console )等等。

从完整功能看,它们之间确实有许多区别,不过对于前端开发者来说,日常的命令行交互需要用到的功能不会特别多,所以后面会统一一些名词,减少理解上的偏差。

交互行为统一代替名词代替名词解释
输入命令行需要输入命令的时候,会统一用 “命令行” 来指代。
输出控制台鉴于前端开发者更多接触的是浏览器的 Console 控制台,
所以也是会用 “控制台” 来指代。

Windows

在 Windows 平台,可以使用自带的 CMD 或者 Windows PowerShell 工具。

但为了更好的开发体验,推荐使用以下工具(需要下载安装),可以根据自己的喜好选择其一:

名称简介下载
Windows Terminal由微软推出的强大且高效的 Windows 终端前往 GitHub 下载
CMDer一款体验非常好的 Windows 控制台模拟器前往 GitHub 下载

笔者在 Windows 台式机上是使用 Windows Terminal 比较多,在此之前是用 CMDer ,两者的设计和体验都非常优秀,当然,还有颜值。

macOS

如果使用的是 Mac 系统,可以直接使用系统自带的 “终端” 工具,笔者在 MacBook 上是使用自带的终端进行开发。

TIP

其实只要能正常使用命令行,对于前端工程师来说就可以满足日常需求,但选择更喜欢的工具,可以让自己的开发过程更为身心愉悦!

安装 Node.js 环境

安装好命令行工具之后,来安装 Node 的开发环境。

下载和安装 Node

在 Node.js 官网提供了安装包的下载,不论是使用 Windows 系统还是 MacOS 系统, Node 都提供了对应的安装包,直接下载安装包并运行即可安装到的电脑里,就可以用来开发的项目了。

点击访问:Node.js 官网下载

安装后,打开的 命令行工具 ,输入以下命令即可查看是否安装成功:

bash
node -v

如果已成功安装,会在控制台输出当前的 Node 版本号。

版本之间的区别

可以看到官网标注了 LTS 和 Current 两个系列,并且对应了不同的版本号。

Current 版本

Current 是最新发布版本,或者叫 “尝鲜版” ,可以在这个系列体验到最新的功能,但也可能会有一些意想不到的问题和兼容性要处理。

每六个月会发布一次 Current 大版本,新的偶数版本( e.g. v16.x.x )会在每年的 4 月份发布,奇数版本( e.g. v17.x.x )会在每年的 10 月份发布。

也就是说,所有版本都会有 Current 版本阶段,这个阶段会持续 6 个月的时间,期间会被活跃的维护和变更,在发布满 6 个月后,奇偶数版本会有不同的结果:

  • 大版本号是奇数的,将变为不支持状态,不会进入 LTS 版本。
  • 大版本号是偶数的,会按照发布节点进入 LTS ,并且作为活跃状态投入使用。

TIP

除非是狂热的 Node 开发探索者,否则不应该选择 Current 系列(特别是在生产环境),应该选择未被 EOL 的 LTS 系列作为的项目运行环境,详见下方的 LTS 版本 说明。

LTS 版本

LTS ,全称 Long Time Support ,长期维护版本,这个系列代表着稳定,建议首次下载以及后续的每次升级都选择 LTS 版本,减少开发过程中的未知问题出现。

每个 LTS 版本的大版本号都是偶数,并且会有 3 个阶段的生命周期:

生命周期含义说明
Active活跃阶段每个从 Current 进入 LTS 的偶数版本,都会有 18 个月的时间被积极维护和升级。
Maintenance维护阶段活跃阶段达到 18 个月后,会进入为期 12 个月的维护阶段,期间只会进行错误修复和安全补丁。
End of Life结束阶段简称 EOL ,在维护阶段达到期限之后,该版本进入 EOL 阶段,将不再维护,也就是说,每个 LTS 版本最长会有 30 个月的维护时间,之后将不再进行维护。

TIP

当然也会有一些例外情况,例如 Node.js 16 版本,为了配合 OpenSSL 1.1.1 的 EOL 时间,将提前 7 个月进入 EOL 阶段。

详见官方公告: Bringing forward the End-of-Life Date for Node.js 16

是否需要经常更新版本

不论是 LTS 还是 Current ,每个系列下面都还有不同的大版本和小版本,是不是每次都必须及时更新到最新版呢?

当然不是,完全可以依照的项目技术栈依赖的最低 Node 版本去决定是否需要升级,不过如果条件允许,还是建议至少要把大版本升级到最新的 LTS 版本。

TIP

关于 Node.js 的版本发布时间表可以在官方 GitHub 的 Release 仓库 查看。

基础的 Node 项目

在安装和配置完 Node.js 之后,接下来了解 Node 项目的一些基础组成,这有助于开启前端工程化开发大门。

TIP

当前文档所演示的 hello-node 项目已托管至 learning-vue3/hello-node 仓库,可使用 Git 克隆命令拉取至本地:

bash
# 从 GitHub 克隆
+git clone https://github.com/learning-vue3/hello-node.git
+
+# 如果 GitHub 访问失败,可以从 Gitee 克隆
+git clone https://gitee.com/learning-vue3/hello-node.git

成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 node 开发的体验,可以更有效的提升学习效果。

初始化一个项目

如果想让一个项目成为 Node 项目,只需要在命令行 cd 到项目所在的目录,执行初始化命令:

bash
npm init

之后命令行会输出一些提示,以及一些问题,可以根据的实际情况填写项目信息,例如:

bash
package name: (demo) hello-node

以上面这个问题为例:

冒号左边的 package name 是问题的题干,会询问要输入什么内容。

冒号右边的括号内容 (demo) 是 Node 为推荐的答案(不一定会出现这个推荐值),如果觉得 OK ,可以直接按回车确认,进入下一道题。

冒号右边的 hello-node 是输入的答案(如果选择了推荐的答案,则这里为空),这个答案会写入到项目信息文件里。

当回答完所有问题之后,会把填写的信息输出到控制台,确认无误后,回车完成初始化的工作。

bash
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "description": "A demo about Node.js.",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \\"Error: no test specified\\" && exit 1"
+  },
+  "author": "chengpeiquan",
+  "license": "MIT"
+}
+
+
+Is this OK? (yes)

如果觉得问题太多,太繁琐了,可以直接加上 -y 参数,这样会以 Node 推荐的答案帮快速生成项目信息。

bash
npm init -y

了解 package.json

在完成 项目的初始化 之后,会发现在项目的根目录下出现了一个名为 package.json 的 JSON 文件。

这是 Node 项目的清单,里面记录了这个项目的基础信息、依赖信息、开发过程的脚本行为、发布相关的信息等等,未来将在很多项目里看到它的身影。

TIP

它必须是 JSON 文件,不可以是存储了 JavaScript 对象字面量的 JS 文件。

如果是按照上面初始化一节的操作得到的这个文件,打开它之后,会发现里面存储了在初始化过程中,根据问题确认下来的那些答案,例如:

json
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "description": "A demo about Node.js.",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \\"Error: no test specified\\" && exit 1"
+  },
+  "author": "chengpeiquan",
+  "license": "MIT"
+}

package.json 的字段并非全部必填,唯一的要求就是,必须是一个 JSON 文件,所以也可以仅仅写入以下内容:

json
{}

但在实际的项目中,往往需要填写更完善的项目信息,除了手动维护这些信息之外,在安装 npm 包等操作时, Node 也会帮写入数据到这个文件里,来了解一些常用字段的含义:

字段名含义
name项目名称,如果打算发布成 npm 包,它将作为包的名称
version项目版本号,如果打算发布成 npm 包,这个字段是必须的,遵循 语义化版本号 的要求
description项目的描述
keywords关键词,用于在 npm 网站上进行搜索
homepage项目的官网 URL
main项目的入口文件
scripts指定运行脚本的命令缩写,常见的如 npm run build 等命令就在这里配置,详见 脚本命令的配置
author作者信息
license许可证信息,可以选择适当的许可证进行开源
dependencies记录当前项目的生产依赖,安装 npm 包时会自动生成,详见:依赖包和插件
devDependencies记录当前项目的开发依赖,安装 npm 包时会自动生成,详见:依赖包和插件
type配置 Node 对 CJS 和 ESM 的支持

其中最后的 type 字段是涉及到模块规范的支持,它有两个可选值: commonjsmodule ,其默认值为 commonjs

  • 当不设置或者设置为 commonjs 时,扩展名为 .js.cjs 的文件都是 CommonJS 规范的模块,如果要使用 ES Module 规范,需要使用 .mjs 扩展名
  • 当设置为 module 时,扩展名为 .js.mjs 的文件都是 ES Module 规范的模块,如果要使用 CommonJS 规范,需要使用 .cjs 扩展名

关于模块规范可以在 学习模块化设计 一节了解更多。

关于 package.json 的完整的选项可以在 npm Docs 上查阅。

项目名称规则

如果打算发布成 npm 包,它将作为包的名称,可以是普通包名,也可以是范围包的包名。

类型释义例子
范围包具备 @scope/project-name 格式,一般有一系列相关的开发依赖之间会以相同的 scope 进行命名@vue/cli@vue/cli-service 就是一系列相关的范围包
普通包其他命名都属于普通包vuevue-router

包名有一定的书写规则:

  • 名称必须保持在 1 ~ 214 个字符之间(包括范围包的 @scope/ 部分)
  • 只允许使用小写字母、下划线、短横线、数字、小数点(并且只有范围包可以以点或下划线开头)
  • 包名最终成为 URL 、命令行参数或者文件夹名称的一部分,所以名称不能包含任何非 URL 安全字符

TIP

了解这一点有助于在后续工作中,在需要查找技术栈相关包的时候,可以知道如何在 npmjs 上找到它们。

如果打算发布 npm 包,可以通过 npm view <package-name> 命令查询包名是否已存在,如果存在就会返回该包的相关信息。

比如查询 vue 这个包名,会返回它的版本号、许可证、描述等信息:

bash
npm view vue
+
+vue@3.2.33 | MIT | deps: 5 | versions: 372
+The progressive JavaScript framework for building modern web UI.
+https://github.com/vuejs/core/tree/main/packages/vue#readme
+
+keywords: vue
+
+# 后面太多信息这里就省略...

如果查询一个不存在的包名,则会返回 404 信息:

bash
npm view vue123456
+npm ERR! code E404
+npm ERR! 404 Not Found - GET https://registry.npmjs.org/vue123456 - Not found
+npm ERR! 404
+npm ERR! 404  'vue123456@latest' is not in this registry.
+npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
+npm ERR! 404
+npm ERR! 404 Note that you can also install from a
+npm ERR! 404 tarball, folder, http url, or git url.
+
+# 后面太多信息这里就省略...

语义化版本号管理

Node 项目遵循 语义化版本号 的规则,例如 1.0.01.0.11.1.0 这样的版本号,本教材的主角 Vue 也是遵循了语义化版本号的发布规则。

建议开发者在入门前端工程化的时候就应该熟悉这套规则,后续的项目开发中,会使用到很多外部依赖,它们也是使用版本号控制来管理代码的发布,每个版本之间可能会有一些兼容性问题,如果不了解版本号的通用规则,很容易在开发中带来困扰。

TIP

现在有很多 CI/CD 流水线作业具备了根据 Git 的 Commit 记录来自动升级版本号,它们也是遵循了语义化版本号规则,版本号的语义化在前端工程里有重大的意义。

基本格式与升级规则

版本号的格式为: Major.Minor.Patch (简称 X.Y.Z ),它们的含义和升级规则如下:

英文中文含义
Major主版本号当项目作了大量的变更,与旧版本存在一定的不兼容问题
Minor次版本号做了向下兼容的功能改动或者少量功能更新
Patch修订号修复上一个版本的少量 BUG

一般情况下,三者均为正整数,并且从 0 开始,遵循这三条注意事项:

  • 当主版本号升级时,次版本号和修订号归零
  • 当次版本号升级时,修订号归零,主版本号保持不变
  • 当修订号升级时,主版本号和次版本号保持不变

下面以一些常见的例子帮助快速理解版本号的升级规则:

  • 如果不打算发布,可以默认为 0.0.0 ,代表它并不是一个进入发布状态的包
  • 在正式发布之前,可以将其设置为 0.1.0 发布第一个测试版本,自此,代表已进入发布状态,但还处于初期开发阶段,这个阶段可能经常改变 API ,但不需要频繁地更新主版本号
  • 0.1.0 发布后,修复了 BUG ,下一个版本号将设置为 0.1.1 ,即更新了一个修订号
  • 0.1.1 发布后,有新的功能发布,下一个版本号可以升级为 0.2.0 ,即更新了一个次版本号
  • 当觉得这个项目已经功能稳定、没有什么 BUG 了,决定正式发布并给用户使用时,那么就可以进入 1.0.0 正式版了

版本标识符

以上是一些常规的版本号升级规则,也可以通过添加 “标识符” 来修饰的版本更新:

格式为: Major.Minor.Patch-Identifier.1 ,其中的 Identifier 代表 “标识符” ,它和版本号之间使用 - 短横线来连接,后面的 .1 代表当前标识符的第几个版本,每发布一次,这个数字 +1 。

标识符含义
alpha内部版本,代表当前可能有很大的变动
beta测试版本,代表版本已开始稳定,但可能会有比较多的问题需要测试和修复
rc即将作为正式版本发布,只需做最后的验证即可发布正式版

脚本命令的配置

在工作中,会频繁接触到 npm run dev 启动开发环境、 npm run build 构建打包等操作,这些操作其实是对命令行的一种别名。

它在 package.json 里是存放于 scripts 字段,以 [key: string]: string 为格式的键值对存放数据( key: value )。

json
{
+  "scripts": {
+    // ...
+  }
+}

其中:

  • key 是命令的缩写,也就是 npm run xxx 里的 xxx ,如果一个单词不足以表达,可以用冒号 : 拼接多个单词,例如 mock:listmock:detail 等等

  • value 是完整的执行命令内容,多个命令操作用 && 连接,例如 git add . && git commit

以 Vue CLI 创建的项目为例,它的项目 package.json 文件里就会包括了这样的命令:

json
{
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build"
+  }
+}

这里的名字是可以自定义的,比如可以把 serve 改成更喜欢的 dev

json
{
+  "scripts": {
+    "dev": "vue-cli-service serve",
+    "build": "vue-cli-service build"
+  }
+}

这样运行 npm run dev 也可以相当于运行了 vue-cli-service serve

据笔者所了解,有不少开发者曾经对不同的 Vue CLI 版本提供的 npm run servenpm run dev 有什么区别有过疑问,看到这里应该都明白了吧,可以说没有区别,因为这取决于它对应的命令,而不是取决于它起什么名称。

TIP

如果 value 部分包含了双引号 " ,必须使用转义符 \\ 来避免格式问题,例如: \\"

可以阅读 npm 关于 scripts 的 完整文档 了解更多用法。

Hello Node

看到这里,对于 Node 项目的基本创建流程和关键信息都有所了解了吧!来写一个 demo ,实际体验一下如何从初始化项目到打印一个 Hello World 到控制台的过程。

请先启动的命令行工具,然后创建一个项目文件夹,这里使用 mkdir 命令:

bash
# 语法是 mkdir <dir-name>
+mkdir hello-node

使用 cd 命令进入刚刚创建好的项目目录:

bash
# 语法是 cd <dir-path>
+cd hello-node

执行项目初始化,可以回答问题,也可以添加 -y 参数来使用默认配置:

bash
npm init -y

来到这里就得到了一个具有 package.json 的 Node 项目了。

在项目下创建一个 index.js 的 JS 文件,可以像平时一样书写 JavaScript ,输入以下内容并保存:

js
console.log('Hello World')

然后打开 package.json 文件,修改 scripts 部分如下,也就是配置了一个 "dev": "node index" 命令:

json
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "dev": "node index"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC"
+}

在命令行执行 npm run dev ,可以看到控制台打印出了 Hello World

bash
npm run dev
+
+> demo@1.0.0 dev
+> node index
+
+Hello World

这等价于直接在命令行执行 node index.js 命令,其中 node 是 Node.js 运行文件的命令, index 是文件名,相当于 index.js ,因为 JS 文件名后缀可以省略。

学习模块化设计

在了解 Node 项目之后,就要开始通过编码来加强对 Node.js 的熟悉程度了,但在开始使用之前,还需要了解一些概念。

在未来的日子里(不限于本教程,与前端工程化相关的工作内容息息相关),会频繁的接触到两个词:模块( Module )和包( Package )。

模块和包是 Node 开发最重要的组成部分,不管是全部自己实现一个项目,还是依赖各种第三方轮子来协助开发,项目的构成都离不开这两者。

模块化解决了什么问题

在软件工程的设计原则里,有一个原则叫 “单一职责” 。

假设一个代码块负责了多个职责的功能支持,在后续的迭代过程中,维护成本会极大的增加,虽然只需要修改这个代码块,但需要兼顾职责 1 、职责 2 、职责 3 … 等多个职责的兼容性,稍不注意就会引起工程运行的崩溃。

“单一职责” 的目的就是减少功能维护带来的风险,把代码块的职责单一化,让代码的可维护性更高。

一个完整业务的内部实现,不应该把各种代码都耦合在一起,而应该按照职责去划分好代码块,再进行组合,形成一个 “高内聚,低耦合” 的工程设计。

模块化就是由此而来,在前端工程里,每个单一职责的代码块,就叫做模块( Module ) ,模块有自己的作用域,功能与业务解耦,非常方便复用和移植。

TIP

模块化还可以解决本章开头所讲述的 传统开发的弊端 里提到的大部分问题,随着下面内容一步步深入,将一步步的理解它。

如何实现模块化

在前端工程的发展过程中,不同时期诞生了很多不同的模块化机制,最为主流的有以下几种:

模块化方案全称适用范围
CJSCommonJSNode 端
AMDAsync Module Definition浏览器
CMDCommon Module Definition浏览器
UMDUniversal Module DefinitionNode 端和浏览器
ESMES ModuleNode 端和浏览器

其中 AMD 、CMD 、 UMD 都已经属于偏过去式的模块化方案,在新的业务里,结合各种编译工具,可以直接用最新的 ESM 方案来实现模块化,所以可以在后续有接触的时候再了解。

ESM ( ES Module ) 是 JavaScript 在 ES6( ECMAScript 2015 )版本推出的模块化标准,旨在成为浏览器和服务端通用的模块解决方案。

CJS ( CommonJS ) 原本是服务端的模块化标准(设计之初也叫 ServerJS ),是为 JavaScript 设计的用于浏览器之外的一个模块化方案, Node 默认支持了该规范,在 Node 12 之前也只支持 CJS ,但从 Node 12 开始,已经同时支持 ES Module 的使用。

至此,不论是 Node 端还是浏览器端, ES Module 是统一的模块化标准了!

但由于历史原因, CJS 在 Node 端依然是非常主流的模块化写法,所以还是值得进行了解,因此下面的内容将主要介绍 CJS 和 ESM 这两种模块化规范是如何实际运用。

TIP

在开始体验模块化的编写之前,请先在电脑里 安装好 Node.js ,然后打开 命令行工具 ,通过 cd 命令进入平时管理项目的目录路径, 初始化一个 Node 项目

另外,在 CJS 和 ESM ,一个独立的文件就是一个模块,该文件内部的变量必须通过导出才能被外部访问到,而外部文件想访问这些变量,需要导入对应的模块才能生效。

用 CommonJS 设计模块

虽然现在推荐使用 ES Module 作为模块化标准,但是日后在实际工作的过程中,还是不免会遇到要维护一些老项目,因此了解 CommonJS 还是非常有必要的。

以下简称 CJS 代指 CommonJS 规范。

准备工作

延续在 Hello Node 部分创建的 Node.js demo 项目,先调整一下目录结构:

  1. 删掉 index.js 文件
  2. 创建一个 src 文件夹,在里面再创建一个 cjs 文件夹
  3. cjs 文件夹里面创建两个文件: index.cjsmodule.cjs

TIP

请注意这里使用了 .cjs 文件扩展名,其实它也是 JS 文件,但这个扩展名是 Node 专门为 CommonJS 规范设计的,可以在 了解 package.json 部分的内容了解更多。

此时目录结构应该如下:

bash
hello-node
+ # 源码文件夹
+├─src
+  # 业务文件夹
+ └─cjs
+    # 入口文件
+   ├─index.cjs
+    # 模块文件
+   └─module.cjs
+ # 项目清单
+└─package.json

这是一个常见的 Node 项目目录结构,通常源代码都会放在 src 文件夹里面统一管理。

接下来再修改一下 package.json 里面的 scripts 部分,改成如下:

json
{
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs"
+  }
+}

后面在命令行执行 npm run dev:cjs 命令,就可以测试刚刚添加的 CJS 模块了。

基本语法

CJS 使用 module.exports 语法导出模块,可以导出任意合法的 JavaScript 类型,例如:字符串、布尔值、对象、数组、函数等等。

使用 require 导入模块,在导入的时候,当文件扩展名是 .js 时,可以只写文件名,而此时使用的是 .cjs 扩展名,所以需要完整的书写。

默认导出和导入

默认导出的意思是,一个模块只包含一个值;而导入默认值则意味着,导入时声明的变量名就是对应模块的值。

src/cjs/module.cjs 文件里,写入以下代码,导出一句 Hello World 信息:

js
// src/cjs/module.cjs
+module.exports = 'Hello World'

TIP

自己在写入代码的时候,不需要包含文件路径那句注释,这句注释只是为了方便阅读时能够区分代码属于哪个文件,以下代码均如此。

src/cjs/index.cjs 文件里,写入以下代码,导入刚刚编写的模块。

js
// src/cjs/index.cjs
+const m = require('./module.cjs')
+console.log(m)

在命令行输入 npm run dev:cjs ,可以看到成功输出了 Hello World 信息:

bash
npm run dev:cjs
+
+> demo@1.0.0 dev:cjs
+> node src/cjs/index.cjs
+
+Hello World

可以看到,在导入模块时,声明的 m 变量拿到的值,就是整个模块的内容,可以直接使用,此例子中它是一个字符串。

再改动一下,把 src/cjs/module.cjs 改成如下,这次导出一个函数:

js
// src/cjs/module.cjs
+module.exports = function foo() {
+  console.log('Hello World')
+}

相应的,这次变成了导入一个函数,所以可以执行它:

js
// src/cjs/index.cjs
+const m = require('./module.cjs')
+m()

得到的结果也是打印一句 Hello World ,不同的是,这一次的打印行为是在模块里定义的,入口文件只是执行模块里的函数。

bash
npm run dev:cjs
+
+> demo@1.0.0 dev:cjs
+> node src/cjs/index.cjs
+
+Hello World

命名导出和导入

默认导出的时候,一个模块只包含一个值,有时候如果想把很多相同分类的函数进行模块化集中管理,例如想做一些 utils 类的工具函数文件、或者是维护项目的配置文件,全部使用默认导出的话,会有非常多的文件要维护。

那么就可以用到命名导出,这样既可以导出多个数据,又可以统一在一个文件里维护管理,命名导出是先声明多个变量,然后通过 {} 对象的形式导出。

再来修改一下 src/cjs/module.cjs 文件,这次改成如下:

js
// src/cjs/module.cjs
+function foo() {
+  console.log('Hello World from foo.')
+}
+
+const bar = 'Hello World from bar.'
+
+module.exports = {
+  foo,
+  bar,
+}

这个时候通过原来的方式去拿模块的值,会发现无法直接获取到函数体或者字符串的值,因为打印出来的也是一个对象。

js
// src/cjs/index.cjs
+const m = require('./module.cjs')
+console.log(m)

控制台输出:

bash
npm run dev:cjs
+
+> demo@1.0.0 dev:cjs
+> node src/cjs/index.cjs
+
+{ foo: [Function: foo], bar: 'Hello World from bar.' }

需要通过 m.foo()m.bar 的形式才可以拿到值。

此时可以用一种更方便的方式,利用 ES6 的对象解构来直接拿到变量:

js
// src/cjs/index.cjs
+const { foo, bar } = require('./module.cjs')
+foo()
+console.log(bar)

这样子才可以直接调用变量拿到对应的值。

导入时重命名

以上都是基于非常理想的情况下使用模块,有时候不同的模块之间也会存在相同命名导出的情况,来看看模块化是如何解决这个问题的。

src/cjs/module.cjs 文件保持不变,依然导出这两个变量:

js
// src/cjs/module.cjs
+function foo() {
+  console.log('Hello World from foo.')
+}
+
+const bar = 'Hello World from bar.'
+
+module.exports = {
+  foo,
+  bar,
+}

这次在入口文件里也声明一个 foo 变量,在导入的时候对模块里的 foo 进行了重命名操作。

js
// src/cjs/index.cjs
+const {
+  foo: foo2,  // 这里进行了重命名
+  bar,
+} = require('./module.cjs')
+
+// 就不会造成变量冲突
+const foo = 1
+console.log(foo)
+
+// 用新的命名来调用模块里的方法
+foo2()
+
+// 这个不冲突就可以不必处理
+console.log(bar)

再次运行 npm run dev:cjs ,可以看到打印出来的结果完全符合预期:

bash
npm run dev:cjs
+
+> demo@1.0.0 dev:cjs
+> node src/cjs/index.cjs
+
+1
+Hello World from foo.
+Hello World from bar.

这是利用了 ES6 解构对象的 给新的变量名赋值 技巧。

以上是针对命名导出时的重命名方案,如果是默认导出,那么在导入的时候用一个不冲突的变量名来声明就可以了。

用 ES Module 设计模块

ES Module 是新一代的模块化标准,它是在 ES6( ECMAScript 2015 )版本推出的,是原生 JavaScript 的一部分。

不过因为历史原因,如果要直接在浏览器里使用该方案,在不同的浏览器里会有一定的兼容问题,需要通过 Babel 等方案进行代码的版本转换(可在 控制编译代码的兼容性 一节了解如何使用 Babel )。

因此一般情况下都需要借助构建工具进行开发,工具通常会提供开箱即用的本地服务器用于开发调试,并且最终打包的时候还可以抹平不同浏览器之间的差异。

随着 ESM 的流行,很多新推出的构建工具都默认只支持该方案( e.g. Vite 、 Rollup ),如果需要兼容 CJS 反而需要另外引入插件单独配置。除了构建工具,很多语言也是默认支持 ESM ,例如 TypeScript ,因此了解 ESM 非常重要。

以下简称 ESM 代指 ES Module 规范。

TIP

在阅读本小节之前,建议先阅读 用 CommonJS 设计模块 以了解前置内容,本小节会在适当的内容前后与 CJS 的写法进行对比。

准备工作

继续使用在 用 CommonJS 设计模块 时使用的 hello-node 项目作为 demo ,当然也可以重新创建一个新的。

一样的,先调整一下目录结构:

  1. src 文件夹里面创建一个 esm 文件夹
  2. esm 文件夹里面创建两个 MJS 文件: index.mjsmodule.mjs

TIP

注意这里使用了 .mjs 文件扩展名,因为默认情况下, Node 需要使用该扩展名才会支持 ES Module 规范。

也可以在 package.json 里增加一个 "type": "module" 的字段来使 .js 文件支持 ESM ,但对应的,原来使用 CommonJS 规范的文件需要从 .js 扩展名改为 .cjs 才可以继续使用 CJS 。

为了减少理解上的门槛,这里选择了使用 .mjs 新扩展名便于入门,可以在 了解 package.json 部分的内容了解更多。

此时目录结构应该如下:

bash
hello-node
+ # 源码文件夹
+├─src
+  # 上次用来测试 CommonJS 的相关文件
+ ├─cjs
+  ├─index.cjs
+  └─module.cjs
+ 
+  # 这次要用的 ES Module 测试文件
+ └─esm
+    # 入口文件
+   ├─index.mjs
+    # 模块文件
+   └─module.mjs
+
+ # 项目清单
+└─package.json

同样的,源代码放在 src 文件夹里面管理。

然后再修改一下 package.json 里面的 scripts 部分,参照上次配置 CJS 的格式,增加一个 ESM 版本的 script ,改成如下:

json
{
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs",
+    "dev:esm": "node src/esm/index.mjs"
+  }
+}

后面在命令行执行 npm run dev:esm 就可以测试的 ESM 模块了。

TIP

注意, script 里的 .mjs 扩展名不能省略。

另外,在实际项目中,可能不需要做这些处理,因为很多工作脚手架已经帮处理过了,比如 Vue3 项目。

基本语法

ESM 使用 export default (默认导出)和 export (命名导出)这两个语法导出模块,和 CJS 一样, ESM 也可以导出任意合法的 JavaScript 类型,例如:字符串、布尔值、对象、数组、函数等等。

使用 import ... from ... 导入模块,在导入的时候,如果文件扩展名是 .js 则可以省略文件名后缀,否则需要把扩展名也完整写出来。

默认导出和导入

ESM 的默认导出也是一个模块只包含一个值,导入时声明的变量名,它对应的数据就是对应模块的值。

src/esm/module.mjs 文件里,写入以下代码,导出一句 Hello World 信息:

js
// src/esm/module.mjs
+export default 'Hello World'

src/esm/index.mjs 文件里,写入以下代码,导入刚刚编写的模块。

js
// src/esm/index.mjs
+import m from './module.mjs'
+console.log(m)

在命令行输入 npm run dev:esm ,可以看到成功输出了 Hello World 信息:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+Hello World

可以看到,在导入模块时,声明的 m 变量拿到的值,就是整个模块的内容,可以直接使用,此例子中它是一个字符串。

像在 CJS 的例子里一样,也来再改动一下,把 src/esm/module.mjs 改成导出一个函数:

js
// src/esm/module.mjs
+export default function foo() {
+  console.log('Hello World')
+}

同样的,这次也是变成了导入一个函数,可以执行它:

js
// src/esm/index.mjs
+import m from './module.mjs'
+m()

一样可以从模块里的函数得到一句 Hello World 的打印信息。

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+Hello World

TIP

可以看到, CJS 和 ESM 的默认导出是非常相似的,在未来如果有老项目需要从 CJS 往 ESM 迁移,大部分情况下只需要把 module.exports 改成 export default 即可。

命名导出和导入

虽然默认导出的时候, CJS 和 ESM 的写法非常相似,但命名导出却完全不同!

在 CJS 里,使用命名导出后的模块数据默认是一个对象,可以导入模块后通过 m.foo 这样的方式去调用对象的属性,或者在导入的时候直接解构拿到对象上的某个属性:

js
// CJS 支持导入的时候直接解构
+const { foo } = require('./module.cjs')

但 ES Module 的默认导出不能这样做,例如下面这个例子,虽然默认导出了一个对象:

js
// 在 ESM ,通过这样导出的数据也是属于默认导出
+export default {
+  foo: 1,
+}

但是无法和 CJS 一样通过大括号的方式导入其中的某个属性:

js
// ESM 无法通过这种方式对默认导出的数据进行 “解构”
+import { foo } from './module.mjs'

这样操作在运行过程中,控制台会抛出错误信息:

bash
import { foo } from './module.mjs'
+         ^^^
+SyntaxError:
+The requested module './module.mjs' does not provide an export named 'foo'

正确的方式应该是通过 export 对数据进行命名导出,先将 src/esm/module.mjs 文件修改成如下代码,请留意 export 关键字的使用:

js
// src/esm/module.mjs
+export function foo() {
+  console.log('Hello World from foo.')
+}
+
+export const bar = 'Hello World from bar.'

通过 export 命名导出的方式,现在才可以使用大括号将它们进行命名导入:

js
// src/esm/index.mjs
+import { foo, bar } from './module.mjs'
+
+foo()
+console.log(bar)

这一次程序可以顺利运行了:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+Hello World from foo.
+Hello World from bar.

那么有没有办法像 CJS 一样使用 m.foo 调用对象属性的方式一样,去使用这些命名导出的模块呢?

答案是肯定的!命名导出支持使用 * as 变量名称 的方式将其所有命名挂在某个变量上,该变量是一个对象,每一个导出的命名都是其属性:

ts
// src/esm/index.mjs
+// 注意这里使用了另外一种方式,将所有的命名导出都挂在了 \`m\` 变量上
+import * as m from './module.mjs'
+
+console.log(typeof m)
+console.log(Object.keys(m))
+
+m.foo()
+console.log(m.bar)

运行 npm run dev:esm ,将输出:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+object
+[ 'bar', 'foo' ]
+Hello World from foo.
+Hello World from bar.

导入时重命名

接下来看看 ESM 是如何处理相同命名导出的问题,项目下的模块文件依然保持不变,还是导出两个变量:

js
// src/esm/module.mjs
+export function foo() {
+  console.log('Hello World from foo.')
+}
+
+export const bar = 'Hello World from bar.'

入口文件里面,也声明一个 foo 变量,然后导入的时候对模块里的 foo 进行重命名操作:

js
// src/esm/index.mjs
+import {
+  foo as foo2,  // 这里进行了重命名
+  bar
+} from './module.mjs'
+
+// 就不会造成变量冲突
+const foo = 1
+console.log(foo)
+
+// 用新的命名来调用模块里的方法
+foo2()
+
+// 这个不冲突就可以不必处理
+console.log(bar)

可以看到,在 ESM 的重命名方式和 CJS 是完全不同的,它是使用 as 关键字来操作,语法为 <old-name> as <new-name>

现在再次运行 npm run dev:esm ,可以看到打印出来的结果也是完全符合预期了:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+1
+Hello World from foo.
+Hello World from bar.

以上是针对命名导出时的重命名方案,如果是默认导出,和 CJS 一样,在导入的时候用一个不冲突的变量名来声明就可以了。

在浏览器里访问 ESM

ES Module 除了支持在 Node 环境使用,还可以和普通的 JavaScript 代码一样在浏览器里运行。

要在浏览器里体验 ESM ,需要使用现代的主流浏览器(如 Chrome ),并注意其访问限制,例如本地开发不能直接通过 file:// 协议在浏览器里访问本地 HTML 内引用的 JS 文件,这是因为浏览器对 JavaScript 的安全性要求,会触发 CORS 错误,因此需要启动本地服务并通过 http:// 协议访问。

TIP

CORS (全称 Cross-Origin Resource Sharing )是指跨源资源共享,可以决定浏览器是否需要阻止 JavaScript 获取跨域请求的响应。

现代浏览器默认使用 “同源安全策略” ,这里的 “源” 指 URL 的 origin 部分,例如网页可以通过 window.location.origin 获取到如 https://example.com 这样格式的数据,就是网页的 origin

默认情况下,非同源的请求会被浏览器拦截,最常见的场景是通过 XHR 或者 Fetch 请求 API 接口,需要网页和接口都部署在同一个域名才可以请求成功,否则就会触发跨域限制。

如果网页和接口不在同一个域名,例如网页部署在 https://web.example.com ,接口部署在 https://api.example.com ,此时需要在 https://api.example.com 的 API 服务端程序里,配置 Access-Control-Allow-Origin: * 允许跨域请求( * 代表允许任意外域访问,也可以指定具体的域名作为白名单列表)。

添加服务端程序

接下来搭建一个简单的本地服务,并通过 HTML 文件来引入 ESM 模块文件,体验浏览器端如何使用 ESM 模块。

在 hello-node 项目的根目录下创建名为 server 的文件夹(与 src 目录同级),并添加 index.js 文件,敲入以下代码:

js
// server/index.js
+const { readFileSync } = require('fs')
+const { resolve } = require('path')
+const { createServer } = require('http')
+
+/**
+ * 判断是否 ESM 文件
+ */
+function isESM(url) {
+  return String(url).endsWith('mjs')
+}
+
+/**
+ * 获取 MIME Type 信息
+ * @tips \`.mjs\` 和 \`.js\` 一样,都使用 JavaScript 的 MIME Type
+ */
+function mimeType(url) {
+  return isESM(url) ? 'application/javascript' : 'text/html'
+}
+
+/**
+ * 获取入口文件
+ * @returns 存放在本地的文件路径
+ */
+function entryFile(url) {
+  const file = isESM(url) ? \`../src/esm\${url}\` : './index.html'
+  return resolve(__dirname, file)
+}
+
+/**
+ * 创建 HTTP 服务
+ */
+const app = createServer((request, response) => {
+  // 获取请求时的相对路径,如网页路径、网页里的 JS 文件路径等
+  const { url } = request
+
+  // 转换成对应的本地文件路径并读取其内容
+  const entry = entryFile(url)
+  const data = readFileSync(entry, 'utf-8')
+
+  // 需要设置正确的响应头信息,浏览器才可以正确响应
+  response.writeHead(200, { 'Content-Type': mimeType(url) })
+  response.end(data)
+})
+
+/**
+ * 在指定的端口号启动本地服务
+ */
+const port = 8080
+app.listen(port, '0.0.0.0', () => {
+  console.log(\`Server running at:\`)
+  console.log()
+  console.log(\`  ➜  Local:  http://localhost:\${port}/\`)
+  console.log()
+})

这是一个基础的 Node.js 服务端程序,利用了 HTTP 模块启动本地服务,期间利用 FS 模块的 I/O 能力对本地文件进行读取,而 PATH 模块则简化了文件操作过程中的路径处理和兼容问题(例如众所周知的 Windows 与 macOS 的路径斜杆问题)。

TIP

在这段服务端程序代码里,请留意 mimeType 方法,要让浏览器能够正确解析 .mjs 文件,需要在服务端响应文件内容时,将其 MIME Type 设置为 和 JavaScript 文件一样,这一点非常重要。

并且需要注意传递给 readFileSync API 的文件路径是否与真实存在的文件路径匹配,如果启动服务时,在 Node 控制台报了 no such file or directory 的错误,请检查是否因为笔误写错了文件名称,或者文件路径多了空格等情况。

添加入口页面

继续在 server 目录下添加一个 index.html 并写入以下 HTML 代码,它将作为网站的首页文件:

TIP

可以在 VSCode 先新建一个空文件,文件语言设置为 HTML ,并写入英文感叹号 ! ,再按 Tab 键(或者鼠标选择第一个代码片段提示),可快速生成基础的 HTML 结构。

html
<!-- server/index.html -->
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>ESM run in browser</title>
+  </head>
+  <body>
+    <script type="module" src="./index.mjs"></script>
+  </body>
+</html>

请注意在 <script /> 标签这一句代码上,比平时多了一个 type="module" 属性,这代表这个 script 是使用了 ESM 模块,而 src 属性则对应指向了上文在 src/esm 目录下的入口文件名。

之所以无需使用 ../src/esm/index.mjs 显式的指向真实目录,是因为在 添加服务端程序 时,已通过服务端代码里的 entryFile 方法重新指向了文件所在的真实路径,所以在 HTML 文件里可以使用 ./ 简化文件路径。

启动服务并访问

打开 package.json 文件,在 scripts 字段追加一个 serve 命令如下:

json
{
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs",
+    "dev:esm": "node src/esm/index.mjs",
+    "serve": "node server/index.js"
+  }
+}

在命令行运行 npm run serve 即可启动本地服务:

bash
 npm run serve
+
+> demo@1.0.0 serve
+> node server/index.js
+
+Server running at:
+
+    Local:  http://localhost:8080/

根据命令行提示,在浏览器访问 http://localhost:8080/ 地址,即可访问本地服务。

TIP

如遭遇端口号冲突,可在 server/index.js 的 const port = 8080 代码处修改为其他端口号。

因为在编写 HTML 文件时没有写入内容,只引入了 ESM 模块文件,因此需要按 F12 唤起浏览器的控制台查看 Log ,可以看到控制台根据模块的文件内容,输出了这三句 Log (如果没有 Log ,可在控制台唤起的情况下按 F5 重新载入页面):

bash
1                                                   index.mjs:8
+Hello World from foo.                               module.mjs:2
+Hello World from bar.                               index.mjs:14

分别来自 src/esm/index.mjs 本身的 console.log 语句,以及 import 进来的 module.mjs 里的 console.log 语句。

如果未能出现这三句 Log ,请留意 .mjs 文件内容是否为上一小节最后的内容:

src/esm/index.mjs 文件内容为:

js
// src/esm/index.mjs
+import {
+  foo as foo2, // 这里进行了重命名
+  bar,
+} from './module.mjs'
+
+// 就不会造成变量冲突
+const foo = 1
+console.log(foo)
+
+// 用新的命名来调用模块里的方法
+foo2()
+
+// 这个不冲突就可以不必处理
+console.log(bar)

src/esm/module.mjs 文件内容为:

js
// src/esm/module.mjs
+export function foo() {
+  console.log('Hello World from foo.')
+}
+
+export const bar = 'Hello World from bar.'
内联的 ESM 代码

到目前为止, server/index.html 文件里始终是通过文件的形式引入 ESM 模块,其实 <script type="module" /> 也支持编写内联代码,和普通的 <script /> 标签用法相同:

html
<script type="module">
+  // ESM 模块的 JavaScript 代码
+</script>

请移除 <script /> 标签的 src 属性,并在标签内写入 src/esm/index.mjs 文件里的代码,现在该 HTML 文件的完整代码如下:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>ESM run in browser</title>
+  </head>
+  <body>
+    <!-- 标签内的代码就是 src/esm/index.mjs 的代码 -->
+    <script type="module">
+      import {
+        foo as foo2, // 这里进行了重命名
+        bar,
+      } from './module.mjs'
+
+      // 就不会造成变量冲突
+      const foo = 1
+      console.log(foo)
+
+      // 用新的命名来调用模块里的方法
+      foo2()
+
+      // 这个不冲突就可以不必处理
+      console.log(bar)
+    </script>
+  </body>
+</html>

回到浏览器刷新 http://localhost:8080/ ,可以看到浏览器控制台依然输出了和引入 src="./index.mjs" 时一样的 Log 信息:

bash
1                                                   (index):21
+Hello World from foo.                               module.mjs:2
+Hello World from bar.                               (index):27
了解模块导入限制

虽然以上例子可以完美地在浏览器里引用现成的 ESM 模块代码并运行,但不代表工程化项目下所有的 ES Module 模块化方式都适合浏览器。

先做一个小尝试,将 src/esm/index.mjs 文件内容修改如下,导入项目已安装的 md5 工具包:

js
// src/esm/index.mjs
+import md5 from 'md5'
+console.log(md5('Hello World'))

回到浏览器刷新 http://localhost:8080/ ,观察控制台,可以发现出现了一个红色的错误信息:

bash
Uncaught TypeError: Failed to resolve module specifier "md5".
+Relative references must start with either "/", "./", or "../".

这是因为不论是通过 <script type="module" /> 标签还是通过 import 语句导入,模块的路径都必须是以 /./ 或者是 ../ 开头,因此无法直接通过 npm 包名进行导入。

这种情况下需要借助另外一个 script 类型: importmap ,在 server/index.html 里追加 <script type="importmap" /> 这一段代码:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>ESM run in browser</title>
+  </head>
+  <body>
+    <!-- 注意需要先通过 \`importmap\` 引入 npm 包的 CDN -->
+    <script type="importmap">
+      {
+        "imports": {
+          "md5": "https://esm.run/md5"
+        }
+      }
+    </script>
+
+    <!-- 然后才能在 \`module\` 里 \`import xx from 'xx'\` -->
+    <script type="module" src="./index.mjs"></script>
+  </body>
+</html>

再次刷新页面,可以看到控制台成功输出了 b10a8db164e0754105b7a99be72e3fe5 这个字符串,也就是 Hello World 被 MD5 处理后的结果。

可以看到 importmap 的声明方式和 package.json 的 dependencies 字段非常相似, JSON 的 key 是包名称, value 则是支持 ESM 的远程地址。

TIP

Import Maps 的运行机制是通过 import 映射来控制模块说明符的解析,类似于构建工具常用的 alias 别名机制。

这是一个现代浏览器才能支持的新特性,建议使用 Chrome 最新版本体验完整功能,可以在其 GitHub 仓库 查看更多用法。

上方例子里, md5 对应的远程地址是使用了来自 esm.run 网站的 URL ,而不是 npm 包同步到 jsDelivr CDN 或者 UNPKG CDN 的地址,这是因为 md5 这个包本身不支持 ES Module ,需要通过 esm.run 这个网站进行在线转换才可以在 <script type="module" /> 上使用。

`,323),F=l(`

该网站的服务是 jsDelivr CDN 所属的服务商提供,因此也可以通过 jsDelivr CDN 的 URL 添加 /+esm 参数来达到转换效果,以 md5 包为例:

bash
# 默认是一个 CJS 包
+https://cdn.jsdelivr.net/npm/md5
+
+# 可添加 \`/+esm\` 参数变成 ESM 包
+https://cdn.jsdelivr.net/npm/md5/+esm

总的来说,现阶段在浏览器使用 ES Module 并不是一个很好的选择,建议开发者还是使用构建工具来开发,工具可以抹平这些浏览器差异化问题,降低开发成本。

认识组件化设计

学习完模块化设计之后,未来在 Vue 的工程化开发过程中,还会遇到一个新的概念,那就是 “组件” 。

什么是组件化

模块化属于 JavaScript 的概念,但作为一个页面,都知道它是由 HTML + CSS + JS 三部分组成的,既然 JS 代码可以按照不同的功能、需求划分成模块,那么页面是否也可以呢?

答案是肯定的!组件化就是由此而来。

在前端工程项目里,页面可以理解为一个积木作品,组件则是用来搭建这个作品的一块又一块积木。

`,9),i=l(`

解决了什么问题

模块化属于 JavaScript 的概念,把代码块的职责单一化,一个函数、一个类都可以独立成一个模块。

但这只解决了逻辑部分的问题,一个页面除了逻辑,还有骨架( HTML )和样式( CSS ),组件就是把一些可复用的 HTML 结构和 CSS 样式再做一层抽离,然后再放置到需要展示的位置。

常见的组件有:页头、页脚、导航栏、侧边栏… 甚至小到一个用户头像也可以抽离成组件,因为头像可能只是尺寸、圆角不同而已。

每个组件都有自己的 “作用域” , JavaScript 部分利用 模块化 来实现作用域隔离, HTML 和 CSS 代码则借助 Style Scoped 来生成独有的 hash ,避免全局污染,这些方案组合起来,使得组件与组件之间的代码不会互相影响。

如何实现组件化

在 Vue ,是通过 Single-File Component (简称 SFC , .vue 单文件组件)来实现组件化开发。

一个 Vue 组件是由三部分组成的:

vue
<template>
+  <!-- HTML 代码 -->
+</template>
+
+<script>
+// JavaScript 代码
+</script>
+
+<style scoped>
+/* CSS 代码 */
+</style>

在后面的 单组件的编写 一章中,会详细介绍如何编写一个 Vue 组件。

依赖包和插件

在实际业务中,经常会用到各种各样的插件,插件在 Node 项目里的体现是一个又一个的依赖包。

虽然也可以把插件的代码文件手动放到的源码文件夹里引入,但并不是一个最佳的选择,本节内容将带了解 Node 的依赖包。

什么是包

在 Node 项目里,包可以简单理解为模块的集合,一个包可以只提供一个模块的功能,也可以作为多个模块的集合集中管理。

包通常是发布在官方的包管理平台 npmjs 上面,开发者需要使用的时候,可以通过包管理器安装到项目里,并在的代码里引入,开箱即用(详见: 依赖包的管理 )。

使用 npm 包可以减少在项目中重复造轮子,提高项目的开发效率,也可以极大的缩小项目源码的体积(详见:什么是 node_modules)。

包管理平台官网:https://www.npmjs.com

什么是 node_modules

node_modules 是 Node 项目下用于存放已安装的依赖包的目录,如果不存在,会自动创建。

如果是本地依赖,会存在于项目根目录下,如果是全局依赖,会存在于环境变量关联的路径下,详见下方的管理依赖部分内容的讲解。

TIP

一般在提交项目代码到 Git 仓库或者的服务器上时,都需要排除 node_modules 文件夹的提交,因为它非常大。

如果托管在 Git 仓库,可以在 .gitignore 文件里添加 node_modules 作为要排除的文件夹名称。

什么是包管理器

包管理器( Package Manager )是用来管理依赖包的工具,比如:发布、安装、更新、卸载等等。

Node 默认提供了一个包管理器 npm ,在安装 Node.js 的时候,默认会一起安装 npm 包管理器,可以通过以下命令查看它是否正常。

bash
npm -v

如果正常,将会输出相应的版本号。

依赖包的管理

接下来会以 npm 作为默认的包管理器,来了解如何在项目里管理依赖包。

配置镜像源

在国内,直接使用 npm 会比较慢,可以通过绑定 npm Mirror 中国镜像站 的镜像源来提升依赖包的下载速度。

可以先在命令行输入以下命令查看当前的 npm 配置:

bash
npm config get registry
+# https://registry.npmjs.org/

默认情况下,会输出 npm 官方的资源注册表地址,接下来在命令行上输入以下命令,进行镜像源的绑定:

bash
npm config set registry https://registry.npmmirror.com

可以再次运行查询命令来查看是否设置成功:

bash
npm config get registry
+# https://registry.npmmirror.com/

可以看到已经成功更换为中国镜像站的地址了,之后在安装 npm 包的时候,速度会有很大的提升!

如果需要删除自己配置的镜像源,可以输入以下命令进行移除,移除后会恢复默认设置:

bash
npm config rm registry

TIP

如果之前已经绑定过 npm.taobao 系列域名,也请记得更换成 npmmirror 这个新的域名!

随着新的域名已经正式启用,老 npm.taobao.orgregistry.npm.taobao.org 域名在 2022 年 05 月 31 日零时后不再提供服务。

详见:【望周知】淘宝 npm 镜像站喊你切换新域名啦

本地安装

项目的依赖建议优先选择本地安装,这是因为本地安装可以把依赖列表记录到 package.json 里,多人协作的时候可以减少很多问题出现,特别是当本地依赖与全局依赖版本号不一致的时候。

生产依赖

执行 npm install 的时候,添加 --save 或者 -S 选项可以将依赖安装到本地,并列为生产依赖。

TIP

需要提前在命令行 cd 到的项目目录下再执行安装。

另外, --save 或者 -S 选项在实际使用的时候可以省略,因为它是默认选项。

bash
npm install --save <package-name>

可以在项目的 package.json 文件里的 dependencies 字段查看是否已安装成功,例如:

json
// package.json
+{
+  // 会安装到这里
+  "dependencies": {
+    // 以 "包名":"版本号" 的格式写入
+    "vue-router": "^4.0.14"
+  }
+}

生产依赖包会被安装到项目根目录下的 node_modules 目录里。

项目在上线后仍需用到的包,就需要安装到生产依赖里,比如 Vue 的路由 vue-router 就需要以这个方式安装。

开发依赖

执行 npm install 的时候,如果添加 --save-dev 或者 -D 选项,可以将依赖安装到本地,并写入开发依赖里。

TIP

需要提前在命令行 cd 到的项目目录下再执行安装。

bash
npm install --save-dev <package-name>

可以在项目的 package.json 文件里的 devDependencies 字段查看是否已安装成功,例如:

json
// package.json
+{
+  // 会安装到这里
+  "devDependencies": {
+    // 以 "包名":"版本号" 的格式写入
+    "eslint": "^8.6.0"
+  }
+}

开发依赖包也是会被安装到项目根目录下的 node_modules 目录里。

和生产依赖包不同的点在于,只在开发环境生效,构建部署到生产环境时可能会被抛弃,一些只在开发环境下使用的包,就可以安装到开发依赖里,比如检查代码是否正确的 ESLint 就可以用这个方式安装。

全局安装

执行 npm install 的时候,如果添加 --global 或者 -g 选项,可以将依赖安装到全局,它们将被安装在 配置环境变量 里配置的全局资源路径里。

bash
npm install --global <package-name>

TIP

Mac 用户需要使用 sudo 来提权才可以完成全局安装。

另外,可以通过 npm root -g 查看全局包的安装路径。

一般情况下,类似于 @vue/cli 之类的脚手架会提供全局安装的服务,安装后,就可以使用 vue create xxx 等命令直接创建 Vue 项目了。

但不是每个 npm 包在全局安装后都可以正常使用,请阅读 npm 包的主页介绍和使用说明。

版本控制

有时候一些包的新版本不一定适合的老项目,因此 npm 也提供了版本控制功能,支持通过指定的版本号或者 Tag 安装。

语法如下,在包名后面紧跟 @ 符号,再紧跟版本号或者 Tag 名称。

bash
npm install <package-name>@<version | tag>

例如:

现阶段 Vue 默认为 3.x 的版本了,如果想安装 Vue 2 ,可以通过指定版本号的方式安装:

bash
npm install vue@2.6.14

或者通过对应的 Tag 安装:

bash
npm install vue@legacy

TIP

版本号或者 Tag 名称可以在 npmjs 网站上的包详情页查询。

版本升级

一般来说,直接重新安装依赖包可以达到更新的目的,但也可以通过 npm update 命令来更新。

语法如下,可以更新全部的包:

bash
npm update

也可以更新指定的包:

bash
npm update <package-name>

npm 会检查是否有满足版本限制的更新版本。

卸载

可以通过 npm uninstall 命令来卸载指定的包,和安装一样,卸载也区分了卸载本地依赖包和卸载全局包,不过只有在卸载全局包的时候才需要添加选项,默认只卸载当前项目下的本地包。

本地卸载:

bash
npm uninstall <package-name>

全局卸载:

bash
npm uninstall --global <package-name>

TIP

Mac 用户需要使用 sudo 来提权才可以完成全局卸载。

如何使用包

在了解了 npm 包的常规操作之后,通过一个简单的例子来了解如何在项目里使用 npm 包。

继续使用的 Hello Node demo ,或者也可以重新创建一个 demo 。

首先在 命令行工具 通过 cd 命令进入项目所在的目录,用本地安装的方式来把 md5 包 添加到生产依赖,这是一个为提供开箱即用的哈希算法的包,在未来的实际工作中,可能也会用到它,在这里使用它是因为足够简单。

输入以下命令并回车执行:

bash
npm install md5

可以看到控制台提示一共安装了 4 个包,这是因为 md5 这个 npm 包还引用了其他的包作为依赖,需要同时安装才可以正常工作。

bash
# 这是安装 md5 之后控制台的信息返回
+added 4 packages, and audited 5 packages in 2s
+
+found 0 vulnerabilities

此时项目目录下会出现一个 node_modules 文件夹和一个 package-lock.json 文件:

bash
hello-node
+ # 依赖文件夹
+├─node_modules
+ # 源码文件夹
+├─src
+ # 锁定安装依赖的版本号
+├─package-lock.json
+ # 项目清单
+└─package.json

先打开 package.json ,可以看到已经多出了一个 dependencies 字段,这里记录了刚刚安装的 md5 包信息。

json
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs",
+    "dev:esm": "node src/esm/index.mjs",
+    "serve": "node server/index.js"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC",
+  "dependencies": {
+    "md5": "^2.3.0"
+  }
+}

来到这里可能会有一连串的疑问:

  1. 为什么只安装了一个 md5 ,但控制台提示安装了 4 个包?
  2. 为什么 package.json 又只记录了 1 个 md5 包信息?
  3. 为什么提示审核了 5 个包,哪里来的第 5 个包?

不要着急,请先打开 package-lock.json 文件,这个文件是记录了锁定安装依赖的版本号信息(由于篇幅原因,这里的展示省略了一些包的细节):

json
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "hello-node",
+      "version": "1.0.0",
+      "license": "ISC",
+      "dependencies": {
+        "md5": "^2.3.0"
+      }
+    },
+    "node_modules/charenc": {
+      "version": "0.0.2"
+      // ...
+    },
+    "node_modules/crypt": {
+      "version": "0.0.2"
+      // ...
+    },
+    "node_modules/is-buffer": {
+      "version": "1.1.6"
+      // ...
+    },
+    "node_modules/md5": {
+      "version": "2.3.0"
+      // ...
+    }
+  },
+  "dependencies": {
+    "charenc": {
+      "version": "0.0.2"
+      // ...
+    },
+    "crypt": {
+      "version": "0.0.2"
+      // ...
+    },
+    "is-buffer": {
+      "version": "1.1.6"
+      // ...
+    },
+    "md5": {
+      "version": "2.3.0",
+      // ...
+      "requires": {
+        "charenc": "0.0.2",
+        "crypt": "0.0.2",
+        "is-buffer": "~1.1.6"
+      }
+    }
+  }
+}

可以看到这个文件的 dependencies 字段除了 md5 之外,还有另外 3 个包信息,它们就是 md5 包所依赖的另外 3 个 npm 包了,这就解答了为什么一共安装了 4 个 npm 包。

在 node_modules 文件夹下也可以看到以这 4 个包名为命名的文件夹,这些文件夹存放的就是各个包项目发布在 npmjs 平台上的文件。

再看 packages 字段,这里除了罗列出 4 个 npm 包的信息之外,还把项目的信息也列了进来,这就是为什么是提示审核了 5 个包,原因是除了 4 个依赖包,该项目本身也是一个包。

TIP

package-lock.json 文件并不是一成不变的,假如以后 md5 又引用了更多的包,这里记录的信息也会随之增加。

并且不同的包管理器,它的 lock 文件也会不同,如果是使用 yarn 作为包管理器的话,它是生成一个 yarn.lock 文件,而不是 package-lock.json ,有关更多的包管理器,详见 插件的使用 一章。

现在已经安装好 md5 包了,接下来看看具体如何使用它。

通常在包的 npmjs 主页上会有 API 和用法的说明,只需要根据说明操作,打开 src/esm/index.mjs 文件,首先需要导入这个包。

包的导入和在 学习模块化设计 一节了解到的模块导入用法是一样的,只是把 from 后面的文件路径换成了包名。

js
// src/esm/index.mjs
+import md5 from 'md5'

然后根据 md5 的用法,来编写一个小例子,先声明一个原始字符串变量,然后再声明一个使用 md5 加密过的字符串变量,并打印它们:

js
// src/esm/index.mjs
+import md5 from 'md5'
+
+const before = 'Hello World'
+const after = md5(before)
+console.log({ before, after })

在命令行输入 npm run dev:esm ,可以在控制台看到输出了这些内容,成功获得了转换后的结果:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+{ before: 'Hello World', after: 'b10a8db164e0754105b7a99be72e3fe5' }

是不是非常简单,其实包的用法和在导入模块的用法可以说是完全一样的,区别主要在于,包是需要安装了才能用,而模块是需要自己编写。

控制编译代码的兼容性

作为一名前端工程师,了解如何控制代码的兼容性是非常重要的能力。

在 “了解前端工程化” 的 为什么要使用构建工具 一节里,已简单介绍过 Polyfill 的作用,以及介绍了构建工具可以通过 Babel 等方案自动化处理代码的兼容问题,这一小节将讲解 Babel 的配置和使用,亲自体验如何控制代码的兼容性转换。

如何查询兼容性

在开始学习使用 Babel 之前,需要先掌握一个小技能:了解如何查询代码在不同浏览器上的兼容性。

说起浏览器兼容性,前端工程师应该都不陌生,特别是初学者很容易会遇到在自己的浏览器上布局正确、功能正常,而在其他人的电脑或者手机上访问就会有布局错位或者运行报错的问题出现,最常见的场景就是开发者使用的是功能强大的 Chrome 浏览器,而产品用户使用了 IE 浏览器。

这是因为网页开发使用的 HTML / CSS / JavaScript 每年都在更新新版本,推出更好用的新 API ,或者废弃部分过时的旧 API ,不同的浏览器在版本更新过程中,对这些新 API 的支持程度并不一致,如果使用了新 API 而没有做好兼容支持,很容易就会在低版本浏览器上出现问题。

为了保证程序可以正确的在不同版本浏览器之间运行,就需要根据产品要支持的目标浏览器范围,去选择兼容性最好的编程方案。

在 Web 开发有一个网站非常知名:Can I use ,只要搜索 API 的名称,它会以图表的形式展示该 API 在不同浏览器的不同版本之间的支持情况,支持 HTML 标签、 CSS 属性、 JavaScript API 等内容的查询。

以 JavaScript ES6 的 class 新特性为例:

`,128),C=l(`

可以看到在 Chrome 浏览器需要在 49 版本开始才被完全支持,而 IE 浏览器则全面不支持,如果不做特殊处理(例如引入 Polyfill 方案),那么就需要考虑在编程过程中,是否需要可以直接使用 class 来实现功能,还是寻找其他替代方案。

在工作中,工程师无需关注每一个 API 的具体支持范围,这些工作可以交给工具来处理,下面将介绍 Babel 的使用入门。

Babel 的使用和配置

Babel 是一个 JavaScript 编译器,它可以让开发者仅需维护一份简单的 JSON 配置文件,即可调动一系列工具链将源代码编译为目标浏览器指定版本所支持的语法。

安装 Babel

请打开 hello-node 项目,安装以下几个 Babel 依赖:

bash
npm i -D @babel/core @babel/cli @babel/preset-env

此时在 package.json 的 devDependencies 可以看到有了如下三个依赖:

json
{
+  "devDependencies": {
+    "@babel/cli": "^7.19.3",
+    "@babel/core": "^7.19.3",
+    "@babel/preset-env": "^7.19.3"
+  }
+}

它们的作用分别如下:

依赖作用文档
@babel/cli安装后可以从命令行使用 Babel 编译文件查看文档
@babel/coreBabel 的核心功能包查看文档
@babel/preset-env智能预设,可以通过它的选项控制代码要转换的支持版本查看文档

TIP

在使用 Babel 时,建议在项目下进行本地安装,尽量不选择全局安装,这是因为不同项目可能依赖于不同版本的 Babel ,全局依赖和可能会出现使用上的异常。

添加 Babel 配置

接下来在 hello-node 的根目录下创建一个名为 babel.config.json 的文件,这是 Babel 的配置文件,写入以下内容:

json
{
+  "presets": [
+    [
+      "@babel/preset-env",
+      {
+        "targets": {
+          "chrome": "41"
+        },
+        "modules": false,
+        "useBuiltIns": "usage",
+        "corejs": "3.6.5"
+      }
+    ]
+  ]
+}

这份配置将以 Chrome 浏览器作为目标浏览器,编译结果将保留 ES Module 规范,可以在 配置文件文档 查看更多配置选项。

这里的 targets.chrome 字段代表编译后要支持的目标浏览器版本号,在 caniuse 查询可知 ES6 的 class 语法 在 Chrome 49 版本之后才被完全支持,而 Chrome 41 或更低的版本是完全不支持该语法,因此先将其目标版本号设置为 41 ,下一步将开始测试 Babel 的编译结果。

使用 Babel 编译代码

在 hello-node 的 src 目录下添加一个 babel 文件夹,并在该文件夹下创建一个 index.js 文件,写入以下代码:

js
// src/babel/index.js
+export class Hello {
+  constructor(name) {
+    this.name = name
+  }
+
+  say() {
+    return \`Hello \${this.name}\`
+  }
+}

根据上一步的 Babel 配置,在这里使用 class 语法作为测试代码。

接下来再打开 package.json 文件,添加一个 compile script 如下:

json
{
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs",
+    "dev:esm": "node src/esm/index.mjs",
+    "compile": "babel src/babel --out-dir compiled",
+    "serve": "node server/index.js"
+  }
+}

这条命令的含义是:使用 Babel 处理 src/babel 目录下的文件,并输出到根目录下的 compiled 文件夹。

在命令行运行以下命令:

bash
npm run compile

可以看到 hello-node 的根目录下多了一个 compiled 文件夹,里面有一个和源码相同命名的 index.js 文件,它的文件内容如下:

js
// compiled/index.js
+function _classCallCheck(instance, Constructor) {
+  if (!(instance instanceof Constructor)) {
+    throw new TypeError('Cannot call a class as a function')
+  }
+}
+
+function _defineProperties(target, props) {
+  for (var i = 0; i < props.length; i++) {
+    var descriptor = props[i]
+    descriptor.enumerable = descriptor.enumerable || false
+    descriptor.configurable = true
+    if ('value' in descriptor) descriptor.writable = true
+    Object.defineProperty(target, descriptor.key, descriptor)
+  }
+}
+
+function _createClass(Constructor, protoProps, staticProps) {
+  if (protoProps) _defineProperties(Constructor.prototype, protoProps)
+  if (staticProps) _defineProperties(Constructor, staticProps)
+  Object.defineProperty(Constructor, 'prototype', { writable: false })
+  return Constructor
+}
+
+export var Hello = /*#__PURE__*/ (function () {
+  function Hello(name) {
+    _classCallCheck(this, Hello)
+
+    this.name = name
+  }
+
+  _createClass(Hello, [
+    {
+      key: 'say',
+      value: function say() {
+        return \`Hello \${this.name}\`
+      },
+    },
+  ])
+
+  return Hello
+})()

由于 Chrome 41 版本不支持 class 语法,因此 Babel 做了大量的工作对其进行转换兼容。

再次打开 babel.config.json ,将 targets.chrome 的版本号调整为支持 class 语法的 Chrome 49 版本:

diff
{
+  "presets": [
+    [
+      "@babel/preset-env",
+      {
+        "targets": {
+-          "chrome": "41"
++          "chrome": "49"
+        },
+        "modules": false,
+        "useBuiltIns": "usage",
+        "corejs": "3.6.5"
+      }
+    ]
+  ]
+}

再次执行编译,这一次编译后的代码和编译前完全一样:

js
// compiled/index.js
+export class Hello {
+  constructor(name) {
+    this.name = name
+  }
+
+  say() {
+    return \`Hello \${this.name}\`
+  }
+}

因为此时配置文件指定的目标浏览器版本已支持该语法,无需转换。

Babel 的使用其实非常简单,了解了这部分知识点之后,如果某一天需要自己控制代码的兼容性,只需要配合官方文档调整 Babel 的配置,处理起来就得心应手了!

`,35);function A(d,u,h,m,g,E){const o=p("ImgWrap"),a=p("ClientOnly"),e=p("GitalkComment");return c(),r("div",null,[D,s(a,null,{default:n(()=>[s(o,{src:"/assets/img/esm-run.jpg",alt:"esm.run 网站上的包转换操作界面"})]),_:1}),F,s(a,null,{default:n(()=>[s(o,{src:"/assets/img/components.png",alt:"把页面拆分成多个组件,降低维护成本(摘自 Vue 官网)"})]),_:1}),i,s(a,null,{default:n(()=>[s(o,{src:"/assets/img/caniuse-es6-classes.jpg",alt:"在 caniuse 网站上查询 ES6 `class` 的兼容情况"})]),_:1}),C,s(a,null,{default:n(()=>[s(e,{issueId:163})]),_:1})])}const f=t(y,[["render",A]]);export{q as __pageData,f as default}; diff --git a/assets/guide.md.82bb6597.lean.js b/assets/guide.md.82bb6597.lean.js new file mode 100644 index 00000000..94be6db3 --- /dev/null +++ b/assets/guide.md.82bb6597.lean.js @@ -0,0 +1,650 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as t,v as c,b as r,t as s,O as n,R as l,M as p}from"./chunks/framework.0d8bea05.js";const q=JSON.parse('{"title":"工程化的前期准备","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide.md","filePath":"guide.md"}'),y={name:"guide.md"},D=l(`

工程化的前期准备

对于刚刚迈入前端工程化、或者还没有接触过前端工程化的开发者,从传统的用 HTML + CSS + JS 手写页面的认知阶段走到工程化的世界,会面对翻天覆地的变化,需要先学习一些入门准备知识。

这一章会介绍一些前置的知识点科普,方便开始学习 Vue3 的时候,不会对一些基本的认知和操作存在太多疑惑。

TIP

本指南需要具备一定的 HTML 、 CSS 和 JavaScript 基础,如果完全不懂,请先对这三个知识点进行一些入门的学习。

命令行工具

在前端工程化开发过程中,已经离不开各种命令行操作,例如:管理项目依赖、本地服务启动、打包构建,还有拉取代码 / 提交代码这些 Git 操作等等。

命令行界面( Command-line Interface ,缩写 CLI ),是一种通过命令行来实现人机交互的工具,需要提前准备好命令行界面工具。

如果有所留意,会发现很多工具都可以实现命令行操作,比如:命令行界面( CLI )、终端( Terminal )、 Shell 、控制台( Console )等等。

从完整功能看,它们之间确实有许多区别,不过对于前端开发者来说,日常的命令行交互需要用到的功能不会特别多,所以后面会统一一些名词,减少理解上的偏差。

交互行为统一代替名词代替名词解释
输入命令行需要输入命令的时候,会统一用 “命令行” 来指代。
输出控制台鉴于前端开发者更多接触的是浏览器的 Console 控制台,
所以也是会用 “控制台” 来指代。

Windows

在 Windows 平台,可以使用自带的 CMD 或者 Windows PowerShell 工具。

但为了更好的开发体验,推荐使用以下工具(需要下载安装),可以根据自己的喜好选择其一:

名称简介下载
Windows Terminal由微软推出的强大且高效的 Windows 终端前往 GitHub 下载
CMDer一款体验非常好的 Windows 控制台模拟器前往 GitHub 下载

笔者在 Windows 台式机上是使用 Windows Terminal 比较多,在此之前是用 CMDer ,两者的设计和体验都非常优秀,当然,还有颜值。

macOS

如果使用的是 Mac 系统,可以直接使用系统自带的 “终端” 工具,笔者在 MacBook 上是使用自带的终端进行开发。

TIP

其实只要能正常使用命令行,对于前端工程师来说就可以满足日常需求,但选择更喜欢的工具,可以让自己的开发过程更为身心愉悦!

安装 Node.js 环境

安装好命令行工具之后,来安装 Node 的开发环境。

下载和安装 Node

在 Node.js 官网提供了安装包的下载,不论是使用 Windows 系统还是 MacOS 系统, Node 都提供了对应的安装包,直接下载安装包并运行即可安装到的电脑里,就可以用来开发的项目了。

点击访问:Node.js 官网下载

安装后,打开的 命令行工具 ,输入以下命令即可查看是否安装成功:

bash
node -v

如果已成功安装,会在控制台输出当前的 Node 版本号。

版本之间的区别

可以看到官网标注了 LTS 和 Current 两个系列,并且对应了不同的版本号。

Current 版本

Current 是最新发布版本,或者叫 “尝鲜版” ,可以在这个系列体验到最新的功能,但也可能会有一些意想不到的问题和兼容性要处理。

每六个月会发布一次 Current 大版本,新的偶数版本( e.g. v16.x.x )会在每年的 4 月份发布,奇数版本( e.g. v17.x.x )会在每年的 10 月份发布。

也就是说,所有版本都会有 Current 版本阶段,这个阶段会持续 6 个月的时间,期间会被活跃的维护和变更,在发布满 6 个月后,奇偶数版本会有不同的结果:

  • 大版本号是奇数的,将变为不支持状态,不会进入 LTS 版本。
  • 大版本号是偶数的,会按照发布节点进入 LTS ,并且作为活跃状态投入使用。

TIP

除非是狂热的 Node 开发探索者,否则不应该选择 Current 系列(特别是在生产环境),应该选择未被 EOL 的 LTS 系列作为的项目运行环境,详见下方的 LTS 版本 说明。

LTS 版本

LTS ,全称 Long Time Support ,长期维护版本,这个系列代表着稳定,建议首次下载以及后续的每次升级都选择 LTS 版本,减少开发过程中的未知问题出现。

每个 LTS 版本的大版本号都是偶数,并且会有 3 个阶段的生命周期:

生命周期含义说明
Active活跃阶段每个从 Current 进入 LTS 的偶数版本,都会有 18 个月的时间被积极维护和升级。
Maintenance维护阶段活跃阶段达到 18 个月后,会进入为期 12 个月的维护阶段,期间只会进行错误修复和安全补丁。
End of Life结束阶段简称 EOL ,在维护阶段达到期限之后,该版本进入 EOL 阶段,将不再维护,也就是说,每个 LTS 版本最长会有 30 个月的维护时间,之后将不再进行维护。

TIP

当然也会有一些例外情况,例如 Node.js 16 版本,为了配合 OpenSSL 1.1.1 的 EOL 时间,将提前 7 个月进入 EOL 阶段。

详见官方公告: Bringing forward the End-of-Life Date for Node.js 16

是否需要经常更新版本

不论是 LTS 还是 Current ,每个系列下面都还有不同的大版本和小版本,是不是每次都必须及时更新到最新版呢?

当然不是,完全可以依照的项目技术栈依赖的最低 Node 版本去决定是否需要升级,不过如果条件允许,还是建议至少要把大版本升级到最新的 LTS 版本。

TIP

关于 Node.js 的版本发布时间表可以在官方 GitHub 的 Release 仓库 查看。

基础的 Node 项目

在安装和配置完 Node.js 之后,接下来了解 Node 项目的一些基础组成,这有助于开启前端工程化开发大门。

TIP

当前文档所演示的 hello-node 项目已托管至 learning-vue3/hello-node 仓库,可使用 Git 克隆命令拉取至本地:

bash
# 从 GitHub 克隆
+git clone https://github.com/learning-vue3/hello-node.git
+
+# 如果 GitHub 访问失败,可以从 Gitee 克隆
+git clone https://gitee.com/learning-vue3/hello-node.git

成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 node 开发的体验,可以更有效的提升学习效果。

初始化一个项目

如果想让一个项目成为 Node 项目,只需要在命令行 cd 到项目所在的目录,执行初始化命令:

bash
npm init

之后命令行会输出一些提示,以及一些问题,可以根据的实际情况填写项目信息,例如:

bash
package name: (demo) hello-node

以上面这个问题为例:

冒号左边的 package name 是问题的题干,会询问要输入什么内容。

冒号右边的括号内容 (demo) 是 Node 为推荐的答案(不一定会出现这个推荐值),如果觉得 OK ,可以直接按回车确认,进入下一道题。

冒号右边的 hello-node 是输入的答案(如果选择了推荐的答案,则这里为空),这个答案会写入到项目信息文件里。

当回答完所有问题之后,会把填写的信息输出到控制台,确认无误后,回车完成初始化的工作。

bash
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "description": "A demo about Node.js.",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \\"Error: no test specified\\" && exit 1"
+  },
+  "author": "chengpeiquan",
+  "license": "MIT"
+}
+
+
+Is this OK? (yes)

如果觉得问题太多,太繁琐了,可以直接加上 -y 参数,这样会以 Node 推荐的答案帮快速生成项目信息。

bash
npm init -y

了解 package.json

在完成 项目的初始化 之后,会发现在项目的根目录下出现了一个名为 package.json 的 JSON 文件。

这是 Node 项目的清单,里面记录了这个项目的基础信息、依赖信息、开发过程的脚本行为、发布相关的信息等等,未来将在很多项目里看到它的身影。

TIP

它必须是 JSON 文件,不可以是存储了 JavaScript 对象字面量的 JS 文件。

如果是按照上面初始化一节的操作得到的这个文件,打开它之后,会发现里面存储了在初始化过程中,根据问题确认下来的那些答案,例如:

json
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "description": "A demo about Node.js.",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \\"Error: no test specified\\" && exit 1"
+  },
+  "author": "chengpeiquan",
+  "license": "MIT"
+}

package.json 的字段并非全部必填,唯一的要求就是,必须是一个 JSON 文件,所以也可以仅仅写入以下内容:

json
{}

但在实际的项目中,往往需要填写更完善的项目信息,除了手动维护这些信息之外,在安装 npm 包等操作时, Node 也会帮写入数据到这个文件里,来了解一些常用字段的含义:

字段名含义
name项目名称,如果打算发布成 npm 包,它将作为包的名称
version项目版本号,如果打算发布成 npm 包,这个字段是必须的,遵循 语义化版本号 的要求
description项目的描述
keywords关键词,用于在 npm 网站上进行搜索
homepage项目的官网 URL
main项目的入口文件
scripts指定运行脚本的命令缩写,常见的如 npm run build 等命令就在这里配置,详见 脚本命令的配置
author作者信息
license许可证信息,可以选择适当的许可证进行开源
dependencies记录当前项目的生产依赖,安装 npm 包时会自动生成,详见:依赖包和插件
devDependencies记录当前项目的开发依赖,安装 npm 包时会自动生成,详见:依赖包和插件
type配置 Node 对 CJS 和 ESM 的支持

其中最后的 type 字段是涉及到模块规范的支持,它有两个可选值: commonjsmodule ,其默认值为 commonjs

  • 当不设置或者设置为 commonjs 时,扩展名为 .js.cjs 的文件都是 CommonJS 规范的模块,如果要使用 ES Module 规范,需要使用 .mjs 扩展名
  • 当设置为 module 时,扩展名为 .js.mjs 的文件都是 ES Module 规范的模块,如果要使用 CommonJS 规范,需要使用 .cjs 扩展名

关于模块规范可以在 学习模块化设计 一节了解更多。

关于 package.json 的完整的选项可以在 npm Docs 上查阅。

项目名称规则

如果打算发布成 npm 包,它将作为包的名称,可以是普通包名,也可以是范围包的包名。

类型释义例子
范围包具备 @scope/project-name 格式,一般有一系列相关的开发依赖之间会以相同的 scope 进行命名@vue/cli@vue/cli-service 就是一系列相关的范围包
普通包其他命名都属于普通包vuevue-router

包名有一定的书写规则:

  • 名称必须保持在 1 ~ 214 个字符之间(包括范围包的 @scope/ 部分)
  • 只允许使用小写字母、下划线、短横线、数字、小数点(并且只有范围包可以以点或下划线开头)
  • 包名最终成为 URL 、命令行参数或者文件夹名称的一部分,所以名称不能包含任何非 URL 安全字符

TIP

了解这一点有助于在后续工作中,在需要查找技术栈相关包的时候,可以知道如何在 npmjs 上找到它们。

如果打算发布 npm 包,可以通过 npm view <package-name> 命令查询包名是否已存在,如果存在就会返回该包的相关信息。

比如查询 vue 这个包名,会返回它的版本号、许可证、描述等信息:

bash
npm view vue
+
+vue@3.2.33 | MIT | deps: 5 | versions: 372
+The progressive JavaScript framework for building modern web UI.
+https://github.com/vuejs/core/tree/main/packages/vue#readme
+
+keywords: vue
+
+# 后面太多信息这里就省略...

如果查询一个不存在的包名,则会返回 404 信息:

bash
npm view vue123456
+npm ERR! code E404
+npm ERR! 404 Not Found - GET https://registry.npmjs.org/vue123456 - Not found
+npm ERR! 404
+npm ERR! 404  'vue123456@latest' is not in this registry.
+npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
+npm ERR! 404
+npm ERR! 404 Note that you can also install from a
+npm ERR! 404 tarball, folder, http url, or git url.
+
+# 后面太多信息这里就省略...

语义化版本号管理

Node 项目遵循 语义化版本号 的规则,例如 1.0.01.0.11.1.0 这样的版本号,本教材的主角 Vue 也是遵循了语义化版本号的发布规则。

建议开发者在入门前端工程化的时候就应该熟悉这套规则,后续的项目开发中,会使用到很多外部依赖,它们也是使用版本号控制来管理代码的发布,每个版本之间可能会有一些兼容性问题,如果不了解版本号的通用规则,很容易在开发中带来困扰。

TIP

现在有很多 CI/CD 流水线作业具备了根据 Git 的 Commit 记录来自动升级版本号,它们也是遵循了语义化版本号规则,版本号的语义化在前端工程里有重大的意义。

基本格式与升级规则

版本号的格式为: Major.Minor.Patch (简称 X.Y.Z ),它们的含义和升级规则如下:

英文中文含义
Major主版本号当项目作了大量的变更,与旧版本存在一定的不兼容问题
Minor次版本号做了向下兼容的功能改动或者少量功能更新
Patch修订号修复上一个版本的少量 BUG

一般情况下,三者均为正整数,并且从 0 开始,遵循这三条注意事项:

  • 当主版本号升级时,次版本号和修订号归零
  • 当次版本号升级时,修订号归零,主版本号保持不变
  • 当修订号升级时,主版本号和次版本号保持不变

下面以一些常见的例子帮助快速理解版本号的升级规则:

  • 如果不打算发布,可以默认为 0.0.0 ,代表它并不是一个进入发布状态的包
  • 在正式发布之前,可以将其设置为 0.1.0 发布第一个测试版本,自此,代表已进入发布状态,但还处于初期开发阶段,这个阶段可能经常改变 API ,但不需要频繁地更新主版本号
  • 0.1.0 发布后,修复了 BUG ,下一个版本号将设置为 0.1.1 ,即更新了一个修订号
  • 0.1.1 发布后,有新的功能发布,下一个版本号可以升级为 0.2.0 ,即更新了一个次版本号
  • 当觉得这个项目已经功能稳定、没有什么 BUG 了,决定正式发布并给用户使用时,那么就可以进入 1.0.0 正式版了

版本标识符

以上是一些常规的版本号升级规则,也可以通过添加 “标识符” 来修饰的版本更新:

格式为: Major.Minor.Patch-Identifier.1 ,其中的 Identifier 代表 “标识符” ,它和版本号之间使用 - 短横线来连接,后面的 .1 代表当前标识符的第几个版本,每发布一次,这个数字 +1 。

标识符含义
alpha内部版本,代表当前可能有很大的变动
beta测试版本,代表版本已开始稳定,但可能会有比较多的问题需要测试和修复
rc即将作为正式版本发布,只需做最后的验证即可发布正式版

脚本命令的配置

在工作中,会频繁接触到 npm run dev 启动开发环境、 npm run build 构建打包等操作,这些操作其实是对命令行的一种别名。

它在 package.json 里是存放于 scripts 字段,以 [key: string]: string 为格式的键值对存放数据( key: value )。

json
{
+  "scripts": {
+    // ...
+  }
+}

其中:

  • key 是命令的缩写,也就是 npm run xxx 里的 xxx ,如果一个单词不足以表达,可以用冒号 : 拼接多个单词,例如 mock:listmock:detail 等等

  • value 是完整的执行命令内容,多个命令操作用 && 连接,例如 git add . && git commit

以 Vue CLI 创建的项目为例,它的项目 package.json 文件里就会包括了这样的命令:

json
{
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build"
+  }
+}

这里的名字是可以自定义的,比如可以把 serve 改成更喜欢的 dev

json
{
+  "scripts": {
+    "dev": "vue-cli-service serve",
+    "build": "vue-cli-service build"
+  }
+}

这样运行 npm run dev 也可以相当于运行了 vue-cli-service serve

据笔者所了解,有不少开发者曾经对不同的 Vue CLI 版本提供的 npm run servenpm run dev 有什么区别有过疑问,看到这里应该都明白了吧,可以说没有区别,因为这取决于它对应的命令,而不是取决于它起什么名称。

TIP

如果 value 部分包含了双引号 " ,必须使用转义符 \\ 来避免格式问题,例如: \\"

可以阅读 npm 关于 scripts 的 完整文档 了解更多用法。

Hello Node

看到这里,对于 Node 项目的基本创建流程和关键信息都有所了解了吧!来写一个 demo ,实际体验一下如何从初始化项目到打印一个 Hello World 到控制台的过程。

请先启动的命令行工具,然后创建一个项目文件夹,这里使用 mkdir 命令:

bash
# 语法是 mkdir <dir-name>
+mkdir hello-node

使用 cd 命令进入刚刚创建好的项目目录:

bash
# 语法是 cd <dir-path>
+cd hello-node

执行项目初始化,可以回答问题,也可以添加 -y 参数来使用默认配置:

bash
npm init -y

来到这里就得到了一个具有 package.json 的 Node 项目了。

在项目下创建一个 index.js 的 JS 文件,可以像平时一样书写 JavaScript ,输入以下内容并保存:

js
console.log('Hello World')

然后打开 package.json 文件,修改 scripts 部分如下,也就是配置了一个 "dev": "node index" 命令:

json
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "dev": "node index"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC"
+}

在命令行执行 npm run dev ,可以看到控制台打印出了 Hello World

bash
npm run dev
+
+> demo@1.0.0 dev
+> node index
+
+Hello World

这等价于直接在命令行执行 node index.js 命令,其中 node 是 Node.js 运行文件的命令, index 是文件名,相当于 index.js ,因为 JS 文件名后缀可以省略。

学习模块化设计

在了解 Node 项目之后,就要开始通过编码来加强对 Node.js 的熟悉程度了,但在开始使用之前,还需要了解一些概念。

在未来的日子里(不限于本教程,与前端工程化相关的工作内容息息相关),会频繁的接触到两个词:模块( Module )和包( Package )。

模块和包是 Node 开发最重要的组成部分,不管是全部自己实现一个项目,还是依赖各种第三方轮子来协助开发,项目的构成都离不开这两者。

模块化解决了什么问题

在软件工程的设计原则里,有一个原则叫 “单一职责” 。

假设一个代码块负责了多个职责的功能支持,在后续的迭代过程中,维护成本会极大的增加,虽然只需要修改这个代码块,但需要兼顾职责 1 、职责 2 、职责 3 … 等多个职责的兼容性,稍不注意就会引起工程运行的崩溃。

“单一职责” 的目的就是减少功能维护带来的风险,把代码块的职责单一化,让代码的可维护性更高。

一个完整业务的内部实现,不应该把各种代码都耦合在一起,而应该按照职责去划分好代码块,再进行组合,形成一个 “高内聚,低耦合” 的工程设计。

模块化就是由此而来,在前端工程里,每个单一职责的代码块,就叫做模块( Module ) ,模块有自己的作用域,功能与业务解耦,非常方便复用和移植。

TIP

模块化还可以解决本章开头所讲述的 传统开发的弊端 里提到的大部分问题,随着下面内容一步步深入,将一步步的理解它。

如何实现模块化

在前端工程的发展过程中,不同时期诞生了很多不同的模块化机制,最为主流的有以下几种:

模块化方案全称适用范围
CJSCommonJSNode 端
AMDAsync Module Definition浏览器
CMDCommon Module Definition浏览器
UMDUniversal Module DefinitionNode 端和浏览器
ESMES ModuleNode 端和浏览器

其中 AMD 、CMD 、 UMD 都已经属于偏过去式的模块化方案,在新的业务里,结合各种编译工具,可以直接用最新的 ESM 方案来实现模块化,所以可以在后续有接触的时候再了解。

ESM ( ES Module ) 是 JavaScript 在 ES6( ECMAScript 2015 )版本推出的模块化标准,旨在成为浏览器和服务端通用的模块解决方案。

CJS ( CommonJS ) 原本是服务端的模块化标准(设计之初也叫 ServerJS ),是为 JavaScript 设计的用于浏览器之外的一个模块化方案, Node 默认支持了该规范,在 Node 12 之前也只支持 CJS ,但从 Node 12 开始,已经同时支持 ES Module 的使用。

至此,不论是 Node 端还是浏览器端, ES Module 是统一的模块化标准了!

但由于历史原因, CJS 在 Node 端依然是非常主流的模块化写法,所以还是值得进行了解,因此下面的内容将主要介绍 CJS 和 ESM 这两种模块化规范是如何实际运用。

TIP

在开始体验模块化的编写之前,请先在电脑里 安装好 Node.js ,然后打开 命令行工具 ,通过 cd 命令进入平时管理项目的目录路径, 初始化一个 Node 项目

另外,在 CJS 和 ESM ,一个独立的文件就是一个模块,该文件内部的变量必须通过导出才能被外部访问到,而外部文件想访问这些变量,需要导入对应的模块才能生效。

用 CommonJS 设计模块

虽然现在推荐使用 ES Module 作为模块化标准,但是日后在实际工作的过程中,还是不免会遇到要维护一些老项目,因此了解 CommonJS 还是非常有必要的。

以下简称 CJS 代指 CommonJS 规范。

准备工作

延续在 Hello Node 部分创建的 Node.js demo 项目,先调整一下目录结构:

  1. 删掉 index.js 文件
  2. 创建一个 src 文件夹,在里面再创建一个 cjs 文件夹
  3. cjs 文件夹里面创建两个文件: index.cjsmodule.cjs

TIP

请注意这里使用了 .cjs 文件扩展名,其实它也是 JS 文件,但这个扩展名是 Node 专门为 CommonJS 规范设计的,可以在 了解 package.json 部分的内容了解更多。

此时目录结构应该如下:

bash
hello-node
+ # 源码文件夹
+├─src
+  # 业务文件夹
+ └─cjs
+    # 入口文件
+   ├─index.cjs
+    # 模块文件
+   └─module.cjs
+ # 项目清单
+└─package.json

这是一个常见的 Node 项目目录结构,通常源代码都会放在 src 文件夹里面统一管理。

接下来再修改一下 package.json 里面的 scripts 部分,改成如下:

json
{
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs"
+  }
+}

后面在命令行执行 npm run dev:cjs 命令,就可以测试刚刚添加的 CJS 模块了。

基本语法

CJS 使用 module.exports 语法导出模块,可以导出任意合法的 JavaScript 类型,例如:字符串、布尔值、对象、数组、函数等等。

使用 require 导入模块,在导入的时候,当文件扩展名是 .js 时,可以只写文件名,而此时使用的是 .cjs 扩展名,所以需要完整的书写。

默认导出和导入

默认导出的意思是,一个模块只包含一个值;而导入默认值则意味着,导入时声明的变量名就是对应模块的值。

src/cjs/module.cjs 文件里,写入以下代码,导出一句 Hello World 信息:

js
// src/cjs/module.cjs
+module.exports = 'Hello World'

TIP

自己在写入代码的时候,不需要包含文件路径那句注释,这句注释只是为了方便阅读时能够区分代码属于哪个文件,以下代码均如此。

src/cjs/index.cjs 文件里,写入以下代码,导入刚刚编写的模块。

js
// src/cjs/index.cjs
+const m = require('./module.cjs')
+console.log(m)

在命令行输入 npm run dev:cjs ,可以看到成功输出了 Hello World 信息:

bash
npm run dev:cjs
+
+> demo@1.0.0 dev:cjs
+> node src/cjs/index.cjs
+
+Hello World

可以看到,在导入模块时,声明的 m 变量拿到的值,就是整个模块的内容,可以直接使用,此例子中它是一个字符串。

再改动一下,把 src/cjs/module.cjs 改成如下,这次导出一个函数:

js
// src/cjs/module.cjs
+module.exports = function foo() {
+  console.log('Hello World')
+}

相应的,这次变成了导入一个函数,所以可以执行它:

js
// src/cjs/index.cjs
+const m = require('./module.cjs')
+m()

得到的结果也是打印一句 Hello World ,不同的是,这一次的打印行为是在模块里定义的,入口文件只是执行模块里的函数。

bash
npm run dev:cjs
+
+> demo@1.0.0 dev:cjs
+> node src/cjs/index.cjs
+
+Hello World

命名导出和导入

默认导出的时候,一个模块只包含一个值,有时候如果想把很多相同分类的函数进行模块化集中管理,例如想做一些 utils 类的工具函数文件、或者是维护项目的配置文件,全部使用默认导出的话,会有非常多的文件要维护。

那么就可以用到命名导出,这样既可以导出多个数据,又可以统一在一个文件里维护管理,命名导出是先声明多个变量,然后通过 {} 对象的形式导出。

再来修改一下 src/cjs/module.cjs 文件,这次改成如下:

js
// src/cjs/module.cjs
+function foo() {
+  console.log('Hello World from foo.')
+}
+
+const bar = 'Hello World from bar.'
+
+module.exports = {
+  foo,
+  bar,
+}

这个时候通过原来的方式去拿模块的值,会发现无法直接获取到函数体或者字符串的值,因为打印出来的也是一个对象。

js
// src/cjs/index.cjs
+const m = require('./module.cjs')
+console.log(m)

控制台输出:

bash
npm run dev:cjs
+
+> demo@1.0.0 dev:cjs
+> node src/cjs/index.cjs
+
+{ foo: [Function: foo], bar: 'Hello World from bar.' }

需要通过 m.foo()m.bar 的形式才可以拿到值。

此时可以用一种更方便的方式,利用 ES6 的对象解构来直接拿到变量:

js
// src/cjs/index.cjs
+const { foo, bar } = require('./module.cjs')
+foo()
+console.log(bar)

这样子才可以直接调用变量拿到对应的值。

导入时重命名

以上都是基于非常理想的情况下使用模块,有时候不同的模块之间也会存在相同命名导出的情况,来看看模块化是如何解决这个问题的。

src/cjs/module.cjs 文件保持不变,依然导出这两个变量:

js
// src/cjs/module.cjs
+function foo() {
+  console.log('Hello World from foo.')
+}
+
+const bar = 'Hello World from bar.'
+
+module.exports = {
+  foo,
+  bar,
+}

这次在入口文件里也声明一个 foo 变量,在导入的时候对模块里的 foo 进行了重命名操作。

js
// src/cjs/index.cjs
+const {
+  foo: foo2,  // 这里进行了重命名
+  bar,
+} = require('./module.cjs')
+
+// 就不会造成变量冲突
+const foo = 1
+console.log(foo)
+
+// 用新的命名来调用模块里的方法
+foo2()
+
+// 这个不冲突就可以不必处理
+console.log(bar)

再次运行 npm run dev:cjs ,可以看到打印出来的结果完全符合预期:

bash
npm run dev:cjs
+
+> demo@1.0.0 dev:cjs
+> node src/cjs/index.cjs
+
+1
+Hello World from foo.
+Hello World from bar.

这是利用了 ES6 解构对象的 给新的变量名赋值 技巧。

以上是针对命名导出时的重命名方案,如果是默认导出,那么在导入的时候用一个不冲突的变量名来声明就可以了。

用 ES Module 设计模块

ES Module 是新一代的模块化标准,它是在 ES6( ECMAScript 2015 )版本推出的,是原生 JavaScript 的一部分。

不过因为历史原因,如果要直接在浏览器里使用该方案,在不同的浏览器里会有一定的兼容问题,需要通过 Babel 等方案进行代码的版本转换(可在 控制编译代码的兼容性 一节了解如何使用 Babel )。

因此一般情况下都需要借助构建工具进行开发,工具通常会提供开箱即用的本地服务器用于开发调试,并且最终打包的时候还可以抹平不同浏览器之间的差异。

随着 ESM 的流行,很多新推出的构建工具都默认只支持该方案( e.g. Vite 、 Rollup ),如果需要兼容 CJS 反而需要另外引入插件单独配置。除了构建工具,很多语言也是默认支持 ESM ,例如 TypeScript ,因此了解 ESM 非常重要。

以下简称 ESM 代指 ES Module 规范。

TIP

在阅读本小节之前,建议先阅读 用 CommonJS 设计模块 以了解前置内容,本小节会在适当的内容前后与 CJS 的写法进行对比。

准备工作

继续使用在 用 CommonJS 设计模块 时使用的 hello-node 项目作为 demo ,当然也可以重新创建一个新的。

一样的,先调整一下目录结构:

  1. src 文件夹里面创建一个 esm 文件夹
  2. esm 文件夹里面创建两个 MJS 文件: index.mjsmodule.mjs

TIP

注意这里使用了 .mjs 文件扩展名,因为默认情况下, Node 需要使用该扩展名才会支持 ES Module 规范。

也可以在 package.json 里增加一个 "type": "module" 的字段来使 .js 文件支持 ESM ,但对应的,原来使用 CommonJS 规范的文件需要从 .js 扩展名改为 .cjs 才可以继续使用 CJS 。

为了减少理解上的门槛,这里选择了使用 .mjs 新扩展名便于入门,可以在 了解 package.json 部分的内容了解更多。

此时目录结构应该如下:

bash
hello-node
+ # 源码文件夹
+├─src
+  # 上次用来测试 CommonJS 的相关文件
+ ├─cjs
+  ├─index.cjs
+  └─module.cjs
+ 
+  # 这次要用的 ES Module 测试文件
+ └─esm
+    # 入口文件
+   ├─index.mjs
+    # 模块文件
+   └─module.mjs
+
+ # 项目清单
+└─package.json

同样的,源代码放在 src 文件夹里面管理。

然后再修改一下 package.json 里面的 scripts 部分,参照上次配置 CJS 的格式,增加一个 ESM 版本的 script ,改成如下:

json
{
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs",
+    "dev:esm": "node src/esm/index.mjs"
+  }
+}

后面在命令行执行 npm run dev:esm 就可以测试的 ESM 模块了。

TIP

注意, script 里的 .mjs 扩展名不能省略。

另外,在实际项目中,可能不需要做这些处理,因为很多工作脚手架已经帮处理过了,比如 Vue3 项目。

基本语法

ESM 使用 export default (默认导出)和 export (命名导出)这两个语法导出模块,和 CJS 一样, ESM 也可以导出任意合法的 JavaScript 类型,例如:字符串、布尔值、对象、数组、函数等等。

使用 import ... from ... 导入模块,在导入的时候,如果文件扩展名是 .js 则可以省略文件名后缀,否则需要把扩展名也完整写出来。

默认导出和导入

ESM 的默认导出也是一个模块只包含一个值,导入时声明的变量名,它对应的数据就是对应模块的值。

src/esm/module.mjs 文件里,写入以下代码,导出一句 Hello World 信息:

js
// src/esm/module.mjs
+export default 'Hello World'

src/esm/index.mjs 文件里,写入以下代码,导入刚刚编写的模块。

js
// src/esm/index.mjs
+import m from './module.mjs'
+console.log(m)

在命令行输入 npm run dev:esm ,可以看到成功输出了 Hello World 信息:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+Hello World

可以看到,在导入模块时,声明的 m 变量拿到的值,就是整个模块的内容,可以直接使用,此例子中它是一个字符串。

像在 CJS 的例子里一样,也来再改动一下,把 src/esm/module.mjs 改成导出一个函数:

js
// src/esm/module.mjs
+export default function foo() {
+  console.log('Hello World')
+}

同样的,这次也是变成了导入一个函数,可以执行它:

js
// src/esm/index.mjs
+import m from './module.mjs'
+m()

一样可以从模块里的函数得到一句 Hello World 的打印信息。

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+Hello World

TIP

可以看到, CJS 和 ESM 的默认导出是非常相似的,在未来如果有老项目需要从 CJS 往 ESM 迁移,大部分情况下只需要把 module.exports 改成 export default 即可。

命名导出和导入

虽然默认导出的时候, CJS 和 ESM 的写法非常相似,但命名导出却完全不同!

在 CJS 里,使用命名导出后的模块数据默认是一个对象,可以导入模块后通过 m.foo 这样的方式去调用对象的属性,或者在导入的时候直接解构拿到对象上的某个属性:

js
// CJS 支持导入的时候直接解构
+const { foo } = require('./module.cjs')

但 ES Module 的默认导出不能这样做,例如下面这个例子,虽然默认导出了一个对象:

js
// 在 ESM ,通过这样导出的数据也是属于默认导出
+export default {
+  foo: 1,
+}

但是无法和 CJS 一样通过大括号的方式导入其中的某个属性:

js
// ESM 无法通过这种方式对默认导出的数据进行 “解构”
+import { foo } from './module.mjs'

这样操作在运行过程中,控制台会抛出错误信息:

bash
import { foo } from './module.mjs'
+         ^^^
+SyntaxError:
+The requested module './module.mjs' does not provide an export named 'foo'

正确的方式应该是通过 export 对数据进行命名导出,先将 src/esm/module.mjs 文件修改成如下代码,请留意 export 关键字的使用:

js
// src/esm/module.mjs
+export function foo() {
+  console.log('Hello World from foo.')
+}
+
+export const bar = 'Hello World from bar.'

通过 export 命名导出的方式,现在才可以使用大括号将它们进行命名导入:

js
// src/esm/index.mjs
+import { foo, bar } from './module.mjs'
+
+foo()
+console.log(bar)

这一次程序可以顺利运行了:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+Hello World from foo.
+Hello World from bar.

那么有没有办法像 CJS 一样使用 m.foo 调用对象属性的方式一样,去使用这些命名导出的模块呢?

答案是肯定的!命名导出支持使用 * as 变量名称 的方式将其所有命名挂在某个变量上,该变量是一个对象,每一个导出的命名都是其属性:

ts
// src/esm/index.mjs
+// 注意这里使用了另外一种方式,将所有的命名导出都挂在了 \`m\` 变量上
+import * as m from './module.mjs'
+
+console.log(typeof m)
+console.log(Object.keys(m))
+
+m.foo()
+console.log(m.bar)

运行 npm run dev:esm ,将输出:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+object
+[ 'bar', 'foo' ]
+Hello World from foo.
+Hello World from bar.

导入时重命名

接下来看看 ESM 是如何处理相同命名导出的问题,项目下的模块文件依然保持不变,还是导出两个变量:

js
// src/esm/module.mjs
+export function foo() {
+  console.log('Hello World from foo.')
+}
+
+export const bar = 'Hello World from bar.'

入口文件里面,也声明一个 foo 变量,然后导入的时候对模块里的 foo 进行重命名操作:

js
// src/esm/index.mjs
+import {
+  foo as foo2,  // 这里进行了重命名
+  bar
+} from './module.mjs'
+
+// 就不会造成变量冲突
+const foo = 1
+console.log(foo)
+
+// 用新的命名来调用模块里的方法
+foo2()
+
+// 这个不冲突就可以不必处理
+console.log(bar)

可以看到,在 ESM 的重命名方式和 CJS 是完全不同的,它是使用 as 关键字来操作,语法为 <old-name> as <new-name>

现在再次运行 npm run dev:esm ,可以看到打印出来的结果也是完全符合预期了:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+1
+Hello World from foo.
+Hello World from bar.

以上是针对命名导出时的重命名方案,如果是默认导出,和 CJS 一样,在导入的时候用一个不冲突的变量名来声明就可以了。

在浏览器里访问 ESM

ES Module 除了支持在 Node 环境使用,还可以和普通的 JavaScript 代码一样在浏览器里运行。

要在浏览器里体验 ESM ,需要使用现代的主流浏览器(如 Chrome ),并注意其访问限制,例如本地开发不能直接通过 file:// 协议在浏览器里访问本地 HTML 内引用的 JS 文件,这是因为浏览器对 JavaScript 的安全性要求,会触发 CORS 错误,因此需要启动本地服务并通过 http:// 协议访问。

TIP

CORS (全称 Cross-Origin Resource Sharing )是指跨源资源共享,可以决定浏览器是否需要阻止 JavaScript 获取跨域请求的响应。

现代浏览器默认使用 “同源安全策略” ,这里的 “源” 指 URL 的 origin 部分,例如网页可以通过 window.location.origin 获取到如 https://example.com 这样格式的数据,就是网页的 origin

默认情况下,非同源的请求会被浏览器拦截,最常见的场景是通过 XHR 或者 Fetch 请求 API 接口,需要网页和接口都部署在同一个域名才可以请求成功,否则就会触发跨域限制。

如果网页和接口不在同一个域名,例如网页部署在 https://web.example.com ,接口部署在 https://api.example.com ,此时需要在 https://api.example.com 的 API 服务端程序里,配置 Access-Control-Allow-Origin: * 允许跨域请求( * 代表允许任意外域访问,也可以指定具体的域名作为白名单列表)。

添加服务端程序

接下来搭建一个简单的本地服务,并通过 HTML 文件来引入 ESM 模块文件,体验浏览器端如何使用 ESM 模块。

在 hello-node 项目的根目录下创建名为 server 的文件夹(与 src 目录同级),并添加 index.js 文件,敲入以下代码:

js
// server/index.js
+const { readFileSync } = require('fs')
+const { resolve } = require('path')
+const { createServer } = require('http')
+
+/**
+ * 判断是否 ESM 文件
+ */
+function isESM(url) {
+  return String(url).endsWith('mjs')
+}
+
+/**
+ * 获取 MIME Type 信息
+ * @tips \`.mjs\` 和 \`.js\` 一样,都使用 JavaScript 的 MIME Type
+ */
+function mimeType(url) {
+  return isESM(url) ? 'application/javascript' : 'text/html'
+}
+
+/**
+ * 获取入口文件
+ * @returns 存放在本地的文件路径
+ */
+function entryFile(url) {
+  const file = isESM(url) ? \`../src/esm\${url}\` : './index.html'
+  return resolve(__dirname, file)
+}
+
+/**
+ * 创建 HTTP 服务
+ */
+const app = createServer((request, response) => {
+  // 获取请求时的相对路径,如网页路径、网页里的 JS 文件路径等
+  const { url } = request
+
+  // 转换成对应的本地文件路径并读取其内容
+  const entry = entryFile(url)
+  const data = readFileSync(entry, 'utf-8')
+
+  // 需要设置正确的响应头信息,浏览器才可以正确响应
+  response.writeHead(200, { 'Content-Type': mimeType(url) })
+  response.end(data)
+})
+
+/**
+ * 在指定的端口号启动本地服务
+ */
+const port = 8080
+app.listen(port, '0.0.0.0', () => {
+  console.log(\`Server running at:\`)
+  console.log()
+  console.log(\`  ➜  Local:  http://localhost:\${port}/\`)
+  console.log()
+})

这是一个基础的 Node.js 服务端程序,利用了 HTTP 模块启动本地服务,期间利用 FS 模块的 I/O 能力对本地文件进行读取,而 PATH 模块则简化了文件操作过程中的路径处理和兼容问题(例如众所周知的 Windows 与 macOS 的路径斜杆问题)。

TIP

在这段服务端程序代码里,请留意 mimeType 方法,要让浏览器能够正确解析 .mjs 文件,需要在服务端响应文件内容时,将其 MIME Type 设置为 和 JavaScript 文件一样,这一点非常重要。

并且需要注意传递给 readFileSync API 的文件路径是否与真实存在的文件路径匹配,如果启动服务时,在 Node 控制台报了 no such file or directory 的错误,请检查是否因为笔误写错了文件名称,或者文件路径多了空格等情况。

添加入口页面

继续在 server 目录下添加一个 index.html 并写入以下 HTML 代码,它将作为网站的首页文件:

TIP

可以在 VSCode 先新建一个空文件,文件语言设置为 HTML ,并写入英文感叹号 ! ,再按 Tab 键(或者鼠标选择第一个代码片段提示),可快速生成基础的 HTML 结构。

html
<!-- server/index.html -->
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>ESM run in browser</title>
+  </head>
+  <body>
+    <script type="module" src="./index.mjs"></script>
+  </body>
+</html>

请注意在 <script /> 标签这一句代码上,比平时多了一个 type="module" 属性,这代表这个 script 是使用了 ESM 模块,而 src 属性则对应指向了上文在 src/esm 目录下的入口文件名。

之所以无需使用 ../src/esm/index.mjs 显式的指向真实目录,是因为在 添加服务端程序 时,已通过服务端代码里的 entryFile 方法重新指向了文件所在的真实路径,所以在 HTML 文件里可以使用 ./ 简化文件路径。

启动服务并访问

打开 package.json 文件,在 scripts 字段追加一个 serve 命令如下:

json
{
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs",
+    "dev:esm": "node src/esm/index.mjs",
+    "serve": "node server/index.js"
+  }
+}

在命令行运行 npm run serve 即可启动本地服务:

bash
 npm run serve
+
+> demo@1.0.0 serve
+> node server/index.js
+
+Server running at:
+
+    Local:  http://localhost:8080/

根据命令行提示,在浏览器访问 http://localhost:8080/ 地址,即可访问本地服务。

TIP

如遭遇端口号冲突,可在 server/index.js 的 const port = 8080 代码处修改为其他端口号。

因为在编写 HTML 文件时没有写入内容,只引入了 ESM 模块文件,因此需要按 F12 唤起浏览器的控制台查看 Log ,可以看到控制台根据模块的文件内容,输出了这三句 Log (如果没有 Log ,可在控制台唤起的情况下按 F5 重新载入页面):

bash
1                                                   index.mjs:8
+Hello World from foo.                               module.mjs:2
+Hello World from bar.                               index.mjs:14

分别来自 src/esm/index.mjs 本身的 console.log 语句,以及 import 进来的 module.mjs 里的 console.log 语句。

如果未能出现这三句 Log ,请留意 .mjs 文件内容是否为上一小节最后的内容:

src/esm/index.mjs 文件内容为:

js
// src/esm/index.mjs
+import {
+  foo as foo2, // 这里进行了重命名
+  bar,
+} from './module.mjs'
+
+// 就不会造成变量冲突
+const foo = 1
+console.log(foo)
+
+// 用新的命名来调用模块里的方法
+foo2()
+
+// 这个不冲突就可以不必处理
+console.log(bar)

src/esm/module.mjs 文件内容为:

js
// src/esm/module.mjs
+export function foo() {
+  console.log('Hello World from foo.')
+}
+
+export const bar = 'Hello World from bar.'
内联的 ESM 代码

到目前为止, server/index.html 文件里始终是通过文件的形式引入 ESM 模块,其实 <script type="module" /> 也支持编写内联代码,和普通的 <script /> 标签用法相同:

html
<script type="module">
+  // ESM 模块的 JavaScript 代码
+</script>

请移除 <script /> 标签的 src 属性,并在标签内写入 src/esm/index.mjs 文件里的代码,现在该 HTML 文件的完整代码如下:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>ESM run in browser</title>
+  </head>
+  <body>
+    <!-- 标签内的代码就是 src/esm/index.mjs 的代码 -->
+    <script type="module">
+      import {
+        foo as foo2, // 这里进行了重命名
+        bar,
+      } from './module.mjs'
+
+      // 就不会造成变量冲突
+      const foo = 1
+      console.log(foo)
+
+      // 用新的命名来调用模块里的方法
+      foo2()
+
+      // 这个不冲突就可以不必处理
+      console.log(bar)
+    </script>
+  </body>
+</html>

回到浏览器刷新 http://localhost:8080/ ,可以看到浏览器控制台依然输出了和引入 src="./index.mjs" 时一样的 Log 信息:

bash
1                                                   (index):21
+Hello World from foo.                               module.mjs:2
+Hello World from bar.                               (index):27
了解模块导入限制

虽然以上例子可以完美地在浏览器里引用现成的 ESM 模块代码并运行,但不代表工程化项目下所有的 ES Module 模块化方式都适合浏览器。

先做一个小尝试,将 src/esm/index.mjs 文件内容修改如下,导入项目已安装的 md5 工具包:

js
// src/esm/index.mjs
+import md5 from 'md5'
+console.log(md5('Hello World'))

回到浏览器刷新 http://localhost:8080/ ,观察控制台,可以发现出现了一个红色的错误信息:

bash
Uncaught TypeError: Failed to resolve module specifier "md5".
+Relative references must start with either "/", "./", or "../".

这是因为不论是通过 <script type="module" /> 标签还是通过 import 语句导入,模块的路径都必须是以 /./ 或者是 ../ 开头,因此无法直接通过 npm 包名进行导入。

这种情况下需要借助另外一个 script 类型: importmap ,在 server/index.html 里追加 <script type="importmap" /> 这一段代码:

html
<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>ESM run in browser</title>
+  </head>
+  <body>
+    <!-- 注意需要先通过 \`importmap\` 引入 npm 包的 CDN -->
+    <script type="importmap">
+      {
+        "imports": {
+          "md5": "https://esm.run/md5"
+        }
+      }
+    </script>
+
+    <!-- 然后才能在 \`module\` 里 \`import xx from 'xx'\` -->
+    <script type="module" src="./index.mjs"></script>
+  </body>
+</html>

再次刷新页面,可以看到控制台成功输出了 b10a8db164e0754105b7a99be72e3fe5 这个字符串,也就是 Hello World 被 MD5 处理后的结果。

可以看到 importmap 的声明方式和 package.json 的 dependencies 字段非常相似, JSON 的 key 是包名称, value 则是支持 ESM 的远程地址。

TIP

Import Maps 的运行机制是通过 import 映射来控制模块说明符的解析,类似于构建工具常用的 alias 别名机制。

这是一个现代浏览器才能支持的新特性,建议使用 Chrome 最新版本体验完整功能,可以在其 GitHub 仓库 查看更多用法。

上方例子里, md5 对应的远程地址是使用了来自 esm.run 网站的 URL ,而不是 npm 包同步到 jsDelivr CDN 或者 UNPKG CDN 的地址,这是因为 md5 这个包本身不支持 ES Module ,需要通过 esm.run 这个网站进行在线转换才可以在 <script type="module" /> 上使用。

`,323),F=l(`

该网站的服务是 jsDelivr CDN 所属的服务商提供,因此也可以通过 jsDelivr CDN 的 URL 添加 /+esm 参数来达到转换效果,以 md5 包为例:

bash
# 默认是一个 CJS 包
+https://cdn.jsdelivr.net/npm/md5
+
+# 可添加 \`/+esm\` 参数变成 ESM 包
+https://cdn.jsdelivr.net/npm/md5/+esm

总的来说,现阶段在浏览器使用 ES Module 并不是一个很好的选择,建议开发者还是使用构建工具来开发,工具可以抹平这些浏览器差异化问题,降低开发成本。

认识组件化设计

学习完模块化设计之后,未来在 Vue 的工程化开发过程中,还会遇到一个新的概念,那就是 “组件” 。

什么是组件化

模块化属于 JavaScript 的概念,但作为一个页面,都知道它是由 HTML + CSS + JS 三部分组成的,既然 JS 代码可以按照不同的功能、需求划分成模块,那么页面是否也可以呢?

答案是肯定的!组件化就是由此而来。

在前端工程项目里,页面可以理解为一个积木作品,组件则是用来搭建这个作品的一块又一块积木。

`,9),i=l(`

解决了什么问题

模块化属于 JavaScript 的概念,把代码块的职责单一化,一个函数、一个类都可以独立成一个模块。

但这只解决了逻辑部分的问题,一个页面除了逻辑,还有骨架( HTML )和样式( CSS ),组件就是把一些可复用的 HTML 结构和 CSS 样式再做一层抽离,然后再放置到需要展示的位置。

常见的组件有:页头、页脚、导航栏、侧边栏… 甚至小到一个用户头像也可以抽离成组件,因为头像可能只是尺寸、圆角不同而已。

每个组件都有自己的 “作用域” , JavaScript 部分利用 模块化 来实现作用域隔离, HTML 和 CSS 代码则借助 Style Scoped 来生成独有的 hash ,避免全局污染,这些方案组合起来,使得组件与组件之间的代码不会互相影响。

如何实现组件化

在 Vue ,是通过 Single-File Component (简称 SFC , .vue 单文件组件)来实现组件化开发。

一个 Vue 组件是由三部分组成的:

vue
<template>
+  <!-- HTML 代码 -->
+</template>
+
+<script>
+// JavaScript 代码
+</script>
+
+<style scoped>
+/* CSS 代码 */
+</style>

在后面的 单组件的编写 一章中,会详细介绍如何编写一个 Vue 组件。

依赖包和插件

在实际业务中,经常会用到各种各样的插件,插件在 Node 项目里的体现是一个又一个的依赖包。

虽然也可以把插件的代码文件手动放到的源码文件夹里引入,但并不是一个最佳的选择,本节内容将带了解 Node 的依赖包。

什么是包

在 Node 项目里,包可以简单理解为模块的集合,一个包可以只提供一个模块的功能,也可以作为多个模块的集合集中管理。

包通常是发布在官方的包管理平台 npmjs 上面,开发者需要使用的时候,可以通过包管理器安装到项目里,并在的代码里引入,开箱即用(详见: 依赖包的管理 )。

使用 npm 包可以减少在项目中重复造轮子,提高项目的开发效率,也可以极大的缩小项目源码的体积(详见:什么是 node_modules)。

包管理平台官网:https://www.npmjs.com

什么是 node_modules

node_modules 是 Node 项目下用于存放已安装的依赖包的目录,如果不存在,会自动创建。

如果是本地依赖,会存在于项目根目录下,如果是全局依赖,会存在于环境变量关联的路径下,详见下方的管理依赖部分内容的讲解。

TIP

一般在提交项目代码到 Git 仓库或者的服务器上时,都需要排除 node_modules 文件夹的提交,因为它非常大。

如果托管在 Git 仓库,可以在 .gitignore 文件里添加 node_modules 作为要排除的文件夹名称。

什么是包管理器

包管理器( Package Manager )是用来管理依赖包的工具,比如:发布、安装、更新、卸载等等。

Node 默认提供了一个包管理器 npm ,在安装 Node.js 的时候,默认会一起安装 npm 包管理器,可以通过以下命令查看它是否正常。

bash
npm -v

如果正常,将会输出相应的版本号。

依赖包的管理

接下来会以 npm 作为默认的包管理器,来了解如何在项目里管理依赖包。

配置镜像源

在国内,直接使用 npm 会比较慢,可以通过绑定 npm Mirror 中国镜像站 的镜像源来提升依赖包的下载速度。

可以先在命令行输入以下命令查看当前的 npm 配置:

bash
npm config get registry
+# https://registry.npmjs.org/

默认情况下,会输出 npm 官方的资源注册表地址,接下来在命令行上输入以下命令,进行镜像源的绑定:

bash
npm config set registry https://registry.npmmirror.com

可以再次运行查询命令来查看是否设置成功:

bash
npm config get registry
+# https://registry.npmmirror.com/

可以看到已经成功更换为中国镜像站的地址了,之后在安装 npm 包的时候,速度会有很大的提升!

如果需要删除自己配置的镜像源,可以输入以下命令进行移除,移除后会恢复默认设置:

bash
npm config rm registry

TIP

如果之前已经绑定过 npm.taobao 系列域名,也请记得更换成 npmmirror 这个新的域名!

随着新的域名已经正式启用,老 npm.taobao.orgregistry.npm.taobao.org 域名在 2022 年 05 月 31 日零时后不再提供服务。

详见:【望周知】淘宝 npm 镜像站喊你切换新域名啦

本地安装

项目的依赖建议优先选择本地安装,这是因为本地安装可以把依赖列表记录到 package.json 里,多人协作的时候可以减少很多问题出现,特别是当本地依赖与全局依赖版本号不一致的时候。

生产依赖

执行 npm install 的时候,添加 --save 或者 -S 选项可以将依赖安装到本地,并列为生产依赖。

TIP

需要提前在命令行 cd 到的项目目录下再执行安装。

另外, --save 或者 -S 选项在实际使用的时候可以省略,因为它是默认选项。

bash
npm install --save <package-name>

可以在项目的 package.json 文件里的 dependencies 字段查看是否已安装成功,例如:

json
// package.json
+{
+  // 会安装到这里
+  "dependencies": {
+    // 以 "包名":"版本号" 的格式写入
+    "vue-router": "^4.0.14"
+  }
+}

生产依赖包会被安装到项目根目录下的 node_modules 目录里。

项目在上线后仍需用到的包,就需要安装到生产依赖里,比如 Vue 的路由 vue-router 就需要以这个方式安装。

开发依赖

执行 npm install 的时候,如果添加 --save-dev 或者 -D 选项,可以将依赖安装到本地,并写入开发依赖里。

TIP

需要提前在命令行 cd 到的项目目录下再执行安装。

bash
npm install --save-dev <package-name>

可以在项目的 package.json 文件里的 devDependencies 字段查看是否已安装成功,例如:

json
// package.json
+{
+  // 会安装到这里
+  "devDependencies": {
+    // 以 "包名":"版本号" 的格式写入
+    "eslint": "^8.6.0"
+  }
+}

开发依赖包也是会被安装到项目根目录下的 node_modules 目录里。

和生产依赖包不同的点在于,只在开发环境生效,构建部署到生产环境时可能会被抛弃,一些只在开发环境下使用的包,就可以安装到开发依赖里,比如检查代码是否正确的 ESLint 就可以用这个方式安装。

全局安装

执行 npm install 的时候,如果添加 --global 或者 -g 选项,可以将依赖安装到全局,它们将被安装在 配置环境变量 里配置的全局资源路径里。

bash
npm install --global <package-name>

TIP

Mac 用户需要使用 sudo 来提权才可以完成全局安装。

另外,可以通过 npm root -g 查看全局包的安装路径。

一般情况下,类似于 @vue/cli 之类的脚手架会提供全局安装的服务,安装后,就可以使用 vue create xxx 等命令直接创建 Vue 项目了。

但不是每个 npm 包在全局安装后都可以正常使用,请阅读 npm 包的主页介绍和使用说明。

版本控制

有时候一些包的新版本不一定适合的老项目,因此 npm 也提供了版本控制功能,支持通过指定的版本号或者 Tag 安装。

语法如下,在包名后面紧跟 @ 符号,再紧跟版本号或者 Tag 名称。

bash
npm install <package-name>@<version | tag>

例如:

现阶段 Vue 默认为 3.x 的版本了,如果想安装 Vue 2 ,可以通过指定版本号的方式安装:

bash
npm install vue@2.6.14

或者通过对应的 Tag 安装:

bash
npm install vue@legacy

TIP

版本号或者 Tag 名称可以在 npmjs 网站上的包详情页查询。

版本升级

一般来说,直接重新安装依赖包可以达到更新的目的,但也可以通过 npm update 命令来更新。

语法如下,可以更新全部的包:

bash
npm update

也可以更新指定的包:

bash
npm update <package-name>

npm 会检查是否有满足版本限制的更新版本。

卸载

可以通过 npm uninstall 命令来卸载指定的包,和安装一样,卸载也区分了卸载本地依赖包和卸载全局包,不过只有在卸载全局包的时候才需要添加选项,默认只卸载当前项目下的本地包。

本地卸载:

bash
npm uninstall <package-name>

全局卸载:

bash
npm uninstall --global <package-name>

TIP

Mac 用户需要使用 sudo 来提权才可以完成全局卸载。

如何使用包

在了解了 npm 包的常规操作之后,通过一个简单的例子来了解如何在项目里使用 npm 包。

继续使用的 Hello Node demo ,或者也可以重新创建一个 demo 。

首先在 命令行工具 通过 cd 命令进入项目所在的目录,用本地安装的方式来把 md5 包 添加到生产依赖,这是一个为提供开箱即用的哈希算法的包,在未来的实际工作中,可能也会用到它,在这里使用它是因为足够简单。

输入以下命令并回车执行:

bash
npm install md5

可以看到控制台提示一共安装了 4 个包,这是因为 md5 这个 npm 包还引用了其他的包作为依赖,需要同时安装才可以正常工作。

bash
# 这是安装 md5 之后控制台的信息返回
+added 4 packages, and audited 5 packages in 2s
+
+found 0 vulnerabilities

此时项目目录下会出现一个 node_modules 文件夹和一个 package-lock.json 文件:

bash
hello-node
+ # 依赖文件夹
+├─node_modules
+ # 源码文件夹
+├─src
+ # 锁定安装依赖的版本号
+├─package-lock.json
+ # 项目清单
+└─package.json

先打开 package.json ,可以看到已经多出了一个 dependencies 字段,这里记录了刚刚安装的 md5 包信息。

json
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs",
+    "dev:esm": "node src/esm/index.mjs",
+    "serve": "node server/index.js"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC",
+  "dependencies": {
+    "md5": "^2.3.0"
+  }
+}

来到这里可能会有一连串的疑问:

  1. 为什么只安装了一个 md5 ,但控制台提示安装了 4 个包?
  2. 为什么 package.json 又只记录了 1 个 md5 包信息?
  3. 为什么提示审核了 5 个包,哪里来的第 5 个包?

不要着急,请先打开 package-lock.json 文件,这个文件是记录了锁定安装依赖的版本号信息(由于篇幅原因,这里的展示省略了一些包的细节):

json
{
+  "name": "hello-node",
+  "version": "1.0.0",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "hello-node",
+      "version": "1.0.0",
+      "license": "ISC",
+      "dependencies": {
+        "md5": "^2.3.0"
+      }
+    },
+    "node_modules/charenc": {
+      "version": "0.0.2"
+      // ...
+    },
+    "node_modules/crypt": {
+      "version": "0.0.2"
+      // ...
+    },
+    "node_modules/is-buffer": {
+      "version": "1.1.6"
+      // ...
+    },
+    "node_modules/md5": {
+      "version": "2.3.0"
+      // ...
+    }
+  },
+  "dependencies": {
+    "charenc": {
+      "version": "0.0.2"
+      // ...
+    },
+    "crypt": {
+      "version": "0.0.2"
+      // ...
+    },
+    "is-buffer": {
+      "version": "1.1.6"
+      // ...
+    },
+    "md5": {
+      "version": "2.3.0",
+      // ...
+      "requires": {
+        "charenc": "0.0.2",
+        "crypt": "0.0.2",
+        "is-buffer": "~1.1.6"
+      }
+    }
+  }
+}

可以看到这个文件的 dependencies 字段除了 md5 之外,还有另外 3 个包信息,它们就是 md5 包所依赖的另外 3 个 npm 包了,这就解答了为什么一共安装了 4 个 npm 包。

在 node_modules 文件夹下也可以看到以这 4 个包名为命名的文件夹,这些文件夹存放的就是各个包项目发布在 npmjs 平台上的文件。

再看 packages 字段,这里除了罗列出 4 个 npm 包的信息之外,还把项目的信息也列了进来,这就是为什么是提示审核了 5 个包,原因是除了 4 个依赖包,该项目本身也是一个包。

TIP

package-lock.json 文件并不是一成不变的,假如以后 md5 又引用了更多的包,这里记录的信息也会随之增加。

并且不同的包管理器,它的 lock 文件也会不同,如果是使用 yarn 作为包管理器的话,它是生成一个 yarn.lock 文件,而不是 package-lock.json ,有关更多的包管理器,详见 插件的使用 一章。

现在已经安装好 md5 包了,接下来看看具体如何使用它。

通常在包的 npmjs 主页上会有 API 和用法的说明,只需要根据说明操作,打开 src/esm/index.mjs 文件,首先需要导入这个包。

包的导入和在 学习模块化设计 一节了解到的模块导入用法是一样的,只是把 from 后面的文件路径换成了包名。

js
// src/esm/index.mjs
+import md5 from 'md5'

然后根据 md5 的用法,来编写一个小例子,先声明一个原始字符串变量,然后再声明一个使用 md5 加密过的字符串变量,并打印它们:

js
// src/esm/index.mjs
+import md5 from 'md5'
+
+const before = 'Hello World'
+const after = md5(before)
+console.log({ before, after })

在命令行输入 npm run dev:esm ,可以在控制台看到输出了这些内容,成功获得了转换后的结果:

bash
npm run dev:esm
+
+> demo@1.0.0 dev:esm
+> node src/esm/index.mjs
+
+{ before: 'Hello World', after: 'b10a8db164e0754105b7a99be72e3fe5' }

是不是非常简单,其实包的用法和在导入模块的用法可以说是完全一样的,区别主要在于,包是需要安装了才能用,而模块是需要自己编写。

控制编译代码的兼容性

作为一名前端工程师,了解如何控制代码的兼容性是非常重要的能力。

在 “了解前端工程化” 的 为什么要使用构建工具 一节里,已简单介绍过 Polyfill 的作用,以及介绍了构建工具可以通过 Babel 等方案自动化处理代码的兼容问题,这一小节将讲解 Babel 的配置和使用,亲自体验如何控制代码的兼容性转换。

如何查询兼容性

在开始学习使用 Babel 之前,需要先掌握一个小技能:了解如何查询代码在不同浏览器上的兼容性。

说起浏览器兼容性,前端工程师应该都不陌生,特别是初学者很容易会遇到在自己的浏览器上布局正确、功能正常,而在其他人的电脑或者手机上访问就会有布局错位或者运行报错的问题出现,最常见的场景就是开发者使用的是功能强大的 Chrome 浏览器,而产品用户使用了 IE 浏览器。

这是因为网页开发使用的 HTML / CSS / JavaScript 每年都在更新新版本,推出更好用的新 API ,或者废弃部分过时的旧 API ,不同的浏览器在版本更新过程中,对这些新 API 的支持程度并不一致,如果使用了新 API 而没有做好兼容支持,很容易就会在低版本浏览器上出现问题。

为了保证程序可以正确的在不同版本浏览器之间运行,就需要根据产品要支持的目标浏览器范围,去选择兼容性最好的编程方案。

在 Web 开发有一个网站非常知名:Can I use ,只要搜索 API 的名称,它会以图表的形式展示该 API 在不同浏览器的不同版本之间的支持情况,支持 HTML 标签、 CSS 属性、 JavaScript API 等内容的查询。

以 JavaScript ES6 的 class 新特性为例:

`,128),C=l(`

可以看到在 Chrome 浏览器需要在 49 版本开始才被完全支持,而 IE 浏览器则全面不支持,如果不做特殊处理(例如引入 Polyfill 方案),那么就需要考虑在编程过程中,是否需要可以直接使用 class 来实现功能,还是寻找其他替代方案。

在工作中,工程师无需关注每一个 API 的具体支持范围,这些工作可以交给工具来处理,下面将介绍 Babel 的使用入门。

Babel 的使用和配置

Babel 是一个 JavaScript 编译器,它可以让开发者仅需维护一份简单的 JSON 配置文件,即可调动一系列工具链将源代码编译为目标浏览器指定版本所支持的语法。

安装 Babel

请打开 hello-node 项目,安装以下几个 Babel 依赖:

bash
npm i -D @babel/core @babel/cli @babel/preset-env

此时在 package.json 的 devDependencies 可以看到有了如下三个依赖:

json
{
+  "devDependencies": {
+    "@babel/cli": "^7.19.3",
+    "@babel/core": "^7.19.3",
+    "@babel/preset-env": "^7.19.3"
+  }
+}

它们的作用分别如下:

依赖作用文档
@babel/cli安装后可以从命令行使用 Babel 编译文件查看文档
@babel/coreBabel 的核心功能包查看文档
@babel/preset-env智能预设,可以通过它的选项控制代码要转换的支持版本查看文档

TIP

在使用 Babel 时,建议在项目下进行本地安装,尽量不选择全局安装,这是因为不同项目可能依赖于不同版本的 Babel ,全局依赖和可能会出现使用上的异常。

添加 Babel 配置

接下来在 hello-node 的根目录下创建一个名为 babel.config.json 的文件,这是 Babel 的配置文件,写入以下内容:

json
{
+  "presets": [
+    [
+      "@babel/preset-env",
+      {
+        "targets": {
+          "chrome": "41"
+        },
+        "modules": false,
+        "useBuiltIns": "usage",
+        "corejs": "3.6.5"
+      }
+    ]
+  ]
+}

这份配置将以 Chrome 浏览器作为目标浏览器,编译结果将保留 ES Module 规范,可以在 配置文件文档 查看更多配置选项。

这里的 targets.chrome 字段代表编译后要支持的目标浏览器版本号,在 caniuse 查询可知 ES6 的 class 语法 在 Chrome 49 版本之后才被完全支持,而 Chrome 41 或更低的版本是完全不支持该语法,因此先将其目标版本号设置为 41 ,下一步将开始测试 Babel 的编译结果。

使用 Babel 编译代码

在 hello-node 的 src 目录下添加一个 babel 文件夹,并在该文件夹下创建一个 index.js 文件,写入以下代码:

js
// src/babel/index.js
+export class Hello {
+  constructor(name) {
+    this.name = name
+  }
+
+  say() {
+    return \`Hello \${this.name}\`
+  }
+}

根据上一步的 Babel 配置,在这里使用 class 语法作为测试代码。

接下来再打开 package.json 文件,添加一个 compile script 如下:

json
{
+  "scripts": {
+    "dev:cjs": "node src/cjs/index.cjs",
+    "dev:esm": "node src/esm/index.mjs",
+    "compile": "babel src/babel --out-dir compiled",
+    "serve": "node server/index.js"
+  }
+}

这条命令的含义是:使用 Babel 处理 src/babel 目录下的文件,并输出到根目录下的 compiled 文件夹。

在命令行运行以下命令:

bash
npm run compile

可以看到 hello-node 的根目录下多了一个 compiled 文件夹,里面有一个和源码相同命名的 index.js 文件,它的文件内容如下:

js
// compiled/index.js
+function _classCallCheck(instance, Constructor) {
+  if (!(instance instanceof Constructor)) {
+    throw new TypeError('Cannot call a class as a function')
+  }
+}
+
+function _defineProperties(target, props) {
+  for (var i = 0; i < props.length; i++) {
+    var descriptor = props[i]
+    descriptor.enumerable = descriptor.enumerable || false
+    descriptor.configurable = true
+    if ('value' in descriptor) descriptor.writable = true
+    Object.defineProperty(target, descriptor.key, descriptor)
+  }
+}
+
+function _createClass(Constructor, protoProps, staticProps) {
+  if (protoProps) _defineProperties(Constructor.prototype, protoProps)
+  if (staticProps) _defineProperties(Constructor, staticProps)
+  Object.defineProperty(Constructor, 'prototype', { writable: false })
+  return Constructor
+}
+
+export var Hello = /*#__PURE__*/ (function () {
+  function Hello(name) {
+    _classCallCheck(this, Hello)
+
+    this.name = name
+  }
+
+  _createClass(Hello, [
+    {
+      key: 'say',
+      value: function say() {
+        return \`Hello \${this.name}\`
+      },
+    },
+  ])
+
+  return Hello
+})()

由于 Chrome 41 版本不支持 class 语法,因此 Babel 做了大量的工作对其进行转换兼容。

再次打开 babel.config.json ,将 targets.chrome 的版本号调整为支持 class 语法的 Chrome 49 版本:

diff
{
+  "presets": [
+    [
+      "@babel/preset-env",
+      {
+        "targets": {
+-          "chrome": "41"
++          "chrome": "49"
+        },
+        "modules": false,
+        "useBuiltIns": "usage",
+        "corejs": "3.6.5"
+      }
+    ]
+  ]
+}

再次执行编译,这一次编译后的代码和编译前完全一样:

js
// compiled/index.js
+export class Hello {
+  constructor(name) {
+    this.name = name
+  }
+
+  say() {
+    return \`Hello \${this.name}\`
+  }
+}

因为此时配置文件指定的目标浏览器版本已支持该语法,无需转换。

Babel 的使用其实非常简单,了解了这部分知识点之后,如果某一天需要自己控制代码的兼容性,只需要配合官方文档调整 Babel 的配置,处理起来就得心应手了!

`,35);function A(d,u,h,m,g,E){const o=p("ImgWrap"),a=p("ClientOnly"),e=p("GitalkComment");return c(),r("div",null,[D,s(a,null,{default:n(()=>[s(o,{src:"/assets/img/esm-run.jpg",alt:"esm.run 网站上的包转换操作界面"})]),_:1}),F,s(a,null,{default:n(()=>[s(o,{src:"/assets/img/components.png",alt:"把页面拆分成多个组件,降低维护成本(摘自 Vue 官网)"})]),_:1}),i,s(a,null,{default:n(()=>[s(o,{src:"/assets/img/caniuse-es6-classes.jpg",alt:"在 caniuse 网站上查询 ES6 `class` 的兼容情况"})]),_:1}),C,s(a,null,{default:n(()=>[s(e,{issueId:163})]),_:1})])}const f=t(y,[["render",A]]);export{q as __pageData,f as default}; diff --git a/assets/img/book.png b/assets/img/book.png new file mode 100644 index 0000000000000000000000000000000000000000..bb7473db4320b2fb5efdd4d145c932b25aa2b104 GIT binary patch literal 54144 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 ycy|@7Wm5 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 XXygqYSd)sxc{^o!b-7YmlfeH2V({qs literal 0 HcmV?d00001 diff --git a/assets/img/caniuse-es6-classes.jpg b/assets/img/caniuse-es6-classes.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3ae62d67d881648f912fc2ee42f4b88e4db2ad69 GIT binary patch literal 115411 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 OTY~;O=-9>Y@Ba^zqis?E literal 0 HcmV?d00001 diff --git a/assets/img/cats.jpg b/assets/img/cats.jpg new file mode 100644 index 0000000000000000000000000000000000000000..11592427cd35a82b67b51d870aa32eac1db79257 GIT binary patch literal 656049 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≥?Ou*t(+ZceLyXL#S|BMACQcL8&Eyi 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%0Am|+QsipTR9%r4reH@vS$w>z?G23(VAid zuHPjU2wSKHYArqJ)GjzJzsj~1xFjrfmeZ9Io75_SroPX_-qt{2rF>qY)>4R8%eR!( zF5UQOt0G<{0u*3_(K;#zeiv^LA9{5@SAA&TOZW#Ihof~ih_ zU~1S!@&acX+M=0SVsokmsYg}ain}A#?0#~RkgK$g0HeFUFNB0~{s9;@3?T50KPDe7 zM5B>QC+$uNpXf+>{5KLDOF*#eRf*2!&ou@%8TKhy+2>Pw{?-;|dE{eyS$6|LgIfhG zX0TY6`?N+7cA0_1Ym{3-77g3qrU6-B- z>omZE%YF1_Xn=K+=it7YcbMsSB>%HN3*opd5d`cOmZqf+ionrqZW0f+ctjpBhMa1c zMSQObhn9=ndtaKtDuyE38RxFSlqA^wFDhSOWh_7(NFp7AkRY~V^ZM4^T5ZTG!W)qM ztn!WXK9OMsEsZ1S1z%Mm`mk&w(*nV;y%rIP{ic8Ie3bRrgCPA~Lbw=sT*U{lkHwHA}_VYq1S(}Z7Zsr5-l6m*q1gx8Eiro`M$oNv)W(cpEx8X(y8LSeV2Os~R} zUqg#FWGVG!fM;J58zy_Xbm}|j7;9wQ3_QpW*9~Bs5hRd*NzK+h!yWb_S$2;-SV1>A z9!6Clw``%GIOUWqf<#R?evTokdqvNX1Y3NZtHW+Z_}ii+Ks_|Gbak<-0V&wRx1nvO(*MD>D~k*dcaAeE`p{i-d! zqfVq)WVD06v{hG$n>^X$ce9L^(LdmNN!8muQ&E*_{`RjmPd!SOocLh+#8%ie{I6ob zZFQcFjQU$tM}a7BX(Eg|_WpD6{6wO9F7ceRgHG3nHp5lNYUk#|?h6cgqKgZsA3#c& zAuOMYIuquJK|xbp0&Y}n1K~_V-o>cHl7GjA81tZ`A;ktKmjnKC$KC4AZ@M_O4!zgo z+Ne!J0>{|omYozYl(r4?vLTZVL$jmyQ2zkn6KI2)5pwi~VhSf-S=vT1#iUrUg3b;{G3Yk6Di`|=(g9oFpI#BOFG@$p5hb|;kX^}?7dH>E00_Ej zT2XpQ3WreZ=+fwo^g3!gD(^N1nWfL#gJ4XV_C6N1z%(`$SnBtjg{UJ7zF*reJfhm> z3paPz=a%Oiab^~dC`Za%lc?mBytwMELr;pSk~xk@8%O~XlD?^1V}fO7*>BBlaL^OP zW79#76_MF=%nurH?NU)mXe3+YmW2pY=7Vj4gcbY1#n|-Ir=&_@s%};(Sk<0uAJEse zZ`faFhu6rTph83a)RPbCGXc?3WqpHB+k#V31R>e$!=BIiv(WE%uq zroxR(q}EI3O=vCkgu`<+o$+m|WH*~mL5uDKWN`Buj`b+~+b;34Q!Fi;p?#6pZ`6C- zuATw1Z}wX$_+g<%z*^>DER`N_Q>9d`vt57_|3}fe|1ts?MJ^2>J&4SfJ>jt@M&crK;wcJNx z-%rR;Uv+Z{i)rUJIi;A^!H|iLjwa`>x;CXGuzimBroScpTV370BO3(O%}Nzqe}nz6 z!FqUND5FZ|A4J`ll|x<)xLlfMbEc~+MA-Mw2Hy(~m}bR4`R zudC8$pUCDYl+^zZ7@ot5!Hze6@#U~kfZDkE?Y?cxaS;&=H0#NXqFAsvYfG%0ZtD0B z0O3e8R?dlfrJm{L*IaB;M<44ybtp}Bky(q0V1K?(Kf)DPo@OU}+_5@~-OJG8|9sr~+q^rej*x&x7wa_*^kUjz z=jR&P)jQ|V5^nBQf)%cua;ZL z-kyNyK;MMcEy)48at_ngO&Xfa(MjuF6X8g|hG&}9rBa&oy%OBFxQo%Lhak)nuhGP; zPw=xL;Y-TX=45SF*7i%+L+mE}HeIxByTxCt!Zhg!P^5Sh ztfkE+{3_y%=bC$If?>21o@@oyb&pSBJSE7>*z{tVsFn!MXD0a1Oi9C+IS8Ju>Vp6^mCpzroBxb98q3Nz5UGN0wz->pZO%!=C?|kfrFs8#=D! zrfKd>Gs`c+xg8)rAlqjWcC41AH_d>cTdifb;rTLaexvmJ`%f++!y-dOMDYKBtwQsm zRy{QHyK8o=Q~HBvl>UTl8Ry!wMRTJtn1P<^-UeHRvkpPQwFnW9uW%rVgN;r~=a`Nd z3viG5jBY#S-|{ec2o?4|KycU|HaZSLo|e(KH-_XlB=g2$nsVd1v7T`FW%Pkb-Mz`e zWs-k-)ej)RC>rlvFHc-av*Y{%=4K(VY@(Yo`)h<0f%BFq9Wv*f;vGm$^L!dtRK*^c zkU024MQc>QUGP=jRy1tv-<0Cg{HPj;a{^6J+bQ@-8^QUQ{GsdGNOxev-YXha$HFoY z1f(naRJFws#it2KdDwp*tNcJhwWr}R4db8F#CYE_;FTWON_8Akr7P=at&>(WZF7gS zh0vj^X7btaJf`&AC!9>M1&_=Cq&M|__06%MgV`5d1!b1wFqG8@xsdatBLoW`8QJFb zzFaYQqbgUescmq$T>D!rqgevIg!<>1`EO-aL=o)OeF{$X_*Z|)@#*lTXQ?5;3(k75nM)7mL)k`qh)W_?`&7 z8CJVDBox3-Gl9^9{5HYORKlU?+cNGjsqN;d84EC zvMPX&0cr-a1#LG@@j>B=9`yl)x|q=p4q3ysA^nQ?(8%?wPM|8{1)YNTx(7x&oVX}VZfIA_4|Ek#>l0`!uA^A;TRZAujG7}N8)hhHA z+Ia!J7x=p@r+aGw;mGr6fgaS2Y=gZl8ZFKGr7xC2ALPqyzd9QFl$`}|IN(ld`+wrw zQeaU-u@-+}fU{k@T;4}Pxz}L@fLgT{*lXHl;qy`xJSxX;>vLK=3!PlOQ!dd76YN~e zd8rZL4`CarNyWXH^Gy6phBGl5umfIorAn_yh6Nxw$&w9N>unuP4S0NnQAWGu&Ks?G znbIkI+~|Y7y;|1n@9Ixt2o!_CJf%O9jnwb#; zGsZ6tAxOv_WN~$K3-iM11H%X3qWmjwTE5S#Q0?PAIH^eh{mDGD8ls?y1ueO%BYnPX zidfg+)rF5=zE_7u;Jukv8KhkX`SYLvh%Xbeykp90^axYGHes6h63W?r|FNr*F%+sE zk$1>vW0bKy3s3F$)yh7^avkWE`^>z@D+kZA%xl>P;-r4r^FDk_|Ha=|ad?O9BQA;1 zduovUp+yRdJ=etP-UCXVDG8NYoYr31SjmRAe@zYP)*G^91=oOG^!zB0nr;q3>0qdA$GO%4ivDvUx7kWVGLb9B(15J17C+6| zAGpo@3xRqE1bO+q&#!R&*$9M6WG?rn>~|0TDHh;*zdG>f+?DL(Wo(q4%E8KU8`wDw zdPa`lx;n83Wa>ekb%Ndyts+93Dbc$F-|>@!M@NhU!8OM*&jjbqF9Xu=r*iUgeazoy z{A{aFum8>X%Id^&`e|t0rXO2f6V{(;X_EEdt}%D2b?c7z{~Napu?9Q*d&J|`D0|BH zI|aj2W%#G*njU2JUfb4mK&%s?k!WOi<$kN9TRZeOwHovtz~M`73>umob42%wlo7(Z zKkR56wex_S5Rm3#bUH9j0t2ol!50FiuH^QsA|wlU5u?0d-7Rx1d(Q3tU=9T=a>oP9 zg7Aje#k7#>J0f7*0uOnKz3SoDohh!!+`??7h_H()dJvb%5X^paMRUH+G&BwslodKn z*w%k74jFpjr+{LXxoDr$eCM+!R0KLHu+NJRX%8(AtADZZSPZCXE?~!%j!j33hH*ga zkYw~EazKc-&~X3Q&ts?~mpgU@*d+h)t}?JcOuh_>|Di!!ce7ikseU+wEo2SCsv-b` zWfNNC@VAb7CEcH?i|+WR(t={g1(e9(AcD$dEa;mpxeM7_nQvHqVKDd=lb z3qVUW5Fv{SR+ftsPqg)IKqYmwK61ZlbD8J$yY>q9q{9vgLZprF{4L2^}q?0xeHCExz|A_3miRC ztr}Kl3GaZD>9z=X7vLp1zN6=>l2fMaahcPhZq+PrAk(fcB!cmwz=)3+Lc^!)qsuM}ZG> z9ayo85|Rmi$=mxL4JJ7AHJ^s{%;h$zyV}Z-m%)ZfXpSqd-MmXHu1o!lE1+z)+4bC) z(LNsPXM)`q>Mb_&Ijc4)2B!QK-d*m`m`L;!Q4>fcm;P`$oAp`{EolzFTH{&&xEkr> z3dm%Sz*QAvRrj@pyCaM3c30}SUp(8I9;*w^c$ZB_1fT)NZ!VaEzLCdfa@Z6F3|U`d z`=3v$$SSJ_S-K+pm+7^>e-(q1)-E#HRq3g*z%bKjF9gUH`o zmsgt5zfNDtxF!sgQnmlZt8`cE9yIuP?mM;}`#<0zum5)T8czo*C9&VigSdCT0K*B} z$3_}^?P`9N-ZJ-T-e8S`mFx)yRj8A8DBT2X$h>*a)!DGNFKW+Wi z59@K3=H;U{SE0&vmGnPUN@*imZ9gZq>s@TI&K37m6lR{2HDe)CA$@o+$()o5RRn)wDJU~+>1O#-SR*;R&%;Ma61=ZDowz*qh z_XfaK_%rny0V+{XCOFi;hUhySPf^koz3TGq6ENa|)F2F=5NdzQdz(X+R5!

ay}+>u#GE7((i&5jA7;Pyv`&nPq_1GQqSHJ|q>mQn~%)IKc`a^LZD z+58*RBR-Nm@;$%r>Qs&^$k@H^Q`2x=QxZyrj)1&rUA%_X4m)gcCs4Miu$Fp`xd%0q zNHk2+574I5MX`;a?70uVW}#xvzLvLaQCx@eH9dHSyRiKrFqZLy86Ys~0$ z{eaiKU7PLj5D_Sj_-|7y#zcuu(`9A;Ya5%g*o>)HcJTNl?7CT}nj2zGO{$asOD~f# z8h*@?=qeEis8oGrDZ0!`kpw{Y5JI!N4GW59)YDH-z~u8)D4zEv4E+5k1E#nE(7FEo zi-}SG&x(CzXMv11LX9>=G)Qu&>wYqm5#LQV9?^xKjJZNF=P?Jf&C0rbwGrLs-M%`= zw=&P9RFoJmnO(0Vpt$0mWL}gLDeCR!qQ#!taASObg?M3fg|zEaRTRHbE-6SqP@19d z{Mpdc+3fUMmMR%#t2^h$b|(~(wCY$DVlp^;%P>SADy??{g`_41&6S5K)r79tjBQ~Z zH)37fAtgtDb;)Q8aY%#YDQ^EuF?j+sQ@S!U?+{^oXI%V*CRO}m<9G-`3_dhW+UCf0 zsJF@Rd=P@=dB@q*qSa3qX91$n;H2|%>Wc7rC{=NZOh6iZ5I~^zC@+UIq=8oPaQw~- z4jpEqT>_bFsb~>#7qadZoU9yss!H2rSw;7$;yalnz7EXjV*{Uun_uoI+OFRO2HDPPvCIQ^# z+5=RX(Uv-wI&U^-{B$H05RNDh0SHs-wB2?eDzLj8;F!R_kYT=SWb zYyvPxrLY3D0}nch{WGc{^^XS?a5a1p>4P_q^WB>naM(9^^F8Qk%3n-%Bf+>yAD`#Q ztJfij+ZdXZ-=#~~YgEFYn!fBvkxG;tZ`6gvss$lQ2gvnvqiN#LmH?0^JOO0Lcv#G8 zc1!m!0=}`2uRyENx&@S=rHDOo+e)AiveEsJZSe{qEH99`;4&N@ma45{*3$}6208cN z^6-5e6KGU0AhI*Snr!g*9wI#qT+Kb`oCW?@yr|xOg}lv)fb*M9afzjZ2}WZenNWhe zYF}7vILV^Tb0#(q$ZPlpOtwbCM~mdJK_m1i$vrMb3xry*--Ej-=+S60w$YUBpo3^^ zo*Gqeozr4)*O)3e>1&J$){zA=2`K9s9*?e)P1xSLhzC6s>qCol>ZgL3;g6@kV2?zU zw!cz!4$VYT4ne)BbjV!D?(TALGVEl4fVOw}X`rjaw0CnSEEfp_K6z_5;JSmEIH}Zz zTlm)JSWKVXTWHF5=JoVKek)vZr$Q~(0RdLTgrT}(&rV2Hj%}H|e5xV&6Yz8CG?9Yc zb7x(%gh2ql$VaClA7jd@bX-@?y1v55cUrhpa&-AgUQb-9J=>)~$qy{C=WPNK+K{ul zJM_dsWS;7z8rc1At$mU9VH2^gM$muLoG`=R0E+?xwJ;CdY^j2^oWz*%2hRX@{nW>G z9K253r^8SL-v=&jDDzP3m}0+Zo_^;CGqVoF`OVICoE{6lPQA7l)4W?>MLw9K6yvr= z%UzLz4H|puq-t|gk6`einq2N6H}8VF2eQpKnBZEvuS!y1BYz$ij6$UafI5Ub2dqwj zE%5xDD#6NUoNG4gv}!Z9z-DU(@)EtPA>HUkx4`8gk1QAW;JXUzUHtrcoCW4lodi5M z36l#@OEZP6YGBB+<_AL}^F@pF?GYL49i6UyW!$0d%M#7%$zsUYoyvROlyB*6;oTr@ zU@LQiTfImCAb+$2uvmny@i2%io(>r9ITzJocsUA3Ol0Ac?Wc~R2rl;@<_GTTVF1oU zzA4kN=>No;ra0I4puKrn&H^yL>e;VMY=Hg#-Z4XG+5?^fEQhHu-Q zs`p`h53vugdOy~ZczZNU_xqN5tiu0*NY9;Oh6bXy)DEvWsT`X{A=S?$k@Ie}7@w&J z$rrJI65F+NkMc1de3khcQ zRLDrj+OxwaPiVd92MW8}UF&7iU6tse72X+Rxdbao1zQ%AKB z-Ie};Y=^GEAPdE_(5nYVPjuA1v&}UNPJT|=PkHBebLOnD&~(CfS*7@n0ezJdT<#R= zvMe;(brdIgmD062=9TshU-#(RI0mOr>bJ?lr$CksF2+7A^1ib+CM6@mT_STZv;yVw z0yLU=+%8YrM9SvYV0`sn<;%-BtElowsjbQu<9pyf`U6Sh`*hq3kC}?J+u{z}ru9>9U)Du?cS@%yq?xx5F-L?Mp5E8&4e{?K*aVFuLo zrqACaQuE+frRYzv-YSOW4q1sALc1 zb)LXXMam*Y1fwWSW9<&kl-IMSspGo%+3`8jb3M2+kN3sOV1Ik;i|1X3N;bc=C6z@a zJeih^?9orkpT5%Y->0fArCPpRjSkR){PnELYBRg*jxoSJABqew&GXRrK~js%ZA3AR z1l}rP>KdXo7rFVxjQw(VxZAmP#r4|`tZ&9O-qj|>u(H-ofm^~FKz*6Lr6oR%mo^Ug z9HeUl?aQKm*l*%om*KyySU|yDgTP^Ga1PrhhW)|Wqij_6FW}73vSe@w}k3Z?>*7Fc^B&une}3;3tuD%0~uchW?!vD25s#p|t8OU}(w6|HZeRSCo3N%)^*q35XThe8tA(>;~u! zMcb?H*U&*pUpbb_*q@PL~;^hmAOQcfJE|`_6C)kX3X>sPOyHztQ8! z&7j5wK*t;ynTEOJSm#h(Vl5`MPc&8ppgjHV8vm!Fub_C}uj_8(F9;SpFqpJP14um< z+m{jW43xgvCynt!*^wCclryn>>3-0napDnjRS!vD+m7)p;>~yIn(h#-$PmRtH-^-A z3LYuoR2asM>cBhT91=Jz`ie}a&E-!&L{e~@r%-KU88-tCT;d!-Atexw-30)w`LhvC zhxRtKEP&4995|Jab*1j8%bY@T*SO46Yp*g6Z902z_x$A9qo6{htU*+rkcH_eXjTz5 zf9Xrh26cenvCc@sRMR-8#L|~nPfvBqq|pfx4>{B(o(KEfw5pyX?hpS^4&mH;K$9Wg zGPL(g2WdtMwS=5jdVWu86_`JulP0fz5~G8pxSb`ptko`n};LrzhxNkdL~mvPW6|WyJL>G|Cx`A7!a$i*7n?1h2{I5qKBAU@pmzY zQFIe~2kcjWxZKf85=jBypjksRZ)ZE*=D@_;c+k$8rL$V+E;B$)I6^p{_4FJd&4GA> zwSBGsjmzLGpRUdP$%WpkJhSTZSM5Bf2WI|1fD83X!76@-$6_x9(;H9Zx?e}=sb;LX z!W93~+K{SXW167Or+AHXel_FXSAEiFD(+Wo`Jw6wl>vh3OQ#dI9-O|3X7=q6fpy|j zdFQm!F4V37;5}Jp5aZx!oV9{LP(?M^-Kft=m_Zf|g z;5Uh=OWB9#oXVBpX5vQlUwmR;^QdGq)%?5=BrL|!l(1Xeio*;%YVB zE{DKY%SP0i*Y7ol?91l#=Z94JQ#@G6*C7v%sYP60G{&3Qun1b?syXichE92~z+su` z`Q(>(Asp8MpB*D;mWVRoq788lHRJ#2uHlwn8h7hlf6keMHFu^OM%PJjvNmp1#5%e_v>ylN2vn|z}2-n zk3o39J!BkR%}0Cr)|7nRG>Opx6t3Yp+MMuxY{p6ryr9u{csMM(I;=?kwOqO_?fR&6 zJJ432hdmnkE$2LEs{jd~AN33c%yW3A>VDCbUpUIC$Ir8aDf`JgN=m@DF1|EW!)Fc9 zrKC8~T<)N!qJea;@o~p4#fPG|I?Kx_fr<#qWu-q1fkIW)HC2>yfAnhO4eQ`k8RF>c(DW~K^%UaFh@#S%VkjLKypewP-6=^kp} zY;=DT=x?jnD?!h(!`!Tlv7Ww@bMP)V>B;Y9=)Ggl5LEXeZm%L&2&h%JG46`d@p4m_)TP&@C$m+azqZk#G)A|0@aw&PeMZ)rsrG9puLf8e!* zpmmy3p*yMmmseynYTnpBIB7>k+OM!vO%*--Dz~S&aj=c<*y;u7h=<25e7=^8Z~<>;L5$5~R6@RQ zv@MmQ#51X^-H*`7sRhE`#@N2rwTxamF|ej(k)IkYH_3tS5V!d8U#lO4!=i}KG*wj6 zxZqk@*Yu6HneVNa^-H~|)NqYya(wh&@ufivoAIe^` z)NtQSXQ%L;iDGA}fueKZ&wRUUqSZZ?yYU=_3JV=inPXedU--$}2f3C3J6AYD*fy|U zF_l@xh`@PDzxK;d>pi<{5g}(|NB$rP=dnh`gkfy5@O%QeEk{ueom$T-z!JS?!+MUH z3XCCxkkkl1kfJ=j&l#%Jel)!f8?BKPbh>#?1k*rvy!7@}IBtB>KCRJ4>tx7({ZB^{ zAXndmH>xcdsSL`;lmE_q-E?K18Rf%^p8m~ulli6}q;dp)D!Y8)N?Pl)fK@{T26>c# zw1giB;q9j*Wk>!8fPmD+tD#|+lB6$rGLaUS`d=iQYt|VqoHz4pkh8sDc>F8X|Aj?r zH$r&rzj+-rF~Z~FrK-|(N*G5?{es62cA&k1=_Jsg{038iaWm_-I0<(!qXiAm3~+#@mlfxMbNd&V00w8pcZ`m~6TY+A?@ zqNaPzkBkmhLs&wv0dMfemzFVN?z^Xq{mR=VMs1*K7N|AyPC9CI50zXe2_aT;MpZjh zHv!lgGS=k4*xmp zS96deQe~eAho}HezkyK&b{t8rBX~20X{Oa@Harq6h*fW@3MY(DU2lU+>ad2O61e~Z zgO97DJXE8=i%wp^O21#o$t2c6T|p!JgHc~YdZJxXbWP-r{0~r0mvz}yXLC_Jqyk!{ zSbDQ{d=W`B4U!Mrs};Fv^WPnr@H<;y-eQ51XpIS}uG9DU4v;B34T#Oqiq@TCRZGZC zDUuBC*f?~`GX?{{>2)1`t&)3t^i{+26?i(|4f>+rf#dRm?XT_Tab1BdpiJ)Z(ecUG z8h9cQlDruv!`m)ZZBTlK{6F7ZLs@xhshf z%aGD|yUZE?2rerS@$cNN=zfzKRohUT+eZ`aft#(GNh!}xW^cb1ofu64=KQLE+W;#( zsrTP-GSJrU?+F$Svn={`XD>7&HgH_Kbm3emR9DeBEF1*GWOJd#<>jLk+#RVh{>z0L zcr3teW|ni!b%ne&jAcN=$!)bgT)n6{q z(*8}zrzdlBL*1=XqAAW3OWHZeO&2KdsA$VOKA>}AkkBSC*%FmClOM{#+MuSfy`!yr z7IycYRe$1Hoo08Y{2urPa$M?F>GpGm$9_NN9|;%dj?GKyvdoYC#`MdyB{Uc9*BJo# zv<=*~i7Rgwu=R>5zTP1Of^TT0=Gs$(%@mIQsfRM){fD?KJ07lg*D>*9sXo|$$cX~G z{{gFo|MK|VxI)7ac0ht$>rcMIOLN=qj*VcD_nXr ziy}xxu(HGXBoll1#s-*>%dBbH4&h$deIqaUfzTT7=b9e6uxt^;IWiNe1&u}8tcZ>p zjU)ls!;S~!L0VNRJd!Ji8SjuOg>@L_g=;k!@7d%2=rObjAO|_bPAS#;1zSsDU;R0z z3>xsfvlFSDt1*!m&_A@m%7BImV&L(Y&R|gGGfv|=61zQ!8uvi$x4|yVq4Ez#^n`SW z(^TDyX&5<7%l6nA?k!4ZWW2pAwBJIPMtb=;FQOGxzw^>y|Fc}04ifWeEI$&)?C)Cs z0VqS7xTlIjTU%K9ZoALA$ldnwTqEl5?ofFtQLlhv0CPe(Ri!Mv8T>Uu%l4b>WjHpB zml|=`$s+?%#%BG4Xl^oW1yFTI?hlgbbGjvZ-Hubo|5Npf!)^yUAi6=P@Ufw2dBF&g zlAL-a@a!JSpACX9LhlzlF;#>#IK!39f%(wkgRTXQ~m@x#>f z$ALwA4kkCdNOvw6^zKX`Gi1G$!22G}vTXl|gDz(G`(z(e#adSv#^Gymu@_v3B6EU5UI+fW|X{@8>5%)2A5 z@Rzw*?xhAd26D-ti~s)Qu%Sp=afzZ>%6KQob&%E~iyu|XECI45kXXIRJCb~{I;mC^0>D-a>^yE+gC)Gs!cbzrD5K*9M&?fIl^t} z-56A6Ak;q5%FiY(9W?CYPQBF>p?xi<>y@2Lx!730zekrFEX^YMItdx zQRZ^dA*lcV%H@MEY7cX_AcroeoRGGnYHukKakpXFnbxkt zsSlT5z1&W-Q&EUciatrU><_U{pcLLUVnq6+VhEj#%&|GEV1tQRcw44Q0nr(I%}l2V zhU#N)h?rYM&4HU(3#R~^Dwl%sWu>xqtvR59ZFzK>_yZap#pjm@*z$izdRPit!cM^; zi(S8^?%R%bX5|~e_~~QSE7{27Tc!75Y~MB*HC9c1wamzzk~MImu0=dpS{zg-r6$L3 zve?&0ERJhbMnvRXzqT;|+Mozj&cY@6LYm%ByV3sv)!3s+!97Gx_*Lz63HKM|@f$L>Fs%fjui zkZ(Sj_ub6JKU?1Y$f*7$?ch60ifl86?|0TGgM%H<$8zvQ;2lElJ;tLvjictR8yMHH zf00(cRSDAjQeAM+Xq}K}OGr9In{Q1lg*GSNwrES7v(~pb)1I6^G!E^ic{=kMGQxNC< z(BBcPFtL0I{=j+TGM^MihJ2t~fnN4cX;I`2bvKs4r)puYJu(VV4{N{JW&*~3`>>_` zio^LClEfgl@{Ez(4`%_^8wf6x2NR{B_jk@B4MVmVfiKc?EadbXPH~xM z7u*Q$!x;SO^M_zb8SxWWKh5G?nbJ)ow3^I=(;-7mgN;wpMlTx?3!M8^8d#HpxMgsl zfmE0jM3h^|k%FrYYPRI7pW{UbN?(IDfjpT!kYnZBu{jR*)^LjVA&LShiiFmTQ&ks$ zZvn;yOXb}0pwDkKsFTDu5o?clHf%1ycedOe=osKm#pXV~SNcW|Vcvr{KfLE9mf4;#JU% zOEgdyQ^8lo%m;j>E5Mm6Zgq6EPBU-g4T7!ih(p$q$sWwx$Ir$3H$#P&2W?A-LLxs; zNc=uR3W}65^uw#XZXNKMIjA^_jEYN`=^+2P0{c^-V}JL|9BM?QE0|aY36Sy_C8dG9 zU;+-RC{dzSSR3!_xZ=+A_5mW#42_&qDlFWD(CxHoGW_%&>kRddE!TCIU@evB<$~j@ z;e4KWO8ArdjtBi_HuHC0I`iZoq&(xEvMhAt?5{PRXt43jWr|(j%l?T!o9Cd#Uz=;d z(9IB6<~hErKv~$1=6fgd5@QZY^i!vaEUXVJ$?Ndm&`*&$n%ZcYnwPUmhbp1y$j0`= zYSt&4JHIx{_!T>NzXAr|{1w+CF@HOxoMvGrYNRyh8GYKTy}w-Liv3IQ=FJ)1Wy_?} zN6bGKQr(-#Vr{unWJ_M!W`62!y!>2Jd%6z%k!USJ$W3$?NomWbNk|q)Q9gDDn(BDF z*oZv00%Za`i2%k(?*XBo0# zjlA#xP;H@+5+q%qJ8xADs|x_G9BEeXsel8zagjlF{{HD))}254?@w+(YUB??VT%x@ z$3&YIJH#b=6vc^UzRL^ui4u1@Uca?hU%E}*Zu6!Ji;J~W*Z!6927f57%E&NpUn@&4 zEv!vi{uT#3W=XmZ960NE0RqNGp^Cb>x|ej-vMD7w9E)`HBdmUbA|^XpI=ksdPWMsSx~qbU?E8p-k#SUfT}rXwjL zi+!L*T7_l8E-*$FBRwrE5AFhF%GE1W9w8}gb=57gpni}kqkdRRZun+&YV9p1Om51x z|0hfGfZtk7tlAJ$Sasqr(}-6b@E?=9B9H&v6<39)bGtLpQ=my?7)0g9ta;%c%^v^L z*>No_E%Jy$7+$bW#=tzfVUekZ&~YXZ zG>h#_^7NK*cfII3HZ|d5Fk)-7KQ92%vyvdsWudowIWr%rR{^f2^=KpM2@v%W@m*~4 z0Mf@1D^c7GhU|MASBKH9e-T{ro`_iD4Q1u=u(6pq-N(}0rw zH@MSUiRrej4(r>Zh*JGB+p%py8RlXdh^?dcQ|g@rWl+|cP_NyinwHb;(>3RAQOd=3 zbKi)#_zn&K&EM-(MIkf_!r z53bLW0N)Rul%(|=zOK0%<^C(QD=l8wu~(5nuXd6$^QfP6ZKPYu4=Lo=C)p| zJd0hR+8cj0S%Eu*+COzH#62Z)ZXYAP(+|5c2w}>?z5engt!F=iIXLPX7jALc`qJ;| zgGqW;s$`2uw)^@jH_XENdNi1>iGiAAWaPfD5LK(z*S=fJ8hgTcXZq@e6V0ddJuX)< zId`3|swVd-JU{K<*ufQb#Ad$CX3pMbq}%_1P8!n84lvUW`%Uh=hpYKX$0-DHu?J9?tyujnRO7sl9#xq-_$&W8-}svDx`{JgDP!LQ_V-sl zli*(mW?zZa?fep2hpbYGuMd~qR5Yp}-jkT?9frif)e z?-w?gx#Sh7E!ExFMxMg|EC8zwxM!&*t)=UvZ7gI!rIAp80C}*CC$lL!Gpx(?o*dUF z3M99iPiJNGBI~KTU=#Uf+UhQ;+-@;MG1khfwEu2_Tm5()1Go&n6A#kx#X>tWk=A8n zNs+Mv{4Z%N9;=KE7=W(IN=^12A+ukK-#9cOB1xc#HuK{iP?n~g$oFbu2B*APE;+^O z3oG->D-^nD?(8wa&ck~P+*!8OrxT>i7R1=ttc>DF7m1njYDCQA>eGW1gZKVdU{s}G zAOS)tD;PUkbQRh5>^bNI^aELwfjFw(8~1~BWobt@qMN_C435@GzjMef9>y%J4$!ObI2~UJ2ohuX(x_Ok;hrvmpK_( zG5Xa7g>CCqv)~Z-?Hm;yvcM?-1TEbbc#Qc7Zj0Ndn3a9y8XB)FP~~%~oZa;gnr@$k z1I~=bqu3C-^pl7s z?w*?tE8_dD+T&pB1RK9!cXyrPP2Z66Kv5UJLL#6Gziq=Mx;~B(jmSk1)Z0Mr514(2 zmp&pFvY9aYBfeiM@$^gPbylM(eeLKcQ;l-4+UvM6KD=_~5E9hD_&r#k6vdiZ9CvWq zeSEX49}y`UWWQLI(qyTt8ojsHtAgAi)HK%dMxSAlTUVOp1~~=>e>wfZH@1;q-kj!Z zM>j_hsz8K`E-YFUNhY&ZbDm(%yBO7hzdu&o$N6pE2y)qJ+|F!$`5sSJOmF<>I)we~ zK~8(W^wdbnBc33>j(lZHNxH`^37rN%)8nh3?ViTtc1iZ-rv0eMP{Q3!8o+`#)d*#+ z)2}o-p{z6Y5?OVs#$@V&tmNQ7~NgZ{dwJ7tv;k5p|a- z=RX&2Y5!JdIq|V*xmj1D)9oS5zF}B09O3M7Gc0KE@onMRkE1?;iOI1XGcJ^t8f$L1 zv8iU#xR(CcN?hhAXCb$-9Crl!cVE)!+vfIDNb}y_&8cq)Q_;2e1S&Yt@p}?e4i6Q>nyBK*Q?zLX z1c7u5k`JyRkN)g@ z{Ql?r@;|oGpXDbW`a+(NK4tnpfbkQ6$)}rIgEwf9gC}CGkY<5B+@Ku?nt{8t^uzMf z!;cDFo!o#Mg3yf)vg~P|5>r}WmzR$ghlFc`pq@(2t%^7}=24H*c^2lDtJrA&m)Q`p zc|c05U;C$B;;5MMh@g;+xiD{(iWN;a%z&I(xSJ?JU%t7G(>_zD6bXjzc?aqZya8WN zF%KU@e@}#-Bx9tPA)lM^R-&Zc6xOTghstUcn-iS1jEk^4`1pVa`jZxn`W*)7M|oIi zOo%E{>aoz<_ht=jmmR3XNcvhj=pOs_o#tmrZc6KkK5fkfJB#L|wk?98pa&Ph@V_B6 zQsKch9qlaq?gnRn9h*N;%ai#Y#(NY(SrcrHLALT?B^cr@E)J!52W$QLvU&SQ`}?mh zn$6eHE|I_xM(#>D7}O-Ed8>v-dP zv?RNJD!!d4?sq$h1%>vGhrit(8zf!3zX}9tUCWFfk=$98B~uhR5NXp5AA@b-hSUj5 z2fo=Ad*hEl6=v65EWMOywRoSQ=~q}u3A5Y#Js%CXy)8LT0*2y@;Ajh#VP-nq&)56 zTW(4*eEJYHvW8o_$LMpq@F?fmsg?nI|T+WBJ z>5xzqa}5MIoYq->)B4Fh@=a~?&wNdxKDOC_(iMx!29T(|-yfB|h3hQ4_d6H)P{yop zBWBIhb!PB8q`9BJea8pPptouXy;ud_XP z^J%0S#{*l-JJcaB`6&V0hE;#!(10oUE+M@}_F9)iS=J>#K9Lh*eAnQ%KITTC-R~z$ zQ`*{_yLqkZHYpL1bloL;c(;*x&(ptPjs#ctKVWHNvjoV_n9W#29Q)I*lkLP%{k~{g zaIQo<+7ADZk1o^Hci^cC-}6q@rjYh9o^)4FXq@X}D$K(ckuCrj7ZT=MF)K4`LWYrD zlJ2QrAL-wU#S}2P`YPue7O6~^DY>jmbMjSat4zvIdxyf4JO4WAqk^Fwp-qEiHP7H$ z{k5~SeP#axeomZO1rCGzl_+A*4`Wp77Yyn;>cJ);!RQ za7qB$j^hwt3OcVvspWqf_tzO3OM5HhE60`BThHj+1~@?X%;0?GkWE#`f*e_ea~*np zSL61R!|_a{j*}QtB#lY1EvXtY2<4*ukYi`$_Q9^o_sS#aMNK*RKifVEE0FW2@0;$R0C3XF}AuG8urJ zc&wz3efN@`!f#xN zViV5f(P1Ig{)dIx$<;WdH+PCX6|3z?=&z$iUy{)SYu526Sp@0R7|NM$>HBlkYFR~N zjH3^IENIr?Xe1f=8)_#8&8A6pVFhmK-(8vz?;3-!sl{2%dB8$BMk%y0k%IbBCdb+# zw*h2rRv3%Cnjv%Nf!=s61|wk{cEr6d_jwc_cXx0ZT+f)>AXx8#d}&Up-npbWUnp7lOv;rjt`08|1GBA2MFD0MaS%;xGS8fdJ%e3v#BJgot zoCpdk6O#Q7VsijjJr>o}_@YbZ-|~~Uz=Q;rZYzD*yp|FIsT4D`A4om!<=FdyylC^| z*E)dAFup;KOJMyKMUr$TCriO&E|cx08h!X%?c2X}Pgd56K90FMxMPc6dY+87Avr=` zw6DX8-MvSbgJVXE2q)MV&H2YW1jg~v7eBFK0Uel(`+(&*3IQy=3qhh2JO6QE|AN~v zu7J;)dSPsAMKm;g=tr|hnZy}jr;!Pi16$i-w^nnM5S`7cIZ7Oz;;*xh_9P^m8#TN)u(DX_404{Qn400!QG(Cj?`V` zML_B}F%rgkR`VLJCV$rX-FSrmpeApJpVL1ID=qzh00R1Q@HAA*? zKB)G#E;gM?tJ6%w3_}<~zvz!0WO{7oyI4WzUOZw1R2% zcn5SDyeo}MFJ~+!5QeFo@F8_5twTSOB@V8hFveW-NFkmPeoHQOGyd_rW`^%1k`kn$ zWjn+9qvnGHptA1P@;@D`NEUMPYBSF5X;I-_(k#ry`Tr9!OSH-_t&<$a*>KG{PWgx2j8nNh6M*e zz+%%7_)Fx^=vZih_I0!_g|%*lh6n@*YV2{#^Y|=^^e}TemB~&-V%gN*0jWq7-3AQl z!*c4seF&`%W`EpmyIMAQ1>~cag#<~DhY+?S;_SJEZK6?hy%QS{v~FT--zeN+DQ4HF z3gCp9x&segPg3o<#%z#Wobt85KdIOIs@E#s`uizmYiRe`b8h|YoniwKImv8#rk;>a%-LYHfj`P z`E0VW!iaf|o>>d0XWzDeg3AD*F8{a23=mJWD~~1Xo&)R3R{xfWKRfz6J zPjw=k+N}-xlQI3ER!(heV!XpO$`TX_Jki8vZIAtsHCd>+xL+RvW;0ap>!qPnqB+M@ z|71>dKIitdbAQ=jZ=~L{lo0}N56sZ_dOhPY%%>{Hc3nkMTQ>pw|3cxIKMuSZMzWR$ z>eyq|hQ~}FwQ`NtIvL-CRpV)|>f)YMgnss0jdkM&0_o$RU`ukA5LxAvIiNbo($W15YNuhAaXq-RJ?@yz08Nan8E{nA>{BcgfQ-b>YTlj)_WB-<7XBYa z=i<-g`~UHK=YwIJnK{p#4{38IG&5&vL?LMop;C=hNVPG{G3Rq~s#Ge64tzSzd7?rp zq;g6~LMe3k{`UJHuE%{}*Zci?zMjrf?1x5Wu~&h}M5(7ny(8aXl~rj?&_3DxO;qzw zu5A(rh9@}HOJ-xx*Hgqc6*G4kD3>?s?)6R3msnuYW~C^meNoHTEnWUM7R9h89; z%J1uqI_;S&e@4P6+Gy3MDEr zoHV=cixFJCDE-pGTkSfvKgmV(Dg~q4wXP>$XP2>1Ybj_m6Sn7VS)(mf$?ib|r}0B9 zN8F2(3o?eeLJB--fasG$%QD|rWQg(Mri|CX=dUDn9bx{Uxv*O!x4Y~!r87f&M{5{BJQeJ0XDL-*aX?YfE z$9+o+$LGQDLL)!P;yU=fuIdfPNQPj#WEzq`EGMkPLM57#ZxmGAlmmNWZoF-fkNl%Y z15*EVQB8zMMsQS4^(py9SsgjseURYp8g;+|P}g{CeG-7hC04cK>Z{H!T1k`e4Uv!C z_*2(|**AsFt$hC6V>nLAWHtF6& znR7@4%F2UhQl1a5&4dGHfx#$iZ$lNgD>`r$SNVysqn3-Ak(}UrNqJ%ZqD*y}xxj4d z?4;9got!xEBL{%a(V84=vy&PUj!~sP+yF$W4SQ4jn49TJTGM+GI01PXF7ZPRmD8Q1 zLMFsQNc1>Sl)}-eZ&KXdUR4)sWKYoXS25p{M}~6#(8H~q&)SvPF!I%hZRJ;`tRn=w zenZ9q{h|P148~DiNPXSe-81^WSPNP9TtHeG-*@XNRxT&&30bz5IZu~BJScIOzJWB- zoFjiag<~K6?hrh-?E(U*;EjFP$x?d#k8<^81Dhb$h%W&O|ADocs&7%R5Q}wI1@Fdv zKBjpK_Mb89r9HN*z!Wsfe#p%Xa7I!pnE@XK0KvR|ym^=L$Wa6e~0#9#5qkFyPvIEAIOs^;fQm(2ObguTGv zK>NU1_fALwt#!Wfm-j_jprnJLoZyyb=JHiJCCOrK{JK(A#~KYFMY@~4KOICkt;9W- z(IUZ`{GIbWf0WNr*MKBXo_D`;fY&=>JPn1p4osLlW~03V36JxdGib;n$O z(E3$1B1`%`>GYnHi4^F$QT!BJA@qd&5AOaBy>>DU9mUI882-y1w34pNI5cvkW(#`s zo1%_r?Lg1UjgJ+v?Tewc7&W(6Sk$~+r;@Z~#v?pC!YE)dsK6=j=Iq0Z)1(G)c6uwt zlCCUWR%}Y5OjkH`2WejYX!RrYSPpPfDpKVw;LibV@N?Mo9VyD;kX^A+FG8_~cIuM$ zMcUp@qAo=p7W4?ePJ`~*JagfWPon9ZTxX-Mc7iKgWrN z>=;gtk`j7W-d8IaVAzDO2nT$*R~66bg+_(5b=U-L9H?juifg~HA)X0UZAmhchG=%q zaDVCTXUY@1 zTpaGl9<_|}97vA>740&WGUv(i{iF+KrU4Rd*Z_*epnFTAw)O9kolLLkeg@Wwo2|c( z9a8@w!NnDKY7@pBtqxoo*rOKCtiQB9e?#if$(H)?g8tTZPuTGjSDEypNbr7=vIlc=cmk9H0v70NZ6H{H8py> z2#$s1DDQScvZ*#F(TU|;+({E;x-!}83&VZ_52UG5ke(uofy~? zooMyvV%J*wAT|}ep0;L=Z`p2&4|2a7q^)C{`*I zw~Km9y=iNm?<=rJfofhLD8a=5Drtsmu9qK(i5~4~W=ARg#|Zap28wJzF~IEo<2)1=_jkL|31uaA33<>m^ba4GXSFDw~gpXE=|d_v$vDcod#H2hY_=S?8`gdNpUW*S-V>0e2sNd{yUqm1+7)deguaY-n$5bI1+| zlU?shc;;lkZzVO<8?NMTVN+t+piIXQAJ}yy5?}#$1+#|u6);8Ed>ZPPbP22%Kc1GD zvwUI1VF0C<^#NKxvRK#tQILE~f@ovKlTpGcxxP@Rh(00V=$9cMIY`$R`y9!lqZq~b zU=oJxr6qhEK=;DS@=_74vt)wvF=WDdw!~(*ZUCN9glw67$Vs-(pSvRm~>0YB z7-CmYf(b=59&P{me}Li^2rExTL%BczNt4l`FY)sNOY-7XkXHSna@Nayc|yVm#UOY{ zZ2rExY~5XSoj>_O+&4_0@S{%H3>!&|YtRByqa>N*WJb=nI}rFfIdJ7F_*nX;N*adb z=#%09vu;drvj2a;JMhr5?Nk8UI{=b{T3F1a&V!BG@KQ&Uu*?<9uq5inL37FAqAI9? zlFM&?{4npDIg>%|xqD*t{Ay2EyxrKECjy(;?JHj8Jqv@B_<#urYC8DY#3t9F6I}K9 z=Bh;c&7+xKYxHV&1FufF!9@*w&%u-g^Flh=bpVQ}UHlD^ZMhfuW`~4T@^cq*P!|}L zP(d)RVvJCSc3hl?{3~!$e`LQ0jk^WW(qqV3cc13LGsy7*;uMgA`Hlq*acltLn~hs5 z(Nm8#F#@fM9b7E_XO!ZMk{a%xPQnOKy6e<}QMGVdA?f=U!}4d-irY@qKJg<(_9YJ5 z{1}7G_at;#wTcjdDKwF%>&*h~Ng#QwmlGtL@}2NNy#pu+|1oio75TQ*-F!Q>pd&KAxP@?(Mo<14OC}wkx~sp z^r?%9zjpj0(K!cIv`JV1IN!c@=zVqSXfVPpQ8p^h@SL|vN%21guQ-EKNCyz8v$LL_ zN==z;c&LZ@*^^=kl??OUCUv{Ol-h_98y0H9LSdKvJe?$hT9`L~Tw47m4GjPlHkoZD zg?Dm{OO76gG@iQnU25{35NJ#K*KYY@r}5At>nc(!33@bD5rW07%pqiDt*fz;F(%c4 zag9F-RkKR^L@oZG?o@9haEazKIRCZkjBI{9)k z-9HuI52wDDz#q}#=9f_e{`|4mf<4SJVuP)Qot{od+-w}}6D0OSJDOXCcbxyy=Lg%F zcK_a&eEXnSnaKN*@}^}rC8^KO80l+|r>VI1w|3pY4z-HXnvv%hcSe~_gQ+8MNd~8? zC=tmz=QMI*h84=_Ke0#Mtx65fjrmPaGT7it{#N>_iQ~_>ZzX*fd;W|%lwEO___aMa!u*h@1Ur20*tLhr(>LimwmI(L)xc}Uwq`rk z;UtrzHH@AnfS}jL58BO-G;%8ko5GzIg{RAT83VEB%_4CRmcsAeg$Vbk_v)Z6q4onV zS}W|#O+I$sl6pY~rn~s>6^lvQrA6;sg=R`ns&ED1AyA&e8Qiv%mJ}TuSUn({b!?uS z2l#evn}M&uv^%+EwJ!njrS5$IM8qk4-(4R2%h%ECA^$i1?Cn9Ye1IDEjV)V)*cm1Z z9L-6CkIrQikk9Yanu6C99F20ujrK}J-0SKv_8>Zk5z&u;D}#5novANbe1%_pqRMg2 zDs`>?K($8MfpeE5beW%|IWIUJD+?AR1DX1E*xrp1aJ$19(muC9H6Q_A1Lif))O(5R z8=4Dhg3mt^GS{sF9pJef+(l*A)}T9|NJ^m{PVbuzADAGZ7m*376JU3LgA1or*Hi`1 zqwrn@?Fi!1FF1^kUsIw~tV5k-LUX{f$}I@YxT zTIax3a9KQ;xI_wth$^T%_*W4PAgmkc72#p#>RB=3{cafSab)NV@@TbTd@AYbQ!4yW zg`G)FOc1`>x6M~K?SNhQ;}XQL7IeUs_?fTxgMEFH;BNMs6g)^v0ttGVPq2`!a!iVy zrMqWlyUIS}VFf^D_hqoTyZ;td?7G;Nr6>~AAxJM8W}_G3wc7W^poNzk;ZFUHl(aks!> z$cGVM9X{E6>r}C5=h;Fdf*5Q9O4~G1-|paY)qu*CG@dd4_GAubm6Pu+yW$J&jI91I zKmEV%Rq-_Cl=blhL5_kK0@LRYrnH)#VGEOJT4)H&Dqfoti)^&kIjx=#lNJ8wWiP zy8negNm}4-!C>T;17B0n-!vS^B zz)e1E(1o-+YJ9#!na%jh=L3%tt4x*!U)ibFq;01d_x+kHVEFXC0zk6NTCe2GVPwK& z$_dW9ioNYYbnsu+cFWwo#(nBtuY%;ZhD( zeQ8z9CvF|~NP7vmN0PpCiPTj|ki3sdUf--%8gD0_@I*q6km=m+E~YsMp8wh%kYh_) zaKkm2dQM<+)@lu=`8ifXB_GPp@p!0^DH4*)z9T_cQsRD<3!YcZvlj9<)>EqKw>Upu z-bHCH;$5`1cFoAirh}g8kiH{zim~D_o2N_}e?<)o?0p9%pE-b~Q?^y0YTf&cYj=9i zB1IbY%fM_~sRHsaeyA1+C`i)rpu6WfErjye_lVuA)(cZGOe1cdj2KVy4IqKOF)tqO zak>#eo@w)3Yo(*U3)-(pyt#qRds%0t^=A5VP5`o`r2D#XqU$zpNLUD8(M@_2ZqUAS zo^^|xRX}l-IrJ}xaH9IR_77I#RJiRt6SmAhw#gD61qCabdj+UkxBqhEBns*uoXu#q z`y2oF>XpVFRw+8BJQhDR1M>Wt|Gf3VaWMVl;b-o2*<=&ln@O^TBS@_Cf#=KKD?KY&d&`NLb1H(giV$2uBDY%p53uzA4zXpiQrNKCtxfInJ z=uIPSxscAc(UYHzw(st;(BRJe$`XzA9@Z6lDl~qFajx*V2@RDaaM`G!S+Om1OsV2f$7AFZ zcxv3y*8mhEN|twn28}jdf8~#b4sWOOu+8G(G%$Y`6dASrP87A{{Jy4vCDH+i>OkzwnecsrDDG*%h{0-4(2c z71pj%P+s7gjlEM@SnB)PyH^%W-hF$pPr95RF@yFj-#z;A?rUyNLa0rUV-*Vhu< zWh!gt?zSa%ONCyR{| zg%>b;P{WxL#*rpPu(pxe9x~QF_41ky?^NOmu6ErQUE#7SCkpPS_t|(j#7A@>xa5*k zJEr2HpRM2++>N6V;3@8qIjS*hJY)f01s4hPdd`Lql9vqe&#ae$a@?5Lt(|(<8zJ*g z*DAV1<^o8{ladjdtS(d)`*HA`!o|fC&Hc7{pY8A2HNRG+el@wHkPd!SNv`)sY4L7W}_|EDDUixfWeVC)7ztN*o}azF|Ku4i1xGOzcn zWVQv|E>$1FW~)nAq-1q9Wz*-BRXbLZ`$^C3i930~K07x4kGhQ1KDrOK()c(QfhXh+ z)hSn`CDS|9UHPx)J01{HMP?TCF~X5U5kaZ-ZT(7i8HYS-U>^J9Cw4hBvCmaQ?d%B}T92KdKT+A^g_uv%f z1%lM48|_yKF#EV#x>|;Gd$!)!dL^voR|!-d`3IIL`9DA_NM(EXS>auAD~SE86R$i? zoEL7s@kQ^dhTNr4)!(p85Qcj=5Tl@fu4#k9GMFEa5rZOq8<2wb(d8|}X1Gye3M^zX zTjOk3Z7ZF)9)==6M$|`+nnd~DMiw^8g?!aB&r#_R2MH*1++soRpvmYa4{9a(;jxV;Kf176$aXsXC&NI_hP(nxH(P3ggZk}Op z{~^qB1aKV6zdwTrd6P8NHTo#)um~LDDY^nq`Z;dMW`=?F$%*i^Q+J!rH1Mh%TJkK4 zCIsI!L$dZ!UtMhk55_9f1Jx*DT(t@0^yl_j4twEPFWc4>M3jZ(2QBxpPID5wG|axE zbm%SxF3O4}FX{S&i#MMHy&h$n?801cq3w2#w7c>mf3GCn$EG?FaCOAG~jVa0YqJ+1XF@9@OI=$8}BFp7+OIrVzW2JpUsY z+B038xM#s+%S}6U#)}J=4g;g&(s3Vlh5iqqfktn4sXa@1bP^f%{&iSdldg!FgLPD0 zqJsvBFy+R5GV0@4lgQISmz-G!onIx^k|Xnj95rjH2GF@?)@)+hUU8>Lf*U|{oBbb< z69g(bbv8evnOi5 zZKQ+;zWigbtDKP`e~ap+)b=WYkf%+t!j<3g!k3VVJ^xx^K^=n!O{CcT$Y@%`pwtg) zmzSljc)2vo@GZhWc|eW7JGu6-5t`8mafIq~LAMc&NR21SIf*rF;css5#9tacJoK)P z*E0f^&i)@DDie^om!(YGX$4%fu8Cs_o4vi)6#?pEU z2JKwDyEvb8?Dq;&PRN0~XjBaW86LcNpNAfBo?5jCCH@&=81h zAT-5By%}VE7dlA}DDO}Cyu0sLjUe?w?pIQ75_h2Y&XL6A%>ba_!;Et=d50$wnYzf* zIc=xKZ`Z)fM*&)Ru3M50a#FJ5Y)AFA6BEYBukF`A$JjS?gHE*Ve=!7%wsZYqT7k({XDge-K9Qn2i%29~%Pis*LTA8vr)ylRde%4ETLHvbK30ZyEG zzE4F*81ya`p+)=WnBqR>R|1va!3VqBnsF6ZcTqo2)2QoIf|S~!dI4_w@suOu3Jpsh zZK#6YZ32W656jL7k>m;PN;>%nHa02xRbpnf6b=-VbyjG(KZgum23#unAW~VH6`v_? zu3be+f({rjfC5d!?{;{!AW^&zY&QdS$4Hfd<1~kHtzNncSd^u8duvYFD!-1Cw(E7^ zU~rH~Q5>~%yj{Ovqa#;D+leV4`Bp31r5DjHJYQ$<3CS5r)8Xo>3U2bJAA$qEaHhg6 z!rlthq($xL)lPU{4Q%|v@a?50-pe^@oeK^BfYD#!GcZ2($-XZk|GGSfYgpFHB(RLM z$(UD`e6;3?=0UT6iJ?bE0okf--hGwoeQFSJHZ4wx!8PIn!PUi{({jogxV#*eiT*bX zJi0rgj4u7Py$`80k%N_8_)cKNG-)P%S>k_y?TMiM?tFBeX=^0|0c%rGaM?!Gro5qC z^7ytX87zuEYxoefL&^2hF+c^ll*yFsk+)`k7?#n}4%+2oab7lXqx1yGPbIz%NTLIyoi3TwuziAO8!064Z^edqiQUu1RUjSUv)*0ljE4f}jpLBF&x zjF4=RsDxxBI-hPY0=x}==?m7U-k#B8W)n7+Ri?>CvBh4%Df5jKUuSETY>JeN^RZ5} zU3udZG+RF&p|-<43*1IdNqcHu)q6(x0w`~lad*!ijCi6@k@OISYx zVJ%XX=L-f-Y0Z0AKCp~g-ccnO|R0t zs>V4OfVJ?Nwlosnd-2OBK-yT3+H?quluU-^!>OX$rDK9AEfP*G-XPTx8Y@%Rm=JIO z`l5H_xqoWwyn^I%R?V?|U2p6tLRRT;Wk}w&Hi_m}eH=cykM}$uY@dFz`tJzhKAo)$ z-9g;o<<-J*+{evsH@YlRBs>OkD6e;yrmE8AvYN@8JUqTmwn4?nTVkox%TlUkt=6LU zP~X{{U!YPt14E)+_F;KYoC$BO={`v0XrL-~>Au9tPi7Yy=Z$gdT38Cn2$VX{kfYVBwQ@Tu5G!LJz{~OEdYmk{;mTRJwVVSn~!0G`&oU4A@WgRkf zEp>tcwBNSW`GeGY56oX^EnQ}gf;u(}`Q+%(6Q@V8_$p+Cg5?u;=Q3A~Kfl z_!b0NnKRX_*RIq}OlFz8oD)5BCzGQ$R$z%AGD<+@!@tmm)U z!>&X+y-IPkp#$gAGaD*pOFija?il+|yJ7p15J-PD=57J`{W92~VK)S@pNf zPP!HfKCZXjK-EYjMVyXhX|pl+(OeJ$Y%FOMMmz{P0^%CbLVl7&2i)vSg`CVj(V2IN zBoGgJS4I9@r>T)-$Kj!E@z0`7sd$bOrJpEOl2Fw#EnTIck>Y4174!mn3g^JKj>}ds z2a9Z$Wacf}1{b`_Gpb20XWcK%XIN7dw!SQspsB?_I0xK?-d0;XZxrq^;G6WXg<$?T z-NUF45?{*dO8I4OKgJ&yr+?ZK%toBEC+CHS4Ek_Gt zQ;!d0sQ_6gj#aRU_R|=@vVikCm_byI_BOjd>>ej?Pu{Zoc#H3G!mF?gY&=lr=*!*g z(vS%gvg``~ArJSWGRKUk5gORYJOrjp9cwoW&YHD=kcu--eWFsHmsz(*$sUOo8=3P& zWn~`d(N9%2Rajv#?L%PYAnk2yc~P5E>xKE!?T^T*j4MO+N05&D#c}cG63G|wSw+i$ z%v+;ret`ss0o50#KxIag>b6&bxhl1D5DO)A(y(c5m%j*}Bx00kTV1 z`SGP3wxC3w+uI)b=shKTzCdt?Y}C0T?`?H2Br+ zD~Gr0J3MSWPsq%)mgd;lIkcLE_m*f9?R%+YCCB()PIC)oBRTW{cbfV{7(}-i6NdzL zv@PRy*+Wa)lJRUh)^M^ggjRxHln?&e0hsPrfD@z$JQt8uQMLYhg|mE%N-7-_pq36W zpulV^C?0nxkJNeqwQ_Do0(F1p=O49$RYxe?LA$%^Pb{gBK8jy`0zSINJ$d}91=;9< zGJH@&MPenJO`JTT{uP~c#WcJYwVx}Bzab%L6MBBio6psF-^J3a@u6F3p2RHO?3`Af z+-P+Cv|VbYLv8IqJMZQZd#x1hi7xwbK)EX?{}~11qX!0jHKaMjw^$Z8DWycs9vH2x zviUbiGLNJ81o$g3o@>7Ot4F0wf2oR9r5*<;4DMEmOD0uDk-4c#702d2aBJYf0hrIy zJCxmSQFr=d`@7n^cFtC7eq=chlJJ($M;Pt<<%&S@wCZE>&k7`*P?@>mM3;Cbp&`GS zu}AUwSVy1cMB%%mMBL#eAnfBJ_Tht8|zu=lG)($$+9ul&&o7q<@SBF7Y! zv!}{(wY;!i?k=tVoULCI5LY6jUZ4EFQfy4PFi@XEH9cHk?zjA1vL}m6i$G}rO%Toh z0l~_?-Y+5Fzam!cF$N*^&W_fJ{R36$Bt=|%%5m>o^gyg|8G_im@+tqzSIlC(0_Ah2 z&_6_kY?+@41MuBw8Kd8zdK}#c{Cye;iikk6R@O%>DA)A`@a%K#nw{f$<>XaFiCGS{ z3|`FIb~qY)SOws;{gj(#Ie^yX)@+l}kRM2W{u7=ZV$e=3Li-_)O@hp;-i=PE#Xr`L z*Bj;Dl@yYiLvHhQ{M5BHpEn0M%Ovt?p%#G7}%| zYr=07mNfHa!LK+*nY3g-xAW{GO^{l3YS@`NlzYmjw@)cjnWNh~)+M2EI*i}0nuO`F zQxCS_hvdth!k}>m>49}7+8T{LtW?kg7Mcn?LphJtgTm*%0jPw;$RLyo)O<;J0UXN5 z1d|BjM{lD;<_4sFdM1Q3K8>wQ$TNR8r)|&;?=6rQkFfa)xemJ@1P+Ab7W{+6 z;!2ee^5X93I5%vfTznLX1CzgE@lsMj|Bv90Y?iSrQXvN$7mUSJ$-@kiaEnxaPp{~z z9Ldlhu*E|A!1P-dd_DDj)^vrl^bb6a1gG7j``l!EeYq;@NN2B3MBQX8m*Iic(}FX5V?w7C|AyR zo&-Pi$WAhv?5Iovr?g!^Y};-h5<+th4YnVYu5Y&NPIi!Vo$A;Tq=x9lQuXYXmqkA^ z|ANRC56`QmPlkRhuyC)+COX7>*i9c=qn~4;PrDx$c`fx+1+$8|clxMG&)=MdW@2lr zlXgH_F2vGp4W*}QcdKJ*I|da*GdKs6uQEh>VZ(8nyj230eTiCT2|HIK>Veq zTy)?RkEAn0nVCA+I6=hy{(}*($+F~*iiW#3Z1j<&j?HCT{acs`}3^He)R#&KcA<4gT*2r zG#j&G*;XJyq&R2j#^1(fFQD9I7D-m2!#ms z=CAn>^1H8IpYCvb?z>jGTv05coOb_mt|XSuKN#W=O)-X4&8hwYyEYpC4=6md9qmBwh5DgE7=@)i$|e>&+w?B&pn^Mc+X^z^+3DsUwW+pbAd}}_Q90$hL8Tk~t!bV71n(QHp9tR1 zMgm2<$w$XQD1#XJq|<^DORecJls`Imj)Ea{&M(LgDAw(O1yRR)16H zD8DO%?uD<|v0mBEVR-?W%vSn$G+!2G2neW;Ni#UH#r-z~p81&XNGRA; z15$!w0m|<-Qq}XihY~e&_!q-4*q{sXe6=?aTec)oXGaC1;Q{0;Nd&Sxsu9b4H77f0 z8+?Z+H+lI{+YN;n)mF&FUL~2gn6!gRHXc9x0@o&ITV1=4q?CT=X;wWk_GEk#+?RUK zw4dv~Jq!ajx8Tfc_&?)xHM(UR@Kx3NMiTr7j&USSOFM!v{>R5+xVb4z1zwjyU zEMZ&L8CSEMX{eqmEXGsrQOgLDVY9hf`G_TUzN4_AM(qhc=E+IV$GhU^;! zgcBz*pN*KlGr^G7kI~+(+!3@qpNS?V?mql0B0-4vQA>>Us)^$Ou?D>@ZKs0Lm2xc9 z&NIQ1MkCaSFi{2m*CKmrDwta?1T`NO3R3-nGi2hqBbI33;uB3(=aBSmZ@vXW8%At% z4AekKp+x9#awQx3P=jp<4TY8www168G;V>nze~L;uW_b6*{x!NK;IP`iDmQGT=p$% z4%%s=NlS5yT2#h=!fmS0pgq1CH{oKV!hxtv6~rpke<*2JVpO`v|SF6q@8!@<*Uo79xPA-h0V(&MH_|WzRwCp%p zY_SINcN-nSgOVjAb3KqX5y&;8$C+A6vikC*s?5AsqW0)?2x9QU64^>Xz?gYN zS`n$DAIfZtrta=_URo2UQW>Hz=`lLQgugDU;(>xEk^&rLuWy2hurA6!fm93 z)EAy)ZiI*;1VIMA9HcVe>xv0E-z)S$KW!is>FKKL>XuIB4A308TzOP&TpZ{0(t&*- z5LGldLRU%d>he23Zx_$En~e%w2qNq*6-;fJn*I;Cbljv(Zb2o^;3O`jF*}UO&>zID zg6s|8LF7Tuzo!F-gFQdWb4^d)Ox7um0KzAVAS*PF<(wd}j7y2Vr2i4(#ZoqCKot`u z6dC>Leje+4pk*|wJ+ZUSpr!+SPr2=QA>ez@_Yqi#&1(xRUEm+~d)nCd5EKDO0(y#IbVQ-#)a!hoLTL)2PdJt7 z#4BGJykKRHz+nWu$&fms{&S#?@@c;p!3=DUsf%*q8 z1j9RYWVS;OfunB*AQ_Gcl8p3YJ`htCbZ8gI14wN)kX?K{qFXx#4=;LX!3njOd1_X& zk(P$FV7aG+rJrJ%`%cKtdl&WNI`kd}J#i*-jA#w4Zo5-eh`7mX z^^%_0ELkv0)glA!Au_EOeW?LTevE^qRevY9?@>pntk5Y^qqdEuFjUta`8&?~9k>;Q zoMXPJ%G6RY!jZq)N&7C>Bx6+x$V`@${+D`AVxyC3ofaY*(7w%hJkv3blyYo2*J)UP z^8<8pNBY0j?QGYgO+GXFGmw4mP$Qx?D$yp_JS`~?m*IV(a85=J5?`JF70s3MA~P>& zvj&JUyg*{jo_>!=Se9?@(LHn-n4t6mO zf2EO|jKeELbfTu8bF>EiLFFBw@W>izyj}{t^Mz;8@Netepvb@~XM4dO;nK}fhAg$( z%fw@9PL~Tfs&dP?-@0cj5f9TYg<^`_*SQmfCVQry!@+3*hVW*<5lZD;ItrwVK*M+DVQ%?X(#6ABMG-A~~Sc$j!*L`XR_`RDswn zpvLqi&-v#V&kX*B6<=z9c_nq}$d*hWCXkmmMFoKL&m?Q4R?g%lz^Fo9XfdlzmRJjU zBc9P;)&Q>%u<`Li$Ex#!GyP`r#eeEIFvp z4RYQ9e;-*;nx^IA{vF{LGrIZsjB0TU1z}wK85=b$tY4g2)={}a;8pFnt;BRkD=$Oj z=u9l*N-L<=SFho1p;=cuJ7pDF&P_Q~_|qdPQ9?jCY1MvK3=p4RnPX2nM5LWwHnGb_xF5qZ9I_l_zy{rVgl$xGIe@oK#q^P z9!MM_wo#$uI>Sw)o%DY~)cNH{RVttQ!?rCg|b?4j`YBp_9q1J#QQr;oFRoPj7qCP@_ ztTTOc)af4b`nT4? z7HW5iF`!pcjb$oW+i7!$ub}U63w80E;yXb@)2fns{Zl1jA6nAkfd009C?H}t7=O%f zvKs10-g&&z<5_fkQ$aY$aigHPT^)*l4sGSGEo!#%LX|LFUB4YI*|1jZK{?3lpHS$k^T{dz38dkXbh}pB7bGB7=EZv$Uc1#i{k5? zyGnu{j8FFKmK}>4xwgw;9obrQWXc_43IOIm>3N{AzM`eMmz&$pB~{M_PzN9~o4=Vx zF?;+1_S#UK6&nv+R$@xU1N?RFry7~t`y?6P!CjIj+03sc^Ln%wpFMN!Z(cGoLX-`m z6#A&EU1^OGl82@JYQW?7FkUO6|4Aiu-q2cF#_rjHGssop>=ok@{UdT+^g}B3y}lRq z21`%x$}vI!epKJw#{+(8d)OwLCC;*H$;V@C^2(3x-5IG{bK^hFgsNeQL%LCxz2W~| zYeiVr-7&9Ep%Nuz?KciE22PrgOl*v&704tSRCaMRH7&*#vAk&+8+&@?5xll0;PJzy zzYame7}`*KLNJbo&zsQ?T4KsK)GH-$Cx3*P4{|Jezw6QgFkR+}^Qr`(hV{ugbD72p z2jWhC{)Q&6;ckx$M*P-xUvE`&;nbb-ol%W_DI#1r!Usi+$HMMB3?~!(VlX z8vaD1kAe`&A4C4a(A?G4pS~?-Yrmx+x2S)UF=xmb_Ba0*f30|V}i6SGFQ#&dX+U4Bjp}V*_JBz9tho! z03)&28dDJ0i*t5G>{WF$HgH9Y0`}W`*6j@-C_XRpnU?;dw=GvVUl|t3l@+K!Z$|Wd zz?#2$A!S&h4&2PgGnN!4@$9$5;yvk&mm01SM&hlSf`-5P$BxO|2To(4ZE2x~tj12W zDgp6O+4l}Bb)VyyD<{g&K#uM*-qM-bs%QKU5I-%2VO5k?9;^j}4t^2-V5s;1fgZs` zSt{a|!Db@BPo%v+i)}GVy)~5!vtTPe%A<`KcXWsC9XJ9D#=gth==7R62mAEH95d+* zd%BA+pw~6~I|(XY07MpG#D)S_gMiQ&P}Om5~RmDx;s%V_8?xNy^8po7c4AEPjf$76UEUZQHev=BlrY&6F zK;hHG6-kNE%R4B(8}=rb0>!1YsaPti>rBSzB=)i0AEAbm=1Ze?2~igQz*JlRNziPu z)OCfold1bJPlge|j%}Cc)POdj`|B2t5&hItTp|FT3_Y2Iiq(M?%HIen>An$~!5`bP zuc6~uqZdFj2Y{c(#OM5jG$eRK{ufuevA`4oyY>|#A<$^Mx@8Yo2MM2CMa(lD>P+Yl z`Z@;ACQ{yte=1Sm7KPpYy}9$!Fvq^7Z3y2Vj!5{Ee<(%_}#SkZ%da;{h)E;37+T5 z=y7y+ja58PF<-!hoOfwxO^m#c+#~<;P*~XRH40vj#2+y@SMdvj#5{V6Ti&YYnIBsV zFAJGOLg9gb7_#(MmkQ3bGbx3-(<+a)Sq%qy8XeV6I^_ATba8UlpczFVf>>nN&-I~3 znuAPVl3}w!)ezNB*8vaVtIg)#*W?nqujqm%ua7jrFumv6cqZWVAGSji+ZlAwMgPr2 zH56}~fA8p4FV(8hMehJA`9l~oGTveCdWRx5?xuWaR30R{AjR{rg70KQCQSn!H>k5x@$XY;ygXOoMC^k4>!E1@P=6ZOyey*1MnvekZE)|MPagMa-IYm~FwXnQR8 z3$+K~&7MPAM5|;qtw7O9$DU;zHH9tXRMqWBI&L6JfqVq}>tj!p8qG1Kep(Zt4Z0y- zz+T&>6j@Wz$>2QA+(^}G#GmXPrz3IthlJ@i7t1`4-^Z%$e{J@sAXnzQ9{^RiORu}m z7uWS?W~pbPOv<#$g2R_;GPo0e92;9qQ|qNC*P-=e==w3oQJngD*WZYLo@3FjD@?Vb zy&1wy!w}ri_0%{!M8?jMe>PypM6KOlzrZ}$+14jc#$Ns(zzBA)*P$DEyaA4Mu5E~Q z(CV%_^aaCL8?i}|t(;fz2oDru{5@Qz;~rC5G79K-U*sDm7xfy!w_%e9hmD?D`$aGn z92*Zm+7fWV(rZ89N+p4m2HU~A;GdDsQZKj&(dVJ;?%T3UYlC{b*rz@2Qj1&P`#&Ii z01l-VrJgwZIxG1)T-)2GsLvmG?)f;8hMVfMZ zn*!CDn(162fBdJ7kr#)+F2BivT*sZXZeX-cFf3%nP!PL$Rbw@Ss|0)qHTgTB0UlLh z9q0_;h}1b(z9ty}isSzD|6XC$II>-qRmc5&in9a%41{nzFo!--X>!Ei{SEz*I-c=- zNoh&?Q~*Bc=uE`c(a7pW^6>XVZOVEoL@OCU4wYTT=yB@PVK`{=Ru0}Tx5vFcEa@{L5c%-FcGLAsvf}49P zoDNB--pnjkaCeWuNx!OFy6Xe@g89q7y?sR~7tyOA_e$Z3*ysoGJ85JQ?5u6G*aGT> z4GAgBC)@1P=JTVUo2ciZu0*c{?qghBFojhQ4xf$V8SO?n)tdB+?5F@X2zx(#ni?*7 zZCY8_3wYkAOTM1|`GxZF6n~>-mDm#*8w%Oyd3dwRIl}|9a;TrMgPT9)8zLfz3i^sS ztRvg+kuUUC{+%YP%?v8|m;l)JIYl5r(W*jqrUrf#=@0#h5~f}t$mC`HlkC%}`tqa1 zG$P30cb!gYmu|}7M;2%%0`ZG8T+qWV2v>D9PnD@;_jHGJ7fi>D3mhPg1=EdFGWx2K z5DMi~=@u(@ zUk>1S@isO@AJ~3P(%s|Dqza2gO`SM(x6pT&hr};J9Vfff|q#%m$pABre|20 z`r0|^@K((Q$PJgP-F>X#Nr%G|&JL=d5^l|jd1#IbPV*YZjpvJZfTYJl<(D$QT{xam z4+3SLkP~GRT`w5;fgv(Ap!|}`>h8&*gP_#(Ji_Hv42Mtka(khM`(Y#^A0EV}6UY4* zb%tz|l-lemi3K{m1;TJV<#@)X;ksqCyVPztUQuwdYNC5+W$XU{=Q!UBiXg$wDTrGQ^wGN4 zWNxtS4$YSV^;a@Js!3Iz&TjUNiWBYvVSd6GtY5y(uh2-%Yt~FCSIvT2pp#gWX{Z*( zfQKD1J<|4VB4PgWp%}JpJR~mZO^r?iq@=Jj*%_snLzAQZ)%D|=?&9XsrPGZ?8pSsE zYqCer%u>!?X}JHZw(9Tw1`l<0u70oWy?`fC=^1Hlimm%w!GIPuI%(rdJkSdgZ?(*c zhscHWwNUZGwu9j$C=Sdm9K6`Y3r;K-&@`Fy@vX@kK2}P>Ic-F&Wd$c`@*%(?48$&57UWP(@l7(&N7UBNW4wm8;KtaMQ8A( z!p9$4*C+1A)Af$9Er7o5$Dp}EZuUP)zY{qfZTwb@m^V;qM_{Y-C}N21^=$N+gWTbC<% zGuaR}t?u2W7A>F5$F|1+uW0`AtalD8QD$067fnOoy)46*q)DE8d?`j%-UuIus!0F# z>93DkS5c3u9vHO!)(E6STC3kz=Td=ug1G}FG9b3lwnSd{hZ5i<>wjXMQCPuzft5aU zc@p}%g9|dL|5J7b=zT>Rh|qi!iy#(7H}3%)M*| zpjJIUcxKX`vK@K-=mqL56$b|0Kc4NaxcepIMov!_JJ`J8X$?y4lZTcbrA|}MEgcfL zj7r+GdtfTE(!zPUr`_MXRn@^FWSt7ozX?IcTnWYMHCT&%cgC^hXP&_^R0{t2_3}hG zQ;l<8(c@VE@uQP#(VnQ)8-?MjwODG)h$&&FCw|G*$Y#(BqYm+81$*u(U(~f!mS-y_ zLMi91hQlUv^FQf$rrBbsbe*EtdnseoD7%RFs0o0(CeOO0A-6%}|6P#XobUNu6`L6iLM~m9 z!R;shm4*D!O-p3Vw06!%|c0ur@HMdqwfftD~C^y$Dq21HW zp8IR0z3_0%Kj!0S#p=Jwb#DIyfXnxnox3((2a?KQnUsaZu(uJs?C2}}{yN?dC?vKsja;pbh(iYnkFkH@UhQ(M9TghkP~d^^3J!ca{lo_ zt_j!!M>%-!^vD;lc$yr494Mg1(kkgu;?CwPN<)slhty_Es?mpV+eG=y`yF67D8@eM2!8<_%AYhJ&v*NB@t?37PUh8i9Y%zYKQ1uDWJqXbI) zj3WAon7s$0$KDjroaBi|0%Q<&u%RIsXHEKi~6;>!M;P=u7t8Of=Lkvg`$OE@;gMI}4({~(1mM5KEysz|oJz31)jj7e$SHxf3cuJYGj}%9 zM^TT|s^Sgd?ebq|G}gzp|A6Fx@l^|k2Ag=OzSFgG<>%r->?3eRjf+1Vo``H&)>-x* zySvGoeq;+)0F^Cf7~cNJ3{T_*n=e1hgd3e~azav7o*SNw%##S$4aID?G*C(u03?u^xV^J17NoSNxz?XXv2P0apbp_3?m>u8wiN;!T-Iue1ldQ$IJr^ru@sV@-<%!1X;^ zHO37OnjKYbiCW`wo-E6J%emhg!nS9tNR5o(O3ovs8qh{S{bEoax(QMgMg=43hW>`9C0fMl-)Z zLEF!&ii(JjSZej(pKC(lh$@Ggq)_y3ho2}=o3_!Tzh|WPO`*rdPk>y<7DYB_FjmbU zGNQWe5s7i?8MvQ6$Sm6Pz;XxNb@NnV*7v>sXFQzG7sPESP;?h|O!NL#=RZd0^_uE4 z?Kc=bWJd4h(w`oi!|?FEk}CpM8bQQ0Zf}Q5Vk7b_23uvuY(YqF4_s~|^Mi};c|))0`0w&)+QZJougnVjREILkk;l1PXXlWFlo;U(nB2|Ipb-fTmJ zS*hdU_rUNxbqpSyx8VlKB_7lX+lX&hlRszjWm)sPSCSKfE5=c*G}$|3vVMJ1twrZvxnJ!ef-vnk(Qf^t4oY5}U)-+CeLQV4GUF<$ z<)h0~FFTZ6+y|TJKyvg}x^as!znIwj8(6J6J)Y&6O9?&EA5B$6+$!RXu@O^5*8p8r zoi2?G0A%hdLD$~U?tG0yZ9wW&r-*K~n`Z$U2DvlR zf-UDvX5WF)jOT3J|A4R@P6+o&e-9NqCeBSU19-RfPKu3?UDq6cWhxfxv&FYMP{%i| zN%k_+qr?LUAD4x^US#2^$etj>$$K;3dFpsRDn%vJyppm zg6}?jYHdSIu0Lw}_W}Bn*VgD|x^L+gr`x?e1lbY$P{E#aeA;RRdZKH0XWbu}=IW0) zgIRaK-}2q0LR*fMb$3)Zu~su5c0=}-#!CYAK=aRfAt1W;7UK#!Zv%;D%5;&Yy`Mg( zHYZ-zs&VyhXCKydjNMNM1h!89NU9aI*Z=;~Sf`tbwv_W!36f}jP5R&;yc#KgoAL>V z&%LzPXQj(DtjNFFeP}IhM(xOo_5p zwb#ASJK{a(3RG{G4Z!%;r#(HDZS!xCe^}nQ5PIP-r)Y9Nhzdqd$*u~cZ3_SNZf>;p zsFw1c>}hfQSI>F+Ru4`ma)&w&@fF>WR&wAYmJNv3v2Nci^kxh2{L_sQ){%0yWKrtu z#6qFYjQgL=#9pQ~-;=r@>=?-$7_?YEIyeK4nFjI7{0A$*0p=Z|^vm|QS;aC8y59nmd7^#L*P?n*E>9W`N~YpwBT2Itk%3T1TJ^t>B| z>_=E!$UcjO_+-yhdCy8gtg*a0Q9S+S_0Dzr<7nIPuz&q%xw9R#oF{}#UW>ec>Sut{ z)S{aqKao;%g{7hwx1cju>_4E}%eKc{XH7-4EYV_nBd>)Tzv5da5x7#4;?^>wVVL3W zZn_mw&k?kET7PbgLC9Cd(~*%-ZqqPWU^n`pNfQrA{Gp@Ui>r+Ys$G)6uMv5pd5^8y z8_s_B?;&(WD)6?#F`AdbN6xh_&&NU&<_Utor!SXAdvq2nl9aqt@^q-X{2&czOU$iC z+|3p3ePbSd1sp{&y7xuSkRQJ?Em$5+a6~ zikaV-cVgbc%`05Vk41xXvS2N#M>3)PdHt(0Taqj9{6n@b>wu|bO>LL6K}iSgf@U22 zp2M`i{-XwIinL36Wr!Vf?Ao%O-J`L%g02&zsjQ5|E2Io zA(Qa4FThPA&TLZ3~|D^e>zXU>5eiwnmvB`dGw+nno{8ej2$aw?b zM8V%RHuGlhcg{=Ap0D*DxXpp!EwgQG)hkAR62B|!voa%Q-+!0lux>M&3!gP75U){x zhpe30xu&)Z*`Y2M>^WGb!Esmc255bNKg&NEX~Uk5?xlwvH+?{1YtR!|Q0ybiDB_`Q zne{XHXJEBuT}*}EG1fOhk?|)uWbEi79=5%A=Y31 zaw!13G%yI@tU?xvT=~BkkFDmlLMh#**ao`u6rbPq?twV#8x0rg8sKnB za^zfqX(+xevED%853k=do=@IK7k4P=xW|dS5ofEY-gM`-mXqj)&HIcBQud`POX~t z*X+x}?PU+1NZLCuD>nKfl>GBNrtSU*jNxv|ZOw?YqS%IAli#ayZggv>i28(FWNlg+ zK@)%bjO%x*Hpagtnl#Ng98F@2?o17tzVzaP^16F2-i*bmg72o3XIt$@?rt67J*HL` zwT`S1_e#}l)I;=CDs@cY590T=_Ut^2$^${#o^HF~Hq2CVizMPFlR6J+!?n4P$Wcpt zjDcNWSB|we6g&MTy1X_n*6tw21wO;*yDLv|Z!JT08QcIh*Wy^mEdfkj*|>4I zf70;TnLn;r@6B7(G$%=&6M6*|-p^}|c6DKUT0kVXVsLS`b?)UXwGW7tQF84;lZUxG z5ckDd{0-;{FF`GFz)R-@lA%X>p^C8Tc$N+k@KbsW&SyGFy~><7t3AW4KZX- zDE1JA*YJet*wK@gCUQt$u+PXip8a7eDF#bnYenqP{M{=!^)}C4tt9>frI#PxqAT$4 zG>HjGAltPCyG&ryH*J@o)8~#3o`-$Hq}pYGCEnDFh$;ckykl>?j|eoR&fbct1$?k5 zEV}5ZItANDRTL&c+f5Z;9S>_KbCaolyS+oNNy}BN|Kz*F@3`>8t{M|3VBKCJYQ=O; z8xk6S40doEviSmT8ukdc@D$Us-^^oIQCN<2)$B0e5;4aFE$YM?UNea=NxxN6K6M>8 zm&drGb}hlIdoIdGp)&nd9jh7iYH|3jkO^!cdXU>As^ab=2JqetX&^TGIh?N{K&9p*Z zbc~n5f5_jp;8w2_O^P0F%BNm6rs%>wfJ5!3@xm8waT3|feLyDX<+9EYF+q9cH6>=& z!3-T4caVPn7R)ChbOW_n0?S~JBC6opgr+n5(*8<{6)q}7dxU)IX6xbJt8&XJS~veg zkuhuBpkVgi8+?-wEPbMnN6Kz)C8ez0sjSFM`n zyR|<*v&m1ZzP;#&doumLI2Ope^(w!JvXlrByMLu{meA@@kd zJ3}n;hPNQ)F13xmmONb(sq;f=$iKbQksvu*PuUj!&237{FD!ab_`Z?+S|R&J2ajY8 zd`XrDcoA=N8P!MQX==)#9x#x;_?@;IwGk;H$)5Pak8hEsF^XIs2S-LiUs~)&e*LRc ziV&d6L#zd@okZ+Y$}tU41#dk|Y^(U%=1E9E8yq?(e%9P8lM;bqDuWw3-LzD~brlBA zbM}jrl2Kx+c{!u$1=Z(j;eII9{+3Fjht$)%4lyMShjAZGsMb}wC1MR@hZUd+TiGHE z_=dQ^bqXK39f+m;5y|kjuB+KsaIAF_-7o252b`}#zQaEu1IF#bmp$IpsWB1k{{iW? zzSpBI^!rd@t(!%NUV2k}JQhwM8RFF9@0LpYg~s~>i~ZG`dnd2a@v zggWaY9o>Yj%Ju(79JaR;Bv&X!-#Nfo5X6#u2$cRSb65KllU1$}2)Z2f_nfkZecZLE zl5Y1c1G@Wn7*EEC&l`(KuPflvR@(`vO2f?~+tC>f?TYB+!KMZx1}%q*6rYc_-RfnZ zrLiJ_Zh>m#})p}o{nOx+PjG;~y zoS-9|b;_k1!81|E>fm&lo&N(Gn&_3)GyZ4F;G5LFKC^FU%u6+Ju3>q8uEQL}E(FWE zu_~xWkI<)0H$f(UaOZ2L=P~)R$+QT>N(omlC3inTzb~py7|ge?ucZLb1E}tv(toWR&D`t?|9}ksiCo&apE1AT1Ow~tR7s&h>~{LSHWwL1v*r9DcubJv`o z|6%J~%Y$+R+VOF5vZ$obF+RPGRn0@I7yDrm0fv> zel+7oEBz4sy9SP2rC!ltnpPVuWl^YeBH0AZt+mTbHSxKs1DN=vP2VQW?#*r2>wY-b z=_|)uN_@*c-Aa=uzZfs@qRTw&^RsXgd)9u}_emop)ta8p?zd7}E%oxi0^*xo_@C@W zZV;Jj6sV^grQ3S=AMHqZdV434Bydetw}?aqCZD75E3QN1H|x#$MOv#ZyC@eGNVn%S&~$^|mgY!x^$ zR3uETrVF19V42H`=bKc;QxA76V^(c!z^OXyCzu?6SVQNErl&Ucgso~2Kiqe3*Tkob zp7*?ROte4bJDWyszynqQGla9366U3Q`!vbL>?qKmYR|Z&!``MgnRr67&H6cl1!^IG zllMIQoQE9VT=JkkiEuv}(PKWt2ntFPX-ihE+07tVC#WlNuzrnu=|8=b)KP(+H{G+& zEGX`iO8B|0pg_ZjV!7Q|SfjDA9R;TnvWj~uVEzv{CWll&ICbR_C(RzD%jN+r`l>`H z>*xa=*UGW<&+MjJNNuZ~6L5GVGy2?3Euzgc;H9!@4%bj{eL(^5)~ecj7CJKXgZ<>* zhmPI+bgP{}pPs3tIGz?$x4v&UfrTZJclbEc6gTmq6`5dfNF?LC$@dX|iV$#;Ntef|Rn zhfg+6yeD zM5yOal2JErWEro6({vp(mZPFIbXwZ5|j~;YtbcAjDVaLv$be5{xN&t|6 z+0hSee|!n3VRCD9*jkafD+|#`inAaCt6HvUx9B<$=ox8-1WO@A9QQJ2!)@ZjsU74* zv9X8V!j$mFFK_8CXsRr04L~xO)bkvGP5q6S*yz@C0HSzfe$~NXWFlhJk(0@1U|+L6%Epf=jRlmGa2n|#wQ!vWxLfwo~8s2{M&t<0+Ve3uXpGwe$*=ZmEU7(F1lCI+hLDZ{oCTG9nJJU&f`|B zGi|*^Z91<2^$8^qQ1=Uq-8VQ#?VY&f*>a{+GE8c`UnXn?8CJv}PO>j`3wv=ybR75m zsDE;4jjhy{fCFu2eNZ#)wJz+(hLiNBt8g>%YKEWWcu#d89}~?j(rPeS-S$xg zv%q5^dd;*CR)WYnYr$~q`PIq9Lb(RpJ=XOLe^2!+k+b~*Vr}z@|EbwZb9L(N;YM9rq0sp;YWKYX~^GMXzMZ#>2 zn4c|g6X9888kBHt)`}qCBEhOpjD->KDz_;vfBwn?dsF~j&QXf1hM7VFFz|9 z71+O|=w-%y)$|D_`wcwyKw|BcmVUzNN)H?U7DlY9QecZkp%5ySQdM(e+v&4eGDor}D zPhO=W!y9^WsnOOc5@VaZnKIVkx7Zp$C~ zx4BT~bHK6MmnlhYj$|+PS5ngrLr|x$-qs}D_@dmeTK{ca161b&WO^G2S^K^#I3jPL z_-@=qazBenIgJModF+Z%Rr^noq?tDBVo;ZN6!0;b*~lmR89oW!ffBlv=b(SP6_Tk! zNkVNZ?|wA{OHG>SNW#y{1`_0S?2|lBaICSgtd44sZs;KlDV!k~Ozq})?Q``FZQfSC zmhK~LSkZ5tFnK@++%3}Wpu?n4?y1{o@X#r0k%nVd<7m@YZ0ALMgj@9K(9Cx-T4Rd9e~@H`aq;x-cIm>)G7 z)$RpvZePo7(x1U@99(h94;lujTjCY~r5G{qP42p1N3C`t83SLh786_;*~C!B+@qPn zhKj2L#Ir6z8+{?yvl9d}*Rm=`q@W$jvSp_ih);{njNkh75WRT<8Eo;A!Jf9`?POY3rO2X4lh$yGh5-`2L43`Bskk>#hf}mO*nU+5KG`l!*rU)fNZ^t!&!=^6_{a_ z=)^v?J?7hU#KCdc7kgh6bBXiFKBd( zMTxbKok`VJ?|NW}1iJy@QVINgGvrY-LwFfwIiBm})*q^2vQd0bCgBi+s;PjzB1dnKzi@55Ej8_A-5$ zYU=&U2(}{-s~siZ4j=@7KHv_;f}&QANiY68lDc37(7ydh*_IAgH)V2 zp=3C-#KE3peEGP_3Oefl3q~%OO#Cgs@!TmM%uckv{aH1LhWS;w(2ss6j1`#=_#$?6 zQi083o!3OD0jU;Dp|4$1zk6B7m`Zc)@^qSen%#G^5u;J^7C8{?pqUmEe&PFzh3oU? z$V?PZOW}&h%IZX1uqW8;n`-2USPy^*a02GW#ED5C89i42svJL3ZO2Yf$5XymB=z&S zoz^m5vt*B}j;tdQbx*P6lg#cL^5dvLyVwv=SosC>_)`}oI^`@^YS_pb>VJ$kA{}mB zxlw$;xTn#v za+?@0=la)nTa^%$Pq)^PKNz|BRG-{Rjvjkiwjj8lw;;Mc;<=WGfUtJZPR{j~?GVi! zhqj{F=)CNuEunVotxWiS764CoxbPGePyL>o9YVoWTEAj+96UL9AE&)iV|F6yxhdh_ z40J`lm3Mp@?omuc-g&nFY-$gAQE`cRBbe5GKxx@cv& zS7@?oat2XT%rj_ixoQ)1z1ZbEumN9+@a7OUA z!{xrBR~&7%&R2K7xL+}26VRdXI2rO`?>DKSG|cJ?GCK4DO9UZ(OB#4y@F2}S#=r1B zO=$#khTum~xxDr(L$)+97$LAyJuHro3fFD;ho)Gb;$h*@QBi*JNa6Qgg-;>IpY1)I zn{r|UF252Ag8(HX?zx5@}x}Mo$+DzORzZ;GBtk#jA?Vr zJajQ%khE-+pWVA7dJ!?m8TCn?qsnnlKzAL|q0(OFPK(Es802g1_S1~pb1@h zEi~e)b|!AieOGzroKQ!n_aN5JOtBZ*+7S>_5mj@Vxb<`1FCT;iIN7#athF3r_E*cP zOD=FUN%?TljfwF~WNnu@w1otG2+PyxG4A1fv-p+3{Ni@wbE*H9hUKvg3lR@IW6>@y zaEA9~$NH;)=wSX+n&Zm;a}7o^8gowTgLB91T5{woUG6f$i+?wsH&5sa zqZmQ>J&|NhDarNNM^Hu985a_8MySU-@o`BS0Z-u1Fst)G}3wm)J_xQ5LuBp~^w{ZRBG|pru>a zb^Jk#atHZRARR7mCVhO`YtRts$}0`1i{1KLaVJzgderGVk`S0>k z9u(7})CM{MaC__!iGGPA99cJ{RvCocX*K2aQJWubM*mFyY7(ZJbIA@1Ib7%nnhwa_ z#QRG}vnrqwzr2R0K@uL!W)DtlE4IXl;-n%u5X9#iJV4HjZE@@wa;9KQ-j?!(*u z^Zzsg;{10&>@LsnC6WuBZ~vhhdO`nq#DAPokWq`yw>7&`IdD1rslLlN&yo)xDKL-+ z&D!c#F2rk0O3Un$a#l+rL;4qc+oqel502^>wZH?0n<1qU69xtr{`#k?!SA@h#cYr_ z1(-s?G8(T4wMdR1b{Y8>(DmYpi~F#2Q&oggE|3zbzmz}F*4ch<`oYXjO?BT=Nym1i z>J6R$V)2X+r+}aQQTaGya8^nzx`+HUUa~NBdb<=M2YYTHkm>(Juj2^hYbH5z9?1SD zC&XQ(+M&nI#=lwjQAn5??!)x~bXD*gfN3J{ktpKhoj z-@EBnO&~>e@B#cJWGVdSLDQdJ99C-Um!)>ul>`I)9mpkIej^T@-1 zExlvbvoXWZ8~V0zG{7f>q=EuxN6#Ath)+|soQV6H76B>j!8XeE@yxJEV9lAB0Og!J zeK+Dg*H*ExJvVD|v%=jnq$8`T?y?t5Ibl!bL|oHWmAIUZXqu|8x-^eyTJPV4dsuzx zUX{jvv7taT3li1;;=hueqLm0-OQYrE|`^jMCu7wEigoJU3QT?dmdL0rk; zD{6TjrJ{s$(X6vgm2WS!uDK@fm5-h+`}1HqZQeN%HJ61HX)}nA{|69w?aVlRF`F-y z@<+!$*JL*Aji;QC?6Y>`Hsm($)0*AT)s9a%Eby=pe(g}kN1Um;|2QHbtzb0+mz8{v zGzB#4$Dk`|0B_z{$F$64&O%hljpE_{lYsif1uDC>&^%~C#LgMT!)N#gL0R%` zJGSY&o+848j^_z}Mfj!6nEG8>KyEk6?91PZ58n~UQ0DImuqki}JT(CV?su_?kfNw+ zlus>kdeq=`wn`+)zW(r_bV9>ov&Q&htXnQ&Qr{;}RizYrr6k}6BGK*YAQO;cG8>Y% zyi=NfS)k+vMa$FR+#LJ~+w)43x#iIldOLn~TJ9Ce7B{*bFsAUB0kEJqRg(V!5i$W< zi#-qmY*ohgbu*^tW<2CzbZ^G386={N)p2<1<}VE}aq`J5ELJtQYYuXL;TXQ3E|3!d z4YqG1Sc$Dz@{WtXzzgG(0=F)Uhs@J=gsKbXLU3q0S}P9*#>S8kVcEH3Fl|o@cjT41 zKh|rR3E498xfr$`g>9-6aeQ0(bm!$u;MVy1OUhqwr~{OE!~(1z5OF2{Y_kp6wzzJW z|2C!`Y<42$Jbaxuvbnn#Vd5IAM>J`48_YVKX^ERv<7;wA4x<)|)!s(ie`mVy_>6)| zah}U362&_7YL6K02vc+(aE5XPb8qZp14g3m*6`#IvP`a*fXD3FPR~j=E?*%(T`s5xtlK~WzsPi`Z|vd8ILH*q>;i3<;v<^kLDkY^H6;gdI-fj+sFjdyOCOv(RAFWdDhw;xU;>}L>(I464-!Vd z;JrF8(hj)0TT4IU=%LrH3KdXA&r?}RwzBM?hufy%W&^espDcs56-#n7eG3VfOsQwW z45Dj%%*h;oN8m_R_bzWX=+ng2VW)NCmYZ%;eqv)x$ANiWl3J zsML*$w6qTl4up4+$VvG0Yx0LaA;FKTVMSa1xg&*!`03vF)-{g{wbU}I8}ERzIf{yl zfyW-~{Y?81bL>|(&CTnrXPT#nYjl-dDtJ}J;}H^K7O2;ov2Ba;O+ZUDj4t+cPZQgJ z1A^>{@5JUo>1%A*#Xr!#xbcRlN&7V4G>h+wF8<#iOvGY$IdJ|Q)G08=4r2r9|L!vi z{2#e`&@_~;3xoE#VtS_#bk`ca*Ezyu`CbEKIE8Z~Ju_7jG!`I6Z;F%q_}irIAVSjH zXl^`06Ds%ek`3)AQF1mX#K>|85Uu!Bj(It;t2Vj)Ne0;Fw?{EWOQ$8${uo^5wVRN} z*)`nBN9YiiM_VbcezJdwWf`+7x<|VX_)5Sk7EhB*L0esClhff~MzW*M{lE1ns+~92 ztJ;a^=+bq;cGnD=YdHg=oQ_ZS;JHCm!3qI&k)|6zHn;#AcI?485jIT}AN_AsBndM( zoy&hpH+3yG`K+|sLWB?q+Fh=XS9VZnLXR<}(`*71bl+=?W+l5(UPJY8aGe_JSzRTz zCY+m`fjEa;;--m)O7+gzb$$-qz*3V}ri1_l^m;BMG3A~ei=&6q`R^ObS<&&rA1YNe z%}@i~q(0y`XFhbS>{okqq38XQc30Wo!^K#5JOltlxd)~Tbj7d#;E2gyCrCw9pYp=R z#2(pfn@CWxT;Z+a&oB&sZouZ1fEpwLzLU8yMaXx~&dd@NCCk*&s9{K&T&oU5nSP1y z-WuaEK+rTM)|TXNnC?4BsCci|PKgKfvJdB%YV~CDH!Td~PoF0{j&;@;M0}#qJE*Eo zO*^XU`F*niJ{jbfr9sWekNZ7GMI5>umGuRPi^mcn!HV=%8GS+d3yo(6h}N$Ag&rSjw_u09Y}${ie%eCnc~^xcKJwrx8k-lxqIl5Q z-KM!*;PZ4NcE(mupb;STJcJmx9PL%g0*tlegkHx*TF@a{dgI~M(ENs5yT5>_eTsXH zp*Z$4_Wx0I?tx72{~!PCelfGT&V8HPT$^jiWt(fRQxa0l87X#@6Yf5&!3;$>-By-AJ1jqKd8-_&>e|9Vez0Kt8J zS_F$F*zWq!NJ9n;Y_Mtov8a?tkQAA%HE9z9GTYUi74k3QP^`u^;fHhdBcZTol7}zj z&gL{zIMOFU@XK%5PEYf02qNa*lRsADQx^<+aw*P=6Wf8qxV>Od(;Ywaiv-%w=fsQB zIZfiKOqv6P4c}|zM4Xp%_5MDUZ{_fDQfK|sdtXn#f#W6bYp*<3I{YCvSwyW>H{Xo; zMGGak$Q#s|Bj1Glr75XJB$_j1Q@o?qgrA>p1n^m3JNQu(DhBm9Iw(+xoZ>`;(v}$P+)sXM$EO~$UNvwOlGd=#`yVyfs z@A0SW7Q;BVU~jwq?X++lV6QAB*dkp6NRn6i-K`6p6;o?ZZE4{)?7(p@b|h=<7hL-d z0|54$IIzZC-nH`X$Bp-;M&^)`O==;$?cISHQ2j-uuyY5$3U4KGh@L8~VA}nXqVm^= zKfY<1xLhG36^7&Jv7`e*WM67)r)9npPoXENsG(q@%l%%yr} zx+Ke(*eDwBf)a*}Oo{h;&mA;*BiGuMDT5^b>}uVXaLzv=uUUAQ_e|ROeP9G;IiMR? zc98t`P6miCPg%H6yrmA$nd8Y8U{lK3Ji$`-~30~{IoNffPNnDBVWb| zbVdwxh`q-2EWaU(b%s`@BZWoZ_WC-!?kDccI3p)s)izV> z!gA{F3e|RRry`-i0z*qI`$;|Yn-S3+i;rMnkyUl+Ye=iEw&u$Lb z9q_Hp=m6Nr$!ql~XN{s#y#i&w$X8v`BY>J0Db@C3*v(9ymDk7ukyT%9YZH{M>Ct36 z7l!Fj3+VDzAB)y@+bedUH`hjJlTz*IGZd)=9V- z1kvEpwjB=a$pE#KGy>JLi7j3^Bc(p{`PU`HKs#!5%H@62B$*a?k&D6}G$nTQIG?e$ z!=I9ZlWrW%;Syl=81lYbxS0m>)Z2*`R~7rW`#hnUw1R@tCQviN5RkA^EJ-^N`hII*d5}rm&}>|EL`n4 z^%$sz25bHTMokx@#Bq7>4m&OG1YmbkY06l}(oyIG8gUW$=An>f;$5a9P3Lh*b;`cn zXH2-cl*-{>I9a2Kq%cg;4>KcoA@Eiu62y&wIun%xlh-(`4136Z2@l&NC7pJ? zGa5XV4uJ_x36CV>S=K_#1Qru}Bg#`njVh%NqLswQ$zNE z{fPoXsjo&1&B$mZ6MT-;pK?;EfL`jhLiWP|M1o1+Yf$ZXg+AsI?M6SOQ>ib&TfN13 zY7La>YyX?SpfPUVH!t_KQ02(^H92|ynRXnh_QlcX@l0vgv+BzhK@f6>3&dre*_gur zdLoAsHpWco`$)|;0nP$67sS&!D^WBj5gog3vubcB%Rk&K_DniX6P(xdXV|zqn%-`mQ4#{3;KB5GllZcosN=oLw3)Bv-fzDK@1`?QQ9O zySZeeVTuppTOY1SURRj*k=B1$4}2@_(F_vj9;0+8%G!=4eGNUtpZ1btzvE4scp|vF zE&Q80cVdPJ*kX>yCB!9>Bys^HZwVhp?)bK&EeAVXhIYr|5J<1<)Dl0G6}}-b75s*z zx5UOg?RZXatM+{3NRg8KF6(vxb(F=Ha9H~t?FdXMLJh?hu8*99>~!{wlTO*~ev6xK z#>*ZUKzT*(GjO2*OT=5U*c)ymEF;I90y=&_lc`bUNBRcqmhzz6lO(?eDBV=SO$-M- zvSjwmKTx1Kcaa)ECpCgVl4)9H|M1p)nGdfCwfd9?=}z~rPE?3ce_8iN=ipwQ!A3I* z-w<(i2ZzNNqf&lLT@qY)h~kEKM)7ym4j{VLg&2gMHP1sDZE{N~n-zRMLHa~FHk0pd z{~(Ji`L7#Qd%;wDIQowjs=(HRDO7qcF-*I|(o@V31I(eRU68ur=W46Zln}PSr8`_~ z_^y}7|Eyt7Owq!+AhQ^H(odlpAnt^!hO|p@5Uz^@DZ-}ZB((m^&4YN$uD9dJfj0w>I#isXFu8@8PP1JawNfGBBf*-^$Siq zvLl6Z?Fv7!fBh#q%O{*jO@me(~7M9>v2cuI0Pp z%2e!WVV2wNT9%AM?n06lB1wP%d%qx6+C?JQUC2@z&U$;C&l13Afoph3Cma@hGwU5R zZXB@h6*R)CkAxVwXtL0wmYhXQ+DWOQ=RZ__01nt(7j>B`F6NcqVB-Nhl@x}g6dMv| zdhkuwOB}uM5C_qyJ0Eg3>!&I%L1Ykp9s@5(NPdHOQpm&a6%vA6omi)@y^X_Ro^PNrwc5%ktOyi3TC=>WMt>lx) zG`)Pza{e^9GWMA+dV*2+3YuI~BCY2}Xq#)OGl-9zst_YS=AD#^+hfZNW*t@;DQqV$ ztK<_^i4HlCiWCs$zum!EOY2kg3f8NdRne#PoX%G4HK66f`l48LmZ`5M)slN<4XRP} zb@!}?LaZT(SoAj)EZ-Ud{*8E8hQ|5Fo@Bek+BalApS4zoW>1gOk^PEaBW~-QmwYh zS%9f__EJZdxQJWVy}MjJWqQ~tuFhQnM5RRzzRX0ao(uZ5!7iup!%a%>euZU(6wBFk ze>HJM*2O;q;YYLg{|^BD4|v?gQOd*>o|?!%$C8CdJXZPLC%9ehxeR=XfBny73@CB@ zOz`5b8;^?Ln?SM!lC?wXv02V@aP-1tP6)04M23-TP4y%DPcuN1wlj?S%vLKxz91_)AL@4k=@Xw z;#zP$Y7>>})B?3e^-2}+Vo~kO1*c$LEG%9iqi!A(-B#f?TaB51hj10D$tcG z3O9(ccj$+RJ`w*Ei6FHu?W|KY<^0Z4(4*4q-Q&w zwp*%pJNGP&G<8;Hwl#c;;dDjzmjvk%uD$Q+`2T>U27-)sq3|xh#c%vGo9Laj+eP&l ziIiv3KW0UPI}Jit!lkaHF}A z8R&rlS35tV={$-d+sWRo_q<#1vQ|>MtRjxeq7GgePI(0zg{3f5y(nidF~HnY z?Klfo>qBQk5b-*)k53=(*ITl+;Y|U<^b^>lpy;Y`;%(j}vgn-SUguB{E97v4%tN$8 z0KUWX>*RrBx^Lv~KjLb{9OQkp+RYIW-8G%gIe`2RY;tc#6s}cZ;zo1=7>+MtUnhU4 zXNYm($GGZ9ug9``Tqnt=cEqb%_Y}&IGOJYW5xuRQm^yO`W}|AGG^P6XYEfBb%nQUA zQ4NE3w-?P_ZeP`Fq0yfx!U7>bAZZ3eZ-#X#Yp5UvW6~Aj5c`-vWt5=nr~K?KPgINE zlU_q*L+Lb@9Q4$$G?1*aH_9BcRf@jF#9k@bX8|#X+f<234R3u* zxDf!%7c2wzSH>Y>Rhlg6e^@~5#4)|o#X z2FGfPHjeQKKlvEt<20X6cMa5sdK~dpsoiBxM+$i_EWg@Ud7h=s#_c(klpnM|K8mG6 zGCps=`*Qc7K*ht&CLO1@nN-RLbOvReMnJlyl8*M@@{npVUU=cn*G89J93G57Xf$+O zzz>x$X0tmLrPX3rnPqj{6hPLeROm_yP&(=_TFrsiQ!0@b*7B z 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

xzUDIBzjLhi3Sm`}Sk1wXW~SUl1y5Ik|n@j^ef* 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%0Dm)Lk*c6lA%CM7O-$)8KD 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%0DRqht_=pdIgmx8` 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 literal 0 HcmV?d00001 diff --git a/assets/img/communication-provide-inject.png b/assets/img/communication-provide-inject.png new file mode 100644 index 0000000000000000000000000000000000000000..92201eb73fbb62f23dd3ed1aebc3809653d384cb GIT binary patch literal 21121 zcmeFZcT`i|wg(zSMG?U+9XWi8fHYC0qv8h&2ntf97Xj%~LQ5!qGz&!!y^AynB_Jgb zNP-}sR0Tq42_iy(5L!q=OY(N`ocqqb_nrIK8}GgG#$98G$!4?XTC=UW=5NmZ@_~`w zac)6w5D0Yq-rYMUAkZNP5a__&BZq-2tML0rfd7s@yZbl*1Uh$-{g30G$scRLMUDUy zz1yJb0pUg9%R#qW_iuqfwaLf!91np&Cg<+mx%DW7gN!#05GLkHZV|u!bw$5cy)+rJ zG$eDP$-_9tSo-Ek?|b1Vz*!YHtv{ZDoRqq6d`BOq`@+i|t}}PfJUA4gRd@>a@#DvsgCl&J0LB~V=r7lVlMh4=_?s1k4^=fN5fXbOi! zPgOe2R@6j#f|n}m?X3t$KzdhXW%GE<8qNqNy6Kcr;ZR`f| z#;Kp1-ul|dsRzq-H#8)!HD%?r+y!tvvodQCTCnKp9L7*s!2f&k6E=$SDM+B{V zsYIlQ`AFsS#yCrL84n5hLUYs8vmLWL$EK*~Zp*|c`w}l~R0wO?9ZAkf&0ozK;s!mt z!(Q34TwK4fYwjWnDQ5bFFB20djXOjwb(6{jrBjum~hL zBzweeX=4DWS-=Up%S`1rxG>4P`zVZqNEY4o^~X?*dx}OkG(V6t(-|CX-%qw30BPv@ zD~!Wnx<{W_f$?NT9B=Z6YGSonB2qFcQCv%iW|_<{blwS_6J!X#EfG_8+p?*4B1y_t z1WO58xEhdYt!X>w{o2hye(DUOv}|l)6mPW$1uGe2%*zIPe8isyi*8;uWO+ZTH#l?bU8y3jyiCFlA3)KwnwH+xEIsLL^36XE0>ITZwYFqnD9tIAhLv} zkaD5Fue@)`S8P0|joI>I5W`&HqO~R6o@XnldtLo+mAupLS@v*jE_M#eRZl^;Q4&&b zpG8jkRHnZvLs?wtOC5*tLDaZBG6F1{;15=6(xN^JU5F!}5?ACMt-D`t=!uWC!C4@< z$X22szigkJA&u_2|LC22l5c*vQfAjP)FBeAMsAhYUWD|wO}hl&tiSqhjFbFaw8VPG zQzqeKLtcwuEncz(Ly^pXdVCzM5NKNv@^j*aLQ@PrgFUH;MkT*^HJq;9k|(UKdYtcBfrf_S_V4;NSNuHU% zE=X+>ujg*s^R_T14WTnaOS)H87@cosRzdXRec8b=NwDZGa=Y8FFmN?L#3>w?-$YMO zBdTBGY~@fm%(f;)Q@KL<=XPc{d^)9D@k%#G4}Sh;xl~||rDiaO8xM4e&ydW0#~Z4w zC-|Xi_2;x(RIb*GoJE&bIk?Hn|FGg8lDNUr+44W?8-K-LV#>Z?7hyXZy5Mc!2fJ=0K>9_L1S?>TNl4>b-nt6jwA)nE8fS&ie-YmhU3A%km$`$EVB8 ztl(DzeZ_N0kd>h~jQSzOfI;E(XvrSm2-U$G*Am;-M$N?<&n>{NKmt_!=>3>;3 zO=#w1T8)Cd=Q~Mv$Ph{*1W~IwYdmEemIn!8Pyw`BQYBHvCp7yNo!=xG@N`>$VU?=oBQji-UFJp; zR`Kvz37k$f(GCjjp6yl5m7CT(AJpn9wS2@ILF(7KoO0s!o~j(czTrH>a8+TDvu74|S-j^gW-gaMXZrY9JxO-VRAE!Sci(8@H!D(|6~0E@&Ka zZ*e)Y5?^VC71}5b{4vM1vC~gSb!RYkVHyO{yPi$D&S+nK$Y-XUW`Ol1-8lW$w=Mx; zo~ZFlQHMa84=+OdIq*AQ1RCX1d~vEL@WBhnVcHKfol?G>k!se^W6@kuYsM{i$r8Ty z4+ulmE3Z%}x(POX>a@r4k%s=ssfcx8=j**P$@t_Gf_x}ye=Pn3BbfE*Kt{fT z@}rsUd{HFdHG|N<_yx%|VE608UZhi-2C9}2^*}Y5^&6PS$MigvA|nRo-uQY~Hq*~P zTiI*%;XNkY!ug!B7B3Vkl0BJ{t&={?s}A|<6I<;$Nw?-ZH+npNa^_tc2hwTq#t4)1 zJO8fE)V4{s(-&xe{-@R@~t zuV%)dx6*RL0vAHx2dM9re5aqQb#ur$b(4;{LKH*<+xKs}Gb0B{Fr?h4uZ4$e)X7Jj zTS`vd&Q;IDQ5sGj1?ifHA^pB- z;!ootl6pbF10dr@@9Csbe+cIol5k`fw+zwH{)sv~EfnQ!3_1pS*6Q_(-?507+Eo|} z|5LJx?f2hi*pyj%|%eeF61>>i(v;0C$9Wh-9u;ipT#qBur2BE0bxb3z@zzf;DtXF6Gj_&<{5hHp*1=&9BHr;63{Wu@)(uX^LB7^Aq@g6$iPJ(;mD&gK(h{}P zE?%3OTFYu}AVWpA=_W`QF8!pwc5CE%?{PeAAcvMM{j2F|#A#oR9dgL*7vHv1&|ufj59A;~nrK&se+#$$`f zxm={@f(3>NR@X2x+0ij34-=+J6Rr?&u)4ASZ&fk*XF$Uit&z?FE7oXPN(^jwBT2tV%qU`G#zWpQ;K7Izm znKXd^w3Ds+ZO>@zPr=bT?_|3=F8B2=;{mxTOIvup#~vhN)kL@cg17gE*jc z!(I(D#oUcVie$=_;GFg0UG@x*!V$&e$vONGWA1B$=lz?;TIn?qZDUfF8(pp1lfG(( zm7zo4r+-4w`1`J)sOAAg+06{y4nVPp-q`pnXSh_W^5=5EPc;+}K)WZlLcu-fOV??b$jGEs*1 z+>(M9kGRLjKlp39Q|LToT7s(-`_eKjQIRAiw)eyYqD3;z z@oMmyfxO=2ht1D9@So~{BL<(o@8C*I)wlHuGDm|xNNrka;ZcI;dQtL3i`*&|hgj;N zdL?z0tG9C+*KMh{(V%GN!?quuW$8 zt*Vy_G&XvZzE4d_ZnMe`fV%Vd8E{u%3>H&#!ydYtr4}1oWmkLpYUOz^Gn8hfn?j zBU4(Ouwy{X&=37f*dcekMB|f=)UDMTP+-e>ujHLO;Z@eXf${#^jGx5w@|%O!rJYT- zTpLWMUI%S(OC;e;e9U#T){&iz0$PkVKL3;B)8p8NQ&#bs#R~kb*8~&ax(IhkcRmPf z0e0I{sTo&KkzUpPVA6geQ=w)H#_x){FF$wS{QA`dkTn!2dZ=RAKPBR;%R#M#76|No>w4^O9@bJ z&>FuKN@w->gxOyhW`24}#?!Mx_EePD?EGtDfk0#HC>3jdwj*rtv+$Ml{9K0P&!2AE zszR_p_b*P${wKEG>2_!HMXb(Wk4-b-0)O$;DKA&sysl_tkhfN58S6{jE!*|%Id?Ia zAU9o80qAtV2jTc?$mIri(?yZ+RzsVb}cer0WBOx##+e$!9h+E>N=WaZ6BC_ua*Y z?8r)QtVDR=#kPKqr!A5ok%z}<^S#>W)@R{hG$z<{v`>8Ti~qrr4D!y4wT4~jQtr!I zE3pruIqi#9Sh>cEUbsfll6683haKp&jKz!-jXWBS*A>QIT%g(Y zW03(K+A|~ueXAuBX=|55BR_sRaa+3B zHPpt!Pie1tIAUbtL)A1RP^%dE7;D{do}@b)v}GTx%nO@e`bJH{cHKgA{lAhYYMTjV z^~;+y0}+~^+5b2L2mgrO$>~!6V{NrGW{!Qa|1prlEU?=EqwUTS;3Nu+OLu_a0vHP7 z0qpOked=Ob=YjkJXBZG40mJYGVC=wfxXs@CfpMBG2av;3D{KCI`P2bWp9-+~0;4VF zf1e1j;eYw~f0y1o)K(J~8{{HGKZ(gtj`8U#QNUF>ukF#f9(`%;4Nxo!%>a7z&)h#4$m zIS8a=xUV;*J$Xw5UpJHvgEGT^%TvG7`9{?JT4f+xrNlmH0YgFDgRLwIX3UwM;K^;h zy>V;S1P|alH}_qiG-Ebx)%zgee)pdMs3Q9;2@Jy*?7akJm`0!8LwJgRwouCpn-Pn^ zR&gBzDH;5xZ%8Erfo}}ksYXeqWY4hz0)lV+hZi-ySo-Yao<{H-M2G|An!A5jx&KPW zV7TOO1}I+m?R|4wpdLzqw(frgfih3*J7LpVH(!Ql!1i)g3XooWJ*lw!E^{ zYs3|EM8J^>x(s`@|7mpJ1CRpHv(FK<(W?0=d`mxzis{GOp`rThrzc7Szid0XYhLDa zT@bqyxr3|&B1ryywmtjhWLUMK)ENROm*T#}e=KxvLAM{8-Hrp#Kk^e-V{pClk z5c%e|W!U=&CoOz!CKH2b%3t8CR?>sP8pXDjBhB#J!8-A zBAfR=?gE}-I{&_6Zu9U0^aPvozl^Bv`vOoBTMB@5oNoe)2Z4C8DPXtlubWlyi1i}* zfx{q``Tf0AID2UK`sXdHW_zaXGeiZwwiJ#=LtM-i|u0N#6L`kskr zn3q1Q%k1m?zYq&h_UFpYyHcts+{M4d}DagU@0% zUUpB4ce?5HvF?09ocF0DFd46j#)p19$ZPTUkYK5Z{K&N2+mk%MQR}9p@t0-1aU^Ra zRPykQqIi@`5V-v-^k&0|l5E!otD%q*sq}<-=Eer=Pz~tWU=3{}|8!!-Hj515v&LoQ zYI4%KpWWF&Hf&&y<>OUlV-=>6=m`(@2@&)|yd>3X`%B$f(Oa*m1si-ES2QlM zMVCnNi?4kNW$F#jI{ zPOuy5QeO3}i0#5bn;-<)x-j%dug1ywiU-&EoI+cwd_|TL_b~m@R?Ietw{JIt&K+tU zw`n7d$+%a^+2%*9A(K#QHHz2LSBw)Jm5Spls*rWwvdC%rbj;-Nx0TgWo|~h09kn`_ zo*+<(p?UNL+exdz-MyS=Ch|5(b&;+99c7DrhW{N`c*XhRjW^z0ji4e;!`*C?ovU4ARje>LuUEq2w$I7Gs)(!;I?#&= z?vGkb0x_!v+>SF{9_pom;M_)+^_|X=*4tw7ic`>asIVJ)s(Mp78>|*gnWM`gBIv{0 zmbeUkq5Q^-KsZX4lxsrl`x10H9^TB@_0XO?T(@Au>qtp%04Y87NYV)wR$B3TBU+l* zis?f;S22UUre?ntb_Yafb9yiG&enG)>8Kh3s*tvlK>%`Os+XZ9LPlCPb|KG5b=a+l zk9zQYSG)dRtZ8Ch$>@}wJyL$klA+>#_L7)4iIMI6D-&Q!Led>bglP_U;)&p*O z)y`*of}jGl#n|a8bl%dlW=MkO4*mNTE_CyH^BW;jY`jOvhH}Q?##h)dLel(~?TxH~ znqIZk!&l+mR(8o1!(oTd|ESUQ*v;<1S#NinuURd%&7ZhB0;UisQeu^z{9W7*_FGVD z!;nwVB+_=Yh>fak1n*F&xV!*8Jf~FL$Z|Er7M_?dS?`2x!UFjSxq23}z-Lu?n$~Fh zg>Q0Kb%uL*iS5uSV$={9-TRY%3qKQIXCQC=kXu1qEUU}3d;_}On~(&=0Dzh)n}>YjDrt_PeWW^H_FZfUX0Vq0i!=o-(`IslE8wYYV6 zVTwOKo|m^L6uDkLzL-DbiIKMRu(kIlD;sEh|H85OWewb&;M`ZIYbvp1X*?QGjg)G1JeS=gVNeLEmwE-oy(OAU&o_?h8+>HW1QyBiGHMI>}!?a)gc%YK6aq~fc z$1hi{I|PTOYM^ff3-Ovo=IA{g)enjNd6Y+rsV-Wl6PaCvNklB1)2>fEUwWK2`DNCG`fjB3>*DFGLq`*Dem zlL~^g)l**irbh+GsG$5G8tPFaVvBN@q6sY`P!(b9%s zvTGBuEm?=}%jnA{06t7|u4(-USXNoR`0D~&4Ru)e(ub(p$;0tA-@OML0oXF_5O)Rz zz0>iA_Cdprl+$=dx0%ra;c9!nID9rC0GhTH+1=Pph*@~dw# zlKwHy(d|@AhO3>uH&yJ9t~17bP&jUVYNuD5Fn%}vVF}#KY}R~w_lDlttpT@XJE5m? zCOaRQNFTD-ALq1pzm9*?ToV}_4WhoBu>z9BS$Vx8VanGFV*4?~w0MloHSb?@bJ3GK z#@4IWjQ$`Ab!ezmW%1OrBn{{ARg-L8=X-d~A5Ga$ceCeiuJQSGJ3OYJH!Cw9&NrLt zxp`K*A0Gao@!e%_5|HE$&ad|(PRsqNuLnj0cf4 zFwP885c?cC6!~7M#OGcdfphS*qf)qt)(f*RmyCR6Jm=uvYL-jJ)vIJVS-e`7Ab9ce z8*K`;r$sCxSoTDwQHqZw<>==P6a%Y5NxD*Xx+C_v`?e(!Natk)8(FoYks1oV5_VrE zn?^BHimJnmph*8sJLoMI^t3l+JnEbE8P8EL@9QzMl&3T+^vG z|EFPx^C!s9p0?ChP;MD*Ap;hQF8E&8h}P5}ev^H5&X3o6@R8!?wNo9ur<}1UjR0?A zy;^4wYd6(J4%+B{UF;W4IK(G;D+J8xz(>?(Bw7%2xwe@e&iD3m~0ul&~ zkQ{;bMZvz|@#N^GuO3n{;c4;<%oS(J+-*khDw$-sh~ixJkr0NB23^JrGS4loaCG-N zHo&FKaT}0Uyf!L{8Ztd@oSFrh{B$)0w?<#G8IaV05J-d{_Ij6AG1Hiki1NsdAoUPA zT0^wsUG)*Wg%wKO+^9$&$p=-h$KPVc7Xf*5k`t=nJy4Z5u}2hROg2l$46iabT6#H3 zzd1IfD0UGk$;9sL?K_r7!wU&D@2;m&NV6FO3+Tph52;U!QesYq1>MnlX!~9PuvcNjj!4s+iG#H_{hN$kmQbgHDYtWhwvS_xfS^!N!R7 zbImRjKX9|8%+pK~6{)Swe&c-5 zxwd?BnBFgEk(IkJ#T&U;g&{=pC@*ixav@qo<>zUV2y!hE+>DYZfB$7%510`@u-a5* z{ZFfEBSKuG3nkCU^RHKrlWptFBuZ<8@8@TtH5IB}Wxx~kB4=9 zI^V5m98(hL|BSF6*1U2l?vn$;`VJHkzV?Evr@3&Ct{^r2%Yj+G^hD*b9tGsAvPA=1 zCxF#itO(HLODvNM$N%9|#zyEDbe1RuPTB`Yxe=NAz)1)!9&RhoptDGQg_KbBqP4n29y>%+*AgFsIs4_0zJCMjYMI&Zs6-T|Uw%Dw$Ab$c9-tjF4 zSRGrIso9Qh-gQ-Km%H8Gy*!PNt3gx`0%!=2$oIFLIL)?54<9MK*nRb8G-rs-wT_qx zoEjFl;g2{RxNO%R!tzJWtH3eZ4!WR?yIUWD4y1o^!dJbSPOe!obtZwz%Zq@M;dl?YrKa3$P$9zUy+ z3WW5+uZA*Z?Jyy(xxoCcCLEvq6B{1`pWDdTOWSjQ;Vyxgz_%%{7L_=1KCf+oxQK{C z2ZG#}gGM0-G9Sj{(doTQ=X`B6EUMc+3^UuYhxJX(duIWzHW=1vZQ7 zPL@6(QRapfuM-9esnBtz?Vy5>*ys7dkvaEr`oXo!ye;AQ!FPXGKQ4qlyTS_C|jM*ytxe{TgE2 z`ry=5)0>698ZMRl)J9hRc>IMpBcFPhMObOcwdsh^P+5(?m`c?yzZM*4Na%FcVl87B zvSC})y}9{2L&q*CfLJd*Qk5ewD<3cQs03!iJ2^#OULC#VWjXHGe5I}SDw#~Gxg|$B zF{ow4C64E4yp62Kaab*$%;kFz*BmOTRNz>(JK1`*r4*ef?9X#9->1I)!zVcUYoWcc zz?^sRBO+FC8IyxzyZ&PO12 zg3PY_n3dZQ>L$4LK0r?7uoS_RT_PrcQbOsKTL+0+43D6BTcEW)TxN`6lC-Vn0o+CF;)3ew=co@a3!k$7;i) z2TFTrF5;eZ=IsNvuS$#`>E|gaM!uwDO}*pzwSm*Lm0%l(BSa`IAMTK znX)@T+@^tPwMOfP02Vv_%OqvBf}I~SqU)j(@!r03oL_c#-@)1?n{U}aWihlh`%0ww zh<5k$d`Ct&7H%9TdnVM@A4Q=|O*C>QVXn;W_^K>@Tl7lQBTgzVXdNAwoJIJ>X4Y|d91NR14pEBv|>HR~-n@zuYtX=~ir{C1ig zRpaeXf1j50jrGwoeD`*yA|j=ViR(U7UCrm-tN%fD)3W~IbdUF1!^qLdS7uwZHa~LX zlx}s5;^#LTJDui(u#DNEGC{wg4wi zE}gLcbgOIqjuk3NAE!D=6*AThZ^P2!uEmgV27hTcb+@Tdk00Gi)m4Myo2x!?j!iyn zfKyYbR@984+3U)X{JYyx^2NiGbiLOp0#7y`VO-uP7V!Vm?V4U^phw!)NySoi6; z*Z>PO;^YrSztrx+8-VMbizQW17%1zyc^`{=>G>HX`8<2kZRn!InF^|-_ZnmNo1^zL zk--Lg(ba=4h&E!AC`$S5p7+Cc!JIHCU7p7 zU9J(40Wd~zwA&Oi!?ajobi89~jK^l@Ezac$V|4S8+cq<+%@*g|N1ryA%NbiOQL+BB zOZ`~PEOOu?vsANW;QLTL$~nfAP^D@(HL&)l)jQ|ee^ zCBO+ExClscN?AtsmiE@lN_SRU12ii7e$R6&d zy1XGDHJ|?JZfu&TMUF)3V;4b&Q_T&gImC$V$o!pnnQ3pXAK%hG@gtIjCX43BANp=$ z{cgAUCp3b+)b}!LNp{{F|3t|zlc5o0A5yq4K0qDg`DGa}?n{RqyzrpSJI?5d>Tauy z+q2UeQy00cQ6Yl;A1jfsa$KH#jaGw<%4*rgrkLd!jV5-H9X0*MBF6bfTQuZ)`BeKa_Wbt~(bYj6I3#7MS!Q~Y-J}8(00_JM3!0zl zlMxX}YL_Q$IZ1&)@qc6YvxpvB#e|Z`Czg5@WBb3JHNrEwzm)e04+0F}W)S^q;=1VYTFytx- z1a#B@=+!eG&Bwv%lw?=##fcV+eCuPNwzntP@RYDlxxSEMOrkVFl?`|T*oGy*F_Wul&F>16?i+C2(jHB36&%6mCLncTlAzke%u9vKYtkN|;9Z~Z2k zN`Q+OoAWppaYuS{fgGgSJsqH=*i-1ZN4Dzp88(o?9$ciq-)h?b^p77QPZfbr3Uv|d zUFQwV&gNqPOl57F*&PXF-=oS+*iUgauN+!D({57a(+50xXwhS{B%|xu`++I<|4uBM}`-qOx zC3fo8s_Yx@f1v>=(JX*vdrKog%Q?TP{360xwbbe9twEM zih=}lQjgWV3AH@}6c|2WtJ8n0dx<0NMa@IBa8u1YhmkN%{6- z&XEVyX2=F1fXh>%J4SVT2~q@r;eGpB)fZ*iox)~k}hbp`rQ8vn5jCGqRMEaLo%&q09h2lm4iP7jrBM-IlFmK=#Z6eX|^C}wi3LbniZ z0Gk8YT{*z`2VVNmq7~ORwyCqLSrkl1_GQaa%Pr^B$<52P(zy zK3oJ$;?I4P5LjDDBMtzQn7@2$pMZim`#RtPeq+OZQTrw|2RMMN_lMaE#q**TSrZdw?fEP*wjo=J;O{5pJ)J>lQ>)TV6*Kqzc#`?UXA=JQWZwef`fqvpt=^#8KVC+cy{ zNnmaJFylVErnd7*#AivU{uULM-@0tc=lKS z|7&(1Vfwh77 z!A`&%3GV~?|5_{Z4^^r|FdH8K>wG1L5$FkY#knh>z7zlLkM^yvFJ^@80e^2fQNdb! zld)_H7k|eR|7SJIKPbGufwlxZKdA4_Z;yDhvb}pU7zc>y-)lR}f-S}0yTT8=eZ;<} z`0pIqw^q~n^S%r})zYPQ6-xRUrk)t zx!mRAKp*(_62Cb>==b(zx`1JB_`*9+OcoLElK&B~l(Tz5K$#}N&TdcmaQv&eNB_Aq z8J0&jZQz5BEJiaIfdFSe_6IiY-rps{Ec@qW5^OTAO*b zrqjJ-;{TG=;g+N@63_h9HC*%%S)%vBqJlVn_oY9^qQ$_+2OR$TfM;C!Ql=t zvc)^+guCQWz{$0F8UrP033ePSfTPn*@-P)Yzt-Blq5JW+rbYp zR9@eVtCC@v`Ct)$!EvQxA)gFJ%Y8nA)VWznplxszXlRx3^Y)hb2G4@6ef{Zneh?4c z)|9*z^w6Vh-c&aOp?`e2cjzZIO&iZHcu{exO)7|!ZU{0m$O{Bd;e35N{8^ho={6?p zn*_h85xbs9$@|#*KmrK!D4`|ocaRjK z&YZtN2Bjc`flfy$#t$x;WCQq|T1-C`s7aVqt=jyx9QRUOIoJs9w51XsQ#JvY^F17P z#SYUng2Cu-Wt+Ga!sC3Jr|q`9z)I#btv^(ndS`jZkN z$pJr_M{e|zg<~2!bfh(pQXm?E59$~M^4bwmu!ty?+V?Isy9DPCRIVQb`YmD~Uom(F zmz?W3TyjyNPki|{klmtE7ra(({Ncsu-GG{zQRX5HsjiZ-iL`0?Y2M^_E#YinqEY|D zNFm_}P#nT_k|)FEMm|r~nTixVH8Hf=ndf%86SOLF4VF68^8r^n)-0@3BpG$QHcWO| zDJp!7n&*O_W+67*{B{G(B3Pk0la2*FZj^`GuZ64m0Xe$b@H*f&l5s(XR%5bJ{Tx`R z5x*$U&$F}5!j|4K&CREzQ{T-0qHQMbv3h}K5H0@ZO8;>>(97ZYi)S&~@34MPuX~(i zzKYP&PTC&2pZxV=suao{o-|yc2r%D3HA-gJ5$!89QM44pyZo9d*x2#cFGXDZ*Pepi zdJ>P~fMNKUaCW2rQ!6IZ3M^vh4HO^Y>Cn1YiSQsJnTuSb_8J%kuTZ>Qo+2&%+Y6wn zi9Q%9x!fqKdZ8k}dL!&tO;CvDNTP7D%?gmeK^AT|KU3z*C}LwUa8=U z*ol@(=428_m2UNbkZ)_A&Xjd10TCPn=S#N@yN+h=l)Qxxia(2p2yb!ql;QE|FwgrY z##m_hbiRy9UBwAD-CqSgU9P7>FlI{~aZ-=k2iRG9>%Wk~)#-x8WnxYzJ`^GgAMv0# z-0gxERaKU*<4%ADe=7HEDQV z_y{RE5%fyErzOFk(n*)g$j?&uo!vZA1?!TWt@P!skQ2+eS$lBJIlRjms;rUgik3|i z{dsW#4_oZ5-**A2Z=_53{NHRF0zTYH>x5RCFT;gXH}-N#2EILM601<^Gya@8mriYh z(ADwO4p|@EH z+6^}gI6FVFvP z!G<+^4Hx@RJBY~!ZG%-j<|tp7!y?CSh$p!BVe5KV;YhqlQRx!r#Z>)^Z%AG-oZkaB z-piO_5nR)aiVyrR#5)O?iu@q@V)nc}p;E$4$!7V=#jNUx-xji2~Z1yXSm^DhzdU)lt^`EqIy62B5qDwh;-pvHD}_ z%Ifgr{X${>!9V0Oe8^20f%*BKi$6Q&JqZ{@k>m=kX|b&XyRm0 z2`ud5CUqo196ef~jsq&39Ai>p4g5<8AR$|_Axf^vIiswneRkt2yQTP{rdX26b!hnH zvEH0xxX6uo{$UwS=wh!=i1KX_B#JxO zgI5kA50WViz>>d@bL%`R92U0ppni+K3I;>WBGAZYrGp7Nqu{VWWv)1Bn4pqSoAL&- z44rI_EoYs$RIHsKD|y}|0e;`(jXLf3`BqkU(}7%T{Uv)S_&@?Y=H2gJ<`l%k!<{f4 zl;6`CPvIi^6GP7Hjsa_-<=lxiVkM(w6j@Mh?IG{2VDecFDXBT|E6ofl7w@02;jeq) zcy-yhj_u{hlxZSRFK`6bWO!^p-}g}JIVpOgI;U`0wL$X(&awxjAAa!|^OCT{x&`Ld z^S7eqx<2K{rWUWP5-GG7*^ZD0?|>K92o}JHl5Tp2f`8AavDd zdlpjUQgI9n=n~BzpW7h1sw5~h!Vb&Lz$=!5empnPY1A&NhWT>ww*4|_UzQ0>+;59L zgXPrT&+j_Sr#?`~Rat+RF^X?NX*Mn)vj|}op{tIq{w@-RWewld?+(NcRVZ>5%g`?c zBEUY?JOg#P1=fUZ8w*?e{#&Lb=4^Ab@rI`z>U?|p4`tSvYE8c#$4G{w8>6SW`KmO% zIZx?`i`xS!+lM$}BiEChCU&KGdSqod0)cW34g%6u2T>X|hv)D?kOrGIeYZX^WX z-P$D@wGjPYu^u9!G$RAIr3Z)(txcW@@ZaLIBLy;DB;xyy&3x;0UF{&)AzjpWdu4w` z`HX>#Gy!}$tO7IOO+dTp9=GdCk6yBE4Vjg6>n1N+dB_u0wT?%kTa;xRGQ{-Q2X+VA zBkZCuGNQGYB1R;xYWF!VD-H9vr;AppUXXph6f2Tq@Xac$J^fw1aOEIfgWe$)(X4bw zMgm9No+chUb8Q))!jB(_+|K{)xz=E!Fd;1Z|vW%`10pWHh3hy*Azm6 z?K<+*Gm`&yZJPI2I#QEr^b0d-sYR+)b)x-7{f}E~g2k+khQ}L<9(m`q@C#G7l$P%< z)sL{ZvpdFDj;d*G4w?O_I~_E?o9HUQFC+Z-QOsUogy)wUE|Voq4$}y2PM~F20aI5> zR^W_Ih(({s-ZPtQvb`QgkJJQu+&k`N1j)+R6d_2C5%c_2+`tYeoF&{YM--C@Pch&h z;%12J>089p99n@F-Jm};H`=k@p_esfF4i1xfg7vy#Mw)>^db?hdv%ja8H?v;t(ac9 z(gn3eE44Q5twS<2prA+7w5;Y$bX$evZQx}#A>v*6DMxI9_e1d*9y4o+wDNca_m0gd zN)v4aiiN`=z+u;@fM)!IPi)hYRa3R{wzu@uNV)h z@bRe21r5WQC+y1FbJv2VWiZC<7x*B1_e(#$^3M#tt$?)Bn%+R5@AEQ z836qU9kCvzmUopfzh3+za_)Ap)AeTu%6Q$qpEa*9*LcfJio#UZBBTn0xq0s9g*jjz zDMF`MyW|zzn}N9a@B$x^xtg_I07pb_4{f`Y94<}f_zsAc_d)rvU{LxQAPR#})ySa? z^L|_vA=u?+rFyV3Z4#o0TJM4y-DwQ##G@d)ju35HrGerNgkmQ(P)xnV?%8y4zfT@6 z97-tt^QiiMr*tthA9As#=hH8X8OP$yIiTWQXuPPQWf|rt!vh~|J{fel9)SG|;7N|< z3=2r^uyQ3= zXdi=scS5-xPFD>ROOV9M+^|R1v<8@vg8z@%&t3oO*R=~jPbWm|{!`fl~QxhcA^?umC%JdF{*v0Gn!5g&Vu-KE{YX-mvS^*??D<-bEzz3pE{mbvp6%-k+cP_4Q-o z=gMCbE=_-6wk18r>;J~{0c&SoUu#)ZdDpd1j%5u?yQP6{v(?%DsCOGwr++Y&J^3JM z^FrW3DJ9jw_6vWKDBJ1KB{I+2+h0rGq=u?w{w z;&>~w$1indV|!r&v*px;EyCf~iaD&#y?HCc0NM|5JM`|)lsEIHYSu1XN1 zX_`yL#MZCRYcYJa|6cGZ)slZf`u*m`H||I&=$jpW_qr-=eeLXdXB=Od_ntn?^jPrp zAEVYyf7$Ne@?Cj!mh%k*la{-hty2r_)w6b=lLL=$%EcMqzqWh(lvAn8_L}}lim}!^ zC=tB!%GcNr!1WbV7krMAeYDevcOPadv}4vVuMQ{uX?)rxvXHF}o<}xOxHBBHVd=B&mK7e;k`DMZ~?7~x;HLrMoXy=#R zfIxV14Yai`2aS<%J-v$6;cFAX{h zEQ)dRrt!@=J?YceIWl{Yck|9aJwmv2{ZL1p8w?^n*mv|*n0>kfCpp7GXS;9)0eMCl zP`F%>_4+gjDWi9nq>RxnXdML!fA?6XNaa_IUm`4x%Rm$zSRX+vLHb#stlttk;7iG$Wr5 zB)P~Ypg$B?-rMmTAL%kw)o9;52U=TEhQkbJgDHRD)aJfhDKAUUGHu92x}TJuB}!5r z)biV6>Ig$G;Q`Ezl@K12H`~r~yaQas+{XItxwSB>=vwACtXIywM;{3!;P#!@7=5{-agg}2(o8tbI88iJu+((w$Wun%ap}#&H&=1{Q{A-4 zp0ay#AJ#oQ-f)aPvJ&hWwJSdRPJK+_17Vw_4N%a}Q!hG=6HGQ5j@bKq%Eet-iPm>6 z?9JXWz|pW1TxTw)civD*DY6(rRA&K~6kE3aky0Ch_K;|neFN@{bcK>Sw0yVtW+2!! zn%2lov?^IneMu4inRqbCN2-q;nIO@$FH7PZJxX`ZT`PK88ZO%a<-GjZ#2!d06SKM! zwDPmO&Xc`iF{DVkA?*WIfWfCmC}(;g2GB_=mGoWjS5bCX8R~xZxO=N4yg6jRCajLd zo4yPJ7!y6A%gZ`9&lF10huoS9em;S`ee+xQH(E#`Rdq7xan&km(ek5s`WcRg^pI&Y zAT(1u=}H0?eJSc7=;J2}V%5I)z7Q4?G?1{R{7JoAc{{FJT~Eq^;%_$V;k%PC8OSqD zKnuVf%_LHALavZLzF>yRFu@6~ca;i(rlXk;wa-0$MtUMfUf%rKzGf+jjqjd%aQ z@OMb)3fJ>$rOF_2e*20c0{3}ge2p~R?iG%NSBh67Fah*Io1*UE@5vM?laUPQQQ7JK z46sF1mFnDWRx-JN$NBU7KHjG?^zE8#{wF=#R-0>i@Uyme1t^lX8yN$DBQxmu=nL$nhcY0he z+D(zX6NsG9437cNxUz@t z%&yUH)Catvbky$DxTp>q5(c2aF$jQQ?HaREP&OZNb^*>l#*D>LPQt4daFpv#9el&^l8wUnhs?F} z$SUE%w_))GN?=hZ&NF0&JuiqHRqb(U8+R2vy3RjwnIR_)ub4ZlK2ZVv3g{H(&arDeszP%QK|XlG&Y90 zmBk4fz7G%70g8EkLT8<1ust;Zob z-E6{A*s-|ZsUY;C(Cfq@Wd2s-y+}W(Zt5>o87=9%It5}ob=T12<1QgNHXmqIG5$2l z=m$)RFp{EhB2yZz6pW-CTot4IvlH&7t_Wyj z_@x?sv5}Qrif)5T*kU$p6@zePL@c;69|lCUAye2HNj5$}88zveZFy^=9M1m~o9h%J}K%tUAl?Mo_R3|y5!;5 zk7*pRB=x4P*pUb8zM)UgGRNPKH3c;I?;%#WkgHL?eUy)0e;o{A!wUJ?{ba$G+}-rU zRmuAmm^#55Xaq7YGZyUBRg^9ko%yk-4FsQqkH$LHy37ATA0uk_`|bPA<5a_eaV@dz z8H-ex5?Fl`3?V5UUh%eZ=E7ymtqCq}ZGib(PWvlWFS3N(O zdpBSik4rabg|v`1KWq37sPitHJUUPgTju386|^txUBNWOxgW4i+;^kTUU*K@R=;kq znjWFdLmax@Kv-S790~?!$v3H9BjD3oO z;f{;yuFRR#By7Sbg^Q+dGP9EP{JsV95RtP4htJiv<+MUu!u%?{*o>ld561C)oe}?W z7NWZJjwlGzO*c_6O;zBb+3Pf{&0JjkJhp4xH2eaN_PZL}Mhv4X7DwK=APflLpRu$X zD_iWo+x)@>z1s|D7n(BJjG8yjGw*ukri6p-WiIk;DzcK6k@(EKi+)c&sz%txbx05#_bfCc zt$&IkNz>*|n-GmGDI_;_+Mrv=r;O$p;9g9V9eC~l-rNZI3!23GC*GWNh?MwPPz?O| zZp_?IG9UPm4xD-*N|dN;vNZ}39?gAcQrZAaCBmRt8LTY<9JK5m`L=Y!Lh_l^0Y`^0 z{177>4LgRGo2=3eK091;PGG8#iQ4L9OQ9SdDJ4Qv(ijnXIUVq7opRZpI_<&3W6O`# z5KW8IN3<+Sz!S`ytx1x-*}Oc#!dUbzHh2P;%DvM_6x$c2^4`0jGF2>9AvLxS=!TH^ zMx{zoVm$en>;>I2h9&B0MRZKZA2XBGudjqBuaxn^_rwtrW}{Fhck?!_^zXU(0$h0! zfSMU7DsKRqx2zi5aonyJ!O~`GW}V@*ZZ~=Byxw1!443zZS8g~d za($DrZ{f*B!Br!D(et3M#6%4~2MD@m%YR{2KnQ!ZS#1Y`JXx#L&(%>;S6?V~?o^o@ zs@&-K`7&WzJjt~^XX8QSFx*xW16p}K485+XB`GLI#AZ&)zL)7jZ_3&jW>37h#Dtn9 zT8u5*TY^CwZx{>{65vI41wf50$GXwg7!2hz4vv}F^vWyL)d^Nu$2^2hIm(Luh4nT$ zXw?ARw!hawSVJ0nId9i#g^)Se|FmK)&T%R~EZ?ow-j1`b?eThqmvxJ$w79YhW&Mxa z<;E-YaHENCk{q1`T8y|d92L^}s*N^~z{9tOIqkW1F88KW&CF4M$);?ml-tbP8uidb z>pFFoLKK;ELpQwS3z=P;WE)?+^RN=|Km!G78F+#pPUT7KX_*x1(Yv4v9x8Iq8bF^g zlg^V?^-tC>a+-9tmnyYHwNa(WSJxIWwo^&VJcuH*B8~x1__eKkL1PM(UDzt3z2EY{ zGdRpu20R??jSguI}+QXhSBtSHfjJQ;!h<%8z4 zy78vwCRFV`J}E6=}&?x^iK$o+g-; za45s&_hb%^9l}VTT4=&$n6&%ZuEFrY(ZosWd>1YB$w`TsQ&a&Ol-uXHw8`~u$$CQ{ z-V`bUTCCP%^+iBR+(Ab=Ze>>D%dv4_gkn}=6mAI=xd%tMAEOe>+F8k!3l%OiodAWZ zQlq{Jf|ppang9aVNUU?@hU59E@w+ZbIHg8!AJ6ncdP}aVIzj}&;kXD2WyMZw0cFR9 z4&Spz$SG*>ukz;tuuIp-kZ30iLXEC?!Gt(yiU|WFcDy_~uPg=}NH>F95$Uc>rGoacc0i;=fUCcl7aQK*$v)6RG*8%M#&4&AVIP{Af1o zMs7}PVNj3kJVAI%c7_^Ru2Jc-(~y|46}J^-D)fOALh4XG?w$@b_&6{_B8r751UhYb z0#5e`d^nM!K$uVhe485eSE1Hu8zr*KeibB}wv{{tN#9)+~nW&;KW$;eVRLnqyuv20{gJQm;1q8(vsq`rucCOWd72L8kop zL4O<*eaz*-@k$*>&^TV7V=n(6@{f6OV4l8kG-(Mud2i-*ymNC3e-TRFxfYG5{z!s? zrC-#NlfYsP@kbIA{y}mI!F*_soCGIS{f%Lo} zoTQY^;5igxnAp?$55;>ov z+xK1)RwXKalI!!r$fGYMw4`v^ZMfiahaQ1)`OE?@r{n!R z4~%9C``omCdMbK?SY&iH+JY;@GG&@K^u|?`oDyjBfJ!A%rq**c>r`GJVf>?>cPCMv zM!c;Xr4k5_GB1R@HZGAvKo;4H@1OCadS)s~{Z2$(YFH6=Gi~Qqp-gyWE5nONs2&sL zpx@?60(lud_H%^O*9%@c0E;6gK2mT7wKknm_xpyD@5UtAY;20stmcpA7N#OM+C&2( z&OF%8T-rhLHg0^Kt^SLLJD+aoAZ(otY_DCl^^X2rAn66KzFhr6KIkO_=jaYqNuNUZ zr|!vu`&;O3xI_r5j1pbW>k)8i9Lw!`$nK-ou%#_`bbB&$Dy!zij=fq~gbBE>4($}x zmlvy;j^^*^jtAu{k^p6X@TO6G5pJkJ?Na(PBT0q3_Q8(3X3ENujIUM!j6jJT3N$iu z;wFAboKM-D^0W)vS~wznIol~pB^2Sr^yHMOe8Ja8RIsmrab#Z0V0pyF;gyGp+E0JF zX57SCU>9BaW=BklN1!&GxgHKN+te>69!nUnq^u~yilUe_4npHJZ)s)T$>6A%DEJm= z2bhi=_J7{@2|El8Jp3`?**qhG?G%j_6ryAO#MCgnK=cHhv;D;#>hB3(&Noq>+f7ti zL!@o9O*hye7EZf(O7p@NQ>P#NxB?6g97I-D-4cy%NZ?n`s&MJOxc^*aHSt?nE`j;` z!(A(7d;jMaQPt7}&J4EE5{UtfV+e~5Cz11QC{D6OsL$T8l=SeUjKQ*&qswP4|M6g4 zqjLX1=6r#U8|vNj8n@6I6RoKw74Qu=R=96N?DPJ~XO6+RgWjx%&hFQW#hSOcUb`~7 zzUBwJ=^5R%@&INXv)`P{{2jzyxB`R(MC_t z?vD>NsP0-Y5tHDb9iE(pnH4M++R|^GCWsPm+;S|dwwGmMEikDtnYh?tUX?6!4vgYE z)QV^g&{2fZ<(k%JNzpXG;OO5Do4Qn!8Du&|+Xayc2_pobRAIU0*oz3uLpgB92EYhk zS~jb2IJ3q8J@s(}hwHGN!{IQiCr}4RrjzMe>YF_^5 z=jW{FoHM?M=G>Q6*iL{M`Rgp!tY14Eq>|$O2J{e5ZTFSdU^r>p)H_8@`R|I#N9tz` zi#NV?-aR_1y#ccd{I?J9uj-z|Cr_NNS8)Hj}E0p1wmqCK#4clhzszP}b&KWaEO!b(@IlASVFS~4_Xq$amo z_=+2fpPR0H&GFmS47YtQw&Hh#UD`KoHxMNOg~V?4lA9Ee3~h@>RP*=n-s&7H@TqaE z(V30Vvc-vuCi5@dm`2{GS`KB4PkQe;am|m}4*a;xR`=zho!I)E_?3#uOM$8#hw=?q z5K>`3ea#x(yT1Lnuv7d~pSeISsd?PxOfOebh#6>L+}e_^u>7jY&z>|Fu&0#4zElYz zq8?;qS;}mr3OAm{`m)e`**$0J{|<*JORO@zcgr|6U1D~6C=&NpUu-f|f>Oa1cLtz;fMy(PuI1b4Yuf9Rw1C zXIm6oHON|w*G~vz!4#s*#js6a@*B5wZg!tP`;+l4LQRS3*N=_$Fb}xJUo_W{R0&hQti99WygCGuzks{{45qx4ZRf zFV(&E>S^X^TCG;A1tYauI`h8pz5zgz7MBtS0D%Ai@Z$o!F9SpXV4$FX?hgkJ4h9Yh z3keAU0f_(u0|kqOfQ*cUfP{#GhK+%OiiwJdghB8L69)$m4-XlGkeC3M7#kN4_YV^w zI5;>Y1SC8pBs?w(5(@5rw|nmaAVUF;fj6K)WB>><5EL2s-Uq<>5E2CRkGTKpz#%}u zAVL3%{J{UaNFXQ(7&rvv`w{>S^dk}p6zQX&kA>Gg`~-sk%HeMS@Zt&OKaBtYOtKU{ zyx|dZB`^NaH*En~T$c^|i7NGxYqh^I_y_ohmH^eMxpji!hG$U++#r=*p0hkc0wPX6 z_rd=|go_80zbE=bKbot&cw6s!%MtFRvO*YPBp69+>e%5&Id_H6^pP`zx+hN6>bPb` z3~!E`#Ml0C{OD`*bFPO0>?84=^>1jlV*^=MFYLvqk|mC|(~*t<&^7DJXm;{djfx`x z76lscl26}!e!=F*De*`x3L3>k1cRBgs~Oql`Vqe-rav42OYdV_)qHF<>(o@&KINEy z{P>jOt)JJtxN;MHf^kDgv;RO{ratgv`G90w-PM(ZX*POLY1Pi0TpzRFxJsZ(a^2X@iG~HKc*O)*0U@(;3KQ^v5R3uJZu&YWLi( zemf5>W|A>4FJxM&ULCtTo~u0}YK||O zK=7{Wd`TI%fLZlk)M+MnTwNSKhqEf0?VeYHkm?5|*X?y$voLjbD7Pele^57avmcTB zO-2SIgCh3pBJ#mEE%-tOfIs2|v0k4s?%1gpz`}JVx>=#u`*qynTJ4y}gL!TEm6j^j zQr&7#+vdcpdVZivRq?WlE$1ZpbZ59K44(pz!5`$<&Jp9MjOC?dOTqSCPu;M176E;&@ZRGv|J+8ItjvZt8-GHiSKg zgK7TiqXRx@ou0^={@lg9KJs3Z=sjS9km%ij5GNPx`vm|-#4|AihB)(FWOH?`o2!)B zhLjSbry0}Jht&MY3UfH1w5xk|Q+Y@gEoo-2A0cX@{@#^8;E#q!D62pINq20GY~BNj zE(6zk$92A$re4B5FxOc$I?kCgf&-1BHGJ#+CRDN21-jYJ@gdVc9jF`?AzV@<{QDQ`KzZzT3MRpfS#4n7q6s$hlsG9U`TP_vIP^R&tm`#o~{^)0~Mgr*3 zo!`XdO4C4;8ITGE1ZdF~2ee7xgdY6G7AQ2o;k4vE@liHJai3ndHCx&5#rZn4qO?@s znHR=86q}PhjH|xY?3-U7O06$uMsxb+2G2zbf?V496#^`Kk^aRQB&eoqzu__OL(~uAyh9xR#CR204+}0uLV1*s@ZF~ledri#nuCu~r%|6J zXL8T~UnG@Lpfk_^^BaK@=50>|N19>cF(m)@JVB2<*XHZK))$UOG2u#PnwMRK^BwN0 zlx_EH=g&0x=#$S~J}?4+?#-Q3>^}5gmDr&ooT037vtq#gGq}E!B2-KM#SxHqe8F|f zZ}HJEAMXu!$9&CteIX@Km1egnon11T&AA{}yJF{71pxRI<@HKpKIP9FPTZ#|1wuPT zF%HrI8^HMQ1p^>f)~I{JuD+g@)dC=c4JAs#gbK$tx&Q!-5gtBet6BelWcQR?`#2sWYp{_N4tG1UhZ0b<#|B>_NC{sJZ4^8Xv=Zy**0 zn9tvWe+TV$YyTen8|;QR?*6yne;Gte(nzK0zo~TtM&ViDpXxq-AbS44TTwEJ=@sMUTX5Ymb$Tt&4 zqVlJr5tx1WMvWW)Eg1kJ;NpgvJz&EsXW;vp^;hKmX%xV9BZc?`woB|^LUHW#}pRJw)u=YO&7qq>ymg^ zL1oFl9{u$xXoYxP6P!cT=7eSn*m&$XP-!RHow4%*^F*K)oDN!6jq+s)N{%^pv*RLk zh$Ykt?P%1!+Y!m9rD)rjIz`HrdIzHRIKeJmgdLjB7Dd;QSw6Od4ZZENDJy`yy6h|v zVlIlUu~KbK(gZKzs|KGGYnNV8`rbQ0Q)}jE%16jrC7-`oR=2t<6F%ED2d%K>d{?|F z-Br(9^}22(X+S3tB`s4YfH8ON@TsXS5rL)oXxDS zAk)#+!q$qfzLMOOGjR`lhM)Dfx+DAUbTx2xnB8r#Vc3EcS^cE_~ z%PX{_?F%Es?N1;c!s~%F>p?wz0&`X{ry3@OMlzBDBBWsF@}?TWI|^d3BtXV4|YoJkBaueyoI3Wi_X$+Q?sceHu6=yum-)FKX4QwIvG8XsYl7m$2~!5Qj^@iPs}56L@=-FBNROJ!QQzs^P!S z7C}_f53IWEu4yP7UF(kbMU1|Dk##$Kb+73MTC*?GEhsw_s|x?hc#=;)la&)+fl>JV zlXE2L9iaPV-ojQ4QOXJ++_jy=WBUu^8^5mAsQInd`SkO(zV&nXQEM8uVs3Q;4cHmh zh)|lU;;ZM}V*ibr5=y&T^HOwEO99`!)ugUMb{-79KAo8jnQ0o&rRLRUeHOb@=$QTD z7!FsjIj8kLeAfRkYVC(zNBhkpZxCkI0QkQ36+4n1XC~}w(D<65*h(T=g(Ev|pYb-I z-`3!Q5II$z*w@t-jiz?3OcWn4Bp0|>$`?;(#Y}+-7sA4-`*}}LFFRKwc{c2FN_As{ zhA(@Au$#6Wo&hAMyKu!IsdA|f(Nv#U#46=1gz^}MDl2dd*`Y|lJj2(D`T5wMf2OzK zLf@K+MK)1DE_=<@&*PT;fUow7AIt@}+$M$N;n>uO9Gw2>ijZZU5{m-ihKUW@x(ngyuPE#aPh{Rv%|N9r!L560it6+seNN3POT*DNl^jc_iH+{N zp|_6=TOIp?+o*(yj0>KOecHCTGtQ=O`W?O@Bn>|e^N=s8$T2kF<{b_mXFYRoF%V53 zj5x|X;K@Gm9B&HVmw3#=C0J&{m?A5=t@UZ6rK?>E6g%&>Y***WHCefUe{tKVe;uHW zhnO*wxK!7YO~JYMme`%vZ%^}c`)Q{%r!O;udEDnzB_LL4MKU{=7S6cWHr4L+vj{II zDRqB>ZjJ-tYh8u4E}QNr1y_!aN=V(z|bcHwXn7u1AaNnNE%4cMHi+RU9*nd8=v zYwmC;jgjj~BT`jlTN%Pw-!u)F(}+namQc#tCzk({aWn{AxT$Rkhu87YRjPqlz-HR? zz6)xT%-n5AVdxRJ@~wEIs-NvoE$3aJMTzjE3LEIYBIgmzI{@@gb$bhI`lrkVdD0cM zU!38fVqA@(hN&$g`WC=I%%QX@4Hc)B!NMUIygXUm`=W%FpjGT7Tv{qrS>5z=MNC3N zc2A{@XfUZ&$Sx@6f5|mGVmaXxS62rq)8BC6I5@9KZEiWm&$|p{g(pbfNA6$Co2zq5 zAbUWg?V^1L2+h!T)t}dNA%{bQmTH6|mZq**p5pDDP0q=es>b4!#?i8XoBM_Bd;Cvb zet3Rh3{j$ zV6*M#hI91W??Ki;^yebA;-S#5-&fPxGdt{7q!)iS-ENAp*)C&t=FSi&AUf3s*cM`L zW!|hv@1jo`j}^gEm&K+!riC1*E*Ggv%QF(57NKfsn z)S!RnHp{qDK~LCLJvUE(DzO;(W0v_>q#;r{x4uYfyvjJ zbgm@>NrD4f2-J9WAFd31DSXgUSUXr6z9>ilkA3$!a~^KMJgP9aRehD!KqoDAH-A^g zu>l&$&uHXYPU6z2Z=a&@I#N?>%jq3u$s(!190}g=J~S*YWB?Ep2nq6GegXT3iuK2= z0S1nYf<~m2K&Xhs#4LnL%&34aZ0Ha`qMU!hN+u{`;J^8os`X(T5ddECb62TVsFu%K zHfsHk0XJT+4-CFdOyeA^l$D-gN2jQ??1;m#-Nw%+65}F! zEAjHsQB%&oQ{9_m3oIpuE5}p{;jO_K-x%~bzi|QROtdfXKu8; z)>u0G17kdrAg$t%iI(r%s%$I;Ryyauzk=>qWliQ?jtFdedo}1;7Np#q!NT zEO35RR9%>oUt>7^dRCMg+z`sR{`OX$n8~=cB1nD2tH`)TK%=VO7m`l3JrN^2Y_zdw zU?z}Eqv+4h61pX!nkM12%ue)7X_2v1pzl=kQ+bHzNc&Pd*vc{gXMdG538Gi>J+vOA zum8^%YfE19ZB7plA1||ysh&sTeBST}H168=z?X3QNCCxn071D8slis#9^Y^eZ}Ocp zYE)OtTVw&G;5E(*ZKMbhs=zM~@=>_NpVLV`ZzJdgZWKZ;5U_7{N)7xP`Q`_e157RD zr2Hv1I6Gfn(KKH`p+4z!9_be}ToW)10-35kTJzPWl0b2{T`|f=%m|yjLe`|qk-a3- zAR?!|bQYH8jasOsHB7%aCmQO9DZK-{{W^zVxYM4uU*FU>XFAsj&acV~Oc;6w_0SV= zexJHyQx@9LNin$35Ns;;J9iIQTV_{<3d)KHEy@Wc?6@7ku6IW>*jp%w5=V=#+qOr- zIpEnDc**FLg!kMtKD&s}6xe%t_Y_u`$}n;C#O-;<@l31WAL^uT9m5g~$rG*XJms>Sm#Xpsf*C=aF|q!+$lLdv?navB+THFFoFboNpTU$9hXF zm%6j{5$zUSi@In#7$!^dJsnoTRf<(&Cy%I=b$-=!S=ezReObEEMi-U{U-JGz8}}&0 zZm|)m{Zo#E+OlMtvo&HW($iXS?Gf3Fy3E(#f*#xB%+NIPS?`=hJ5N+qG(m zzXU4whV47xQmJnUSDU1^JONx}5mmoXA|qzT*&J0z$4~4biw&M>7}n2JQATbKi#YKe zFkL=w$}3jiA?ro1+)Z~iL^hvGN{306d9ew;-j=GRHSM*c<=0ad@|_13FDj404;DI& zY5WPa4PxiG=7+n7^D=D*oNnCYmC9Y;_h^PsHG{@W>RTrn98Bv}?|@F&^`610bl+E! z-tn&5X9had+H66&!$$C%nr98YHw=Ln!{?hg;7(}S6Gs>$Gb?&@eYvv{p#6+ZJ8yLxxGJa-3iZ+zhB-P%`L(C>=U{g z4ab1*1N3^(nA*sNzCVIF4ht6F_JBU07n-+~@#-^PF7Lh-IAOof&;B41y~gPstcw&M z?z(%vUH2SN-FbXaRb|djUyG?xCaE@1&_ZDiRb@YZeZk!rNaIqGHcOZy@U4KHc?Z-k zuZ22;pKlwhuD(M05y;IUW|WG~N#Q(RTiE12H3gznaayOg@rOw?VG{@ z5I6bG68guuZx{GWUPISzSn?Qr!@oJxBO1;ss@HvM_O&Z|;>5Re63%hA(6lG$$#I+E z{keaj@o&_rEe&f^Wpp*<=viJW>(*gOT>AV91-{On5+DR65 zQ>#bRO*|>5>~*YtR~sUBAwn-J{avYM!dE+_w0%UVmRm1>28`GnJZMV0IRX$sBIF7L zstceP6~Tm2L~nyoCjzG-E0Kqjg>a7nNuYV)10cER+^%QdHKx7YpJm#V+r5&`nlEM3 zKT&^YX63l}gf_8-%a=E8PZf`SC|5TjcyM6NT4sjqg-9erVi07z$QK;Y=HMjCN`V3u zKwVPRsB9R2C~Lyw+;b%w++zZ(UcXVa$g*F)ep(&(>((g_2oW$Yp=^}^hRH|8{J9J) zahLTSU=d!FU2E|M!K0uV*)J2iaD!mAuuS)3|)3p1a}c$uqpqc zL|Y)Xm^TpwBMb{_`SUMJVCstYMiJRk#K8rWP~zwOTEU}o!m*|w4T8FZrb@m$c<8$1 zkkWpnP!_HVWbGmB&Dq0?qwDcMsaJwG?QyEtPgOR+0KCb^I)dP^*e2*J2uO-ng7GfQ z6GCKw=~haug@IMC`iu*2;#mbyAsu5dnxZCS&I@rXtpF5S(LRRl0JUdB8> z{J24xHc8k!RLkbT0@30Xb_dyM$ z_Enr}|NV#y#f=yyl9GcGz-baT=2@X(ar2-m-imK%Eeb-LI9_Qm9vQff&H^}7AP2Mm ztjdW0tVGfc+fS?X6+#oqSwP;zCu_n9&Vzl32%5I*9`w(>gHpktzy5>Bor)X2WKc;a zpHU<-w+H(3YF>HuTid~vCqm(4%1`$%9h+P3gkiz30QNlCXs~@4n+wIAS9m);WWryc z-QB{!m&9l7)e=iFd!u;>h-lBpG#Z-|3awaea@RaPlp*1DPRtU<^9D*lsgk6u*)^`3 zsXKht-78cb^pBv(ee|jBXd;J&DdHXk_mc zc%f{Zv2ne0;gC z3(p+qx~*j*T(#k+ecVd+=_Hn|m=uOjPQG#Rm?K)9>u9T}CA*;?bBHyOXqa;bv8~}( zK-#+4soOii{v7~A7>&H*rx`4i$_sAg&HKiWR>d2I-EIN?!v}Y3F(Qt0jVbbH9n=U} zna+ME>(Ky$RsC?>l=-7NdC}727R?Whqn87XHS}qRZdijRj>?*Ljq>;vJbt4dzU-ZdK4W}&xnhk{DR-tb#=G}H7A zWeLJVI$>={%eGKzDRjq#+qkfjtnEc}tQ+uTgM?h^Pdd;L>gxxxc>~`QI_HrGnD^Tv zb4XmkA{=KVCaoM!m*d)3Woe^PSg~lmDl&8;#C|*{sz;Z9zsG)y)AXZ^08Y3cR=j4s z19s;{tOhG6-1}*Y6rfCWWGD`yaly4kZQcRYIS_r1XE>LNE7u8QM9l-eonW_RY*Y&i zLJ7~ZAG-xG_48C3d1)33KAw?tzae&U3X6$0&#RJSXwNYYi$aMN5jzqsba-uERpp#k$u05>H^}lV6!XT*C)=4nK6qID?=_yx%zNOVU{2=BCvZ{5MOk0Ee$v! z1q5yN%d_=kq_`v;FvpUy$TO@M?6A3czaxBCaEn$wBD+!l;)W@sEvlFJp-VOnxrsZW z-)5A00LH$@##dfZ&gYZDBhWR=&9mQ2Besj~>Nrb_`%7;=VQsDa^q2VZV@2&> zL+KtEI`a6LW;`+Qu*GRAz{SRT+zzL;RAo5)E8N^P?ieq4r7rT6ljq1L16xa(d~5OI z^_S2sDmc>%;x(|%QV)cM2H^cPDK_=zq#o376MfN?s9Y;zYfE>aoar4G?v+`S2G}Fl z57(s!lf}9Ln@*DQ)KoE2cOI)s30?bc+v+@yI$e*@Y zLXx)C$@Qc#+!At<4lunRIDAO2>8BG-dJ+r0B?hYK3!I#W+|uKqSn}@K^o53%`+x5P zjYN+x*3~5GcGESDO@2GXEL0q}W=&oP-_?Qsxc4saO{%PxV2S9Ju9-cn zbkU;0CtP_K4Hn!a3_lmv+C|6&&q>R5>5`-?q%Sl2j*-NR4%la_Yd%(1-dkjtUFWOH zPT{u$I&qmbj!GgC!AKUl9_5!TRq<}38ofG4I%z{OaZvRxVvTw-|aT&ZW3mF%IbrpblQ2JR-kO9_ zMVj1VZ#5$wK@osn2b|I?pPS#zo|9QtgD!O6V)7byM#Lx1iEl4gI>(CJFivSBe`?Ir z&z|Z((NDaJu2VhEb2QJEa7Q>L%E#rC5ftIP>9rS0ooehWp4E&Uy?!fG(t$`mA|OyS z6iJDTxPKykAXrszv0fSOXWF3rp)rKHE*6|A)80Y1LBq_b9c2slYA9ay4j8WZtlN{x z+70K6zI=K#%$lNa#weW|f}ZLCHHbpJ2G**OAo1AS6I66HO8JZv!pi|oO1*lS!QAam zK%fxw*5Ib3>%YxEjy8{~8{W%wVC-XEl_;eyP{dQpnj{04yS70i>IAKhHN)qzb7`%- ztW(^gA6~|ey25JHLq$N{2@_L!f^i1tJn)lFanUi2TpoSoOp(|9IWtDy34BS)3dUM( z)gdI_>zFj~bc$l&dmd^IajFBFlVAx>?1i@_hQ5hz!>;FNa1mA^2MU51CIDz3c2iqs z3jV;Hz*zVg8^Kbchb8>*7cxS*{ne#)!3SBO(_Qtno(PXDm=6_ev*l*J6s=( zui~@ba@+dpejUXz0U^J*HE`bw@bCDeLR;DbwT-hA54!QuZ4H|nbB=Ec)jsWNTb$h8 z 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 literal 0 HcmV?d00001 diff --git a/assets/img/donate-dark.jpg b/assets/img/donate-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41883c7443a4482303cb803f8c889486a22203c0 GIT binary patch literal 19174 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 z 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 CX@e&K literal 0 HcmV?d00001 diff --git a/assets/img/esm.png b/assets/img/esm.png new file mode 100644 index 0000000000000000000000000000000000000000..22728998ea38754d393e07c44c2f87db8ee6a9c3 GIT binary patch literal 33697 zcma&N1yEeUvoE|zu%N+N0>LFXgvH(6o!}4%Ebi{^?iM^)aEIU?+;(wy32qo7&pbXQrq7*D^?r3v!b3jU1??LqIPeF5YGx(G+78aJFghLLH5DVLvb#wFA*VhkFMb#tStQe0%K!iT3T9SZeJB8g>#)mWo2b~)Fj1(giXz@*V2W#cqQ*kg}8ZyzuVaP zS)>cQ8d#`_&L)b4Sr;aP#iX-cu8V}#zDjvSew7guDRCG5@Li-NfG6F{Ov6*IC8A1G zkIq=1BigkiL^Q%uG&woBIczaNPPr?3LrL0X#@IwpK}1Mc(M4KOFyGJ1NYu{Wp;%Mf zSzlCBR>axGHPf|8OIS)qTrXZ(ozm8_DM0L(pXlZNT}{wrgrcgLgo>TEsGpy|ikh~E zaeRZ$*IYF%K^{?hPg`?wIV%kjh?%)gO_4-ZFrKPDGY5BgctpCrD5Jlm3|P_)V#4mp|rzM*f#CB(66p`qfVV*t+|s-o)?m{GU_!JonBD%klc`GiT)7QKXRk zVMP>Rk<~K%8eH%w|5%ECx3DzXAbmM~&_m!7gm>w1)!dtDcg3GDn)o^4YB2$T7smV_ zKYd7fa=jQ;6PqBI@mKRRnoP7g@9i@k7GcajW<+uqiYWXpwEZluGYY!>_H1+o=@j&%TC`8`Ls%cT0roWLkrT-ZMxi!dsf^YP}D-i3NgyLzNQvZ zjJCpC2TClVnStPiha3VI&z)NASGrdja*#)&xd?#yu39pqniKjg<30-gbOu`I`{!?8&Ea0@iUBTC|_b}RN=OWtA@#afvkkqE2 zCV1@W+L-8PyC=#Pv#CZvIIdI<8|QnqfT>lqf9Tz4K}#1a+aa$AElb9#IjC6>iZ_N+ z{tJH3o#POm8Kg~he+$yVPZ=A~m$e)ypQra#q$Q@2MhT!fHF7Nt?d2VI-PO2hPT(Uf$;nzM04Q} z?){~cM)qyT6?WhInUV2EoLlQW5(`!JiF*(s3TQZ8ouE*R^RRC=w)+aF6baV)t^`!DQ*3==8KEB6DKbMLiGJ zPf_#1_hKi~ihI(ZhY5cD^x6vPa;F@Lexegexr0BwVrwS@p`J3mGPg~4_E>J!qMxQz z$aCC<(`-b?3U(MfmD$;9axTKN@0F-fT%gxG)LFTHta{3a2qo4DbQg!i*d9_tkk<@Pn_{IHj0vr2MA9@}cogQaKf&H?eA2GB$|z8^ADRimZ@eW z2OC3(6_=+*gdfHe^|EKxo`Z@FQL3I3r~1%06vz;twpl4X4QE0o({r~&-0)f2dTg#{ zSx2Lj*>HbnW>80%rM{9tMyw2c`9!T9`4)tAS)=-l=Y7Ke>B?q@pUY!oOIh9+iK` zJ3o_ztk*&aknJG^z9#P*Q9JRy+G)rx(@5O4RV6bt8|=>)Xu^3G)9MZzC&up4tevUN zaZ$Go?RI%UE2i?f|IDON0t0N7_0CWow)7U8hS9)tk}OdxZgb0KJbfs;qw?QjK7cC+ z%?2gDWxPA|JT%n3+D2&MibQ@%S;%j8b#14~$Fa_U$bGc@s{Y$v(DZKGj;0S|2ENId z6FzyhZ!^k)MQD48^a#61o^|XT*K38+uP{)!Mmk4K#=41Ol^5x_6Jpqf1=f6!{75zt*oJ%qB+}@3Qn)f zqq&r4vd)uQfz_f*v>Yo&9)GswlY7b*ESi$!rRVblbe4fNs74j>m$(%Yo`YH%X0JQL zAmg1TG(ed$xHzWI6_$#Xldu^ILcNGo8|X(5&@+OWXbs1WwxZe3Yz7N~)p%h>{M!dH zFsw6pU%Pyr$c6c^Tf}DHOXU~E13UXRBh3+cV4pX%sf+q-rxN;~-JBVgEM@CpjIBR(G^j52cm z-Jyr<0c|6 zjX(Tcea1|lTHDL-iWSNCa}|Y78$?}Do=NvOxP32>2Fp=+Tbfen7|=I8EI3PktnP$} zIB>XM`@t#oP6Jw*Zxl?NBLmUy@{eUFtNw2TZG+`Sdp>pqf25O>HuI)F&4763mNFB5Xh^&i!~thlHv?< zX}+VSNWy-MA3rPB_EVbT{%ajQ?Ft)J&W=t(QJINH0H&32h0Q3yqs6Iq#!E-<{f^L~ zpXxIFx0&{PhOtybfw_wK?Z$lOXFeVK>j)jg@ zOOH8>S>!2v%aWr$yRCAeBM$b3_u86pafG8`=&cRy-|c~YX(>A$ZH2$1M1mix_vTwu zE10-X*WHV@GqGvW7U}!LY?&;&*W#^U|HjZNqyK0iu!%67f2ubSZO4Fqig*YR>^3Hv z&zoCI_>@Tl@?wYhR4#mjF@(yXH*?K-wFs{_V_6Gf(FSXS@q`rhpOGCBKjIFyyWC?x z>Ep|=_Sj1(8o#4eXefU441^HipOAV`u!c@?7jqR#^7hxttn2Hb&?~y%GM74{jz{+k zjQDRj2YN0QOJB`obM^t*l7LZmEmRhu7j*;J^;CbzIjch;ejiKof$2S`>H=7KogeX|^Vvi9X|qj1#R4AJ2GTuuIQ=R$V^i##{D2Zc7)KM`igQreR;QKoS19mXRU$;m=c- zyim1Z;q`rEvuWiM-Iho_dtIFylxxYi>{;~t&X(mmtQn*lMTNK^YE28n>1X)cf*vF- zpx=Xml|krmmA`r(kF8G-XhWDHK2w#Byc~{IXFBg90HHU?&>p|MLlEpSC+-&-S`A; zv$5YnjDx5$)Q)0DJd-@w7={ORNwL@rWZutA&%B2}Igo*}>r)^750 z@4u2mDEFSGr4%wZvNv6}PhG1=RLO;-OJy4GRLbOA+@9_lD?*kH7(tuo9krte>Gz|a z%kLyX4ZCD`bmJ`+)LUW7|K)GVrdVT??d}>5M7&a@F^AH1l1185f|Tqt2xN&^TZdj_zb-FhQ|hU zye%6!Yd*{Zp!tgsY3yGQW}W(!wSC>&`adB_8O{W?#@q)+++vkAAK$AR!4vnw*YuFO zb4bpMqDx_snk0Vz=VDZcz}xN8%%SmC!{V&KKv5UbRD(<_rMe<3*OnfvYy~H*@=(M3 zwgi4PHSb)=&%OQ?RhtbUEgWUEZxrP!)^3K)nuGr05Slios?8VzF5<0{L$m>;8eCJdl`i)S=yDfHydAQNpRft%vLvtP+XgX=!B{0%DFp5O{79O5 z6Yb#G6a(4?ux~jdG%m?kDt-I1VEveK``er?y0p3T(}~$P1!~D^qKI#TOV?^oVzkyW zd?hbMEb>|(5L$YEq~~T2I?SkzIZ3!WrO8n=ksW^M(5m99UsW7JL;ov{8$MgFl^1O< zI2kokZ!%Z~{j?ep3;J^sj=qaw1C%~q0YwZ%*vnopS|}9nMEq2Ami)#%+Q?K^O^QOT z!?dGnW@6)TV6ZKr^&xPyP(HY|?aQ{gR~n(2KGz7Egu(G6?deQ76^UyL@{!^~n#>l2 z5>%M@?l1CJ?GZGHu}u4JAJF>I!+8lul+cL6vWw5LNAxzuy!vi>m(8olf>wMT8EpB& z)wk7VK8twB&GiWp*)|bWKV0c6tc7mg($k-_K(UP=diRC(Yws~FXc40MIXR}plxWu6 zzBv^Ip7&`AJ9M2fT@Hx%J}!REg^h8Qy-uagPNAL7NOzO?U8K}>8!5nfw1a97*ZI=5 z~k6`JJ>n$I>+_ z4|0dW8E`jN3YKJ`VyO)x*k5xH8StNm7WnmYe(!WF+Xx=~=FAng1lo2s@O`N6DP!V$ zA64S5?62~{`CbUal2NcW379-)q&*ke^7{tAfWkE?z-Nvjv__i7V*eg>a2%c5turf0 z^L4QHj*`yv;IX;>lq|pyr;&JCDnE}2+=f&*$k)8?9l{mlvw74yVL)|GPM|vf}7~g!kK^bsQ4`FLcu^p57G*wb_i^m zP2`NqJ9P*&JDc0CG&o^36G!5V?Ivr>w|xzrXpe_Ckf#W?c`m__qtG5j3lL95__LDb z=IP<<)AsW%U(_H_Igj5h$$DKn^nn}&RP7$$5_yO{#Al8Rys5ey27k!|%@Y&_3G6gX8fxhd?CO3-scPdCOpF(4F5TOZ;qZyjtOBi;=iu z+MkfcrXbCcdX^7+86GvF%a1vqCWlPPIGH=xu||`XtF^e-Z5|q5=GNE+hOXWTy!wF|FOvLAkC#@eWQ1Ql9Pr*Hmgf z*pPv3n~gW5S4umV65ppK^LY4P0^FQpHJjij{vyr7FtfQCx!XrgVu4rRY~RM39=4{P z^<4qoE%W%{Uyd<^93uq6Cj;BnY+)VhYT6)q2CYHM_=|)Blx20P#91GyXZBf57W^Qg z!9V&L#-Q=vw)tA}!S8^mV>cHA5@j0cAqmDIDRliL<-IEVtG}A z@k%#>0uYt;Lu?u~^|01Iftp89v*uAMuNEaurG6L^-6^3vuuD&#Vo6v(y7g)c%3@;V#Ck=nfj8Aj52D@s_)md6AGLJWH91dTrbNW*EMt#tInA%_-(?+5fh!HJ^c7slis+Q2czK^H* zL&pp;{N-WIcDVpf0>;pGH=@QASdinUm?HSbK>UmyxqCh{?CB2b?uo9AcqO0FZ^8kk zqb`O=NPUjAB{*E*A5+dzCaMR({35?BLW?_!``x7OHfo8SJ&+7HS(Mxf`vU<@5%F-V z)T1wECvSQ46S5yF3~txmU~e`Bx%oA?KQLMDhOg>x52$+1XLG6R{jkcV)JAs@r3D90 zF86!tKGA&beGACP>54MtpB+klJ{rhK5{D@0{m(JEWIQp zVym}3&`EVR$MnhB@sE5;=jIxb8+L8ybszKqLXrkiew;Km4ZI}ChYu! zJ~f-g==ghTHm_NIFyC|hy?KPj1=ZFtwgm6c_yy5p62*w$UZ3ZqTOnt@IwiKsy#&`+ zf~LC^ntIBwtoQUB(9^tm&%UlN-C|6qUN=1}eYeaje8E&E#A3pBevq_?bRlPSP9_I9 zm7m2b8PSS#7t$6j!nJTaQ_rjz?PmMnP6%;;WB(A`L)-am-A55`}q|f z=q_?b#L94L7KQH^I$UA}1kjNi^ZQ~8%z8p#tkWkBZrqmO@H*mJ-Jx9F;96bW=PJ;$ zu{6+#_p%{=mzjBKHNe;3b03V9KMuH}5CyLyZha@@3+k_X%f5(74)M~@e6HJ6u!1UHjQl#3Y23k~@- zimxF@a|P|bSI>!3^pjE!ZE6M=LvU&G#uig-Vxwi6aYb`b>+nur&d%?nxqsI^8uXV- zo2WMp+R#e6vK2823+25r{_E)nURKQyYx`B$nZVTt-a8cUC6>|^RY2jQxX^K*NO~E+ z;`o$t16S>;ZSgnnd|&P(OrdWX;{ROt{vV6s|GhKF_x~v7N06wWfG}bITTz~6)9I~f z&p-X2tpjYyfA#yL|2F)8BPVk{&b$@+Sx_HGNzbL~2Pq%Xg8uR2i2d7Hp!xWZX0d-0 zf9?7o`rrBg-ts=RRvonp8~^}z$4j-yfKP9ho1k@SJSxItv*O@*r6JqOasdEYTyJb1 zt?2)|!2h4aPI&I$hR1*5vfJE$n}6`OJz+;(Am73Gc&UAc_0F$n;$vYmnwSxwu{9LY zx>#vLW88&q6Am7pTc|3Yn&FPEY?e@6z+~QBTx5QQq3w8V|FQeSoomtVp5=gQvUh~| z1Xiur%j(G3%oc*5&avut8hWbFzHP`38|uR2xl^0Bx`qI8aTdiif*<{lFw3+yl<{XA z?KOZJnfU2omBt>9JDku3c`-drWW@EYhhU38~^7Fpl_!xk{oIC&3I zKO+n6S_dRC^#A!{$g&E+VJtYbfsN!o#sknUn&`Ds>qUV8?_{T3<@e{%gnCpsYLwRx zkF8<+0(LYG&0XpNLOl+APBt}~fIPz~1!x)=FoN5X-pUFEBvs@eNW2|Jm(c*XY2cqw z!0h0Ek+Wz*-m_=`SGRQY6NEgG;!FqY9fy|osrKvECA^oXCZJ!#w^lHKHnL^Pgigvk#hFG?BhBT=@*28e;Icq=4qjB|&2 z!fd>68v!7483P$ok549dPuM0O9%}h8rLL^j$}CN#GV#l_*sKCV5N|7;)e;#30SHO0 z#%Dsj^&@a>xan^L8O58%!=jUFbJeL&a69C|=H%+P{=5` zQ0hA_QUcXwD^82G7#XvjTimx69gX`cmfo!1x@OT7jr>OA2~seZiJ$&a__eKOs_dj> zu~^9LYZT}1K&>oeOxZvG6gIS~R`Z?x?Q+K(-v5%hIIhZBC;h=u4FHIl|Eu?GzT=3E z-~b0e?9TNj$?&yuU`MA09YX=#FYrCk)SxueVQ0^r?Oh?JdNCcKJjV2YO#R5mPh$Zoq)`FzDCE5r$=a zY+rZcG1Yf(Y26Kz2BF*Ia5$aJ4212e1P`GBi2W>f_^wI2TacJR5IH!%XHT^W`C0b} z*fF%&eRw}_Ue$?v%ERC^pauv~V}UW!(itl<5l!{)+jji7|^-S9XEV6nQ) zO0E#(EpX3<@;mlo4+&5s`2O{2uiNozC+IDnFL$x70%E`?<2`hBATlf$x-G<7f`Njb zTtSTZ7VxD6Wsbj;zg%Q3@1_}%*4{gy6*Jl5IK((yq|#ka|8)L}yjc;DmzL$4gD1MI z?kQ~J8BYlU>^!v$yYETsqgd81O_bL`8AQ%);glx4CwRLGB3XanNf6A_do zCU|{04e(7+Y>Rq7qn&x~HI?j7BIG4yxxRewtf-KI6Vi^gIV*$lyV!2W1`O1ZTq=~a zHLaZ7wBEd)tR}BDExY>F-DJ4Jc7JnNMFwoO7<{}`IQ;UDqi*fZTc5nvgq63 z*)T6m>DaH6N-z-MCcBC(WK$LTPpISEsXhq6l91(E1q2XGo|K<3z8&Q!cwyH0-Dv>H z+}qhX!LZ$umkI!@Utmwr+fjh*3_g$ijTmsHIfGwUeWMQ9e62iV(U^~+WVZjV!5i$4 z%W(7l0e%76?PY_I0jmkFuzykpdEf9g=#RYF zrMT+uFfsnt_CRYp*;i13E4W>7DB@U7JGS4*jr*P|te?l%oot#D$XoNmyUNsGaqQb`%PJD)0?((&p21ua{<>kGwBSrvjJ)ile}jn*noDbw;o2& z>6`bQZ{HLF+9lse-8YWG1!l+ZDc-NI?t8N3rIRPxH^}QV+bYHteO+TtIgd`Iq!x*} zWjT7gO#+DHb^Pe(+$mJXde$Kuo5mj2291-@HbGK_;@DlzHETR9s@tm}UdJRhFlVpV z{9fFBeVB>ZFmhfeaqa!w7fb%1xH%XL?)!P~m-%kmoF%TDutM$^QUZ<_1ZBAo}?=ojgA+l8eaU|x=ywiAtEm{(sr z`{18!zn%>=CB+!*JN;GXBU;HZURldmuWj3#(=?FHCsep|_cn@YbrK#nHz6p4Q3{h` zR3GNM;mZ(AxRE%rNd0g+Vdhx7$+rM@*hDy>q;`C!@+Q}pJ$pESUo*GyTiSnq(`Fyo z4CCi31li877xSdqEWWUx`OP)J`nCE3p+7o%W_77m?fK=ZxoqbOKavXoDipRCt%k0a zEk@H7K(m(60JCzAn*+tIHxr?RQ@#BheQ1EJfaYOQ%kUe8KKZQ$Fd)yI2nZ_gxI(dR zqZ98tMgZXS$>%qxKNogj*8%^r2Q|~-fPQt%khx=mn$r*fC1l_T2om(6CkSmguzA@2 z@hlwy;5?VtoG<2X^gC%=6k_NC_m2xDi;h?BZkhTX6BPD#H$<~f44wXPk{$LRsUdG5 z4wOCjg5KctWLpC4^j)JZ3I7?nXVWj=t|yVQdTAK+&j8)6&0?+p^!D8^PH!Rdzk!<7 z4P+`_5=(;uzn?)uzC;0;cgWvNxe=fQhg`W^>k}1)tnhy1M6<#Nc}|jpYu*4|-;mkQ z>_PBJQTw8YZxm=c;EdS6IsFH#?-#?90XfLxzd4OfcIMk?z_%dSMK6uhl9)9~SoF*5 z-OE`vcgz@7cY=H0kAXcpo(s!UmU*UmnZd^G;cs|ki<-mrU2XbhV;x_trC%m?Akh01 z4kze_QMdD8N{y2~2rKkhe7>=v<{-f@;fCztjVqbwh~I)^^koXnRSEBiN3X};w&?YI}DUa>El%_i}? zBXOu7_sN_|Lvy+=A&Dz{E?zj$IclT=1%F0hWRvbE5$Knp)vP+13K#hAoA-oZ%(u+R zoe4bCr5M>}j%ByZ*`?7mRF|gg%*f$&;Zf6_NO*89K(e1HHh7N=2i>Qdv2?c@C_CvJ zC$18`qe3VAlyq3Z91V#uYUKYB*iE;)CE;%TQxpd(KywxH2^w%F9^Bl5CA=I!su2Tx zHqX6kHiR6zX_#hP_69wwFQn0Vo)yUkjo{DJH#oLvQol**TSm)LS!tFI#oHbsnIvLzGqq&w+@p%+*+EkxYo=j{0d?13(+fMmR0Ls*_Wpv@ZR~&Q}b0%{q=`)KkD%& zCk2nQSz|L2r>62N7fX z4&aPH6Uj4*bj`&=9lNk}5m^QR3Z$3Yo{X*$*TWoB4HStHnW*MpbV57myv1HKZ`AmB z_~(zlD>hK4h75Lpm%)V+eHu;NQ4fS8zseqcFAvrNq119s%NPAQpf1N!UdlZ=_r4%B z4%uq8d{$Odr+BENhD9lQu-#=oq9*<&ArfBGdM~37onHGXs1$jf7x=VsHeGg-%Hp{f zdD^P$BOK zcd*Q5AoC%4m{UB8^pJ_yn*!DK2FSZXQBC%+M>MF(mVH^}B?_cl-32mUYr*7IzM~$~ z<4;153E%=vCshg;$yPG|{SLFd>rhvx3}`7hs3EG!aHm@69pS-l%9f|%b=;tv7+&xU z8vjA9R<*{_JM}cC>%AsdjM(Bn=eSv4fp$+V=8ht{!XoZ5;+LI(2B1fWj(76i__rSF zW^hjQN1N|6gQr(g9HgF6c|L!0F;c~5j&@yMeciG4cCp;X)?&dCL|9iQP&HVF+Dy?a z6f6yVnY#om=wia9AsaFPnGro%pQat`hb%I)fy@{*gLXe~^=ybYT2gqBE2%31-I(TZ z@ak|Pk{(_=Ip-r4-8U!TC2HXM*6lztZZVycDk1U0<&#Ns#nx1uS$<0Q8FbGk zL}DHP5zkrXdlZ5_V)a3>3#pINESJsrT}$ToJPQ=XvQJsyu zsUMj+k}I|X@kyO4Ymua>UAJ0o@V3oN8jMJyM?s{?y+dD@J^RzitH1CsG}+#kSn z>~Yc~bD`wl>EI#SX;lgtPrb)-F#Q$TN8LR_O9TBPZBS46MOKItc8cxj1#CgCv?syK zSH^?ew^#ZW2X0qexC3fbSrpu0voF)8s1ej9C@fvQ@pvBs$Xzd|; z(aY2h;ZHV)1{L*TPnR7c>?d8t;$h$={!~&4 z{ATHG1wW5=6yonW8$EQBXfcKE`uk%V()V=h8sTmTC*AF{kTf%r4GW!|?jb^ChdKRf zE;|6nr64H$XyDNty|Cu(3V;g92OsOXr&_hhkCmKvmS*TJi`7LXlsBCrlL&mueR2GU9I0S%dc?Au8RxI?>dcE?&7aNo_is{h z9ut0EwfeVV~J85fJEd zRxI8i{^z#zPa2@HF3SEK6{Ub>^Muy>{#9s2BRae?fW%pHRm3{~cQ6WK)X}Jo3Sm{- zd;fZBb*YW{(l0)M#0kYXh0+f9zdJo zH-!BCjyJzY5o_U0;egsjj9s>I7$Ryd1sssCM&GkcE{x9HP6B!*TL!))*QL_&dEa~>_x@0DF-VO^-wp3g5Ujg#JN#;VjY6TbpRJ*DdRK8 zE_79ZXkl^L2yUf<10m+9>H3`UVWn5JFsVp0Lcs*P4yQRhtoQ~|-biX;gdnlm)n7zZ z>!$IDL|&g9D9_69*)J%6OXi6ziIEpn6~aSM)!Nf7=JiHbJyy?qfu}`SQUUVk(vlNi&47mE1!(O47WIUqZzjM1O;v=e2KjTw_1j zMY24d)HB9$uINJ^54w8J&qSF0{wloqtjuyV<&-LhYS>;Ltaqu5!OS@M+B1Jm>jAOC zogrf?%eJLV&N;2?3bXp{7S_Io;}4*>g=3^3zQMOo5^}_{W?gi>vOy)V-0nDxLZoAX zQ13oWoB!rH`srEKrCtcH^WvaY3i_YwEQ2Q(QLv1IB;LDf$cumSO4k1bi`yc2~*H5klDrrlOLLVM)dzI<%74 z4;}Dl`ghHrLqW(|EtnWk#Y7dyX6aIidyfF1rTXKK%bN^n$;r8kgQ6F~BN!@w{Dme& zd;_f)r}G!qssrI+MmWvXS_tI$PGDT3c_f?7AF6D2Ld_DB+>B4wFzP=+ktFE+Cm(w# z#0-k(tz75oH=sg4}$w@Dc`bfE~mb6kVHd0os~PYHbo4*e5ZAEuO)u~^G}r|ikZy`oUh!8m*)2&U~(RlhSh~ulukldNYVD4 zZt=BRa7yuyOogBF;U(U^JKMTE5&KdFi7iKz9D_d~!H;yjIk_LQ>BRh1V4Ivdf_n>L ze`iwjj1H=UHm2P)XGlA*J_)>h7ed2wV^d@Ath7+&V&Mo!|K|NLhg~}E^VDgFO~KlC zyW>XGSD4g&QdC@HYNygZyuPJjQ8;kOw7|14SiBjQdT;JGnR};xQApQ;dh=pBpz0dY zYj_rWhxkL?vYuyHA7kD7HSdr!iXz;WKp_#FpyEmuv{XU&0|jaLaC>~xo`Xi@3Eqq2 zLUqyWYRLM#VVkB5auBO-f-Pp&e5P_4k-wD-D#V%Zg3q&yFWMXApjHIGm`KolYKSt4 zqMU}x2EJa3=4{clp&jWO#98|eJiSjjF#qPeR=W9?NunKsQy289q@fE-emlB*D}>X z29*+~^Jn_GC=zK{{IIRFar?Q2sVkOIfCeh{cl^Ai?fv_SEeTqU+@rdq2HgHmRZLyJ z1s(SvK(d(nfREaB(RhMOyt()^#ge9RR)bP4KpE1!VR{^t*x z&mUe@wr;MHP|P&rwYF$NFM9t?uFKnHlMu|D={tmu3YOh0k~^{Nl-k!-+foCZZO|=j z?4A=$=V8bc8?KG59N`D965qcrCitOS!w=1a61U$%HxC@P|1sF4KXeQB{LS)k z>P_HIK8W)4mIlN9&OAQ#WOK=i zHE8ped$rB3mx<}PAF#4^0}7@(kLbJ3KGq(Prp@AGfvu|KUtHS^O}vGWGHVYEV*6k} zyH&ZjMr;PMqaFR1C zlw`opchKte@d7v_26*scIed_!4z})CI8)f$GN-BbX>kfX0=@=Ut{H|%z1EpuBaDm7-DU>*19d4*btZGM@)@Es5xkwJdv3C9A@aa4SsvuYWqFi5RyF6m%v+#u$|_~*l( z(I5Krc9n|Vgb1&PW=oe~)+&z)kI4eGNVPRnH%;hdUzHXJ{$3uYN;J)YMeg*S{ehU^l-Cz| zB_uMvK7q_X0Z1`u58RG$P}i$x>c&@PqP^B!MnhEo@aUXMQjGpC)Q)hB=@^Sb&J-Q@ zYuUmTE09Z7llC5V-;OlZr0(bBp*Jl=UBn2=0k4)yjJs@K}2Do~M*9`}p$DYBNg9D{}nx z?)}jt?w{KbzIWFGm!DJ!pYudQm=M6NrMC!Ah8db&46VX#+&pYw*cly+3jh`vG6^z% zIYkFoQCMcwX&)cnC-U!fbor`^;8Ua6buQY1EM$Mq+*n-(8^d~S+}2#6mrU3*~a~RLm?RgE}wgk`7ZrfutyCx_}M4u{0pH3(l@?U^yiO#2#>LaT@Ui8 z1}<6az`mlxT+mFV{|egkMlKO)jZ+8naWT!ck7ti{nQQD(z(Bj?^;Gs%s2CZhaT-yn<=4+?I(zDcm>bIPvV`$~h&mhAz9<6YLG53~`O6O82W z84uzW*SHK*FtCBd&y0m}aFJk2fy8LmA+RZ}5Q{UpeF&4DNmhZYgtPGdHc(7w}^aVR2ra<`EZrYVSHM^+J=LQ$sxctU4c(x$%dzOo`;#;q%m zJpiUP@g;9F3t1)IgsVFcTaa{Xps41B+HI`(Crx7Ylcxe%+MYpxBhPN>Ekh zr5vmDgxHz*?5uF2neL&KiOyqz)K50G2_TOdpu%Y~Ln5 z)RJtRXl0MEE3Ozc9OMsYNkp%vJ1L&h{_e|g9GFU^cY1N73M^wGYO~zaH;4gSd;kuf z4A{~8KkXN%NQFr!#xPF3KcF*s-_`Q#vm2(=<|1y}#Z)wR!Xwl$Jg-o$gB`pO&$=*p z4exDsY+m!Vi#;iJB;)OMxL#t>%3SAr;?d}Q2NXx46WU(PKqrnJ&=_w)l(G*HhT&UM z=W<|by>Kx}K=LaqJUWara;MhJtsl}P!28mw6?rUC8C$jxk}Xq2B_EtPAI9b~vwZpB z1f72d>yfnOzb$4F7t!}riHTAD@l>t$ZPE|p{*EqNq{Zo!uu3I%Q~w@XwvWa)*bWJb zmeC6Lsg=7%6@5$9Vp`}|6u-kC)E|PvB-9Uw+?B9Td zy)(f@eft&ewhLZN0!rAt3p9@f!!i%su>*!{I*)J$;wH5REsPWDDS_`{{oLMFF}2UL z5;Y{t@-NqBNAstyTVN*>w&d0V(L0EM5KuI@v7h0d&dKkpyEFk#jG+n1w~3# zKaNE8&?&B|1&NqY$h9ng%t^LMHwy0IdZ>C8hn$#DSiTA_%dcMV>{FkZ`x@|Hx+Ge> zEt&NtBPEW9UJexE1msu7smQkwommlkv|U((*rSWYVe3f*^#uo(zLgdV6VHh4g9`+f zI|)DDnDL z;W)k$O_OW-0f-8d@Sbw!x+TowK?QtOh{cR1X37?ST@o0R(q|qwEl@2R306vt&iks( z@w-`Q>c0RN0&~?3W!qXpCr!s74dW-&jM&uK4Pu}b)#)ts?9fN>Qgm+mO=!oJyUkYE zX7eN5FtTY}#RCp%Ia%me_;}}is@m^3c9uOzAJqbSsA&1OKUEA6P^sYwz^hjlQT`_H z5$x`AsXt@+s-8d+x)4y02qeyBN!cuaydoojnTMV&9(kR3ClB z_j&Qx2h`|byaVoUkH53u`?8|huvYo~WjTKfE@BI~l63m=2`(mly;gaqbt zAciTY_fY5JG~Xz?DtmJ`-Fm<(sp_jxf7b_>fe83CKN2@M-uw`Er9W-*bt;bgPY8)d z)Ov45lVjVw3F-R^+tT|^{gi3HLV%ji`!8SHZW~W=6VaL0;1c$J>9`qQ{ChbjxBzzj zHb-1P;VYVVf&hKIADa^DQa1Ctzg=28=tGZ!JhYjS6Ch0{?AE-(L4X3AGs-pBgN|3; zfDha6MhL*uUR!dY^f$5~9f7x?Zu?X7wq&-iKMf!C3N=~xN9S(G!;T+~eCF82IeIXu zMB9K+9`w7C3RFt?HnsM?No55wcYHK?2!AlIhZw=@zE{g_9k14L`DrH1I{PBam)7!g z4615gk&5{L2pb>ESaJUWEX#N{By)uRP)Ahli(q+D7f5EXAng*Z#h#XfV%7M^O(^fP z`FgVCNwY_(yKE3wzD;!C!0t^K92)x3HgRES&~091NU^yiv5`NKx3{icZ^eTe30XPL zj~8dC!S%GERMH?0MX#W2p;VBg6T_QG9dn%8o1407Eg$=W1-esvUc-FLFBTDb^B2%D zjOCx!hYGE(xeSF6iZwcBIPj|asL0rUrf_t)^if^iUKUC2eLIeb+&3lg3nKg5fL_#p zDRmfEa-~C64Hr+DGm8YXPVIwp zoJd7WgZCQ`ihYCXv-JG=zqjAz-Rv?D`En7{((!Q<=asYZ4Etq!PpDQOZEPnx(Ge@w zI>bfD?sR8O>~iyh`R=S#eW3M9wO3#cUy_5!$n+Cj=qgXt#qRd!Ujg|tsd)5B8T!fr zK$^X(9s0&46v9;QF{(cs}EJaK3M*GaxD<{OiH;@0eVKS8qBJ*r(w4~Rh1 zEEIl6Ub4}yJ4df~ON*F_dZ9V$gq6k$du8S4%Il~E{&R?QIjs7N9 z4v#7(0^@zTuXprSqWx|5I``nT*ius+wzN{d>A8f6t_$Dto$-^9knLLYbfwy%HyP-dQAJ50LHHcU5r;0W5PMHBin<6<^=MH zYz>S93ydEp@xe@8MkAwiR%XL+y-nDKMjA-H-9WIKHM@N5&Je5DCYpvzT?$G?=0Lkh z)5l96Zhagg$7eBlsqzi(97;v6`aPHt-h!A!Ba!Mmni`TZOv@)r4d8@#797}#NiM{F z1{PZ1@_e7bzCi$8zS;p-_+u1e`-$2a&lno-0qZqrz-o8>W*Dgj_#zwT=uDNJ1C;}x zf02cCeo=|oH1Gb{pu3EBgaT6a@UP(9kpqG8iqWvElzjSoOk~GYg&TJ`pYC@Hk)S+I zU+@AQXTrhKLp)*2!H~VOd27Vd`zeUn9}1CX%mMcg$$>iEcxg;an?ELZ>IdYN9|(vm zs#P`;0)BwoE$Xe(#vG=O#av0t+O=EA%Kizm?*J##GV4N7>E+qH*&PbN*=AM>ptnH_ zrHfR#T_vTV_tb|1Y7HUE`I=pQPH+HdX=kkF?1;U`dBz}cD&z!>?wqPfJHST z$btg!1AxeCQjtJuTnZ@iVXE&^9U`X7xR?{;egybDmiP@!-W{A!BD!vFeErrpcvo1d zC5?p&JD-yptmlmhr1H|%bN9_t)u5t5rIQ2EOxgQ%3V_k>rk%tP7!m^nTUJp8eQVLP zpGt0>LGST~VXNy&lZUUs5$PGXYq9!Qs-Rh)TkpXM=*ZjH8J7SEJYe+>tL3tgvP~bm zw3URL?g~00NxB2x6gHz~##h=x0*}{CG9s_;k|@O$Vbna72Y>zQGWY3j!#Gs(q&I{e zvl?_Om9a7UYDybTH||FzqM0e21YLU8yB-NO7#a`t{m~W4D`s6g4ZIN#nJ02KOJ&n}Hg;r&g z;d;zL!;UqlsdbPt<45vpWCVmi_XZmQRPDQA9u}jc-?GuGb+fZ{myX+o{oL1P zpVr@PO-vyOyE|Lug&;x2qX5Gw0);FbggD=gqEbGg?vTD4gCQd(-_sLzOEddyV&1#{ zrlj)mlUB^J^qbM&fqI(CJrGI*J_`PE`&e?@zFILGTY#p{u6cm3YDet z;K1hxn536DWCYTjT=A9zY(&jqE|Xb}j=CN~*%-pc2VGrI6a^b_{BSqsbvHA{)WE=z z9V@7J9J*QAQ(X%lp<t$t zRo|Gfm5m!aJu{4>z$hyPvH6I{pbWl;Iw2cU&yPc!b^6UjT>w7nlcBjq9+n$D4lnSo zBkhjdakQKi!^7-h!BuxmVV$xiDCuO8-kCB_$vXvndD#QYjvGY}7eAEO+YyoZ*Qc)> zeJ=b;#a+2_pAE&5Wi$2;*B`e4AmWdbqh)O^mg==i%K;DtFP)&-YAg6Jvp*Nho0)e~$g&B>vf7oKOo4n7w z=&Dt5W(|$kE_P8p;y~%wpfwWEX}r=q0kMn-2{hV-zhM%%K>m%X!B5=IB`6NuebNYj z2bQx~B%&yI6osS3UB;EBTmGqx0iUl;h-CGGlLc%T(~8X4nC=HL}^ zZ<&zBQ?3p&J0k5`^Y>!UHK{R)n2QTST_CJRHh=Og{gEf1tlrMuPr0TK zI$8mWjhq{@M%du7$zN?}KNRFJy6H$cHGL zXZgzz32ZQmbY)Rne}S5x5LNT3VK9&(f;l2?Yva5jKw0j%|HbhJiJo^ywh+ z%kYixdUW&HTEec4$#!+EX z)gHirD;U7sdn6Wp>*P8>3=~|xtv^$AAthKx-2t7#vNJu6SIwE8nuKu|VH3(xBTIa! zKY`pRsF(HV$nkjt!s}iB!;acYNmn}?z0qJSOztTT)R?)}?ilftxhhTDayN(Pd&`?Q zzSc*rqWwfdqhiCy=@}=J<~A=qlXntsidgv*K|gi#Y3?Ojji>xY|DJ5*+Z$Fx`7%dV z9nA9E1N=C!kzRRs_($K)3T-W^G4Z;^`9N>$Ihlu*Fc)bM?mQp$?@r!Qee3AzL@G;5 zG#0)?V_V|gdt4kq8t8eaIkC1?2ZaG$vs91Z7Ggu)QEz8pd^U~-Kdg)2c%zh=K|nx-uqrxx<|Y|l$b5c zV%KMZ8gXazhq3hzly>Z+msCm(Tf>)Npnl_6!KsKy@^(}MaGc7~EW15`0u=rsd3+zY z?Ly`5xR-sV4}NcKuEU><+IAkEG|oVJDY`TK{yZD`xdTa8Xg%Ig@xV#>(iq?I4QWY3 zKQOxc%JjtG1%9uVk>a)^36;Me^9e*y;&@4i74MZlQM@M=UZ(}efIz5`qTt8f-c$$P zvC&Y?Zyq@zu%%lpP?a^5A34DGgdj01ffBQH=~Z43eud1A(3>NIRg?BeOJ8=;Zd|c- zwVOMhRCDlVwe`U}NbUtg2B!3dBNBnlr~4U|LPgvu>#KTOcj_q4RQ zqiB8TH_pm;uy^Mpi1x58z{2MpsZ@>4C(2F^y;zlbvKmMHlCz_CLVDtM1vg`i4}LCY z+FsCPb`BHc0P#_F*}tSB>-tU}S8<>JBX7d@<)~F`vZz2W${ffRjP2Oou`M_^6U`H6 zX(g&{wauL_zDr|3H^*0M*-1b6ytxk_H+~NuCMJn-35lvk8VvmnpNkWb zrlu}I32}}{J9B?UWkEYH)$V*P%19Ce}{w%gmZc!D5U&~gzu`n9M;bv4t5_ibaRDF`~ z5GPjR4KP&Q3&@>IX$NLMGXw4Y;!=3aKhJLLQw z^Kh&P;vL&_*oY?2k~_*+$qZo@}nwqGdy1$*RdQTS*B{1$x+^sD&<_e3I_Y}2Ms|f_fo4NfYGw1jw8)~I0L>> z#`BPP2BpZIj^9w9Zxh-R_!v8U%iwa?pp!t(59QiI+H-o}6t%`sdf<`^@$~mKz>oO? z(kr;)ty#hTTOK-bnc?7*@<5yRSH=PmUEb7z=kc;BrL%3srte?@g)nMRpH1uzdhP;W zZZ+AU`y`ulxTT>^$%76dz_}Qe8#PQjgU7;^72$RV zDOBDoiAV26OF0g(zel9);_+BEw~_mX#7QHNY00Cfx7eYDCn%7uKFMhOR~p$`*2>*n z!F|WWsbOHWX2FCP)hK+|Kl{V4ICQEJZX^>-A zAU@2my39G*qYh%mRe5IRfDNgFWoYd*twa)c%pJTxoe>pots`$Wz8a(suzcy228pH! zR*WZ!d%lE&WW11>>zh`Q-F4ltZRHa%z9eqMkw<9tIdErz7pXB+{Yd_R6C5@Bg|9m zc{x)2!F@Dv2#`}}R-=P!6hk7^w`nxP9s_X2}MQ{mHUeDb%&Z%ETR*H~6W ztpDDW4FozN3h!oUr*$gJ+EW16ax(fi?51D$8l_787Rp&E?9zl;Qc7vA`1!k$cPVS7 zzsR@{HpDEOIGKIL#YP?UXvKx5R7U;!6}Ep+M`J@^yoCKJ{N4w3Rnl&eHXyTc4??p2=1Q8Vc8v{efl zfKG>F_4=d6H_@~4?DZW;+Y{+x!<1!twiw@)M{L-#kTeUQ04VPlk2T0^jsTz2Dq zNN1|!nZen%>BkIJLYW~S{L~YG_3?`R9HXNH5+bSN?^-hdQ7`B5j>)}|7jVW6*VspT z)02pudq}wjU?Fmb~fz z`kp#FV*R)?jGbwDTuQj{!KR_M*`OF3XQ+!?c-H!!jJ+st?wA5WzJ?jeiEx~RoICB- zc^0TJ;=-MDt($}~?yiR~b4Gm^)<&nP@hQn`*SqQKTP)hvg716x+|I2soT+OhD)KyVk(cRpfuvX^o?CAW!gjpc z<}og))P~UzRha_e#@9o3b;jW8*nwWCV~L+03c6I5HR-Z{Q_e(F&9af^Ufu0OoN0uG|3~5 z-TsTD5)&n1%hi)DgUS1Gcal9skNuF#jdip(`${qh09j zORNX&DGH-~zP)S+W2^qX6xONq(PQDZ6*3ikX zv5dyuCRE1SbzOw2Zw9407@b2&1kd_p&ED@7w8;Mgwl?FwBnay+C3w)rBhBQ$bsMoJxv+N!xQ6)b1UD8?H4u5YxwjhMg`6D0!Yxpw==1O@)s zB1Y4o!Luv=8PMgeKBI6&>egI0Ww7MZ8;^?gnto20ozPC5<|cIMtQetbIr!b?tsUKO z>nZZCkAhhp0o-%888VRg{)4B7!@dWFr?up)USl_!a4p0%$smLzaKAa|5-E)RZ~uXZ zO`^-ya|7t=lgHW7Q}K^K{TGk;bz3Yp&=F$4%N}pJ@!0X#wqFs7P3`#}s2v;%BG;QY;?3TX~QmfZwzp zuDsk+p)MVC000^2vtsiQBrXRH;4mG5oiRF`@dpGD4+`8aWwbR%{MXHXWLp=I*&&Wu z#girj2*^p-*d{X=sMkh@H`c7CG;jcJZLv>iu~DJ@g&@G`0!0s@NF=O2e;LrO(1kK) z>!@RY4#%#Ufr>P05cdJVe{|erJcyqc?kRE24pThM>>PNr<)CwwK&ij9iL#>Mph;^%EPL6ZMq z+g9bhyX@aTmt6%C7Z|2yUC>bPB1zr*#ruOI1g0i)%hYUkpS{QCKyHtddf)&5;` z9=Z-L(=kF1dBlpb%4?>6CF=_TUPzhnRrrU^B0jW~sr_8Rd$KmX*gw=cmsa33Y1Ioe z!WWqqgj4JV0r>SNbZt>H=E-b6w{0Y0zfPcSDpmSGcflv7eI^-v2LxE?i!Fdi#%KO2 z``otFdD)EJcq~KJ7L0R?3uOipJ2xJ6dbszo1MHLaK_qHkr+lPG_FGAPL0SDT9@Kce zUv85{vD)4*v^9@LYdwB&K?W%ElE_PI*%U_HC#`+}oCUt4?ec8#e9T^Edh3x+S$rF? z2L!Cxa>U3OtDg%!b71*C?gJ&8$61`lYO?h&+vGoQd%{^n*+La}#zw7a6(;eFLZfN5 za#%NQy!Xj7&IXA+zqsSAaCjppfNLLG4obyS8T z4$hBZ@ZgR|)9sx5Gbwm0Jm%S$6FiFa56GUM5&_U|Oic2_eD08eLnCpQ z0_z*6>gBWShjYkj6|COAjqpjV3c~5KJN|0Au)RIvlCNok!wW3zm3^UL|D=fDvnSK! zxZ=kuxbp&iVJC6~oQC$Oza#zx4?pYhA>S>(_RhX}>F{wLuxAiKGd&W+G4ww zzA@f&P!4zTwXOZ50VoKMg&iMjL|VW$8%8VUVM+7Iz5#R7*WtpoAj8!kQT1)7OJ{#Jn{{t%Bz3l}80$_+p2f0?D2*Y=!TVbN}uP&sA z=Vp4p{e!UEO@=e_9AB3qX3)Ye`dbSnYHp{4M^6yUtaB133YC8w=94wW{<#XyQk$+E z2R2|l5QJl7T+UsHfi;{cDIEgiv5ZoJ^Bx($35sP(nQ_}_eX864hZS50{9K7Q)bkFX z-ewBC$RaRlqg>no|QcN4^G?VOFjYsTn${;VmMb~nj8c(Sm%D}b?E*b^o#L6 z#!W-8)?8~T^5J@E+!4YEXb*v@1tN?*EP|gStqnm3Du=Q@rT@5i(f&u7$qe|1j^>wM z;y1~6mC`L!_`dCA%byfK#%a4v**yF@S((DTzX?B`y^%8~1!Uq=8u{J9V4&`~I9Te| zAQ$P6%Q(h+cy`Ut^eQEPVV8@onuDHAtx1HHkvDR#IR*X1h=c5o#vpC6j>AO-WQ|40*9G)^O?o*#0 z`oZt_+|_&Q+Qe8SkpLxUMyZwACVI3QiD_FLp4m9O>U`K1MHV36ztM;JhKx-OS5F_i zQ2{3InFi=V%qUYoWPiv!d1T{!1u1t8C^n@ax74aGjPM#Rj9~BlhcBFExo`b_gYf9X zH+Ec4hhd_-@>ZmyvSVODV}GBTAN)L59JXX_(agzicaL8{xhHXDPp_H~050oyO{#6G z8`#djm(@miNPTpkB=56_9z$HJCyCC#3Itj`oeOYJ#{v8BtcPY zMXodyPBXO=9WDucgEBRIvD4Sp-Kzi63D@k|<0k6X{Plhx?FD68t*~zo7;wqSec(#H zNqq$?Yl~?Ldbgm^qjJztk~~*Vs9s%q&6a1dcOj>a@z-=7J56kPHnhj^f%u;$>AOk2 zTW?@OPk@bEYJ5MR$>Ah`%S#kaptKL3OVhLDpyx00T&V1X_MqmTGxJYjg>!ZM`&)y- zAbHx4OqlASaLoG`HcgyCRxZy^DuYc-Dnn^aQBOa^#{qz!Zc@X1DR0(48fH&r;zDnv z-MQ6A^Bdl%dW;|4V>Ym5v?``RHAX90+`qqSnEELoA}*EbSB0WZ3*86)A6#F4rLF%C>`#a zUKnT`t321gJSWlcneC2e;bhh=johjp=8M#ngG44gS*lWko(u5O$jdSg;W7w|U$JR{ zQYNSh5@}CX0O2E^QzYJ_{X3WZA?d>Z;iXCI6`+1~>!$_G0u=Gl`q#&b*i-49l|&j+ zfxwH*r7KX7mC}-Oo=wvPyE+GVa{ib$+B7p1Dt3ERV<;@5>kiC*vv=yEwb$ygr`w?^i+sU;z?# zbNT(Q6gjrTM(-@yr1_lyI}&vVAahWJI*OYfNCQRE_00nI&nWz?iw7{t0(=DCf4%(le#EdO)Miz9jOdF!O( zCI$S~R}4A*AyNH?(oRVw%C`lA6dDeadlv-?E zYS$4wBmzf#li2V5tj~pAaUo7TZT?-ZNDtId0O0rO+0sz&+IE&-&Y#N|?5n&o8n@gN zeVw`CV|}oW{lJuo2Ln7X_1Ct; z*&`m#9)6!@Ybo8}69h5WQ?QyP@qv?V@JIljbs=;O<|B4R{%T&~}Yr!ENO~i!vy*uKcw&G#25Sth4a5Y41rT3VVaL; zby+#maChfjkGuZGs#MzLp#71xU?n(EzK8N9Pp}AHZb?!p|7_AxrsH1PWl7^14QT%Z z-p#ngj0+pEDg@=PPiMx3oyTYW7dqqo9Jt4$lCLi;+Uze4+f6LMN;_7_U5{=fBo~4w zx#RV`J1a7+k6qNj7$QfXW2Vp6Ut@4-WQ+|Ldse(+bn@f{h<_T$yEo>A(=w+K^>ayW z4#jfk&$X>ar{b^Q&5B$rOV@Q_7kH~wzj*@}Qk&+##BA+7D~pkDW~I_U zD@Ze@G`vI1Tai~k>+`RSf?MqX)aIAFz2*TP?}8G~QM>;aV=t2AGPVG~@&&kiZ=FH% zg+BY!cZgB4i|Vg`RL@m%V*}nWKWqE!OpvokXE51=C*sqo6Tf$-^bEjp?~x#i?-Y)@@C8F z&t25#X5p}@z7>RVCq33G5 zT=ZT2gL+{fIG);K@KQlk>ten?JX6;$hrpIfp~-{xt{iMGO(t}8FI~V+$Sy=WgA1QT4w*!L<{z$_8g{?4uZUenPUpBcu@I4NuJCs)S+=Rta&9soF{1m7Zu(kV>JuM0K! zSIh|(?X;Be6=&;wr5F&hgfkiy249F%ULUK0OqsB{PA90mF7XhFJGw8GxP!!F6wv-K zzxiSvr3)={?{EpJDjUiw7`d2V$-G4zSYpV4e5j=Z9is!n*hJS^0OFquNGuQldV_Q~$N?Ep{D9ef zjj^5)nj2&iKA5u9kj|h8!mzTW)^P(GAQ{qKd&YEw%mFG?e(j_RaE@D+Jw`VHTMvjJ zG+KZ+(*bkI5U}RmhydW!0w-fC0FJKto!Oq94S)_5eFE=c-7kW$n=n8#=?qOl0ec3#9AcYH*SS zow}K;I0-NY3B-6KCPTcOR0Cv(mEX(ud0e_<1vE5#I7S~2E4Z@BOjF)FN(bcD#d#yD z$sMDMkHIfqAF3Ns0B8q!yAMP7-h?OVdMJ^OX=)BR$ht# zXn~ZCP(aCDRRJbY7rQ%o7(RdmWH{Nl18?I13u>#iApm-n0q}PIP)B^){d7QkJ$g2L zI8L^1#=ds|bs8Aq=K{>9MGyd1h5PBKa0B)4cj1EC4Ke`v-@jb*0|P4nV0V7Hp|g3B ziWz=~*EBaPav@BN%T8Ec&T`MtDLhtgu?vlfi;H7Sv4K_hyx^QaVLS^f4OS-+-%*X8 zyf}?U<0I6+J~~K8V&{S;EMP*OhV;B|hqa?`&z(THv2g9b=Wepsy)pQyB;PjYG1}+MLd&K%HT*0DsgWKU(@w#cA4C%A>Ep?7G8J&Adqqf7CUOQ|kRb zXiYD~EA>r`tmx&Ovo``jek#p7`TNaeFP}|g|E&kQ6X{(tj0dnAIV-ZW=2$(I#@y1a zL+Nd`iL!wTxW8sIxVcor;pUX!OKe=`tlck{*aZszR)lHBeg=esOwo8MA z^o{I&FiQH*FhIcEK*UtnOj>SB17fszKtHIfv+jhqy-Af!d$mq;tfc_AmuQ% zUpAuLdI>NjMc@O-Q%lP3V)pSvX~v2 zKZlInDj`0~EMU8?KV|V6t;?snc5!g;Xo6%)UL7W>PgXo>59Ym54=M71kZ1p;dUX9| zp=mN&_)99Eg-R>l{)@PT!ptVa*e~t*V09ulR+*I#vvun73*l6nMVZEIv%{$(ps5R7MX6q(}G{w zYlv^qNzX@6rMkpiAWdu@%baMDEiCuXZ&F~N7?PjD|(G#9M~WAbc*{;l|XK+c{3mWIH!L= zHqFV!-z}cq_C`*&k#U*y!w*4-hDDsC+U4AhTY!QSq}5_+9cQt-hRO6nk;hj- z-^#1kjq4ujgBmCdcQqupN{v}ys0#ToC7sEkQ^T1% z((4$VEbLkql<$h4kq058n%EGEok2d>#u9C%V8EPTh;+YK@lFuHvw(3755rTuuuY}rVqkYa z2ZOb1TAfuJ_eL91wqIfoQOha!onIGJ@9WKu=r()SaR|%6#`%AEUa85h$v=j;Y&fTG zfZo=*RA=KPgKFm2q7U-P6RnQN#=vSUN0j|w%c{l2`0?LaCek48mxq^}+kzX+5oc#^ zJ09;{M>@Zg<%s82;U8TbVzbIc4gH|e^x=dI35}zvrp%$A)W7fJORo6 zZ)-QWrc4&Q;u_cFDfA1G~FJi zaPBIgI%1ycz*b|SZ_(3ra+Hh|Ca!95Ye1iBJb2m6Z6k6Nkc0H!^Dq}E#-a-1Qnd8v zF~ihHw4qPRQ>!^!;GXJ7m!FaNWZ=VH%HAo$-?b5fWH^t>^!|81UoCy}fgn!!Q`~gx zL5al2F>OkwK` zxV0=uq!@_01^taS)0I0_^Wd^GG#suOb@gOk5)Ba_TPoUPA4C8P!j&f z*dt7QZLQ!VvFwfqOD_eQen%f#ScpX1c>b*8R|(!H#d?q=Q4{&C9)99ljgb3hn827) zI9J&8e;j}utow=uy(9p6Ug<#gorW3@?(2_0F)FU_^Z_7!su`}gxL&x9qD z+x;GWzu`nNJ(2+%Io$hP>0#C58m48O^!N<6@`1;dkn|EVHFdamE-t)u@{2-O3km1w z2@0H z3nkEW*wnUH^A|=}xamI(L__O|)UhHBTgg+_`1A;rq#_zls08jeuZ*kqOgF{}9)y^> z1-!6|RHAtJgR=l)*8Z%G_26s#m0uSlHi|BjN*goPzunb$DuE#jqNagH&`%%%wI_37 z?U1Dl`sKU>ppiB9L%MQ1Jd_L4d^}_iM-Fe^{76)7kHT`CH+w}?d+Oj z&Dp<(FzfFd31y+eYWTY7qCS8C4!M@k;=v!l2JVZXx!5WvzSyey0bFYf$Kmtx8+AMH`CRIeGIT1u-g~j~uMn z=D+d$@|+7SJ(%t6R@o2j+V*QJpAoR;ej#RXFgT1c$;Ghvi;RLQ$ZY;4D6rkY1>c?I z^zg#>l^V+28>DtlXAZSnR@k^rWSGue7Oojx-b;FAXso4m7=pW-MVYli@p=ReE-f#H zk-_S{^zK@8BF%1D;(vG}+3tuf9u>I+cxWMrvph`$8Y|%`xt@YQ0j^4bv?O9P2Ez7> zMF1YNtPGcp8S$ye?D}j-(Ls3Da@yWD8o@FXw&Kw|f?9--=nwwgjD`?tnW(cgN*9tq>%@cwFliE79LAoGL zwWY4jD#S=;?OgHCKq*r}R2Aeb>Oo|2k1WW68EC*H3W{egEqV~BlI~_Z7vNk5^Z>I) ztVQJUxpBYH;|=G5HRZ;|lcw7R+0`d3ay2H!T{iB=0ej8e_$)N>^SC z4_r8pti6&K6rLRB*H4mOIg*5&TIL6=Asp2#WRl7WQhm?<#KIiNkRw59|0`ZmhzU#L zi?~P&uR=Wd&oYtt!&D=B!P8toxw=N%ZjRtoq$<49qzz2XhAnw$2WC0d%B1)QJ}P%s z>2OhD@JO1LGhlaHS^sdF0o4^5-vnOT($u_4mRyT?Oh8RxycfmMK~%hRcU2{FHDX{=hRT5@L1P zl3*ZswfUrA7ICU02TZ$aNOsM+sjW&ACQQ$PSQBLG_Cjd1`5z6ehT0@Rok$)GHTjT& zXcw&y2dzm!mYa_+*WHb#$;#XcQkDZ-dR@3^3D}pai{s-rZ&2a8Ob&!$@>DG{piNmX z_B1n}I50mf6`pf19^c4>(lri#_W&#aV6i#8>%UT}_99E#yK>>Ck8+~M7Yre%M9_rm z9n@F>MD0M9r}2@ug$+g`PEF!#y~u5tI2pRRCp#!Ioq-eT{>?O*tvaGVSFb!uMj=)cWpCEf?{$0#x4U5*N`%nK+ zdOpfv@ToyQQvtHAIso3svn{rZ{87NKpuOJn?OT)FU2F;YMMKfA7{i#z$qDyx%~97H zcil+1ShO9e|2Vdjii7AS16q_s{u_L zmUf}EV1MM8v3p6XC1IA3it}*r;F{39z(~0bigWMU>6NZAdfX(Eon6E8<5l3SqFM5* ze7)m|I&~%f*?3e8CJcdt!VsGMRb_<2AW0O;PI*rJ5&SH2re-yR8D+lX;yG7*f^iCc zDkmKLmNO(+%;$g)yyxR1S8I^2HQ?16zKg}sbUo~Thp`s!+z@};@=+BdO8I1koX!K7 zCV%O16(Ff8ew?CXpE`5McEZluV9XK0^VZcek>|6-(=eEetY}e$1+O{i$$ZtwdF!ze zFsY1Z_9 z2c!Gri2|Wy*%?}*bSwgwj+U7w8&VsmlRv68#y)OZhQPOj<7Hv?tn}5FgU`RQ=W$|n zL5W`(dH+2X-^;gMMGG+{*-j@B;X1oP|0WJqB16uW=`Ie2~T4yTo-3%-o` z-~TSse1&om00E{{{RhUU^8_U(1LVHw%J5n|0fg|XJcjHpavcB4*Kqu&S`CiS|CF-% zzkjy}{;O}}m4^fXbp1bNdiwsA>5-%VPnn+NfAw?j4PO1X&5$Gg~55~0A{|8k6ecHj~Upb?ve|!S~3{mh(LKJgwasK-R@L}p($bCY& SIRE-WdIUe|qgXLo03W_M?13->i_-zp9KC- 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

3$2^gng8%L$}V;-H*bwkWXZA* zkPx_#jF3p`MXPENYQa6O^7gE&K;1Wm?O7@(xk0*}PM&y@YmB+T`Oe1YFfnR@>4U9nbAe$K_iBb@M=gZ!^`I2*MyQN2>xMt-WgcG8 z(4*3(6GO}RBb%N|g>jRy9f)s#?R_}}&n)vPUPYBzJlUjrCJwS|{Azl8h*K)Jx+{`k z>q21qD7d9*2YPPf-yV+`SgQw)C`Jchi;Q>iUTL(c{7p1cy8>TT8Z+S(;|A$glf~S^ut@;t_Y|sX#H9k?Y!h>h5{+S-^P8nFQ7C zI93PypDQ)Yk*Cvd{b^i=Hl9sep5pmJ{$?Jl9RNRF>XE0o>jRI3p>dz2oqhV-U|9x* z;!jK{?)&llLpiCrDtlwl_jd*sX~e9$CSTlDPzP*2I{V45LFqq|eOTZvntrRxk9Kx7 zueH#c7Q$gl`&NXWY5KP5Jy6v6wPnQ2{YfeWx+Dv)T5?~^e}!v1)a%P`^*mU%_S}!3 zh>(&BoLJ$fk!6y^Dm5D4-)L`oWVi16YYt5=AKf}-V1qnV` z1Wpk?*4O~E`5|PAzb?uW)!a)^J85_QTqW+e;c5{KO4njK5tbtt`gnR!sRi>cH;-f( zH?^lVnSls%M_+Lvre|Y=HSkUB(Kb2zH0=T>{aOOn^FKfQ|F$CJBZg{j^FyvcFVXv* zr2OBZG9e+!JN^iz|)v5DdMxq;4N~Hiui2w9ad!s zHxb{P9ft^@Ix!#a;QzmLYBx;h7L1Vm7tqcAan<)3X?WBFvpgfy0O@6@E9)pVDp*JU E4`si0bN~PV literal 0 HcmV?d00001 diff --git a/assets/img/job-details.png b/assets/img/job-details.png new file mode 100644 index 0000000000000000000000000000000000000000..4e2a97133606249ed1346706d5ed565bf23f8bd0 GIT binary patch literal 216013 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⪼{ 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 R)c5C(sk`t~{{X8e|JjmjdZYjV literal 0 HcmV?d00001 diff --git a/assets/img/screenshot-postman-dark.jpg b/assets/img/screenshot-postman-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..627d1e56b7ca8e9f41d480eb0b39776998da0de3 GIT binary patch literal 88546 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 literal 0 HcmV?d00001 diff --git a/assets/img/screenshot-postman.jpg b/assets/img/screenshot-postman.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ff3c80374b00367ce873142d4418616c6b2938c0 GIT binary patch literal 99153 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

L*7xwXH( zvOl3-vg3(-m%S9*%g>|C#kdnzb0WwW$hTgw1jBBBgwF5E_oI8HEdl zo)|5UH?Gp8le3aoysRY-wwB~RV)aXuqMdLfF>#|pvQYe;iy&uMeXNo3&KX)eSN`Ej zT^s9SK$8ZPukiNJ%kjWoNI)$}aKe=D%V0lI+&;?F{C>#TeG;;Y<&z&%N;RnjgDI7< zpY`20^oQ;~(TCG>zE*gnw;TvkLKV%VA*%P~b785Zd$pr%&=GPImC=x}`(72rpNmNI zvt+C=91#WYmR%mA+)Sd1&V6{s20-4Y{;<$&bXb_zN=`gck2|L^&swLuffi*c-maix z;Vc||WPg81w3UPQVDg}Z`pAJ4AR$_5iTl)dVf`A(+-G#Jkm1E)_pPz4y~+@t@=4XL zl{crEJeT@dObjn6L=ph|2i;F=U0PUOPF8MR)9_3sHT_->P7$3+o>5jBylx6;Ca4+XzzAcHX|{j4Rp_ znv~I73aqgw;!FagDUq%X2CJtVI}Ul6UB%4u5^1nSxu}m0I`{IElXL9hX&*w;$!Eza zcl8!hScLRBkY4%msgBS^aepWgj&PxGdW>4g=}vZ6yK8sxYWHXGNC8pJEQa!_%4F?e z<*YTo>!!tyAxcOTcq?@0PHbQvDl8|;v-Ye8egx0|^T^o+#18Q5b2n*!dT)m&nrq zMqYVIrn&9=hGH5|d7j2AjDpX_;GRGiHb&a)7R?uV@$ya;7A8rvNo+|`6nBdORow5>!KhgS^SYKFEMCkz3|J_+HcRt9Vf?4gzcTc&!+%=k4KCC0(X9jmsapmgKLkh zSU~aO{3$c~O+)cs6k$EB{O5SLk;+A((FDgRDoR3-sk9+RADy&e%z@Tg_2QmkA^36g za{rL*(Ey$VKDNq8CWKWQX=0RpjkUI$rj=o`Z0~MY5L!DLr=v+0P?CWTXV^H;K|-Xw zEMYCp)>PH|73!oY!#$KH&sr$bKEw~LgLA0bR3Y9G;aPw9cljHfBD(N!(&g8B?KzUT zhzTfI5>+J+Mo%uD>%S;=^~XhZuXS8*qTN?cSij{Hn}AlLeHa^Qki2KHaUt-JnN1$a z^+(;ek_*4`NPnU@m%`}?gRSamBn|iETgI2uCy%1KaxNyhYR z&zD*>9p~K%2Q`Ktjc^{Y%=FP#GBuy4^JPm#F@^1Eax0%GKlMRTI9}@x89RynzJ1aV zA;WZlR6BQv+iLgxen9`|URL2$PxN2^)^V2O_h)INS*S2Y{QdJkmjlZ`-lPwq$y#Vq zicE-9rTG7Qe%55Pn)^JLn!E9iUDN(1LEut#Lm3O1zkfCeatub^s%w>iKh;|;e0@{n zqW=C~7gF&lnEAiw!j|29Brj6CDyIE`k#&x;cX2()CzwN8+wfD=*sy z5^3+7k%kbA)L^wT(tNz_f1*O8XD9Ny1ba15{L;l#R;pYrpcj}=s;Hu(VUNRJSS@-8 z1$PQHHX2jb>=g>0)b%=epFA6NwuS7_g`cPkLrSsH(ML++NzGvz?@*i^44sqGtyO8? zcVT$pkoY@lwqQ-{+!Bw|Q|O!JrH8nLxJZbeqR7f)u0H#!w;K9kXSP$y(s?|u-AwF0 zyK>ytFGIS(L82{aEjaD=?W(2_By~KqkgHHt-O2I1|KxlSZvKjAW{XC&s%0AP7r2)(+04dgN-jM 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 literal 0 HcmV?d00001 diff --git a/assets/img/screenshot-vscode-dark.jpg b/assets/img/screenshot-vscode-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..952db0e005bf226877f4c34a714973adf7cd24a3 GIT binary patch literal 87499 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

T*vlePf;;+5hRV4=@-CDR~svnUEk+z>sN^lM{WD zo|Lm&&C% zcvao6U8{%+G}B@}_K*Jv7R%-gXf~Zv`o_)Gq`gBrX3-`VF6U-ZMzJGHS@T&(?buPoDx{U**`=&mgSj`25TG38NmO;+O| z440323H^Ijq79-O%aXbcxYa&MQ0QMBXUfXEfA_Jw~rHU94$aOblF*tM*ljz^A zcg}J@T#Z$AV9pBQEkp9v<5ifiizK^i5B6={c-s3w2-_&fZzJ)SSjp%7=Uy(vh7Bac zwFtHE+-Z-ol6KS?ww&XXHI$c*%&5k8p$qg;JjYINZj@Ja)&BYaooH6MBv4$cI$p09 zH{Nnrwif~2yk25kq+R)!m4Ambcaq zx94y4*H7e@ZF+ymWa!?dZGZKsKQzKWMffu(G;ywxE{SF&ED9^UvX> zxfhQRnsBKI7Sw4WGoIhgjgzJ=iFD)W*_q9!g#Nz-rQbz(0~k>}i)D^4D2-l#t0Qu7 zXCz5=Rtb87Oi+gbE0qg30~X=ZT^+1}O>%a>%r(s2lHQh27==ORKOa*49ofnduID@> zH^7P7Atg2BjY6V`1>^+qr77|rluM2%9}hi=ytuUnHLz7He@&)ntx*O2X+Ex` zdLg4p(lN8XB`#KcanRx(N~>(a>FMo5XlCeCT!I9yO-9qBi0=&pYEv7+;YTeq+QCL$ zm6MfDSk2bFfWy;|KiPDRzF7SOJT|9Sf}L@|3FX6ua`||xVQyG)Ov_pMCYaR>T7ING z1D)o&O3Y|{P}? z)5tGWB_Z2y!4i0he8KlGiML%Rjxp(c4M~pD`Teda#maKOQxq7OQVA&ha*@mDa8tL| zY_RtY+{Tt07j6h)Jt%j#Z_=x)sxFdiR-tpYd+=YpI;Y7xj{-UNk^ySM`GcXJ9P<$1 zDyZ3=sW!oPoOUGYYu6XvK%3#7-nX^xWILuC@_JQR^g)&ItYCwYp{pZ_I5aT=g>3qu zN{=X72nyV^LcgT^RoP!3PCX(ZQwPcI7h<(tx*+&8i0Yf_*Ob_Y3EwGrzjTN`Xy+Qo z;Tw$2)*58xgC^q2j|VOOLY+kDohS6-f;So}D-N?Zuxm@kawLcRwC((&gzMwtQ0xEN z@~*QpU}iK^{!gx3{-H9Xyd%<|V2172!iAB7sS>XBLeiP?h+>i9u&Gd2$;>DRiiD{= zg1AJqvPrHnD($fiFF4iWb*LSAq!4NL0&M}O+!@YB|6D@GoDgUcF{=kc9cT$XIFdKc zi7LdMD(mO@m=LT}-<1MDtBq@Eo3q`H?a9aC4~9)# zh}{$vqZ4W%!^aiwvy^g|Fe6bs1rnHvYe8vwF=Ts5Y8YomK7IB+L9Um}nN_eKj)b9K zUISIVq!_JM0Va39 zW-Q(7-p6Bje?07|_cU2E;OYr^`U=yOW4}~AvUG5yz`i(*g;u>?iEPc zw2h=EGIx_NfJr_edM;YIX+UA|wGuJDPA?~3YrSN*lMlheHc*-g1`sjPkbSFqus5Wtwf4+Y65FwuCs>MD^@oY0_$N7vBhXk1YvMBl;kd@n>@Nnf zK7X5bwMyu$)`H{A`yIh+RrZcCR7Kq49^l=|QpoE6w*3B0olEEgxtm^%{R6CCxGqE? zeUqWlGcx4L{e=3{0N?nDcnJF4B#iQyrLcf2UPTIK|Gfp+@FcFW{*mT6$N3Sr-~^pt zBPi;nNoPltGpBA)LENOibrS>bJMc|{O_HRSaW4Zc$20M3hkIWzU+dSLbTZwIIY>B{ zMiRs$9qPw)p`dGvny0OI%}rbV8NaDioVdo$$<8sMz`tSWFIz$07F4Rb(RNp8F-#bD z-M_k?VGQFQm9~?1nkAR5aCfPIb2FDd@(-K}$wc_X>3mKwcrj<>#F`ZT63oaw6o!`P zQ45j}0p|jly=rqbN-7WOF≧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∾|o}$JSV=NmpM7&m>llEIA2?v`eYnrDKl%L_f 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 DDB;An literal 0 HcmV?d00001 diff --git a/assets/img/screenshot-vscode.jpg b/assets/img/screenshot-vscode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1edcef2461cdfddfdbbf680d5adcaeb56d6dce10 GIT binary patch literal 91486 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 @5-2Rsk# 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 b8{y~RR@lL0xGdPgjY>$j#F)#?>zwd!?f>oj literal 0 HcmV?d00001 diff --git a/assets/img/seo-page-code-dark.jpg b/assets/img/seo-page-code-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..774ce5e7206009010f34f967f8c7ede65bd1f4ba GIT binary patch literal 544474 zcmce-XIxWj6E8~dy-Fw>kRrV$G(qVQNT>-V1f-LMB3+2+7LXP|=_M3t2_z6Y2#9V_ zKw2mv6cH7b77!cYR<^$H!F|s8a6X-T?}t0dFZr<6N}gFW^ItRbpXa~p|J`B|a3kC&HEN<>spOcwBmoGd^_MqWu< zRbEl^qKwQXBQ;H3Js=SHhpLIWvA&tM0Z{+1ZA-{KN8-+f7MiSQ6< z=;l^cA=y+}TwtkR)p3rph!Y2|FWoT>$~=m@6q1Gy&|iYFH4?$RFUI~K%jlvKzf~cV zu?jzv&;>>57*DCKEg1jkZW@I7s!aBF22BjI!n2(-+>vVAT*IWT{ zK<})TDeYhqvYG~@ywuACmhZ06wB_O|{;j%ht zF36fOx^-eEAjnFWZ041)hPMR6TgJu|ghTaXvS1cdBA?C04CqG@^b6eChm|ewja7sM z1O%Doe2Z=|O1X@0yw)%_D#Y617T9T8EvNa) zK-4^CK@qa;ScbDN;P0XD&NIz1ZnP2tdaCwUiFY(_Bmd!h73wTjWjwn{4zHf_Kuso8 zIKC7v)^WdDiN-HU6N4tc%kj<5rFLMo9f$t9R8n1B8gZ+YnZnZGk3GUF@WB^HA+yzY z5`3&QTMHCZ7$=*IM5#jgKSZilepG4aYm)FL4J}Rw5%{;sBH@kIb&$xD_>qEw7moip z?K-GU;?7FF_h)FIOAT*2rlLQ-*y~-Hn7mo-ctX8>`Byo?A9L26)c3>l8u-QAKQFJ| z5)fcYGkDz)I9q)a2J(9cx@TjVCcl>=-2XI`EITSZKq9U5wJ9SpuWE{X0H zZ(M9vs{Pxnwq9(IE99q`IEul{cM!z(Ylpy!$&O1-K96R4PWU|k^vAkF zEq0P0)O*YsuO3}oS5JI;TA_T=7kmdW#w8G8U!OP`ul2_fUNfqLCIDidzq6A=>@(hb zxsTl|ElALWcZ7vD+Utwr^-*2_6N=g0HupSORP+Hmu;Xu5M zxA7Schr!uJj&orxq0o2a1jA-<8^TLcL7(PK;!r;*40;j45}JTJ@Kou!#zpJT4bO5< z^be=Fkw&0)IhRI0l8D+3U%5!9_3y2L3)8`58Wbxd!_59@+v*}pifA>wsP--LQK`F! zCTjTu|K3}p#Byn+%-4cDuO`>G0~w6>hd?c1H=ApqEnlbcUzp0akD**Qka9ir#y1_2 zrFt!mpOgB1?59j@>8{!_H-|Z=E8K^@r}-t@%BMj9euH+;K_92-+x?D>9h`Zek&^T! zQ~z+DM5x}HP|QYBy#}6)fsyd)$7Brm>qW*duI0VK{phO0-Db_NDM?RCJc{#@=T4mu zHGYK7FA;c-;@MOPCw*aMhYmj)DNf#Z&Mbm8%)@TBjy%P&R|CYA&ta2IEP|ttkB%q$ z{0;1xY9q%dGj7>8wBf#f{85OY=#iZlyy>Mob0dE8>ilcE-Kz@1MII`ddHvL34FgL+ z%m@URtLxoERuqGN2EJrZNib}c(>^Hu;s*WL&0`&Ehh#NW)F?lRRvCTyhruhknq?M@ z1u(j6uzYtYM{bF2weZ~E_udVu3z2BaWd@!M{sW2*27;eySdtUd>jF$pNL^(bI zei$5~0Y1R*PV0^-yK?j;s-6pwTHj0B$4^jEYD#u#Tn7oW7BVk^efArr|Hjp#e!uC5 zlPTmaTYs)RMgkgc!AM^%kCfCG)G>dJ{mFQ&Zbc^&9xXsJ5F#EN_01jN^0YkCEpAUs z)elszs*z`Pg00-4PCrkm-lqP%R{nm^p@2O@(AGhDaU=`RA8FqH^80AuOVO7xw93_V~RVq`uuX1S0 zikw6E9WT|kfL#Jq2xQ$r#F4rYr*~&q-dh6R-F@7sZ7wLfOWd3Aa6yvqIxx||&uq_Z zI0+>tcKynfOX9AJr0D|^&5g-_hd zjGEh(&QXK2U%hvkfeouuo3TV!9Xj@i!<}~xZX2^SK`%F|UdZd8QQJ375q?XXMcOae z9k&b}#^+M)wotTTAKL8})j8Z6$f%0fpY-7%4-a=$ws=Ln7|1WMq?t5}F8bnt*jjTd z%Whd!o9JsR&#o$%7BaBzlN1@M4x!Ih!`)ZO$P#Nv3H7G$-Dh^}t7(%%S1SZFTOgMg zB8+M{mD<(bp^ilP@cDG~&6;PxC{_G*$FDsziPRKB+?Rw1Po3ZhNlTIRVu`VMb!t=AeC)h`8OhrSHGOJ9YH&$0~?*$GUAg!J!Bud2=0szjT zOBXra2YrCulH8dp+^ksMV*UIWUXPRSeTjx<-BPFMPcnB`@ntiwbvrH8^kA*t;sOQUY<^ zTbzX~?O=m$Cu5#N3cbS(yOu$4Wk%Intz$MWetE8>qz&$;Y0{8%@ZI?Z9#8x5WzYkV zEmlsb=X=`jjcQ$g`lIP~o`-|?W4pp(&dk&aqo6yuU|Vlo_OZ3TdMF&&eD0tu!&bAO z1qhsMEZ>)_#ISPAVk6v4JwLgb6Yf@w?F+3~#&Ff7GwW_WDg63^VOD!72dj9gQTAK& z)`jlfyk^ZO0=yW9I6m~4(z`XzhApgIi^QNYZ-LE7UIDrlPdcJ<4~NyuWpkzl>kNK% zUPw_<-g&B?aPfBNi>To0NyVs#dv4kGoadSB`E%&ENC9$Fl4ayrp|JwMP>CTbcy*GV zg$ttz(N(0q((5CYc*qg1ztJMC)0vfhdPxzo|4-CM%dF6;nc_Y7z(nm!nJP;6#UE7P z9Dv*I9aFA!DP^dvt~ynFNr%lk3?O{k)U@;d>>*;`6J@!f$f7s%`O zIdqebzx6EC|NP)3$N$9d!u%&4``MR%5aI_&lwQ=rTGhc@PNcws=TL%=;r*sEyUk(# z;|O=YUUju<%8Xg0+Op-sN@{e-CgRJ5|Gd$gf1xY0qZ0J9Z#DKT26O7M;38wyf}2iC z8GhnoMYNn)j^}M0T~-5ypo>2oLtpY6B9^baRZnp~WSuzddr-AU{PtBq$6-~odSwR@ z#Q)UtJcn1pOtv|5pUJUpY$>PBo*0`6vZiGX3D%XWj-B6oc51w_g0_OXdqsqG%T|o{ z%+l}r;Qa3QQEa(CUvnt@Y*MdM1;f=a6=A0uFIKzT*jqR#vhj{B;xg!49I&Z?*{u_9 zxVQUW#^{N;APY440VkW)nR^A>LBt&#%;~eSG565W)1Rm6&FD^M;`;Z@7g4tqc0NnG zE3I+XA4b~l9SHQcUSQO!ErAHmzt_t;U{|%$blqFPb%}s#jMhIfM+Qu`{y6K$ZVzZz zXy`9P``C@t)7SZ2!4vEo;ms}@Q+rssnsqB&Fs<@qTnj(%s(Iv0<_pZQ^^xHqR7`XA zzBdP=^lG1?N#FX*SKYk)p5349LUw87XmtuqvYy#!;xDZ()fE zN%vCQNqQ061gn~jg1AL~ z)8Ed;lJfI`a}G4MaWg@SSNhWC+Wp8!3=hq`2jaV-6%K*sDT`m!OEn>29HXbC4y}rS-EKd|$`D9%W(X3>DXIgHZw7unE+t zVWFM}FHbrz?8&i$Xj~kL^E{1EDg5LOtrYM@4gPXY`Tk0qZy=UOH$MvW!!di#qmFOY_yFRYs&X?~;S&-V@U5*FZm(G@JQpUhg3Tp0I@e zFP2I!IyW+&IE6?49gg3Ne3G`XbgUJt*!wNB<{t*3PyJ@FzweVGj&+pY8{q+N%Yi|j z_LQFMrn?{UXZ|<0MdFl=s)iU1VYd3*u5)AxNHqhl98tE~5fSe4t~lb^vL8r9tSk z(hT9A2~=E?-lS=+U#muqzwh&u7?oj1)fps4Z89H9OtfJJa#~AR^Az8q1b~;4c(&R- z)uo6m1UOWi6`-uQynBzkPqC3*LLlp{{MHtioIbtp2Cm)c$$A+8+)nOj-;Zv7xyeE5 z00iGC01(EnR{ywJ>8^jQ-rL$~19cc;B#wv96GdYPY9?8pDIcSso9?M=q(4-8hzwH58Y;9;}9~1i6qLP z6IM=*+=+e^RuG#oMnv2}syB!77qhchJ@>iySqioDrc8U+ySHI%@SvIQ=?X=1b(8ZT z?Q9;Qn*|KDY>XHI6eMcBBnbchU zZ=JW^hU*-YSaiA~CUK4A;u22qNl8v+3 zteW46a>KG~tDCVnmG)*nx3w!c19(>!*|wc>)n}Srt3ZPU6N308_3YNy7Px5+yNbcN zwMvJ6ht6M+5!R2FWQsH5#TI4IQFGI+&{VQob()r>5<`6$1;Sh0&?ZZ z>JQ2f$6P|m#qg$rfCNvn5NK6wvfy+Ee4h`CbQ!5FlT_MeP5f-ocl;m~z8hAx0{lzs zVTED*QRDtIQ2G5(3QY^}4;6y`?Q^2^&qCXe*BaPyYPbf-ZeZtLAG{h${f*fC7hzP5RgJxe8$1Ut^M}g@!43@E=EIfO$rC<( zKE&I7aEql|j^j6-#*bpm(C^K~DV|pe$A@(*MkU6pRj8Vb*&p4i5f#N#i7Mps#Hm~x z+fuWYlgtW4LYkJhn2O&7xsf;Um>Y9u9d)zv^g+RA2Y>Y^7+kS(=bC}R;?2CU9K3Yzf=GhNRZOaY%V@@Zw0%X7 zV{;8&5hVSP3NNPsam$Ltp3wU?25VVs{wcrR@h08^5E<7$pV~*$*_d5lex;DQ|H|Uz z*ubs*h!j4c-t}g~cCfvnaeCyZb8aW|ML%0DE^XiYc8=}nl^PNM`66o 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�xp!XRO@J?1B! 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

DRj+g(eKjy`n6x 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�I*eXL8Z5* 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 =F;6p7DZ_M68so;}gukqzc8eIv2s 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≠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

972(lI0L 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%0A{Z`a?NA?x}Okujp6u5A#U{TuN`_rnle7%PL51P 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 literal 0 HcmV?d00001 diff --git a/assets/img/seo-page-code.jpg b/assets/img/seo-page-code.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b1dd8646b65688dee5762308dfc9fcca3d9cd6c GIT binary patch literal 394076 zcmb5V2UJ_h)+Q=MjwWYlkwJ(o5d@}1jsgKfAQ74jBA6tw!QqlKm>fi~2qK7JOft!C zFu`Ob1ejpl*dzhY;O;iJ``(A|KeJ}u%$oJy9Idm?Qk`?^>|M2M@2|ev_3y2J?*sVl zt?jGg)=a)8Cl~*0s)9gAX}I_F(*YdL&CpZhKn_mHt}Ci@cc&*6oZHBhbRD$-+!xZp8(-wT7bcoJ)o6ATUkf7EBh#WGm7+mLH8j}4GMPvRa3 z^2tPo^wgYTh#>F=bxhI`U0ra>(5PX zVxn`P9rZd|X)lzG?yX5WmTrzDsv<+y%5diUq15%~uD@CS&&~Tk8svWw4_*u6@4YVb zl;GgkksOXxVM;9Fq2UW#LiF0lGrGEwa*M2ZT9Mrkf>HS-**koyGGkVzB9d z`TYN(0sA8V%PRg$?0pXJp#NXW{2yxj|Lh|n$4MY-+Kq0kNRZ^MI+tmJe=B-a6ErbE zhncW6eQF;BM;9}w$7KDc>BpUl>YOsQ=XPW(?-DxX_V@Srqz7qrsU2|KUzfG=7X=1XO-#5u7ZzMZ3}A8Jx;b65)LA) z;mu&-KwCRWs5l7Gi%#H)f^MxEa=)pt+s;uWyy_!XyX+C4YiUCJZ((jlsi;Wx!}MQ< zW;Yvjs;}f+YG~p*i}B9>@Ow`&U+ka9`iXF7hpXv-gZ$auEu{O`zs9123q37EHoGN! zv<+qr1m%v-TiYPPPFY;@ov&)kWbZ!rpk>?sqoM0@)@|2kuUaln%^$0jjBnR&#=q>- zsl~x`y%Hx*?UQw61c?#bPEIj+-wL4;j*TI*?ER!Tqalj#E*vj$ADgyYZSpU2+hSl` z!*W-r0fq40TW|A_Ugo5904Uv7Q3M1n?_4x;bvmf_YoBXO!P$#G8r|mtvucH z(|1|IFzgi*tfjq@3XEfzt-o43k zcx`m!lGSBvoJGfT__sFKmsQ~CD&@*P~;7mZe?ErOwPV+uZK1NJ;|4U2sgBL*(b#W!IF)@PkS@$iE@ z*d!YAv;#+E|U+w;2T@r z^M}g}z?N8T_OcQ{iqEtAYRA<+aPyPD()?aX3 z8tZMYYAKx~elvZnW$&f(IXnsy@{v^1ewH}=!6nb5rtG#=u_O@l*cqy*W}V5aQieN~ z5Ov?R`c2ZLu^cX)Ln^q|P~9)81bLM1cy_5MKL@v1wJCos$d`5s-|03VO?mRpOrzD4 zO_W2Lk1vJVF3qK#lfF+`QJyH5m;o{&)Ji%5G_y7|eJSc|afgs`7f}tuY$*=*c5b8& z^8ocFb5bXISt4@~`g0{IWr z(xL_1Y!ejQkY$$atinu6BZOU#>~w`ukAa}V`l9c&UGjS-Z(Jztb9l~f#lcSS76*-> zqy*8>%&tt@xXU@TR5e7L$bD@;cHm=HYV~0;yFceeOYP`}s9v|uX5mRWPsDDt_)M)~ zMczMp2yI$FeF*KCcRb-@3>dxqKGdmO+{trZ0gqu?Ti?q8u~C@HzW@m8!MVK>kh^=M zE4??hYkR17O4CFdm$u532R2+z)~^IOF`zWbrc2)Mk()#G3bDr`gT>=qYi=A}o~Y-ZE?2_=n$LRq2f zElz2u3~Hz@iKbCry`U;)b=sOWt$miz^3ISerIwMCm-!-H-h&hdPUO$VSt3~U&kl39 zg38Ul<*{2%1)EQSQt}6Mw#7th_fdxRxGr?DDbfZ z;!vzsOeqYg#9M-OHPWvWS-^xhwvby7g}zG+1|YPx5vhKY)@P4lUCCYNGpD8{AuW+p zDXsmFt<*IdpHe}ey_1D6K5j2-7ia{AsPh+k4r=rP+{nUrePe6Q%{DX0-~tdvfIUFm?Ld9)OR!H`3ZK%`cEH>IPUAKdg&WVJ)_%xN_LBb z^GB$Vj>w*%qnd9G^zjWNVuFGAO2n@oaO`=vTRr3(cqae`aY`6Hg`Gq*cwkeuCR>88 zMunFv50b;|8h-vIw*1mQm{?DsyO+OR=$e6qI-JX!(?0_{lxtAVdw*gdmtlcg_*KLh7Pu0>hho zg&|pT@*0q+?nrfnn7lesxme%MV*<$Taz_jMD>NfWqW;HN@Ut8 z?~~Lltb%La+!RZC-<;4rdq%mIX1BF4d_`$i1fFV!%Kf&?&p4amPquahK&^iShB(iG zMKKMpHNB%=C)aMp*0T7xQVz!(;EPN9f!Ulni9ezoyV3Xxx~-M+3rHQ+-z)qcV{l49 zZ!-ivl(6pQvYim&UOi=1RdXk9*;ZJzpK#-6<-b=x%k2gl(nopr2p z#+0O%AXVU}j2P>|6V+GN6MgjQ&`$pBD%SRuHGREtT|)SNtTJoajqr^iT5Fzo3lGEC z_jTyWdI$N6=S1CRCeNkkiRG}bIA!Q4q3g8Es}Rje4z+om1r8gKd+e6iOuKmv&OF&_ zML3WNO%A-P0e>DZqsNr|eYA0B$xNu!dXHx9%&-?Zk2u>$1x&N0BC#3al{roBU;}rJ z!o)n36-pO4%Tn8R#9EZWb7(>p5upH!@`^cocSYC`qrk;9Mo`lG$O`KuW5h%lH6qmr7f8C~B|^@yrx0$^lGR`-lZ}P#cEWav>kw z;W>~#HU;<(+n-SjpZROBN-8+mero)dThf_^()6wntFTT;Sx16>zt5Abnw3v3rK+#M z4Jnatq@8E7CKWsA>hiK5Af$d=yf1e5lYSYnzRi>4{dnzNwV?Adq4w5?ZrhbPI?)CG zrIpPxvT&VSbrs?E2%1Fs9|$m^P`5fOwzGMONRO6vc8N=?&!vMm7ud8pJuuuHnp@c8 zig@*0D=PWIKvE_7Jh(8tEb{#^TWdebEgSP_xK(f)x99{MWIGn5A} zBQ1Ty1$YMt|`nExWqCd0Yzvrc>hWMe_yqX0PzS9;gVOlyIo;0-sQ=7AtI ziK|^*vpvn%W&mMEKay+xQ(0TzOt;eNyjwzbtGwDA%Gr=|A#>J_)u9n8%(5wK=_|a{ zUPUHWH&BM;2OhuD4@KmfaP7B*_OmqA>khEF>Fg%Z5I(z|A2v8C=cBu5>Qq@ZRCM|} zD8a+F_skSMmKpH-l#z!Ovs+DLFZh1^x}@68(z^~@thFLYadj=d*O%*)*#-;paG)x# z5Ay!FiJX=7Ou4LyZEt3B-2-U184Ek5HBUux2Pbyye^&|f?g<}I7VH@Fa7y>B#SVdh z0cB$w-o-^J+d(87AG7;brIS-&GmyXjD}6Za-t^?y5BKa(rrQ$5_;@c@?{->)AI= z9$i25r*$@wTjMb3d#4&3<&}7!vhhn^MM=r=bQfD>EX-ZH0rkNa$E(CJq3HMI-)?yF z)X_r7qH(<8!J>_Vy=+3uz*u{{{$IIB#g4|1*&?)TnE|M!)4K(l_(w*XE(9+?we&m_M^E=)R#9Pb(~N*iX=i+}Q_kN7$Y>s3ev;jk&O@XF~0LI@V*3j~#(+CsT1%Fo`mCXxtNX>&3x zrK}~hXwCE~FSNcSS1(4?sjcKy&ASfwr_;Uvw27_!($&ycq4Dk&?b4f1=U=zigm>Ks z%1$%_oeu1xSt^UZeiVD9Uo}CN=5B7p!$pEsWmwV+-?$fBzUq6??BS?iJ^!WBVr2YT z>vzVIQt(zh3QvHRpR81=kce&4pVgWvm{kA|#W?Y=&hS?svWy}HM4cbm&0ZcUaChL2sj?GPbG z5X3xIuHGZd;_hu0eSL#zcrv>?onz6e1;vWeM8laBJ+LBf673qM5i6&iE9QL#cexxw z?(N^ky(SDjIW_rP?;Sla?p^qs>fRWg{#QAqPqyt#?oVh91=gA*H6O_l0aE~=@p|^- z;N8P;QFGNFWh;qbb93$L=*rUu`TL|)&d4ciNGrdi1X;b9h}EnnSM&gGrMwv5&Bmx9 zYkWBPF-Wh<01AMjX{P253+Nu1QTu)J>kVF+x3ATF9LP42U!N(dFUR->?VDHS?Tnz)8nniL?yT6~GEy=H`?J=~%fLA@cb*C|8;@mvG6Y|KabhodJUC7Nb z)i`YYC3IJcXEqKku1MBT*C5KTMq8QL{}|!F7@HH;7)uw1_qooM4-mqVj{xoPv$Bu4eYuNG| zYE54^iI!9ozG0(bKzR_jdV5(aRK;QTOOqEJtFE?pFxd1&=aq#mwvS|A*cuTU<0my5 z^sUj=euGowSL714swTqGKhk2OdNKP^+!ej5C^2!1+itDazbk)xBwN`{vr5Z+s&N}_ zMt5_Jkn$|$<4&sSyHLZoft*$V;R__IH_i6u862XlhcdSEbpxfc#AS9c#~H`kw8)4T zJdsK_#!l^Va6fF?_l(dFD$>kg$_7LR^TVY%m|11GZU3Q{t_$K}w{g`C4|~0gaI=es zr%o_6V^KiorI<3XZRA=lG`Q)1s-sB-07CHKy`X%E&74_m@O zEJ?fF25o6jo64L@y{-U}I^m3-jcng1uuTq3KY?1FF+ItF%kb>~X#S;QO_buoRy*z& zPqexFi{sARrD^|4VM&t8f^uGbx z+13xLmUg*+<)`14atLlrUuBfe@MY-3@gT$y_-k(k!~wM5bvpI0q{1V<_MYu3!f5{%{DksasqdX#Fr5`@o?U@DLm z;1`p#(itvr=EwGnXT8fucKgrk+pw}CC|@=KfZGquYyo{l>@~ zl6@7voO81)xVE*vqKV|WR`c6k%)dOpKil12d5{@qveoUYk{&0z66yNavD8LZ_#9?e zkYw-*jy=pO$O>IGW78*I6?}QI8h$)!^YrwYBp|7ghq&ORJ)eeb*r!;?U!T}+)7o1U)=#<#S|)!H zy5KwUO@zl#*mN*3=Y;Q&C`|$^OA18?D|*UWj1;nRn>?JOP6N!H8nShN>wc1 z45TXH2T<_(*QxqA!#_DjgOO>hss4RRS^fkNzZgq#NTrkoCQI4!+)OhSpsELA^Em~b z_VLv5W$*!1A(V%WldiRb*JK|=mxYBd#S_ih(~4k(jIOz|%x%12;d$jOG?CK`7ZoXM z_K|P_0^j>{Yv-r}gcDlYt_Q~T;8-HOt7Q?e=10;O!ev;=JE_n!Lr$h^pv0!59Jc+N z>Mwdd|LkF2nM$HEVuOiC9nW^r9;{V3M%SN2gAo7tBEBIVy@}=Iu%&>Y`b|s+b=9%^ zO{+`8r}d5nLN~pd!^($=@SEfLtZ68HzF@$j$@fLBxm-+Rw(iI2`uSDPj5J z;#B3o`W9*YXAL2BwBX>@hLT!GYDe5Vn)*`Bc4oPVJwMf2EH+zTrLb zIJ}bdwNYd|F$`8yectuYlH;Fnx<2uZu#}A+$x893gktrb@^h1{swb-&Ve+4BR~0mB zQGHZ`(KvS#dbjTL2Y5`quNN8Q<($-+hI~xoUR?ivH!vZWz#H(eW|r;feYn5XwU#oh zx%Ya2_SG@a0}J;c2NzASxM0)5Fq~seAiuAmPo8Be6_|VJ9g%)Vq!^+u>a+|H7j`bX zvr;i16vkNP)+3>>P7nctoZm_pe(*)lQR9*F7?QNi#HU}1A?YFW z3S|t}6ugm4z}(TvRxV7*tg?G&c|*a~;*~{Qi1*P~HHhN=P>ojE0k{o;DI8uj=NF z0yQ1#yXHf3G|!uooXi|dRyxxcLRuE0-mi(m49HXAAjVhR+kP2P4Ov~0^Rb;x{p5MH zc#>~x|4HjJtCdL1H!WW0WRF{uMmrH^i=4enJdClBhQwXZ^1W)`PIn16jn)X!qi)Ui zW%t|MZH(Q>2MHTXUEo!x2T9iwXoateXVGP=#|+Su$;q5c>E0$+%^kS@unq2;jtfc} zL`+-O7~6y7hZZ;NE4_V9|NIo%c�v>HRCFv+^AbqqJ-ds!P7)WKtc6^@N>Pt1glv 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

  • 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 z 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

    <+$4_lNIOIhWk1L|y};Z4Ke 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

    9w#WuK%QTthedoKq1FW3k~lI)2;! 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

    1;O7+jf8Bp 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

    A}u6NR7!oUSD{&w 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

    N$A6Ll#XIBPnpEquobzetf8K%A8Tt=5`rH0207 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 IBm1)d*>4ZZM*si- literal 0 HcmV?d00001 diff --git a/assets/img/seo-page.jpg b/assets/img/seo-page.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcd7af1fd273cdcbc5345363afa05355a4154580 GIT binary patch literal 97989 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 P6Nj`)oUQ+*`iuJ?1>0yw literal 0 HcmV?d00001 diff --git a/assets/img/vue-devtools-components-dark.jpg b/assets/img/vue-devtools-components-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf45527c1bd689863a251a92108e0ff74e909ca4 GIT binary patch literal 92399 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 EZ+}!G1ONa4 literal 0 HcmV?d00001 diff --git a/assets/img/vue-devtools-routes.jpg b/assets/img/vue-devtools-routes.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1e362a60f3971440fd1cf3aa5bdd6be15535ff74 GIT binary patch literal 42934 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 ltfhfsJMZ3)n^6KO*fFpfJ>JET_000QE4{$OK zhyv&rE?m5Tihl9pMGSOw3~Uk{Y%DBn3PK`Wl51CJX{fJIU!`N_xk1Os$#|9erU)A+ zpMbEiFfFT?l&GL2kC3nc90>wC1_m}3HaQLsxc~z-gTVh7PTBz6i^xw=w2=^S0YqE` zBwU1(4uBlSBq9<5oZoMNfQW>Qf_mX1td|VdaSGr1V5>UqJ(&V9kzg}%kZ@pK2gg~y zzmNF)8d7Ld2mtV_+m67;V&DNl`q?B@MEPXp>cM+XeWb=Q8Vm@@(Yo*so5U8xj;8>U z!36wnlIuZo3#`;lXI1Sn0@fv13jmZLsyu*H7KGTP0&v8`N1=+6MsxuH(xar1ArXJT z*=D8?2Lx}wUE}0a`!KnB_@H^6kR38!G3=~J)HdXcF9C{FNm?nmUBow0C;yCeIX8!#+fMm0l-A_I~phPn*xZQF=a!N|i;^9)8DHk!W zvE-(Na1{Xb*<40Nx+;3rf0EA>#4UU0Wylm;lmYjX#5)Gy7Sxv!eMVGu40iOS5*R$B z6Wjwi979MjzHLcD;BqIX&*2f8mDO!nb88Z~lOI7c^wc9}DOJA*)!5)Auo7WOfQ$zq zC(*l=sUwt z)@*WLeqJAPo|)CEERl2iVs1USI5LzN{wemeaRTK@CquB||&KfbU!?)k>z)~$Ty|`0cyt21{)@VA+nwGY75H2wZ zyRWJ~pZ0CSpBivk&bu`8zKuC8iAt5?5=y0(KSwtwmnw`AgbJ>kajvrk`kJy@Cxn=a z7_+HxHqdQtR{Gq}kKdF?EkaZKVLou()bzYT?zBXtLZHEOvE$>=90O3ry3zrl{Ku7C z*TF6ExO=Ok=FqX}mZH_t`*~49Z_e%97#{4%GWYq_WrmO03W}yoZvD&*?G=_dhv1j`vH6@Tl@gD{u5O{Z zW%nbn?i;#S{kEIFa5i9oF&(E309-pMp%$3#LwuMezEJ>X2LcTMAV(ljub@#Oj#@7h zDgsEfbqlY?yJI;|XYo7asx#Sj>+Wy`0tnX3Hwxz7?dl2&%Z%^V2?+@=5AW1Zt-l;* zmH%?k++3WVhoCUO%%VxY`ZxKjUELh~T}`1o1F82Z z+<4cyaA)?p5*c-f~>!DHNu;?k}^+pJ; zrR?kaebsT)@&eY@sqKQj5dXzd=#h&#>+|}@yzC8#l4nnx#utF?yX$new_z0+APg@@ zoK|4eiZac4q0pAs!))0lep$(jfRv&XO0e%~cNAPAr(jz1Nq>IjNIqPCmVWu`kU8rW zjY{?{-VZl2<&UUP7=dDX4!vDiATkanM|^p>&Cp)f~B z?egAF*rL~|P6C~gdFy@vLjeagEzoHRoZDACF@##j^s^=`rRTBlKjg#-pAW&T)%uhU z;8+`{4joFNvMggenmWOq79Ol$3dRu)pe^V1uHbC)x2tyFkBSXk5}63yJ?ll15#n?h z`!@2lJXI0kcY$I^l_slsxC+#OD~nMkE+sk@i4%fdc@4@#bX*E1&d-Z*JNtg4-697pzEW~+I|$5pr4Tgd$7?%t7*mqg#z>h|!M^?=b> zr+I$;ww(R4wsw~c*yvM4S=Yi<#!ciQ)7(F$q7zBCxtZPJnwy8AL*+1Iy9*@ _60ECF_Q@+~+ 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 z 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

    >;h3$9!Zes37y7M`}007-KE|e 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 literal 0 HcmV?d00001 diff --git a/assets/img/vue-devtools-timeline.jpg b/assets/img/vue-devtools-timeline.jpg new file mode 100644 index 0000000000000000000000000000000000000000..69ebd6a6141db12f7d85111e83ef7c02ede19125 GIT binary patch literal 86474 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 literal 0 HcmV?d00001 diff --git a/assets/img/vue-versions-on-npmjs.jpg b/assets/img/vue-versions-on-npmjs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0fa3e6a2a2d7ecfdc1da27d8ea8b8f3c9b9a5dbd GIT binary patch literal 119922 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 + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as n,v as l,b as r,t as a,O as d,F as e,L as i,R as p,M as t}from"./chunks/framework.0d8bea05.js";const b=JSON.parse('{"title":"出版说明","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),c={name:"index.md"},h=e("h1",{id:"出版说明",tabindex:"-1"},[i("出版说明 "),e("a",{class:"header-anchor",href:"#出版说明","aria-label":'Permalink to "出版说明"'},"​")],-1),f=e("p",null,"感谢各位读者长期以来的支持,经过长达一年时间的打磨和优化,本书已于 2023 年 5 月份正式出版上市,纸质版书籍的正式名称为《前端工程化:基于 Vue.js 3.0 的设计与实践》。",-1),m=p('

    如果您对笔者的作品认可,建议购买纸质版,纸质书在电子书的基础上,经过机械工业出版社的编辑老师们的内容优化、校对勘误、排版美化,更成体系!

    在此特别感谢李晓波编辑支持笔者将开源作品出版为纸质作品,李老师全程帮忙跟进了无数的大事小事,也给笔者科普了很多出版方面的知识,十分尽职!

    购买地址

    各位读者可以在各大电商平台购买纸质版书籍:

    ☞ 访问 京东商城 购买

    ☞ 访问 天猫商城 购买

    TIP

    可以在电商平台搜索纸质版的书名 “前端工程化:基于 Vue.js 3.0 的设计与实践” 或者笔者的名字 “程沛权” 查找更多的购买地址。

    背后的故事

    如果读者想了解这本书是如何写出来的,想了解笔者在日常生活中是个什么样的人,想知道笔者的表达能力是如何培养的,可以阅读 这本书背后的故事

    ',9);function u(X,_,V,g,k,F){const o=t("ImgWrap"),s=t("ClientOnly");return l(),r("div",null,[h,f,a(s,null,{default:d(()=>[a(o,{src:"/assets/img/book.png",alt:"前端工程化:基于 Vue.js 3.0 的设计与实践"})]),_:1}),m])}const B=n(c,[["render",u]]);export{b as __pageData,B as default}; diff --git a/assets/index.md.c8d0f3cd.lean.js b/assets/index.md.c8d0f3cd.lean.js new file mode 100644 index 00000000..1131332b --- /dev/null +++ b/assets/index.md.c8d0f3cd.lean.js @@ -0,0 +1,8 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as n,v as l,b as r,t as a,O as d,F as e,L as i,R as p,M as t}from"./chunks/framework.0d8bea05.js";const b=JSON.parse('{"title":"出版说明","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),c={name:"index.md"},h=e("h1",{id:"出版说明",tabindex:"-1"},[i("出版说明 "),e("a",{class:"header-anchor",href:"#出版说明","aria-label":'Permalink to "出版说明"'},"​")],-1),f=e("p",null,"感谢各位读者长期以来的支持,经过长达一年时间的打磨和优化,本书已于 2023 年 5 月份正式出版上市,纸质版书籍的正式名称为《前端工程化:基于 Vue.js 3.0 的设计与实践》。",-1),m=p('

    如果您对笔者的作品认可,建议购买纸质版,纸质书在电子书的基础上,经过机械工业出版社的编辑老师们的内容优化、校对勘误、排版美化,更成体系!

    在此特别感谢李晓波编辑支持笔者将开源作品出版为纸质作品,李老师全程帮忙跟进了无数的大事小事,也给笔者科普了很多出版方面的知识,十分尽职!

    购买地址

    各位读者可以在各大电商平台购买纸质版书籍:

    ☞ 访问 京东商城 购买

    ☞ 访问 天猫商城 购买

    TIP

    可以在电商平台搜索纸质版的书名 “前端工程化:基于 Vue.js 3.0 的设计与实践” 或者笔者的名字 “程沛权” 查找更多的购买地址。

    背后的故事

    如果读者想了解这本书是如何写出来的,想了解笔者在日常生活中是个什么样的人,想知道笔者的表达能力是如何培养的,可以阅读 这本书背后的故事

    ',9);function u(X,_,V,g,k,F){const o=t("ImgWrap"),s=t("ClientOnly");return l(),r("div",null,[h,f,a(s,null,{default:d(()=>[a(o,{src:"/assets/img/book.png",alt:"前端工程化:基于 Vue.js 3.0 的设计与实践"})]),_:1}),m])}const B=n(c,[["render",u]]);export{b as __pageData,B as default}; diff --git a/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 b/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2a687296748f6b8bc8076cd11bde49cd27e4442b GIT binary patch literal 28332 zcmV(^K-Ir@Pew8T0RR910B)=R5dZ)H0L(-H0B%750|eaw00000000000000000000 z0000QgDD%9791)+NLE2ohdBmdKT}jeRDl`*gBUMt3W0+R>k}}6+I9gp0we>63JZfs z00bZfg$M^A8&tgo+lIZ{0W$kf`dwxsbvsBZKijgA2%9xXMMwW9BpqW2)F+!l*M37V zl9T{JHdk?)M!T60nkxGasf@PS$3btkm4;ibH5~*Z*uTsmJGUKxX9cyg+F)d-5ys4C zo7|FZ`ph?caYdg&{|^%(5eV_PgnKGlxbGk&;@QKi9rFvf2ykadkugvB=bv=iyMMk$ zBY7+a5GAr4D>kv^F3Pf`OSoyhikEeWmv~9(oDIp6)-@vO+gl-}bh(56@L;!pH{2TT zIOp!%>5R+DSWy{w>@s%z%*G*i5$ug1FAp@aNHgepU=2^W?cc^RPQ37bnbQu{L-xl)y`!#La!bOvoPMoxG z(!!|=7oITjgkwyl&T2DBcbsl=3a50PM{xuZMi|BC7=>&cVHSH4Ya!&qB80t`*D}}3 z`}&jTwP&xd(tnwI*4M%FsVgNJ76J%GP2N4ADlq+3=~DETeStFR0FZaB_jw3ckIPK5 z`;UwJRvMJRS2&Vxp&I27!Y~h>|K6$HS@;S8T&H{1H zelfBi^#8vfzd84dLnu@l4ca%u)S^X7BWn~bkwwTv(YI&*QD-XSu8ViQ;qDt_(A>&U z^4xoV?`61~?puQ!i;krj+b4{06eEmq6h{!nD2{Lx<51xU-#?;)LXGpo38GLXQ8~q@ za(=|6dQ_zf<@vAuKHjyvZ{LUW{|}LikSRYLR8evAo_P~QNvMDvATH znox36Duh0!eB}lajkZ~yyJImL1K?AGZIKwvZ_1`1J4dCns(MBe$gm+td?8lPjD$92 zHiYoJ%iYp|Wjxl6?XfL$T6WCpuolbmEY`s+7Mza7a!6WRj+xB~9qO$1+8N35Cdbeb zbyosCj6F`|T`vGgnxYGo|21;cUv~;O3xwtgKbS=WR?q^?dAOU;f3MTF?@BzWm9@s9DrlFs?>c$@j9$lUv|> zQg+A+L08w+=oPL;u&}CrG}mkQ3IN7^A<3HAw-cD%KT7GZ>C|xjc5QqSQ&K(v32^j^23>tYX z9Ey~w;NelHPLmcL`gYn=J|L_>I0Q~yxbxt}+kX2U;NL(%gn$SG5fMa*7Asb~B&kxR zJ0x3I1Y1P%_YuCZPc1EaLPt1W^?(C1fcTxWB$^RaAq4^g z@}DZQNWESVKxs;JK`-ls58)9QwnG31q*M5A?gzWuK>^ixaA+&!?LVwgKmlkP5di)- zI3+nGxuDceEwv9`MQ&?tdkYR6o};HYmOmnmx+||d_hhmYMc0FMUp9Uo$i!j)vK4$y zZaeqYW2xP0JZsV-`MYJZLsPzcP(sd%*5AW5U%Ajh{X2;qvF}k4r)SSpAf=>mU|qe> zPFfaO>Syt!6xxG4O>LrDO`6*bB5m8Rj-0o)ReR@^a8FuIxzG97_2`1swL+EH?hk9Q zZLu6+f9`p*3q~M23H9`edMulW1?jZ~Y6)+?HsMGo(ulUa#5^+Uep_2D#cvzv$gAF7 zkf+fqQkz!OxHQ#2Y7KTwI$yM#Nl2PRdQNCadaL^)+r))EuS`03G`O4HKKl73UE|+B z5!ZPwJ^xugdmK_H!eC)q;x7(*fgbEWb;$q!x7vd#I3@Q0C{V#Lm z%9Br|)G6goJ438SoqEk$v})I(QKP~- zP5G`1Nos^MDfWno^cHV%FL}O^*Zxr_6%@9fIScqpwMa!P{0C`mLO&~dpg|S zFbu9upcw+Lb;9@yg}_&s(4!>-2p|F`m_xz?5Q2Fls4I>l3=t4WKm-rHAPI2CsC9#< z?1y9Z8DaVb^#CZqfQ-GfGBL@*yPV1WnnP8gu>AK!-Fr=>0cA&YjUi2(3IM+FoB z699Aqj>TF8NWdVY5CDT!&;SH}XzPQNk`Q7hTKiI*&r8q2@avm-N`UXP0JzgqK%Iw7 zmDXW^UNgxj_Mfa79#lwczNlYAoo!D~IQFZKhhF{db?o(1umAM+Zy#R!_}b^K4>dpX z@>6c0^#%V6ftP}BHAehzZGG$M_twXPp9Q}Pe0OKk|6SmRTSvGlJS9vSzQ6aoT!Go8 z0oSiwzjMLrTVJNE-w1fa4K*Enwg1ceK>iSbj{^G%sJ}yl(wJ?KJ_YipK>r+gA5q-r z0skT}Uj*)ph<*a-uYvqc-0}s0--hsafczece}F9|V15F?F97`~0RIN?zk{~70NcBH z1lae(mf3;3aL;p0;A~AR(1b0sF;BD@Z7XAlR?bLU|2Lx6DI;ik4c3WF2E z(F?iLn%zf1PgRD%r2}_*Xk4}#Qx}yE2joHnc9Bh=#s(WqVyglx7CJgEjj364SJQ$2 z(*y(0>r@l&RUT=Axg#K&d83?oL~0frV6rdXA&hx4LX+p;`c9c0OT)aQ^NyW3F*g$|LW%FGIW8gTuGoDu^dLn*zZlyjgKG|2|04q(cR~s^5*KHy{sbxiY*B|bLJLHF2f z(O1*<7VeKAG7B4hf)MUwNH&h$pK*xR}6|SkJr^=wShMaRprR(mSbk`-LrabTvO^9h3SoB#s zpxkBdvRMh#>Ls!;w!)D_z==nYz(WpCxlZX<OIAgYOg#_(m6ZCg(ffgPU(z$k;y1sr-CPjBPICUkhM%`zWCGOm(!g*;sh1DI}^@yISa z?Pg*RQ^mSxOSuNm@cC1eGG|VJ0Qzo`mB3hnurM(7dxUqBrtQqMMcN(uLoggCcMdvf z#zYoP(naH7r~8SYkRFv+Krgw;lvR(g^E)T2n6{8vLdJfe%nMHNVJtMVuB6e4xKoBJ zzTd44r3>Iu7j{)2v(Ca)B6djzqhLS(W`2n|(Js1b~LGrr=)yeQ~5hxgg+anlQ+#`CL z#_0ROw2`YBFxk~+M@>UWhSFP9)HGhvmP3#pvUEbg;>ufs!s?xjmk!-h>);5Fz7Rx1>lIakMr9bZ1A3%z zYq@zdv#%xzxo!YSLh&zNV}{B@ZfOgYt2C4Sc20d!^7^Ux^7S(N1}=6)L~~yVS`)DmH|^gZ{~a2*vqmqD2YVWk$NBV|IZ0>1DlnSQaYG zU<|)LfaV>TVIS*;wc99_oaDC9RyYAE+o??9l!ZEP^UrVgi`bJZ6h9rHa?%nH{f>%D z7DZdf;z*-T8iHVtym(*P%L66Fi(1v68LlHiuPTP*Gx2)(3t6NkE2W0@DU1V9ti_h@ zoK;p>C=%0%Wi+~2iI-AiakVZZsW!M3Z=9&=K^>GnQ8by53Nj4;A*2O1`8S|E=KDcG zvK>)FW?kLWq8pi$K2dpv@KUeQ+O-?ukx9UTFYe3}DO93m$!gsPV{sqHIz>=w*i&O> z4g>O0@J3U2Fvp@vrae@4Q0c7wFdfyfu&Oy4@{wueX@tt`@^Z7MNcgW*%tC9z&Rs}y z4Fh_TzHM3WEUKjiwZAk5ZE26B9Xdf6%wbVSBH9tK8o!9eH?;1DJOGeiyU-(P71ke` zGHQT|v7lqQ*RBN1Fb0yhJB$n8d27J0ra3|YcdUKwx{*h8(Dou+pq0tO5$OT}{ZzLq z)5=ENXdd2#M@tV=a(8H?Qs0VfPx3S};&JWICGxC lkKL(qGBcDXXZHb~GENV%oa5o3p`t5VO%nZMDK^_*W?ZTf^ae0dT}7-GX0Etc~C)9 zsCkr)Nr(B$S=a_?mf$3rHl-+o8B&r%!4Rd^%5v-6aOc*ak>|>lE!rrvtXH~a4^BQI zNUQkeRMGHIDqsA-KrSmu=(JHzSr65^ubmoSLIi`$ghfGqN&&Fu-Ji#tvmz|xPv@1Z^&ckpgFqS`X<{=f8fK~0*KrgVTwAYS&CTCkK9!48~ zOFFh~+PM4#=Fwe-mXB~0-u)QKjgN14sKzci7+|sG))q+{Q1xTbO`J8t8<6HsD!E19 zez6Q*T9CTuD&4hZ^c}*x^m7rb7d=bPJ==8tFVcOH_^Qr>h~kved2>FZn-!f1d1*XLbr3}dt| zgdy86sMDv{14IA2K$2-ZIRkTNioOIH4}LNAa4EQLr`_Yqk$kKVZ`5Xq-q?NdStte! z*`4&W-e5F;X^JvlC36bQcN?&D_p##8li#aA?Aj^e=X4EUo#$Y0N?f zn#MG>H*$B)q3|`ua3! zroTVz&%n40J4^g<8)h$l%aKVpdW|F36V0nrs z=dV02gde$&2uz95%Q)FXl@9oEG4JNrV~#z(_A&kZE|e0PKW{LbO)pF*Zi??r+8Sfk z#yrktKAlg_j%)QK6``x-OBB^G2f-Og=Wqm-Agc_=lc6Hv{~}N#A%KGVh<{oW9hTS0 z7qsYC*a>u2R|d52nqy5`@vyb-JDh@{@wCBlyz80vR~BG8-fTKE>wTn_G)_P0FHFxG zm#A7`9=l)DnKe90pSmu93v2EIrM zwJ!?r{A1}8hP62#jPL-)ZnnVR98^>;CH09S}su7!p;u{;^w&^}qm}GeE3j-Si zGo6{6KjC62pF7>rKLC}n1#{JyP_9i`SSsM0&39C2D}b;0*R7-r>tLGY6BsYZ+h(I+ zi?Ah*%jBU2iJFf7SUXqqs=Rx=WDB^9%F-K32>(q+258W=kvjw-=3pDY`xkn+dvh^w zR7Jjy=BG#R5~lNZ!$jLfnSeO~c=Cv5x!uU|K(t1(rc#ZeXqh&46Ov_(LiC+m9jTsZ zSueGS$825q0^4=q!`9V5oa;ZK+OVS%g91fW(@71~G4bS1X6pMq2ZltLx$VgLZ# zMUl^KawI^>7Rd44N!y3rm2^h{O9Yevf?f%f^x;5Z1OV~`VA6*NbipHHJU!?eGoapzbZFyn|5+Jz9Rl_PqO{> zZH-Z`Pgz$m!tWC9H0}$TFy>@2d*X3SZV%C)J5P>ail~_c_rI|1`ibFqAL`+{%qosD z@rtvle_tLk#M$b9N=>x=AKtTPbSizxso|2jGWTy{a6NmnS0+y|*`AVHymGAU1tp7C z$mnrdAI>cHtJBYkRCk&;GfEmej|$j3G$YD^wVhQKM;_zp6?4xS*)o3A5n?P+*iBXU z7%18F0K@F3)XAuW%5Rn5uZH^EpZU5C37?ms!)qI>kF6HhKp8!(i&n_1WheaV%rerr zZW8svI}4O-FwcI@9!UsN`C$3g@U~q~r$2XUxMZfDQZ|CTBX5h(E=b2QF0gLzdo>zV z>ECIxBGr_J!yd4P#b}{eB4Z0A8K0>(Y3s+YivP~^2JBG`e@23V4Y96>Ct8xn0*h{f zN9;M)z2qpBFUlWYA8;L-nq%HiiB|ch{Qixf^U(NgGjeagFjY}It5)8ime`(*!zK^^Q zUVXK`qj96izzWx*H@`I6d9C!Up-rri8HNXY+SRx%IgD?{H5Fb3!ixYQl%Flo7ilnt z=QL=;CnRcoo6^u0E+~k2OgjIBt%mRf&;iT|rGk>L)P_w|pl3<<-a~n>ea?20Q;CsI zEq4#pv~w55hbMgtTgmZq<#l}>(GMNVN~I63E7Z+@H7q)R=Vxscpq0zFzkFY>jT_)} z%CYY-dY=5TIR;#ZIv^@cLx)Q3(V?Z7vuJ6{2pfU0>WwPDilZR_bOE5s3NycVd?tXN zHFFnv!uW2}RMijjt~UKM?8Pyn!uCxK64a2OyRZeXUarJIm}_h$@N+~DHv?nUm0h{* zO^0JlHF3hFWdnby@e3o=wymJN=I|jR%WC*aYA%x`IPK%Z6G$4V+d=RX@1r#)7HR<4g|I_sD?) z3P|F*=x1EIZ(57oYH?Mx3Pl?#_a%fcQY@i0;ezKFhf;{juRQK{=k)^iqwyHn$Pyfk zpG$W84mGdp8FZ}+#1u5!F40O7q*xbi?LDH+*(Ja(2M={(EhbI@g;8(E01D|MlWWd#u=l+!gNZKFeqQ=c}GZmEBW63G{|vX?vZ2_tR=E zr+EjR`+-BC8w=lk`mWrYp#=^PjU*mQ*#CTMessrnQ-AK0F%QmocjwEy9-iFiW*Lf; z!v}a$>8BQe*RPYkns{}}_Kg=O%-`Ks{Tw~fQo&;NsnZlEL#@8v>Yei+d~c`tz${1Q zeKAYq-CmHrMk_ZBQ(kTKPQ4AJkIXE~S5;m*%bt|lpziq!E&4x02Ir<0%k z<7Wc3AE8yd4gvPKe#Q>18SmAPHsQJ^Mh?0>oU42^)Hqp}F}-o#P2yo|nGw5w*#Id@I_Y_7i>{XnkB+<{w%B3v5$-WYF zL9uLy2YdQa)tjCEOLzP;Nz6r&D`IBLw9CxQkgAl{k@X>QXl>s?GKmdS; zmnxG!(2-gW_Lp2iflL9Aq)jTn&7?pNHNG?Ny+V*Vj`fwggBxZHP~CrN$+u!hF!R#! z^xET!-&Vr%f1pAxm8WVe8|F_*WG6}`z%VUPedsbZue&Zm(ab|CK1idM=r4Qx>O)$5 zN7JXs)Y~A(*F@AzA|ZeTCulYiG*e$4!22FST($U2wf5=?8^+W=UN{$32=Lp1yO{g8 zR?RUQ`!cQa!Y_1Z4V^I@Mej>bX~z4qdOy8bEHBJD)kv65YRW1saJ_mpDQ<-(WRg@1 zXSyIV@XRF?AGZW{nZ-Oc9kFx);K~DSC2MRIV(5I#c2jlecpK9S<42YBlej7aK?((T zZUp9n-4^Crf}!P|1z<>S3@kY=j9hMS4c^3H-*7Z{(RnUtD@WvBBdA3PK++G)VmU?R zE&xz6RNl#cf2_twRvXRR`XQuU5(=ql$pb}%m8!;%Dv@Q^CjN+$gohlUqPD`|U`dNf za!Fe&pA~I1k7CP+ZZb)kBNM4b+BR5I_4zeF1kNO5uiF_&%r<6p#(4F-8}PRV#4#Z0 zBB3pE7u{Jc8ohGi2rONb?({*TqL5B8J5y{IQ2EOc>=Fr3Fw_zp9ol&Vc^1tS&RrvX zB6A+mjW7n+mH*2MK7@s3^heLsbY>XWGDP<-EV22n` z6&v=0=)1bP!ss0_b^_;}a`JIbYsBEpt2axYyCpmZvj=!Ap!)(zi=jt|*wd8+I|dQBf1f3c2E znU0`e%1Z4b`f~=CzD;cx2Kb%bHNS3va_{TaR4Q{PaSlFr#J66ZtfX^ibJ$nXqnn9= zGDpIOry~juLhCKe8i-qlN)TW^r3X)?=t*ac@(SYutLqHv`RSsfjz&{iRu7|3`Q^8e zsE5y{@bgg#%5RBr?CYH>-#bgWiEp=-Fl3U0wk{z?1d+p@eHt1DlGqQbJck!at#XdsU0;UUZ502R#mbmHyl&WrOIj8krz5hef+H3Qivr2s9mtUHtj{ZY4EGa{^D$yAGz1=2r)ssRcNh!WxP4 zsn;~*mxA|)b|kq(RL}E^gL1F}azfeBtJA(ifV+513CnmB8N((xD*uXq0X}Px>JeV~ zKikh{e*xB+n%r1$zVUqltqRAuF!n|_7N{3gWwfFC+M-q4;Bjq0GYpJWkFsv~8lA`$ z1=!>5dthLJ0!#7@&<8`eZa%nszJ%M$Pl7>}RobQ(FrbFrG)NWXau>bK!4T0A2-v(vIyV%=UNj25;c)X~j5-?6 zDJcej^G4{1QFm(6v_>2la!}`S}w0I(p5ck2b=o2}aw<;?gj!M6R;>;&8pq{DiX|NgczwK8M(I?6x2> z%o8iX+L#9U?Xfu7=b~J3*twUI#_VNuKQT_f?wis^PGDUbzCAZ0A6hZ~nelmu-IG?N znZ^dwY~twhruLBUsp&{LIook(r@Y$9j=a2;p0Ngpf77$-k4**`1o;Gg4>(!Bl6CMm zh~K#u*R@8aisR-JH{Fp<1HQ3A8Zb{?M9fyTa{2m{YM1>Q?m&o6HfCJim3~>L*ep%Q z)XdKuYi~4=L#rMuIqOoSbIhzo$KEU0!P`7IpC(+R9k29^j`zM^$6Zaib(=GRf{{2A zX?IgfpLDQ#{P}PE`Ru_Pze!p3_3w&8sN6?+Pww;(Rr;8v`C3h7%3ae8vd3$%aOe zxFhA{T*qy;ChK=5^~i7ejl~OD`;~7doao5QTZ;&Am~Q_YJ5|v3)Yq+Bo-Q-^huH>Z z&NLJ%%k8ye_4(H<6I!+WhKhb2@H+$a$C{xi`qvE?RsXt%G(*nQ?lfN zUUWE+Ue(_**-PUAywF_r!_=Vs*Rx$5foa|^%IKw>KStUmPe@Gz(_8GDL@%4Rum-ce!>T)+oGOe? zVIA0mfU=l0DS?OpXY5xWh0zA*4jR>gK%qN#@mlxcMGP%VP~o+W;{U{?)ten&{-FhG zcIV%;`!V6FAC%v&2K(Hb`L+$|AMm}?=5G$Fb^iF*LqAu>Xd3(3Y>@q<>8?-Zky6YK zI61ifaR`)cgPAE^b*3)rh~cb&d{NIHp< z+>v>Agxu12?=#)&LjeT8io3``cy=B8OC2qH^!A@)*ZOl8`8n+Q=uW5XGS?C5iq9}y|{QX&gT`Q!@z9Gz>Ib( z|3peaUn{HEqMX@txWmYNiMtrk+W`hJq(o`00V!8bl$dA@4FQ{9eT^$EzL(+gAN$tW zmBP)ApI@2O%|Hk5J;C`h;YD@CBW$6=F4k4^^vgOY%?|18GTR@LbV>B8v0_c3&e55` z8fn}e8^SWWens6}!U)$H9j&jv#uXdD;2I+wm8a8A1)q>0$7GVFGuPDfU)%qz)+Lq+ z@h9RU8m|Vx(&pN(xGOq!W>q>aXHS>WD*FbEur>m|*{-8HO=hDy>E?iJOQKNxeWU6a zgD9}mn)5WcyPnNDt$ZB}6<%9n zUtPBj);VC7qZ4eFWlpd+8t9`IysPhzF4j3{=B)#?5Hn(GY+q@iNK|@9QguYz#n!>W z{hv!>a>Dtt!oq^GE`Yd5$JN2s+BJVIDvrHeDk{t`g<#?%nl27jdtK-hXns^^%BTrm z9=5joJPgUVwf%BgDNPJu_5hK+H{0`3ebCyaVjp|F%hujK=#SD}st}2avh%M)pxug_ z{dZb)Vde9Vs6xuiSqFb4tbNj-J($zg#%rcdR#z9w)}RjNhtY0q^VcMV(M zJ%{(u!&G?6Z8u^sq~)y_hLRYAg|=g`k~J?u&X1uPo5!N>tGwOSpI+X~k4?hY9(le9 z-Mzp|f5?}i^7^-GIUor{3SN0yZw`~Ld)mWmld@}zGkqDDjX7Ev8WFK^KwZlU1pr)K<-I9hg=8krzW&`f6qe-&?tQ4vG zy03!0zRDP{SmlT=0S@-~GaQ>YrfJ=*rY|feEU3p6*;4wD>PEj1C1{8U(w2*d7mR~i zA+hwh6yaT?)|G-33B}Zkf_kHxFBHziNsJvID#MsH4~qGuXy$hvX7dFzyQG1-AF^~Cy3 zNM(VhH69lD^JQ!@ z&j2E)g81#>5(tl@K9Z(j0It&btzo{egx)#sb)+ydt0}qAHVY&Wrol?kDC#~oJ@(-<2IiFNhHUE7(aKxZ*Kma?zKB; z-@?0FzDY;~KuHL-fku{BO+y+$A|ckeH}CCXD^v!P?dKsCmY?O(Wod5nV4X3;3I5L~ z=F|b=6IV11^8uJ}N2rlw_+&UT)fTkKi;*1Zc3K`FY&bnf#8+j~!vFpcb8IYDe-`%T ze}Zu;gd{y-Vm!a4nmy-6_}Kqia-o`WKT&-AhTA{)xM6c zl$M{2f~hc|8XzT2B|zu@+Cy_~fSGY>e;tstKN~;^p%;Dd2y)d2Nu-R*RAn~Jk-wSX zs>(f>kNBy|mjy)80PtX$4{r6tV3T~w_Gw{X|DSQ7n*+eKe-6km6l1Mt{2$JIkmH>P z;BOBAxWi~{%-@IK?{gY2lMmd)90{pRQ(Q`20UKQp{?8YJr}76TS*m10eAmzIL5a`B zt^Vs?6A<*O6czwb6I!)90iXa7{hQBbk=R4&lKSCGf1xB7KKt=|{Dn2je#*RL>doiO z&4$_O44J3$c6fUfhw{0aWxuHYU;P0JWr`AiOT3%-SK!mY&m4VHncS4z8ax}k9GsuF zI`y|ybK{Z5j;(2-WG8MA55rUNY`hkJ7v3JfAD@grjsKa$BNr>W7LXo0j++8XUYIYYTPxgNP&au4M;=u&i5x)D8uevy8M{#M>u-d|oU-!1>0 zVZk`d_`-~2US$zj(+W6+vuqOEn}g%%aD<$B&R0bx#lIAD6iXEA6whz7+2*6io3vX-k*dDSyX}fT{ zc>BB>R82w6K&@YGSnaXeE444`Ks`c(qVbnTghsl?znV!}HJp#DRg1{0_g#JHYWFoF ziBwX)_=&~jHHWUb^w3DLtXLVTjBJa%5iwu4|GLkvU-pRSdjBK6kHi|a#eaRfq-5XZ zPbRx2e>eGO6aZ@g2ULLtGy$kA2(A?Bln(tP5+Q`9{WCzQuXc{3lot*gJM&a(XjenE zp;l`_E(`_|QYADraXU945O7d&3gyTEF^@+gd3<|h7oC-@7&rdQ!k*k-g(Q@-tvelc zLDXOkFvxWgOfD2bz0ugO;uK9Cg!6~xIM&OriXDHb?FY(#V0=E-CgOWaVtH|31<_PO zOpam3$NE*IoAHX>F%B3rABs4~Bjk#6L!PM{XHK;^ zmbQ5K*<(@(I5=6Ma;3O-;MWYYX$^lIj#uC__Uz0pO8v1>lX2N!HT?d{BBXkc=`5H@GOBmE@KA!*A7-tHatZZP5xX-R5p1RI; zi<>7GmOl1eUAAI#wzk6aZ|`9n{lTk$F_6T}D|J%ZUB-o`_8@v#vH84PT?xktvEo7K9 zMzzpr`Mph2Wim#fb^s~ESeS~WfV>?Pq3vvID|f$Rg?6HrC`G=o->y7%dM3f7{sJej zGty+~MJS%|bU7_c15A@O**L=+(7<(&u-mcq=rx6JBG8*G*gBd{fFATNB$8ta%TUJ# zILWnwfc9A3FJ5X5Ov*VcaKny6dFrE1PlEi6dE-X0$$Bv#B;2aFh=7D*eFV>-OHjpY z7`v@iA~E%s*#xZvMNm``3)9cC9WgHCXVGkDGybTVZm9cIsL!s_C{Kjry=mVK}8V!Efrc4L3L+0zHjJiUP%I zDG9yvwPfx#MvNJ%;5kvfPg73lR8pxjS?A36BQe&?&PNGt%8OW=n}N7P2@dAO5ERM^ zH4bplGrR=^9{8?CD>Kk}OV_w{_1IfQ0Wk=aqdUs4WGsN#Y+?09PT z8VKw=xFfXt-NnIWebMXFgoSyzfPUtp`?0e%E8#1j>bSV7Yu0yX6>N9}y%^e)L#mlt zf9eP6Pi9cuS_={DEN`qv|LR_^x7feU%E3j?hMJyxFMKaD!WER(+7MGoP{}w}7A2n? z@`!XxsHqEIlbV?>6H5-1bvPimO77eu~p;&n8))_br)}tO;BPo3%C-PkV!5qm> zn^p|;#dCxG1g<@uZrj{ukwA#9l`BQC_)#t<5+jLlaMzpg${YNl;6Y?LN4Y(iQ0U06 zPTh5T!0#&6AJ4v46X1up;rqWkRMdvMnPDG&sxl%SO{uWZa>X+kQY3>9znk|^nN&-quScB0GV z76Bny5WsEytuTM zJHi$fWviITldm!@yx)QU_O-7Qwzxu0Or{364SZH4CyG=Jt=@ZWg3DC$0Dw9gvI`@h z_H->=6F%Rcq?9LZC=e%)h9USK)a4$&lvNe0`l-k?sPXTY$EV@y%evZ|8|%{Z0R7uY z$PspC7W5bUduB{eTZW8tTGWRCDh;JLOg`ye{*S`_z_r#dS_xHEMm1Qg)e$XEi4<-*LPZ5CFAAlR%V|XIJ0YUbmpNGU6 z?=fZk**RzkGF~?B7VM;E5k4yWp?*7mI17||(<;uWp8fC5|M#hG)1#==R?`Jpn|+x% zk9My9&fN^wrXgS@^`KDElEXdi+t(OE@L{;l|4W{yxrn!KmmNK8K=V~ce@D)&NNR(| zxaQ9)`n5sk(Q%1v?w_S{BHH5}fpRg(et@(>v-xmi{9G^@3Q47@56WsFvmH4@d*M%S z%~OE8OFG7yhG@Dzs9H3)a(S|e>1)b_myq^<7_qSmH>nIa#9UhKpG}{Cq;SF9?9`>5 z{$m#xa_^of+eEqd-HX=zwd{qu``%f)0n}qViIcJmX&U4H*%ws;dAjv=S1|7$&}i82z1kZ#>ZEt-Le;2{lYMm{eJ1+O4v-5<-b z4PYNl+SCQ2jGH0Q*h&`-bdwaIs+m?pLPBH!Ql`XR?}ZD+)9_TRlnG;v&M4HfHaPj4u3U zx@P1Y=JRW?Zu$i@lNx(L9sSPE?1F zWPEWFanprLIybFZYkf+-lH+=TA4b^Q<6hVLm8{7U!cBIxciPDo!XB2?-Q55Rn%^0t zJtpQJB8yRVYCYnxH?9(#8V8SmBPN~ZG)D;wE~+b~RKk}Tld+&l>aOg{IuhA(H0Q9UjO~(#frC!1MTe91mvmifTfQ>;K-F9R$}>FvgQ6-N4&Vd}k8?jQbuIzJlonio!V zosCRiak@=J!uHGV#Z;{Tzf%=6A)W0%R4y`^2k3yOv|JkmwbdyHQ@<)n0EO9(Y-m&} zOpJB@{wp&ym2>I)zQjruv{A)|cyAGl@xwu7&VoUs&QA?xU5*as*>bxhy&pw%&Dba8 zu*@uMb6d%lS4S+bKx3jmas(Fd_BYK?j~{mEVcfsJCXqVY3({(qg~MNnZI5La6?XI) zM7t@cqD%Kwi+4tIGFly0jrI$R=5$f@Xvp{#P#KiE)(9yG(T>JMI#Z^;A2@KYXuZ+N%++_OplW{%JHN}EqvR$7?hO1%D=^(*%a#8OcX`1IpWSdJqT87aFfE|G8- zKO3@k?}*Ahnnd>T_Qts}rhgEXN-V=(WeSZq?dS{EK+8{OxY)NE?wBPP?RyDC^_sj;1b;oF1(NO&#j>VvBXHp(fZJM!@4fK?uWPyI% z2)ra_=SGlMbJSWOiP8jSXhWR8*%6zjliCY zpB)v)X2+Z6)PkCL9H5kQyy3{Y1-uaywVu5bLC{e*&!3HTY?`%PqB>KPLcr>7v3r-S z2!|D7M5mdT1B7fzlAMmL4lDb`|G50RA?w(XCa#8!ZWDPA4@Q)hdW^ilqri3bm!sL7 zr6W+CL`7Y;6hW>&%in57VPGbeQUq2>jvzj^)yS*X5GT|PiJ8;kkWVU=a0I{i2Ns|} z@X%mu!!OMCj#_>sA`6=MZ~+v?W7S!_!JXNB<>t4n=0Q*p++0fnrw+WKep3wKT0tpe zVB_ro3}I4KX)6ZBcV>!bFct1$)sk!}3|-1{xGC}WNE`*TCM*>C{T5h^b=^h1dWC`k z;tDqS$w-B&l8YB{<76JzAcr;((_spn5%*t1L>6xkCwg0ky_voyV`01~Ev)N8<7|gr6e_*BD z5dg3HnSP9s{hAoW&;83IEZKM`cg+~v5!*q^3-l?oUB1@(XY5ZtR=03pJI3xhFVY{NAa)?l= zPT1G9YA&e=PU`H8(QSg2ctBm}s{SZvBvw0@^2dhdS;i@DcV_%U%0^m4+uUO#@S#gUYw z{(@E*5~Q^LP612W2rn){B4ZYD4hAcDy0{k0a3O$KoGVtqui6&Puroq|BJitZGWj6PKj8`Qw&I8UR}DD)36n|7Pg{D9LgM4S*D#rM+Le!b z7Zx}v)%X^x6@l!=y3ovc1Yv_fkUo?H}(1Rta4QHKnjxiMqRfTC1~ccZkNg>C~TZ_ev;~v0W+BPi10V0y&dRZo20qxB!M+Vf*?yWQ^}aSCjOK{6`nyHC(-F?rm2?7DWa%J^&u$&>0P%xlGX2;qG0I2sM<^A ztm0XK8ZBBwg@CX zI)wgGJf~nDLEe7}ve!?9;+z%5G^d*iWm?-T72YRh*|ng!ba6)b%EkXXCRyC=WBonH z+z!nurWpClqt^Mcl6qj>j4s*cV3T`OY2}4b=t6fd^i!64cq8k=BSM2m;yaw-4Q?_B%_(R))kQ{J~u55y-#h-Y51Iyfsro zIE6eS@I(sbOii1f+nmilbQrrrjrcl?$9}$P)3v}=+zyOol*jKqBHZHBw~W#O7g@@m zQ33%49s-m2!J;`2n9bc~ol#1Z28{p#EFFQ#BzxWXDy~h(0DfS+^K)ZjIYbyz-R!De zcL9PfebIEE@esrX-~U@!J6*mtSrMNMMt@w=XMZFreKaTP|9qBXnr|%ce`uKyoTy+> zpL@=Xwd!J!v->A|1y4B;dduv_5M4GEMUpvWAUoF=GbvKvylid7RTxE@v4Hf!K^hk^2*5?BC$9xh%9s_f*2+X@fCg}F z9=@Rieg8y8<;9Wn*Xx3P(H{<_WW*fB1W8o-wR?1MC`+)sXxW2<6N&CaQn#WAS-k8X zSQ-6uWW2+DSA)zIrya4!FlomoNfxPn$V|RDb>gGk*&L1^C6l2*_!b%Zy(fyy@6CWl zRZ!5?H$>5-;UWM##{J_e_53{fe>S`O%4dfhu1P!e(jpVBLyKW12s%n3uqKkt8iXh* zL#R9IL>!fKw3Ewj5b1Q*rC*h!m>PpjM2;txWaO7?7h8unVnBLL*NG&;!2bl zvT%$(Y}aVntECbJx2Fcb;9^`}=C$*mYi2;1(=q2Kh}U`Ju%RWxFlRBy&WJ^XY1Vbs z3DJ_xgT1|5kC_EQ;gUX>V;UjlWH$T8Ot#*B&ekif_!oY4BZsn9R63F{b~e<%cEi-{ zWPgYtwtJ>?c!3!kyCX)@ge9dkU`*X6hAv=r8_6ewJUR3!p#u8{Ula8P4!Dj98T0-uJXnOn)TQXHgQp1!uy(?+2)>HDzQrwZ!f7*GJyKA zobj=wF#8zQeWkm1hXd@oI+G{;%rUWh)`8&&5blsYqU{ER+$3=J8Mcef|ADn~Z=P(8 zkDmxeJ1wI^UV0<`CUd1*-jguhbaIM2dZo)o;;nJfk8^>tWI(*jzi!oSl4W!j6%dHt zp36@tNfuMqu`sTwtKCuW)C0R^IPGkT2j&Ql7$iGXB%8VeEuO8p4bw#Hq|;82G%)qJ zFO)9nb>v#*giSy;c&OUx<9EXY>3N{DBn~w9AH?TR57UdDX;sx{Tj0XxS5<5uOWeFO zDYWG@5XsDfdWWZRT|~a1ANh^4%o*dFpBfsIj(;OIz+~nDI+fC82Hn9?v$+5c07|&f zI1`0&k_8iw_g%;4{x@n-uled>N4m4f@Hr9*xR>rnz^{fDP3GTWCw5nR4O_lTHp$(g zeP6*}Lx?`Xr^%d0HK2trr>gbIfM0p&yxEd1+y_{n*{336K1D!U3tPWIX+zg{Wu@1w zsf|h)lcb$~GHhYadnFH_H>>`E0ghdzvS8;x^>vx9=z5Iexp;wZmq~#5fW~jJQJIbJ z_9U#&Gl-mttSCrDcnPw%lwJJStzJpL_wDtONc6_&c#{*N&KMOohI5>VZC%%Si!h!- zYdg}YX7~7T>sXl#MJVqHe}aJ88_&&G z%BCWIFnn^h0-`tNujOnmXxJPk5Zw}3U<1`V9OzRCxYB&prcfZvj*NsgY}6XkEJn+m z>HypRaCJY>I8)9gNM*aWE}@Ev^%=CVIXG%{rp?jM^hbxf#^Tls!mVMi;2HI!dWGU5 zkawm~6JaUcuP^}+u8H_XghJ~?J&xf-5JUKK}+IX9W<_&^)Nl*#v zu(w}E=5Fx)hd?BOtRIDhTMk;7;WZ{@+Qrrn+(z>U9*I+17mQnMwgWr;n$yLFA4wWC z#7?y^$XLH*%*VT_cJanixY{;Od^Sa}lpQ=ASD0DGZb^CyY zaN036^_GaFd^E5)XVHx>YvE*??98Jx(@f^t&zPs35B`O^3B{mgVb^}cduRq?gz#1x z?4npH6@F{95GRI0%?5H4;_(Tshg_$sXDO_~0+WLa56ZmLwfBE1dHblA!m47G&!hk~t^C>4oQYwP;1!en zV8nlA@T7Ul+|1v6|K^hBS+dVT87DQ$MQZ7~plD2>o(7@ej+2EBV+s~eT_FtJc4b}H zA}^1kkL)ZHwB;^N=BQq6Bq)RNdzG6G8rHzG!k94eB1S#%*6Z^gHcc`;Tu$K=H6KZ%F6WE z_1ojS;}D)@uHOrIimh{=I_X7Bp@qLzt$E37y-b!bLf?~hRgs*ld@?d z!zQoxJ2O>QZ0YZ{f47N|>5@!q8R8CDa&I-^Ey(mMp}j_nAbgsU4oicFgLvw+ashNA z^r?B8J*RMhD_Xs2@rvoWdEQK6DcS`IArrDCV66pm)kIhPI=s$bJ&wyak5?g79ot;> zD>9;%{Q>5U8wl?bdk<5Stl{c1Yk^TB=sVTr}^?CwMs%_5OuYA60%3hYiBJEOo~&%uN{@(uz_DIAp|p2T7Y**#p<)8pQ}^^@gG z$F8QQuN;=!JI(e5oBfx7S&3sijPVtOwgx63=*e@gY&N?f!4V0oBi)o-u;K{~-e-P3 z??)&DR0nk6`|~|OQ!VJO%n$g=)VG3R&izx}KY)gOY(1G%9|~q0)swOz3}ZN)xg~ba zSi{{JE5SGJMYa|7Kgy)L2uHHl0gu`z0On)bIefch*qj6HY)xW}S zmaJEuFsd;o5>)b7gP5qjJ~C^!1`x)s>fj(*HXg2U>D2RV7!0UHg6N2D$4$JUis;#z z2r-KE(9qmxl4KtV7tVo46K75oH9YzY%aYUP9EOz%Ve?pk7fY7Rh8ZUFU~3m96My8&rQmVHre&CKinO0rp{*67db%sN{<;K9foINS2`}&T zM=y?Ymsf|KVQ2L!?%2gMp)$&#?!IA!@6kncKq_rD8%eunl18a18JB+^^1N-}OK=dh zFG_L8?$bwr>x|e5D7fZsXXLj^n0~Ht+a9ksxr^}^}D_`SA#;t$5xoXzp zQgIBGun$ynppK7`U)1oNLcXxP>bd;VAEhtmaz4%KDavz-Yhnzu7^=y@*V;i6_ILTu z9OU+N&^%G(BHfo*@{h*`%b!~X^lw|nqqk}3tp1c~4M&B$Yb4SrTsFRsx`U5efwA-9 zffW-4;-UpzsKhR^kxuWS+kF=F)d@sjHaqe;Z@4ylbLV^VC@pwcPUzlTnmQg=9dzsb zY;A`!$h;!03 zZ)TIR7dLRTqwzKwm+ADRY>h5!YFN;7s8T$lk03o2w!Lh0YhKtlFw}LM%VMAzC+*Nz z-Ta6CkvuBX1_w=YPP|pAMmdIyBOKxYoiXL88du?jM$!Jis;s zb(A%w7n%NAcZ7?$Zoc}(lDE>|ANfdcu?HjFo|+RTdlGx{h$=!#d7U=w#1=e?PTWZ~8s;cLS96w!03}V> zf;QZXAD~lE6U7a&NW_1{Is;CVCN+4E5FGX`WGLpc)%AIgI?)(o^g#B5F9ybR+a4t# zW8stC$HxZ=A?aL8PCy^V(Rhh;9w4k-><=9+Sex=K(#En`otPl!Hqoq#8OC0=cXJV) z;xGoriau@e`w3yg`P}&vlR6w_)&moMz5!ssGY3wVArob>_q_C4`L`jk?zQL6-<`~= zzaO9K{n6#-JrTnAA+P$RJEpj61?=PQ0q@`t$8 zKV<-~0%h0v&FQM?cTA_&FO@7)HpRe|eCjh*HTEh#HhKQuYLm-I#JouZT54INPjUU7 z(P5xG1kBeIvU?*y9i^(SluAPo#H{|UMfJfn*Oq3B>62qUuN)lrd*z2?ZuRuiRb8Pj z+ZmK?k>X`t>PTSy>vN%dM}9AI0^mKsm^|F>t@*}Vjm&2>BctWxsFkY z%bXA>$$?;NS&<@jcC=MgRLW&ND|3Tof{-2rs7mpcq|^`V z@L12kNG@D6xkISYBD8o?sXG4c%(l&#tRQhN(8F0_(dWeRvGRh;cbUO#QgW7)l6v_| zGYgjIH)7oyoXt!s@AqNd!nU)3z~r?#*QMLbA)J+kt{;q zf~W9jR)}@ATBl~Z&dJA%pW_jHyG~6SPgsg!92`#w3&`+wgt@B_>EcLGzbkPHhn3EK zrE>(9Mt*Ohe1$mt#ey-1Rx0qVy)2kLz5YW1?ARI3FBg~9o`-28BZ_F(DmT{jxA3!C zGimUYO#4R!WOTy}0$eE(O&eHa?1NoDZKGr^JaWm=w49x7(bnYRxY*jI0*=p2VD zLt2xv{hik)(;D(T&aW(U`wg8=&757`$S4%Gb+%#7Sr7_)OX;)D?T#g8FL*m!-ucYh zpy9kW7$g^E`046>Giudy){(^}Z0^lNDx`(CGk}B z*vjtnRm8^S92dqDP{Q-6xEPw4q>rEC|MkB-vUJl5Ybzd5jOG#M1*QK*e^r#6Q#6|M zoO)EW#WtsgZzg`~^u`l^#UsP148Z^+MwC0E;(65ub`cDvA@oJ6GYe>qWR#d3a4WGY z3MSa6QL$%K;%B8p63}w&z6Fb=5VtY`)8K4ng0rI%P;YL`0*>a0gX>qBZ0_$SW82t$ zx&0Y$wcvCy{NSBH45fx`)$Q@IvM~US4@|Dj9sB>&Ge5=MWQR?1mrafN<-VxtrS#M^ zJhPBOg7r4{cZWdWPW&z4w0`U#`u7Yp1z}v29^NT_p_B|Y2p>R(4Veu8Wa+?lPhYg> z)`^}}a+WZg90Zyg@-f90t4_PVj%Xmdk<3`}ZL$CjJcjjNsC>%jTkB;e?bWghvLpSB zbPWRm@Yx0)cXavt*l(^&{S=ku;Ree{m|MMl%^t9}Mc5kzr88x{Ys4i)n)2XBjgqlT zA4E;aTtv{>j_d^oii9h0y+4Htcw}G-^G#m1)8-&vKcYV#rH+?f1Hp(!34sTJ9ji7k zUQ$?EB9W=LTaemC$6j+VBss@rI*XBzj~KQthCpN_RZyfN)C%0X92PB|O{(md!naQ7 z7DzDXW`}!gSL~YVGb8e2iO763qi-NHetPKifBN29GMGQud+>uDhLHBLI*J;dZ*pt= zjm-3WA03N$!@*yfNz<|)`{DgrX!dX2&8udqyv$f%&Dm2f3xb8T$B?8Ld{Ob{++xw9 ze1V9^?JMHG1q1w=V(CA^ebB1j@D4AULHbik51(r@^kF7??XQjTD^U-=aV3xAd6l=a znvQJ_`|QVJ^jy8YV_{kLzkyX-*AAkPzjr#PAsw@17CG;+ug zG-(s^t^#lsaMH@3qGU*0J2kog8`|{HV}NMKDr%{|lY)s5Hb)|pruT96Y}d>&^a06= zcFiO4uQLgBSt4G8OrJ=T4Yt>(6TWJo1rOn?)MLg)2!YIq(V7hg<^!lfMyA#kF@Wys zyZZnQzlD%0ie$nCu#Nxz=;Ppvh}HB?V*zYB_=5X|W>~9KtmC7-v`6VCLX<0v3PM^7kI)N&`ec)YDZxq=KD^*OKFOQ@ z(b*yhlz^LWxhcFRP6huxT@)>biXa>nU?#6-=;EBfT$sE0-QhtDIq{$}-i`|MTAoa+ z^Z9gc`lXb51q6J-Z5ki2rY=6( zNd|^}$Cbz2Jdevs-R2y{Urh0nQHy7#io})-^uos|nl`9bI*!b+6Ov1yQ=-$7s*72P&+6Bm33;=bw z7@djvJvSJ};~ew7MA3pfL6%NmmHYFQYbwsoS-2XrA6?<|uM?wk97LR$AEUAI;Gh?i zuf2jml45A3qa0vTmTVwDHfCm}h5vs!EKT1fEP1*~s<_uN1XCl#3?7*_>~pl9R_L?( z4p(i|g;1lPDOF13&E_hp&_IzP(G+qBy{PYIb0R{4VGgyzq;6_6ju9HQQJRcKsG8N{O-&EBgI1&6c0xM?;NR(@uG`@zyU(aw*toEQvFstPnxz zm&{$=uzdq!YPJ3#4TB+~phU-DH=Lz{j4n(P6eJQg36$gsmZ$>@f~Q_AD^H4iq9@cS z>(uaRfu@sCisB(I_nbLXS`yQh7AM+M<9vkThu0gr{8dEEmDFF?h-pWLd#uLv2|E&o zA!#g)`kP4OJgvwS{pOnjpq;U@k^beGDY+c_-4mR?pd1`B^~!b{DBv?~M65WhbJIwE zzX5<=pkJtrrhclfj*cJ{k?{(L@DzH`56Xb7YG6q+n>9Q`HF7WzO33AnkJX3*I#GpC z9%9~t|68|9g5c%jdRCb=Rl)_EJxjIc3Yi52xKJtsKr5Pt-DWCxjC^%9vj!L6_tUR!v@YLUdAStF+y` zxi7(2N0IWP3jqX00zZQoW>Tv$mB?93KdT)Nvs`nOd6~+{sHECR4S^fm1vPD~$p53s zt=vknCPgkEqttpco*2iRnLYxcv9P|zE-ZDSnWbsTEn{@~U^747@!uO9s6;3~qQa>J($tC;Fx7)#gTdPK zt{`<^1q~GK1DY2QK=Vytw#fyyl;ZdxgDTJfK3xzvBiWn)H!y@=sd}}^yy5BNim-TH zu%=`J=l2Ma4yyUNBv8F4J@NooOE7keaEY&s*K6aeG;vwL?5ct`2 zZS+sLZ}G^s7zL_}zz*WTJJVH%f>D?dcGEl>skEgP!7|VRbE*{#b2<(_%2C9sX1{oz28R0nk3r4D|zpF!BB1uIL zMXZ@2lO(wxIf~zk#5O7C`PIbjzdy!s zjrVUgP)KN8jA+NRFd&y|&R~EQW_^NXV6b&Z43-9TECGO~`pI$xf+0E&5nCW2Jjg1( zRMC^R$p0MyP-OUQxjX}bSF)P$*)=7HI118J@L`j_psWU5ct24zRw8P=JKGwiscEQE zr%O}Fiko(-18l;#5x@q9iYa}x0qMo5)v7#t75)hAbyuo)$Gv+7&Mu1kJLk{OK6kZz z`0%NJwyF}GcHmz9`^^>Z^bM6R60hdl2^tX`20^xMMM?6M13s_9Ezv7O+BK$JnTO+I z6w4p#uG5x5DT|+-9oRw>kOT1>p5k7CY>SKFpK59roRZEaR+zP?fx;C5Dv-M08Je-E zp=Lhb={bf=WazZsFGJ`+8DRj3bf}ayW>lj)=I+tz)o;`3x$~Ede9+%9QFDE}eZ;_E z*JsEDdvM*{lUh|SlGDb>d)vxU>cjCy66{^Yt5l=I&KgqyrwpRPABPXd0blWEY-mO4 zvLcb53bbO|kcS-Gn3qx?ept2V_5G~TAGgHyt?)cCA+K@uz<3Uy%jNZQ_6Ar1I1U;5 zqY2TvLX6=GO>w-D1V5J*ZzSd|IMoy*r38T}1t=^F{v)@()8Dsw<$j{GD;c-zT^P+_ zLWjtRjTjHu%{T)ZTjF?g-U@hP_#Ff*A0GR97-NZVmC1A^OLL-A!r8gXz5Cq{;RW6C zc`@5<&elv$M=RYmN2TCHa6?OHzevm#355%nt!vl-iAU)n7&UFyC-QBJzE=eGa+?14 zyW;1p7*-|{w-rm(`*|A;6zYQQD^yV0^co=nR7J7Vl6w(fu>Z^SjEQ24!+J~1qFEZ_FdP0!1|o~vA&`3N8s7HEax_k(wi_~N&uPssk81Pe#+kY486-2+KX z#Zrv9BS4-QeX5|?UYXWglolIWummORbb(DygblHuRM1*wI09W~iQ@CPE(GoIVNzPK$M%eC;*;+9D?^Erp@g@ zyRr_Dd{^#;z&$MVbeNFevMG+DDGl*vTi^R=LaJK{bMiiKC!3sK{C=;CBB6T-$2_5{ z#+jBk@@k$oq+C<@>1I?G5yaKmXE)nOxEX9eGlO{-- z_jZB8K<6iQx^3FByRecSj?I%u!e)vLCla@uDcxF`)89_>kGo`W=g*zTCpGIU1!-Lj zQp6xOewG;{H+r+hEF{Wup`ID~#8W7K7R5@kPGXQ1W_^TC2B4`7ftPD8vv(RfH+`>O zwJ@D&V!PQ!Q)ON-3yru=Jr0S1fJF(IZ0upnqhYMdPCo)p9J#WT3KM7)Z^A0=VL$Tf z?Q_%Pew!PrX{hgRt_^Lv95Z2gwufKpA5IUc4-4c>NwK6}^5#u|P7ZC-6t zXE}~#r8>;GVL{S)JakNfHC9;jJ}loQC25pq5)2tasu6)&D>8RAVn#24zRe>OLj#FG zi(^@7Hz8Cs3uF`?f{`9R`YwL8I}o^V1N_@zzhGSD)Xnab?Spdk?jr^b_JV%8DLQ)S zXg1%raccVixrs)H|FJXX6?{+$FD!b$lXJe%v>?d#QN8NFrI(jM!SEh0?dbH!-nSWP zt;-OC9d=E}W{;dZ-Qy1^340F(G~A6tqqbTlB3)depF@f-G%&qKPF{v%d<}b&AU&tT9fR~G{Rma-E7^-SY<`+arjdmP$OKM{)Lyd ze>sEn#@ZPL!vLJCntpJt`EY#FWj?PE>Zl6YM=EKB2<(mHprh2fXBDFPP)JaItnUKV zQyIxd0#W{G!(?Y`I-$KagkR_SxzGml7GYRCP~O}KY+$1>jj{EHWeulr9U<%p6&dsz zhV${*wwcW5{KT}V7>0LFKP0hV%&gL+(rqqr5krcKDWwRJPA%0Z@Mq;!Q?uMP%S(!h zTrIeJDu&_z`>m6*1!Wlzu-0tv0~xtHf+K=<+b7_xOMkvAlcD_L_AHQhH8*pIAAQw|#qEO{KL;K~mSLc5KOmxpm!D72Z0ffyJEO+_ehB z>vz@%88>B-cSN)sPFzr=ASS*vT+va{Zc{Po0KC1jCFam4gObpm?N``LIVFQ=ubo)t zkd;GA+LfJ`T%?)Mr#5Vjr)6Y4w7mZj!!i=mWnjGv1XBxe916xmcwQ(7QFJ1PZURN; zU`FOM;&7nQjALH#u!7&LS8s#@9xpxU=Ct$tJm%$}`I!9D0_)?-G{lypWLIcVHF5F; z38rs3&r(KhqtR zqr*kPf1qlGs7RSwM#rb-1*|lN7KgNWev#^-(q=(%Z)JeiPuI%7sDGq#d!jfxS}_^v z_2JfwJ$^ahi-jW;?I)8-C?1K$D9@o40k3Vj`CM9vblSDkSvRq82}Nb2l9NVS5HBgO zQIS&oNNoh2&}}qQ@hL&z9ATBNjT#`oA@mF|x1tNsR$OENVhLz&nV(c8O(!HFs~QdL z+fCQ5VR6)u@kVqZ3n@k}nmR3OoI13sDu+t}E9B*ZqD2KEooSIG^wJH54^CcOR1Jsa zy5H3)eG~fbRo|fCx@1t{q6`ie742q_4dVb}t)_lOqPlh{M5SLCdq3saA1Z>7lT(aulX;FI7r?JFamG9>V zY03{8i`C?TLQY=P`}JuFmMU=YU~D&|=}$J0q-hoU9f`4+C4?Ud8^gmm*`GDBpdU9r zWT2n~-6dXabiV=fCl-~GO+qh53QZiIj40HMlUaw7aRro}yN$(y=o9(#-4jNTRLhGmIKhdS2=MraO1BMt=ntq#ile9(Z*;evOePYf|frx~Pgng0$5W zxROjw8F%IRo^FETj6HyTQbEGPf`Xw)qEMw=6cngQ-VznD(J4|$FN;K~Ku;zh>p3u- zkHFY`UV1MNJd2%==%4EYS6;JP_TjEsESUj^F*Mjmg@N@ATR?5*URLmg0&-TI+*K>o zjZ26eQ6znMsBH9Foh%&swD|w!W`Dq>crgzK%+X2R&5< zby2vBk5-+2N7U|c*t``UVf*l?Q41k&kTa(eKCiHo&8$^O!jc?m#tK!lSt}aMu5qI_ zQEPUc2Z~h+_7>}u-67d>Ozmy?ih>0!yRW}p7Yu!D^l=IJ%k8k;lAIP)-w2nnNI400iL&Xc`5XTVAs<)T#WA8WNMc z7E^A9xD$PludgX%O%jNCGjI*J*-#xNPH}oe#bTT6=8$-ddMdxn0!fH$$t>eEI#k?r zCoLF*#}wNND#I;7?N3T=)L%@!F=t}t>c+MgKB;EUu?|PJQt-oMqTIFa0 zzyJh*zLWvLzrW;{iX-#$-f5Hs$jBe+;Ufj;q|tr!HZtQAEdV~YI^Z{>mJmkL$YjL6 zNsKzF0=s?oLjXcOwWWHlI;AtMG-#M8vN7(nx1<60r6NYAct=C1+F{TuDQ0M*qmMJ} z@ER}=4SK^}rxVo6_66=%dK_56D)pO50n@T$eloBX_huU1XR}QJ-o3+XP7WGMB2xkB zlxIJ}9ExI9q)0&1L94*jDYizyZ;liYH#GG2CY@}9mXQFznQp`rF<|axIzAA2@6onZ zq}5u$+=9w^`*ZNX;P0q@g{ z8PcBPZD0zMYEb|}RyVHHlzZL^?FagPEE^2KB}N)OZ(b-6Zq$^a!%h-wb^%!^4^lu7 zm2{7|A}jF*Js%wuFzhjx9~7ugy%hk&N>MvKSJ+1Z9QsM5;Lkpgg{%4vYDQS9XQg3A zZgVv~ao<1eeo62gb|OCT6;X!udQOTd53U7tq&+cef+Q@ey5F`mLOn-<{}c>9VgaB> zP=Cs5J_jIs0c)aOR6F!q10YaJK;t0m3<$sg_YA1oa1La^Xo>WPQ!=C&s`5j$>(C~g zhnNwO^(>>ElJ$%Za&c{)qbOu#$tTX}!f9KmB HNCp4^t1hY; literal 0 HcmV?d00001 diff --git a/assets/inter-italic-cyrillic.ea42a392.woff2 b/assets/inter-italic-cyrillic.ea42a392.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f64035158d7e4c01654e3f23dcd6e8299928a28c GIT binary patch literal 17824 zcmV(|K+(TGZYzoV0yihRy3;{L*Bm;yv3xXa1 z1Rw>42nQe=C3zL>7I?PUshK)MG!ta^L3b^d$O{#w!;WOi#caU z9epdi^~z}FXC1zMc;nw||B-~iJKZ7-`H(Kn3lKjZ5N5RqaHof~Lr#JsXW1jml58&> zQGi~|0cnL4zB|P8}0t5&U@c|JdMvNGlmzMw!d_sgsBSwh~ z<3uKERMdzOA;C{wc9u@*KWk~1ZrQFoOIvrA?XoRxnU;2`Lr2EaDbuDiOouv|*;F%- z#gKPJ>8fl=HUf*mFq&P*op#SRB5uMwrI5O=D|BV|t7*jYszMn6_y=vT5wbG)8zDBN(kmfH1b)al)=7_XtiK52#|ESncdAW0QK2HvRY`_;WiO>pz_-Xk zH!T)&YR`MAJa7J@pNA;Ve=XlUuY2Z4Y1bh`Bcza^p&9I}QLUiMj74g|4NyqjXq$hi zG1}j&v`P|}Bqr@5l@eV;qy>fq`v}SgHrfA#@*v!mV~$a+B6D&Jh-sRueXL+`%jr?vt30*Vq&Bs(79VL�!Z1%E;0yxE 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 literal 0 HcmV?d00001 diff --git a/assets/inter-italic-latin-ext.bd8920cc.woff2 b/assets/inter-italic-latin-ext.bd8920cc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9c1b9440ed419d4a71ba46b0db3951164f9e10df GIT binary patch literal 63552 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 literal 0 HcmV?d00001 diff --git a/assets/inter-italic-latin.bd3b6f56.woff2 b/assets/inter-italic-latin.bd3b6f56.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..01fcf20724f915f68a974ef2fb85f86f3039b1d8 GIT binary patch literal 46048 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 literal 0 HcmV?d00001 diff --git a/assets/inter-italic-vietnamese.6ce511fb.woff2 b/assets/inter-italic-vietnamese.6ce511fb.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e4f788ee02bb687bc1d5045483ff0d381e7654e0 GIT binary patch literal 8784 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 G0002QVTgqQ literal 0 HcmV?d00001 diff --git a/assets/inter-roman-cyrillic-ext.e75737ce.woff2 b/assets/inter-roman-cyrillic-ext.e75737ce.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..28593ccb8a4d849a746f2b970678fe426cb136e8 GIT binary patch literal 26600 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 literal 0 HcmV?d00001 diff --git a/assets/inter-roman-cyrillic.5f2c6c8c.woff2 b/assets/inter-roman-cyrillic.5f2c6c8c.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a20adc161f433a7c4e3d92306301b9228bcf9fb4 GIT binary patch literal 16780 zcmV(?K-a%_Pew8T0RR9106~lZ5dZ)H0DY_g06`%D0|eaw00000000000000000000 z0000Qf;JnTejI@~KS)+VQiTZyU_Vn-K~#Yn0D>GZYzoFWxhOFCMgcYgBm;yv3xXa1 z1Rw>38V4X7&~ydchCS#Gz^U?2)GLZ$;~)fx9VPq!mcYpnq1!@L^>;{*F0jecR$FUZ z6iO)D+m7xk=GG~2u%_f@f_0A}M3f5QA!I8ybSlL6sOEWg@rZ{%r-XO@6}qY6-9rwk z7S=XGl3Aagf2VfteNWPp^bim65V8@r49{4$60G9{g+&}2us@F-2(Lo2<%nmyfcXPAsEmOx;aaT-TYLA-g zgvewpb}BVR-ML%T9e1_+XSTRIu8ysxt~wvE#THu(7?>6s%t#g^w%AI*C@r+u&NSFS z!?YO379&Qd#efkr8h}DK?^}Y96T(bDG`ag0NywoDEJ20KvU^4sLVzaVq0LwZTv|C` z14y1JvebUtkK*Sjex9GxKPxfB0|W^&XiG7#GZLgqMUf&w#9A^4 zW+iy=)FGciT7s+#QV7M`LjC>~tH06w!e2Ax?^P|^{|Jdg?L}zEBROmDjx(eq_hRc1 zV(lsh-~$j6AyVM#mLRo3yaZC>4oHYziCX!nWJ|kyDQ1We#|#&!v`Om_QWZjOQ|_<7 zqO^Ag z|LxCM>gQohx?AS&cd2u!HPjGABuD`9BFByk0|5i0D0M-?X4I1etS^BES`g^zkt~9N z6bNJ~lV}D>P(cz{NrEb0f~~eA*hz!DjYD*TB-l$5xJZI}3Z&b9(r1+npvb#yl83Nl z2RnI^NS>jR=NyU`K_+AH?@ubOxrE?5zK?(a5HSEGfL9XQB!kX)2>@jCl1u;sGFnn> zj2C28OX#Vbi5JWktIZxrhYIpYTimo&U!G5i)?Q&yyoK6r2DWv;-31u6PL4a9i$7$)2F)vjovc;xwPK zkBm6fN#La>Q69B!-2$zOXy>J5lik8e zjvr!tgI)_mcek^UQnXpzqIehz`x2z^vtH%)_`!k3m2{<9hw^N84vueaRwueKS$3HK zVb)5CK*`%upy*Rb{-fw<4R%DoIZ>ilo*ZRa)D#}Tx)+(E&Z1l5xQ48UMoE>6C}TlH zzi*VptQV1_u#IZ4I$*gm@*C|gTAPwGntNMse;D@@02GLZEstc;mQ#|djM-gg+ZvER zs*0x>FbwEhF5>l%PyLvBaHKdMIm=jls)CofEk*ltCopWRZAp=ynu*F6+rJToloGhD zK$~G>vL-8w2Vjjj4qt;E)-no*zrxzjk;7tzvejc<`$O~munh-(`?5rjPvLp#Gx!03 zQlpT<(il36?a(U*@j5wBtwtSH=jYIE2f)zvu-AX$UG+dD!}anu^fqT3G1QWWK`>AT z`){B4jRWge!1`BdxMP#wk)vBR%!sa>ViO7q%y$S%s0cN|5n7^%Fc8IrK$H+Btz2Cs zD>zAuy<{a9xk14Gs1mf>8v&(?o;nb& z1P*8i74t2qRtys`mCQ;6We6lqC^V_2!A8isXLc@nFa|`jzFM)INiB@Dl`AG{3NIK? z5rn0wAPyMV4Uk-g<)=CFtJ&wbEPa48K2Y@a&VyXcm6N)nbSph9zY&D=zMFA)~&X^R$umKua zfIz9Wq(Y-07+_SAB+mqiCZPc*V^Z4i=ulZ5&?r!ZK(A1$vKm2g^UV7Jb~Zlndl9dG z{TXm*1!agOP7zcBSrT2not*}`8#^CBU{HJtb~S_-uBKN0VP%Tl>aaPAF-fwx4W+PT zC!&!JAZLJ(R%+2eCCg{s%XQqbgms+dUoGJ$TrEICQxG zMBnMk)3xV|Uaz`Pf60B_b<26H@|OEn%^mDc^*!5C*|O`A`&r3~`<3%u;cC&U>yzu7 zC1=eQ=W4&z|FGp<#frrx+Y}HGPyj^Xzv5jWpdbL|PebG^h-Z;G5}2DHbrY03fV~fd z`+#@|=!YQm5HOE{{y0RR0P;y7o(Abz2)+RLOF+K_p_d@^Ap}1I`70oPGKd}80|O`k zvX0Z}<`X2jxsD7fgkn)4F zs=LU?d=aObus|! z(Eb_0&jmb3w+NBZq5y*2@ssYZDSt(HCWd%C$xKd(XvIX0k&ID1=KIDy>8TE-BIPD( z_CQR^vqsx!#*H42Bi?w@T4REL_hSh^%I6vYB$N)oSV4~h;-2P&&Snj{J3XGHHnY1P z!)kVwqyjWG_X)t8NfYy)mlj(EU`PsfjNF5CwC&d3@(kPZEmIF9=~9&f@-qO`9~7&h zQMhF|zt-e8ee+2;*$yz;WQV=H%U4l>Mv@64=$4c=l$dKUW^X7h*&vo{D4X^M)4bA9 zzE;w_!@QYhj3&#RnI#+m-XN4>8N!}CKkQ%50E+FvCVM*iB5M2a8J`c%Iqv`f2QAuN zaIacLFhI~|&!&sYT-PiGvNU|lqD=TKD`V1VRVh8pqGIBP1e|c*!9E|h-#N5hj8j-m z?qg-+(C#FT%T-<6Al|6c##QM->NUMQy0C|rAL4sQVgVht+3q_oo3xulo%1wZz9(V7 zhb*u&+&};bCAPD}_K=6e&Cg$;KP{BC?g{T3ufjydYcL~iWrL=ww z?w*g2hcr<_9i%De_J+;$Qfr3MF%jYK3z18KVF%zLBg{$d5E$Z@g)0sk?J;F*&2o0$ z$J_b3BhpFugAWQxEPI50kn-`|*{|(zO2er~RJh3zmng58d0L6Cm7%JHf+g*001fN{ z3-$~`D@8K>bN>eLXqS%<0OV#-dhVPU)emx68yL4kx- zrDm#&DkbKFp$aIx?5tL?<(;+&Vte$~g{7==_hVK-NZ(+WjvK}=P-xy(y-(e#DSesh zgvL@m zlnl*)X!#s|9R64angj7!89*OraXhRl@tMbTw`)|l5AjPbA>Tkwp2E_AW`QZLv`t~) zuPkx$rjB(DUr=D$l0PgY3+>Vh&A%OQ90)BfZ-UqktPE)smD6*5a;nZw)cM(I$LHp| zVzj($J_}Yu?nec(4ni3eY^UedZ_!n{wx)z7ciGFXU-h{P&eqqItJx#hINP}-8R3?( z$L|Ii9_T@*;=(=cf*L7i*nyWG^DW4rC?m5sr;v2sL|W-eb>(&!UxjUp%7!YS`4sH5 z9se-U;oLr6;DZ^4KbhWh@y*{K*{D(!+J|1I zVZ?|v?oP|B*)?bG_VCDG-NjaY{w~+hcCM@GNqSVNqW@|T}FJT~!ZaixUWxJb{(L1$d2CAM7~mhwnq6&ZE}VtvAALfp={(9fMa zqZTYtpJQtsAGUgUG~$n?OB@@E_FWQVxlcoDElE2?!Wq-~#Oq(GWIy5dmNr!y3$)#3 z$E=P-aih9_1uG^+j!2JD;p3}A6XN&n z*!vI?6y%6ZtyunF<8_!dOq{{g(z@s+p)gcWHkx`mT*0*`>-s>B^s4j?Vsm2ZM*|qg zcm$9T%sa~vazY$p`60k-&gn9J9xhHfinHVZ?0pCK_46HUVN*+_9 z77^9n7&GJ;GH5o`6D=dt6P-3>Fl5NFF(#@*EnK3_ss8plqI9u|P`CB*Ih_s)K|)hW z)uHO&tF>7~h|fVB0fv6wLz1LdCQV~>Ht0ow1kk{_5S!z_FkYdIFYCRD&!|~#-aLPf zS?3-QS#$9?FZ-Pvm8a~^mC)_SIQHW~W@fp9ExmeB90g<3d@jW-jDds?KoCXa4whXa zNSQYcn+SqrH;7^&$piti>x73GgaxcNv(2ZAzR-AV=9foI9sV@%|7X)xz5VXpt2?cE zU&JVRZ8F|#G&9p{WGdzcABYmp=7VzG){Vi!hv(xO0%P*?1&5EQ&O3UN#}DzZBtNLU z-X(ju8AHxx_x_Q+0n!%>YoB;zlrQ__UXKfj&mQoMr2f_Xg|4wR-!%yP%Eu>cOZgkP zMj%}`LjC}V1w<)t3qgYf22y8~I*g3z&hl=lsu_rg>t)npIAi5mnid8PMGf|vD-R3Z~aoef`hldw!teQ! zsW1CCF;dGwTq6RdafQcOuWVW!@s13 zE>ZtZfB%E7{$9LzUS6&Tz5M^m-Wm=%G!6#?5->5@KIKK}-R93(IWX}E6ZQ{_ZY13c z2pcl}Q4lA9VT{YzS05c-X@ADZW7|#9N|Ks?_W3kRmh*e#FMt4yKE!5l4fJ(!QCt)L zb^g7*~>CJvyR$T$T7t_I%{@fX7%D^MaG~ zC=CaT*GmdT<`-I~+XIM=jRDfroh_Zv>1YVV`i})XKL{jwZBwVtCyN(YJGyh^8sqEc zwV>^zLiSIAepedEX5i|~3nq=R%h?m0AQ^5)Aa0_*wsNeJu?fkVORt-`mSkw0Im5pOZ>Q6pLJ=UEkDn3pq%U!As8g*NqaW#8&wy7?Q8 z7D^*}FG*uJ_$0^2z)J{bQeA&{nc-KbKgyPtW^6mgvS($1$J#z-S?7Uh8FNZQOTw7A zK&7noKlqM){%r*$`>htva9Vx#q(CA7hV}<$Y-*PNVZ9?}Zu)YDeu@4?AYHz7{9S$# zo%a|V*jpe+UkjL?iWG~dJ`0##+gh!@=B-y{Nb`F$i0L3aI;0qGAnKQxEo3=k+Vikh ziJgMWumgw|D{%Uz0VNSgrq({*m^j@e$JQt}pp%ze$Teo0&tl~`*-!AH_}$3p*6I*jbGEg1k zS?%Gy`!n*x1FjaPHP#XEZhh0Ghi3sH%+B`z1nKKjLEinDnO;32Kd$kT)w*>{wZ`4M z)!MclV*WmQ7)4L2ULW=fb>1`9MV-n*y+;GFe}0i^9YPD4$2jStf{8~F>DS?Y<;mB= zxuX3WziMHk@QMdA1vuF`k*Q~!bsuN#%o^;LDn%I0Gjkl%6KIhZ>$iU| zTZV7NKdy*ZRD3`_R-t;r>p$gw^z5@Ae_0(k-u#u+4QP)kXM@KCAQ9lDRUiNk5wk8}7v5*?m9_0>GnZ)b zHXOqh`8Hd>M|pon*q9(r&|1CbLE1S)5x0aw+D<9C&<)B~1+x;X%-X7;FgA9K$?0gS z)7Th0O|}|R3;rgCc14zyPbK9ZJCaaz@Dgc}RF z06O}VB*4oJcKzYlSQI*e9ILZq1U<1LIG(s{E|6kNOGwf#G!}wgjvUDFSh3HaIa_i4 zj~Ir%e1=i~VAUN9~-?l;whI>`rG3>&8GQ|<0?=~< z)P+(_zl`h{OONG9#6FsNPQRAO$V%H#de}xcc;sdP^Eew!7wL880=n>M&sf*G`}sGY zvfiu7nZ0pkA1>yuPM*-_8Ig11Lmu}dsj~Ko(L%lVjMH?zkI}-Dn|OB39}OSQ2iCUu zT!cIrx)$(9wo{J3WUw=H6tyAPo9mCv&}3_k59d?)BdOO*65ws)#m(7qG3A#pi&2WR z9GyN>R-Qe*9(^qh2w3X-3x2MP`P?&T6MZ6F8e~s+`iL92g?aLqK(7$J#lzBEn5+wjyJQypMRb0K*!G|hlhJ58~eWEefdUYAV|5i z&W*AO=3_2VGhs7*ne1oDNektL<%tVVldrNDlM_Ni{K7(V)g;o{nT2VI)oF27VP+Cr zRLEt9hsEt_P=nwLjMS?605o`%T$GBm_>Rh<(02}SCmT@N5>Oc*mOT(t?8#K2xY`v`svc_epS#Kb$SpGKe{!-zdGxpV z1tZ?cn}~-08tT2%LG^F@MF@Ze0KGCOKmgF#I3N$GN0Y5pOIz)n1ew}WV|S5kioyYm zv$aEg{3r-<3&;(ckd7$@NJXN1!DImw@wU4|)a^@$+I%~$Jmp;6$~2iOLj~w+*%Ssy zK1I0=FanxB{6B-_FiB$zwMelwN1_lwU2*no095^IK&Ml;&9G7-5<@>{S{B8t-J{f`tf$OU{=+D*a!LiM{-7GH`nMQBP9|58e^c9|HmbI&uA+WS zJw?4z{f7FeMzBVy#vP3h6dB5X%4N!ernY90<{PauS`W2Vw5zl`wfnWFb#!%3>iFus z)%m@08`VJFNZmoTp&q0jr}|Q(sZ44)l|${K4pK$FB4Fad6L{Ew;5Go{U~Gmx0LzJ{ z*ti`X-EqJIv=O_~r1M)!-N+%?DoG~NY$2o_C{l!JL_*RaFu7wRc8Vx6$9a@xmV49y z9%>M%0mSBjHtabhGz__LKU_0z55yN{&qtKPf5r1N*C*qJ<)Wm`)Q(=>ZI)!x)wk!q z2||HF!oFQ5$te&wU>bf9l3c{M6qy5Jeq#ZMS_4gM7gdtDHm_Rpfbh>- zhUIy5w*$OAhDGUt7rk+VVU9bu$Pls=cd9-RSDO2J=w#EiJuVI)EB7Y~mR0aQgH8I5Y#>!_I6m92^m{UA4HhaxN<*adsD5tu6= z5=u?O%c5n0SxVT)CK;Ea_SjX@-0fCKq}cORM?lW4fVkaWIO*t3nv2$zahx^UH``Ib$S&$Z3QBb*!#Qk?S3>H7r4d&#wvI$9LffbgyDcr^O}xMX{AA zuq1N7>U*eS^=gYXscv@gvi@$UA5`OrUK>YsJZ}E+O5S<_ma}H0d-L!nEZ^x^r@KAj zvx_uoy6o8WPeobJH#y{?UXZp>PYOypU9FrV=S~NxmR&`SqsZs0arU1Epr5hWh`}`` zi?NIS@jQIG#>6R3@abMJoHei??zUh8fz^JDc;K?c(DzSg7$)^_hqEiH{Un`C0&Cyy z(w&Yw+6D^EcVBwb(H6pM`{6jPvP)M065F>OyPcvqf5^!uYidQUh$I3TKO_*Z|V({}+&T+f2B%VBtXNSeU4aHVhqD9uBLG`<;y)Mt? zYCOlDQ(tXyDDG{XGilOvO8=%@4Pe9qhp2J*nNJKZj$hnTa|i!to~3d8OnfQLGUH!M zvdkap+l+_!uT^dP9X@{KZbyZ7;R9U73}fioj5trHLJ%RqIxPPKK@FokLZSzT9{i=l zU-pMDSciBn)0~5D%}*Tc1K3}+j>mNAOytbOhW$i<03nzPZUYyNT!xD;9Uq(D(R{q4 z@6?{MG6xS{QACv7Q_|==eWHEHelzwoF7LI;1a=ki+|;XXOFlCRi!%2|5%b2jP2CTd+zBfzwT*FdkA>H$+BOs>6f}9Q_A$6 zrzw9g9|G9eIYgY?EmU?N&28_9vAw-@TGmV!-Sq72zI6WFLp|N?JCS)Es|;N?@p+hI zqOX+*9C8(Y51w(H&pqwI1e#{sFr+wR`DTO|W9A{4lF}VS5zQRMA08|(U0t1dNv(m^!IQ>qz9KDfw*W`G5 z>!IB6Q_qMi;dXn9jNE#GkG^_R97>-RUUxJ#v-A+Ibi<3Gaq{^P6Cqw_%-Wa^Z@!E^iX^E|d!P4XU1A0G{G&q;fK?8VVM zGUh~P6d!JK6+_J`17`DIqDT6{v&@e~?-u;x$OCYwt@I09O5A1Dco(e-H&)42R=a*6 zclTmOvcI1YBV2Asb9b`kex9VfaED6=b+L}r8eF63dJb7qf@}EXa3>toEs2E9WkwwD zCYqWEq0-mrh7_eqi{+`OfH&0cX(7AerMGfjF%md#rmXNL(!Q)6nB!3@dMVBAS3JMU z0?$bBglDYgqEi0iR@pBfW2|afvnxcXUqHUeyb?8zPB|Ych*JDgQ6i0>}dwr1$)9qd99{?{F1&_$fE1(sddbQ zVviv?l<*>ioj5n+ohC%>fmDlv4l8VJ~a zLV?h*^T2uK;VWP+C4`cQIm4?ft?xA`51;WXIFbx^52_1{2Db0({0XY+t?K&w;Rtwe ztiUTLXf#YtE@Z3PbsDM)3k+9q5A^68Ge(O94-1o-x)AZ;rjkz!+mqFwB@<`ecae-d z0NI{hdV#(59g6h)Ix6VlvDPnBTBgzZD=ysQN* zZw*l&%ecSKN^z5LmK=H7N8lCQCRb3|Ordy-0#>bJy$})c=N;T9EspnnnzQARX@^IC z#F2?ZcDkVphOBKa*Vq_N-FzhRy`+pxOkA35#it$=bw)|9TU;xCiz>lnOnf+Sl|KxL55S%rNs95NXZ zd`jZ%ipjXsEBUmvgqOo4j94t}H9T`qR;YE{m`Uyy<9e%&{rm;b^I1Jlh~Y!OLTHfa zN_CLMC=+nBf+n4dgLT$I7sPt(NJ`@S>RG>YqIT6n(UHCbLWLtF0qsxR$Oh6kJ(`!~Njb0wXS`osNWTedIiRb^CG z)ELmr2?w^odi&RS{((^Xy~je1VwRchGH?a1*tIX?i zW>^<#`ARaaJ(%JGET&YFxA4nCWZ3w^zZC1uW{Jca_uBxkXg;(|l-fdk6hk3!~c%j1V^U`VPZd83cN93

    KZ;k8ywA} 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 O1{o}0SRMEP0000Yp_Hru literal 0 HcmV?d00001 diff --git a/assets/inter-roman-greek.d5a6d92a.woff2 b/assets/inter-roman-greek.d5a6d92a.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f790e047daa346583880da2be470431e35aa6054 GIT binary patch literal 21776 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 De!(H( literal 0 HcmV?d00001 diff --git a/assets/inter-roman-latin-ext.0030eebd.woff2 b/assets/inter-roman-latin-ext.0030eebd.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..715bd903b9b14d22a056f10e6d13b8d7e0acce57 GIT binary patch literal 59608 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

    常用文档

    存档一些会用到的在线文档链接,方便读者进行扩展阅读。

    官方文档

    只罗列 Vue 3.0 相关的官网,有中文版的优先都放中文版。

    名称官网文档
    Vue 3点击访问
    Vue Composition API点击访问
    Vue Router点击访问
    Vuex点击访问
    Pinia点击访问
    Vue CLI点击访问
    Vite点击访问

    教程工具

    可能会用到的一些教程或者工具。

    常用的 Web API 类型查询

    DOM 元素与子组件 一节有提及到如何对 DOM 元素定义 TS 类型,拿出来放这里更方便查阅。

    点击阅读:文档对象模型

    当然其实不止于 DOM,所有的 Web API 都有自己的类型接口,可以通过 MDN 文档查阅。

    点击阅读:Web API

    TypeScript 入门教程

    最近发现的一本好书,从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript ,可以帮更快熟悉 TS 开发。

    点击阅读:TypeScript 入门教程

    深入理解 TypeScript

    一本挺不错的 TS 学习书籍,我自己是在京东打折的时候买的纸质书,不过也有个在线版,可以进行在线阅读,也可以去购买纸质版支持下作者 / 译者。

    点击阅读:深入理解 TypeScript

    程序员做菜教程

    哈哈哈这个和编程没有太多关系,不过有兴趣也可以看看,也是我写的一些作品。

    从 2021 年底陆续开始维护这个菜谱栏目,终于有一些像模像样的作品沉淀了,可以在这里了解一些关于如何下厨烹饪的菜谱和教程,这是来自一名从小就学做饭的程序员的原创经验。

    详情查看:cooking-cookbook

    也可以直接扫码访问小程序:

    ',23);function c(d,g,b,u,f,k){const r=t("ImgWrap"),a=t("ClientOnly");return l(),o("div",null,[h,e(a,null,{default:i(()=>[e(r,{src:"/assets/img/cookbook-miniprogram.jpg",alt:"请打开微信扫描二维码"})]),_:1})])}const _=n(p,[["render",c]]);export{y as __pageData,_ as default}; diff --git a/assets/links.md.d1aafe6b.lean.js b/assets/links.md.d1aafe6b.lean.js new file mode 100644 index 00000000..523b7739 --- /dev/null +++ b/assets/links.md.d1aafe6b.lean.js @@ -0,0 +1,8 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as n,v as l,b as o,t as e,O as i,R as s,M as t}from"./chunks/framework.0d8bea05.js";const y=JSON.parse('{"title":"常用文档","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"links.md","filePath":"links.md"}'),p={name:"links.md"},h=s('

    常用文档

    存档一些会用到的在线文档链接,方便读者进行扩展阅读。

    官方文档

    只罗列 Vue 3.0 相关的官网,有中文版的优先都放中文版。

    名称官网文档
    Vue 3点击访问
    Vue Composition API点击访问
    Vue Router点击访问
    Vuex点击访问
    Pinia点击访问
    Vue CLI点击访问
    Vite点击访问

    教程工具

    可能会用到的一些教程或者工具。

    常用的 Web API 类型查询

    DOM 元素与子组件 一节有提及到如何对 DOM 元素定义 TS 类型,拿出来放这里更方便查阅。

    点击阅读:文档对象模型

    当然其实不止于 DOM,所有的 Web API 都有自己的类型接口,可以通过 MDN 文档查阅。

    点击阅读:Web API

    TypeScript 入门教程

    最近发现的一本好书,从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript ,可以帮更快熟悉 TS 开发。

    点击阅读:TypeScript 入门教程

    深入理解 TypeScript

    一本挺不错的 TS 学习书籍,我自己是在京东打折的时候买的纸质书,不过也有个在线版,可以进行在线阅读,也可以去购买纸质版支持下作者 / 译者。

    点击阅读:深入理解 TypeScript

    程序员做菜教程

    哈哈哈这个和编程没有太多关系,不过有兴趣也可以看看,也是我写的一些作品。

    从 2021 年底陆续开始维护这个菜谱栏目,终于有一些像模像样的作品沉淀了,可以在这里了解一些关于如何下厨烹饪的菜谱和教程,这是来自一名从小就学做饭的程序员的原创经验。

    详情查看:cooking-cookbook

    也可以直接扫码访问小程序:

    ',23);function c(d,g,b,u,f,k){const r=t("ImgWrap"),a=t("ClientOnly");return l(),o("div",null,[h,e(a,null,{default:i(()=>[e(r,{src:"/assets/img/cookbook-miniprogram.jpg",alt:"请打开微信扫描二维码"})]),_:1})])}const _=n(p,[["render",c]]);export{y as __pageData,_ as default}; diff --git a/assets/pinia.md.c3d0acb5.js b/assets/pinia.md.c3d0acb5.js new file mode 100644 index 00000000..3e8691ad --- /dev/null +++ b/assets/pinia.md.c3d0acb5.js @@ -0,0 +1,465 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as e,v as t,b as c,t as s,O as r,R as n,M as a}from"./chunks/framework.0d8bea05.js";const m=JSON.parse('{"title":"全局状态管理","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"pinia.md","filePath":"pinia.md"}'),y={name:"pinia.md"},D=n('

    全局状态管理

    本来这部分打算放在 组件之间的通信 里,里面也简单介绍了一下 Vuex ,但 Pinia 作为被官方推荐在 Vue 3 项目里作为全局状态管理的新工具,写着写着笔者认为还是单独开一章来写会更方便阅读和理解。

    官方推出的全局状态管理工具目前有 VuexPinia ,两者的作用和用法都比较相似,但 Pinia 的设计更贴近 Vue 3 组合式 API 的用法。

    TIP

    本章内的大部分内容都会和 Vuex 作对比,方便从 Vuex 项目向 Pinia 的迁移。

    ',4),F=n(`

    关于 Pinia ~new

    由于 Vuex 4.x 版本只是个过渡版,Vuex 4 对 TypeScript 和 Composition API 都不是很友好,虽然官方团队在 GitHub 已有讨论 Vuex 5 的开发提案,但从 2022-02-07 在 Vue 3 被设置为默认版本开始, Pinia 已正式被官方推荐作为全局状态管理的工具。

    Pinia 支持 Vue 3 和 Vue 2 ,对 TypeScript 也有很完好的支持,延续本指南的宗旨,在这里只介绍基于 Vue 3 和 TypeScript 的用法。

    点击访问:Pinia 官网

    安装和启用 ~new

    Pinia 目前还没有被广泛的默认集成在各种脚手架里,所以如果原来创建的项目没有 Pinia ,则需要手动安装它。

    bash
    # 需要 cd 到的项目目录下
    +npm install pinia

    查看的 package.json ,看看里面的 dependencies 是否成功加入了 Pinia 和它的版本号(下方是示例代码,以实际安装的最新版本号为准):

    json
    {
    +  "dependencies": {
    +    "pinia": "^2.0.11"
    +  }
    +}

    然后打开 src/main.ts 文件,添加下面那两行有注释的新代码:

    ts
    import { createApp } from 'vue'
    +import { createPinia } from 'pinia' // 导入 Pinia
    +import App from '@/App.vue'
    +
    +createApp(App)
    +  .use(createPinia()) // 启用 Pinia
    +  .mount('#app')

    到这里, Pinia 就集成到的项目里了。

    TIP

    也可以通过 Create Preset 创建新项目(选择 vue 技术栈进入,选择 vue3-ts-vite 模板),可以得到一个集成常用配置的项目启动模板,该模板现在使用 Pinia 作为全局状态管理工具。

    状态树的结构 ~new

    在开始写代码之前,先来看一个对比,直观的了解 Pinia 的状态树构成,才能在后面的环节更好的理解每个功能的用途。

    鉴于可能有部分开发者之前没有用过 Vuex ,所以加入了 Vue 组件一起对比( Options API 写法)。

    作用Vue ComponentVuexPinia
    数据管理datastatestate
    数据计算computedgettersgetters
    行为方法methodsmutations / actionsactions

    可以看到 Pinia 的结构和用途都和 Vuex 与 Component 非常相似,并且 Pinia 相对于 Vuex ,在行为方法部分去掉了 mutations (同步操作)和 actions (异步操作)的区分,更接近组件的结构,入门成本会更低一些。

    下面来创建一个简单的 Store ,开始用 Pinia 来进行状态管理。

    创建 Store ~new

    和 Vuex 一样, Pinia 的核心也是称之为 Store 。

    参照 Pinia 官网推荐的项目管理方案,也是先在 src 文件夹下创建一个 stores 文件夹,并在里面添加一个 index.ts 文件,然后就可以来添加一个最基础的 Store 。

    Store 是通过 defineStore 方法来创建的,它有两种入参形式:

    形式 1 :接收两个参数

    接收两个参数,第一个参数是 Store 的唯一 ID ,第二个参数是 Store 的选项:

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  // Store 选项...
    +})

    形式 2 :接收一个参数

    接收一个参数,直接传入 Store 的选项,但是需要把唯一 ID 作为选项的一部分一起传入:

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore({
    +  id: 'main',
    +  // Store 选项...
    +})

    TIP

    不论是哪种创建形式,都必须为 Store 指定一个唯一 ID 。

    另外可以看到这里把导出的函数名命名为 useStore ,以 use 开头是 Vue 3 对可组合函数的一个命名约定。

    并且使用的是 export const 而不是 export default (详见:命名导出和默认导出),这样在使用的时候可以和其他的 Vue 组合函数保持一致,都是通过 import { xxx } from 'xxx' 来导入。

    如果有多个 Store ,可以分模块管理,并根据实际的功能用途进行命名( e.g. useMessageStoreuseUserStoreuseGameStore … )。

    管理 state ~new

    在上一小节的 状态树的结构 这里已经了解过, Pinia 是在 state 里面定义状态数据。

    给 Store 添加 state

    它是通过一个箭头函数的形式来返回数据,并且能够正确的帮推导 TypeScript 类型:

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  // 先定义一个最基本的 message 数据
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  // ...
    +})

    需要注意一点的是,如果不显式 return ,箭头函数的返回值需要用圆括号 () 套起来,这个是箭头函数的要求(详见:返回对象字面量)。

    所以相当于这样写:

    ts
    // ...
    +export const useStore = defineStore('main', {
    +  state: () => {
    +    return {
    +      message: 'Hello World',
    +    }
    +  },
    +  // ...
    +})

    笔者还是更喜欢加圆括号的简写方式。

    TIP

    可能有开发者会问: Vuex 可以用一个对象来定义 state 的数据, Pinia 可以吗?

    答案是:不可以! state 的类型必须是 state?: (() => {}) | undefined ,要么不配置(就是 undefined ),要么只能是个箭头函数。

    手动指定数据类型

    虽然 Pinia 会帮推导 TypeScript 的数据类型,但有时候可能不太够用,比如下面这段代码,请留意代码注释的说明:

    ts
    // ...
    +export const useStore = defineStore('main', {
    +  state: () => {
    +    return {
    +      message: 'Hello World',
    +      // 添加了一个随机消息数组
    +      randomMessages: [],
    +    }
    +  },
    +  // ...
    +})

    randomMessages 的预期应该是一个字符串数组 string[] ,但是这个时候 Pinia 会帮推导成 never[] ,那么类型就对不上了。

    这种情况下就需要手动指定 randomMessages 的类型,可以通过 as 来指定:

    ts
    // ...
    +export const useStore = defineStore('main', {
    +  state: () => {
    +    return {
    +      message: 'Hello World',
    +      // 通过 as 关键字指定 TS 类型
    +      randomMessages: [] as string[],
    +    }
    +  },
    +  // ...
    +})

    或者使用尖括号 <> 来指定:

    ts
    // ...
    +export const useStore = defineStore('main', {
    +  state: () => {
    +    return {
    +      message: 'Hello World',
    +      // 通过尖括号指定 TS 类型
    +      randomMessages: <string[]>[],
    +    }
    +  },
    +  // ...
    +})

    这两种方式是等价的。

    获取和更新 state

    获取 state 有多种方法,略微有区别(详见下方各自的说明),但相同的是,他们都是响应性的。

    WARNING

    不能直接通过 ES6 解构的方式( e.g. const { message } = store ),那样会破坏数据的响应性。

    使用 store 实例

    用法上和 Vuex 很相似,但有一点区别是,数据直接是挂在 store 上的,而不是 store.state 上面!

    TIP

    e.g. Vuex 是 store.state.message , Pinia 是 store.message

    所以,可以直接通过 store.message 直接调用 state 里的数据。

    ts
    import { defineComponent } from 'vue'
    +import { useStore } from '@/stores'
    +
    +export default defineComponent({
    +  setup() {
    +    // 像 useRouter 那样定义一个变量拿到实例
    +    const store = useStore()
    +
    +    // 直接通过实例来获取数据
    +    console.log(store.message)
    +
    +    // 这种方式需要把整个 store 给到 template 去渲染数据
    +    return {
    +      store,
    +    }
    +  },
    +})

    但一些比较复杂的数据这样写会很长,所以有时候更推荐用下面介绍的 computed APIstoreToRefs API 等方式来获取。

    在数据更新方面,在 Pinia 可以直接通过 Store 实例更新 state (这一点与 Vuex 有明显的不同,更改 Vuex 的 store 中的状态的唯一方法是提交 mutation),所以如果要更新 message ,只需要像下面这样,就可以更新 message 的值了!

    ts
    store.message = 'New Message.'

    使用 computed API

    现在 state 里已经有定义好的数据了,下面这段代码是在 Vue 组件里导入的 Store ,并通过计算数据 computed 拿到里面的 message 数据传给 template 使用。

    vue
    <script lang="ts">
    +import { computed, defineComponent } from 'vue'
    +import { useStore } from '@/stores'
    +
    +export default defineComponent({
    +  setup() {
    +    // 像 useRouter 那样定义一个变量拿到实例
    +    const store = useStore()
    +
    +    // 通过计算拿到里面的数据
    +    const message = computed(() => store.message)
    +    console.log('message', message.value)
    +
    +    // 传给 template 使用
    +    return {
    +      message,
    +    }
    +  },
    +})
    +</script>

    使用 store 实例 以及 使用 storeToRefs API 不同,这个方式默认情况下无法直接更新 state 的值。

    TIP

    这里的定义的 message 变量是一个只有 getter ,没有 setter 的 ComputedRef 数据,所以它是只读的。

    如果要更新数据怎么办?

    1. 可以通过提前定义好的 Store Actions 方法进行更新。

    2. 在定义 computed 变量的时候,配置好 setter 的行为:

    ts
    // 其他代码和上一个例子一样,这里省略...
    +
    +// 修改:定义 computed 变量的时候配置 getter 和 setter
    +const message = computed({
    +  // getter 还是返回数据的值
    +  get: () => store.message,
    +  // 配置 setter 来定义赋值后的行为
    +  set(newVal) {
    +    store.message = newVal
    +  },
    +})
    +
    +// 此时不再抛出 Write operation failed: computed value is readonly 的警告
    +message.value = 'New Message.'
    +
    +// store 上的数据已成功变成了 New Message.
    +console.log(store.message)

    使用 storeToRefs API

    Pinia 还提供了一个 storeToRefs API 用于把 state 的数据转换为 ref 变量。

    这是一个专门为 Pinia Stores 设计的 API ,类似于 toRefs ,区别在于,它会忽略掉 Store 上面的方法和非响应性的数据,只返回 state 上的响应性数据。

    ts
    import { defineComponent } from 'vue'
    +import { useStore } from '@/stores'
    +
    +// 记得导入这个 API
    +import { storeToRefs } from 'pinia'
    +
    +export default defineComponent({
    +  setup() {
    +    const store = useStore()
    +
    +    // 通过 storeToRefs 来拿到响应性的 message
    +    const { message } = storeToRefs(store)
    +    console.log('message', message.value)
    +
    +    return {
    +      message,
    +    }
    +  },
    +})

    通过这个方式拿到的 message 变量是一个 Ref 类型的数据,所以可以像普通的 ref 变量一样进行读取和赋值。

    ts
    // 直接赋值即可
    +message.value = 'New Message.'
    +
    +// store 上的数据已成功变成了 New Message.
    +console.log(store.message)

    使用 toRefs API

    使用 storeToRefs API 部分所说,该 API 本身的设计就是类似于 toRefs ,所以也可以直接用 toRefs 把 state 上的数据转成 ref 变量。

    ts
    // 注意 toRefs 是 vue 的 API ,不是 Pinia
    +import { defineComponent, toRefs } from 'vue'
    +import { useStore } from '@/stores'
    +
    +export default defineComponent({
    +  setup() {
    +    const store = useStore()
    +
    +    // 跟 storeToRefs 操作都一样,只不过用 Vue 的这个 API 来处理
    +    const { message } = toRefs(store)
    +    console.log('message', message.value)
    +
    +    return {
    +      message,
    +    }
    +  },
    +})

    详见 使用 toRefs 一节的说明,可以像普通的 ref 变量一样进行读取和赋值。

    另外,像上面这样,对 store 执行 toRefs 会把 store 上面的 getters 、 actions 也一起提取,如果只需要提取 state 上的数据,可以这样做:

    ts
    // 只传入 store.$state
    +const { message } = toRefs(store.$state)

    使用 toRef API

    toRef 是 toRefs 的兄弟 API ,一个是只转换一个字段,一个是转换所有字段,所以它也可以用来转换 state 数据变成 ref 变量。

    ts
    // 注意 toRef 是 vue 的 API ,不是 Pinia
    +import { defineComponent, toRef } from 'vue'
    +import { useStore } from '@/stores'
    +
    +export default defineComponent({
    +  setup() {
    +    const store = useStore()
    +
    +    // 遵循 toRef 的用法即可
    +    const message = toRef(store, 'message')
    +    console.log('message', message.value)
    +
    +    return {
    +      message,
    +    }
    +  },
    +})

    详见 使用 toRef 一节的说明,可以像普通的 ref 变量一样进行读取和赋值。

    使用 actions 方法

    在 Vuex ,如果想通过方法来操作 state 的更新,必须通过 mutation 来提交;而异步操作需要更多一个步骤,必须先通过 action 来触发 mutation ,非常繁琐!

    Pinia 所有操作都集合为 action ,无需区分同步和异步,按照平时的函数定义即可更新 state ,具体操作详见 管理 actions 一节。

    批量更新 state

    获取和更新 state 部分说的都是如何修改单个 state 数据,那么有时候要同时修改很多个,会显得比较繁琐。

    如果写过 React 或者微信小程序,应该非常熟悉这些用法:

    ts
    // 下面不是 Vue 的代码,不要在的项目里使用
    +
    +// React
    +this.setState({
    +  foo: 'New Foo Value',
    +  bar: 'New bar Value',
    +})
    +
    +// 微信小程序
    +this.setData({
    +  foo: 'New Foo Value',
    +  bar: 'New bar Value',
    +})

    Pinia 也提供了一个 $patch API 用于同时修改多个数据,它接收一个参数:

    参数类型语法
    partialState对象 / 函数store.$patch(partialState)

    传入一个对象

    当参数类型为对象时,key 是要修改的 state 数据名称, value 是新的值(支持嵌套传值),用法如下:

    ts
    // 继续用前面的数据,这里会打印出修改前的值
    +console.log(JSON.stringify(store.$state))
    +// 输出 {"message":"Hello World","randomMessages":[]}
    +
    +/**
    + * 注意这里,传入了一个对象
    + */
    +store.$patch({
    +  message: 'New Message',
    +  randomMessages: ['msg1', 'msg2', 'msg3'],
    +})
    +
    +// 这里会打印出修改后的值
    +console.log(JSON.stringify(store.$state))
    +// 输出 {"message":"New Message","randomMessages":["msg1","msg2","msg3"]}

    对于简单的数据,直接修改成新值是非常好用的。

    但有时候并不单单只是修改,而是要对数据进行拼接、补充、合并等操作,相对而言开销就会很大,这种情况下,更适合 传入一个函数 来处理。

    TIP

    使用这个方式时, key 只允许是实例上已有的数据,不可以提交未定义的数据进去。

    强制提交的话,在 TypeScript 会抛出错误, JavaScript 虽然不会报错,但实际上, Store 实例上面依然不会有这个新增的非法数据。

    传入一个函数

    当参数类型为函数时,该函数会有一个入参 state ,是当前实例的 state ,等价于 store.$state ,用法如下:

    ts
    // 这里会打印出修改前的值
    +console.log(JSON.stringify(store.$state))
    +// 输出 {"message":"Hello World","randomMessages":[]}
    +
    +/**
    + * 注意这里,这次是传入了一个函数
    + */
    +store.$patch((state) => {
    +  state.message = 'New Message'
    +
    +  // 数组改成用追加的方式,而不是重新赋值
    +  for (let i = 0; i < 3; i++) {
    +    state.randomMessages.push(\`msg\${i + 1}\`)
    +  }
    +})
    +
    +// 这里会打印出修改后的值
    +console.log(JSON.stringify(store.$state))
    +// 输出 {"message":"New Message","randomMessages":["msg1","msg2","msg3"]}

    传入一个对象 比,不一定说就是哪种方式更好,通常要结合业务场景合理使用。

    TIP

    使用这个方式时,和 传入一个对象 一样只能修改已定义的数据,并且另外需要注意,传进去的函数只能是同步函数,不可以是异步函数!

    如果还不清楚什么是同步和异步,可以阅读 同步和异步 JavaScript - MDN 一文。

    全量更新 state

    批量更新 state 了解到可以用 store.$patch 方法对数据进行批量更新操作,不过如其命名,这种方式本质上是一种 “补丁更新” 。

    虽然可以对所有数据都执行一次 “补丁更新” 来达到 “全量更新” 的目的,但 Pinia 也提供了一个更好的办法。

    从前面多次提到 state 数据可以通过 store.$state 来拿到,而这个属性本身是可以直接赋值的。

    还是继续用上面的例子, state 上现在有 messagerandomMessages 这两个数据,那么要全量更新为新的值,就这么操作:

    ts
    store.$state = {
    +  message: 'New Message',
    +  randomMessages: ['msg1', 'msg2', 'msg3'],
    +}

    同样的,必须遵循 state 原有的数据和对应的类型。

    TIP

    该操作不会使 state 失去响应性。

    重置 state

    Pinia 提供了一个 $reset API 挂在每个实例上面,用于重置整颗 state 树为初始数据:

    ts
    // 这个 store 是上面定义好的实例
    +store.$reset()

    具体例子:

    ts
    // 修改数据
    +store.message = 'New Message'
    +console.log(store.message) // 输出 New Message
    +
    +// 3s 后重置状态
    +setTimeout(() => {
    +  store.$reset()
    +  console.log(store.message) // 输出最开始的 Hello World
    +}, 3000)

    订阅 state

    和 Vuex 一样, Pinia 也提供了一个用于订阅 state 的 $subscribe API 。

    订阅 API 的 TS 类型

    在了解这个 API 的使用之前,先看一下它的 TS 类型定义:

    ts
    // $subscribe 部分的 TS 类型
    +// ...
    +$subscribe(
    +  callback: SubscriptionCallback<S>,
    +  options?: { detached?: boolean } & WatchOptions
    +): () => void
    +// ...

    可以看到, $subscribe 可以接受两个参数:

    1. 第一个入参是 callback 函数,必传
    2. 第二个入参是一些选项,可选

    同时还会返回一个函数,执行后可以用于移除当前订阅,下面来看看具体用法。

    添加订阅

    $subscribe API 的功能类似于 watch ,但它只会在 state 被更新的时候才触发一次,并且在组件被卸载时删除(参考:组件的生命周期)。

    订阅 API 的 TS 类型 可以看到,它可以接受两个参数,第一个参数是必传的 callback 函数,一般情况下默认用这个方式即可,使用例子:

    ts
    // 可以在 state 出现变化时,更新本地持久化存储的数据
    +store.$subscribe((mutation, state) => {
    +  localStorage.setItem('store', JSON.stringify(state))
    +})

    这个 callback 里面有 2 个入参:

    入参作用
    mutation本次事件的一些信息
    state当前实例的 state

    其中 mutation 包含了以下数据:

    字段
    storeId发布本次订阅通知的 Pinia 实例的唯一 ID(由 创建 Store 时指定)
    type有 3 个值:返回 direct 代表 直接更改 数据;返回 patch object 代表是通过 传入一个对象 更改;返回 patch function 则代表是通过 传入一个函数 更改
    events触发本次订阅通知的事件列表
    payload通过 传入一个函数 更改时,传递进来的荷载信息,只有 typepatch object 时才有

    如果不希望组件被卸载时删除订阅,可以传递第二个参数 options 用以保留订阅状态,传入一个对象。

    可以简单指定为 { detached: true }

    ts
    store.$subscribe(
    +  (mutation, state) => {
    +    // ...
    +  },
    +  { detached: true }
    +)

    也可以搭配 watch API 的选项一起用。

    移除订阅

    添加订阅 部分已了解过,默认情况下,组件被卸载时订阅也会被一并移除,但如果之前启用了 detached 选项,就需要手动取消了。

    前面在 订阅 API 的 TS 类型 里提到,在启用 $subscribe API 之后,会有一个函数作为返回值,这个函数可以用来取消该订阅。

    用法非常简单,做一下简单了解即可:

    ts
    // 定义一个退订变量,它是一个函数
    +const unsubscribe = store.$subscribe(
    +  (mutation, state) => {
    +    // ...
    +  },
    +  { detached: true }
    +)
    +
    +// 在合适的时期调用它,可以取消这个订阅
    +unsubscribe()

    跟 watch API 的机制非常相似, 它也是返回 一个取消侦听的函数 用于移除指定的 watch 。

    管理 getters ~new

    状态树的结构 了解过, Pinia 的 getters 是用来计算数据的。

    给 Store 添加 getter

    TIP

    如果对 Vue 的计算数据不是很熟悉或者没接触过的话,可以先阅读 数据的计算 这一节,以便有个初步印象,不会云里雾里。

    添加普通的 getter

    继续用刚才的 message ,来定义一个 Getter ,用于返回一句拼接好的句子。

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  // 定义一个 fullMessage 的计算数据
    +  getters: {
    +    fullMessage: (state) => \`The message is "\${state.message}".\`,
    +  },
    +  // ...
    +})

    Options API 的 Computed 写法一样,也是通过函数来返回计算后的值, Getter 可以通过入参的 state 来拿到当前实例的数据(在 Pinia 里,官方更推荐使用箭头函数)。

    添加引用 getter 的 getter

    有时候可能要引用另外一个 getter 的值来返回数据,这个时候不能用箭头函数了,需要定义成普通函数而不是箭头函数,并在函数内部通过 this 来调用当前 Store 上的数据和方法。

    继续在上面的例子里,添加多一个 emojiMessage 的 getter ,在返回 fullMessage 的结果的同时,拼接多一串 emoji 。

    ts
    export const useStore = defineStore('main', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  getters: {
    +    fullMessage: (state) => \`The message is "\${state.message}".\`,
    +    // 这个 getter 返回了另外一个 getter 的结果
    +    emojiMessage(): string {
    +      return \`🎉🎉🎉 \${this.fullMessage}\`
    +    },
    +  },
    +})

    如果只写 JavaScript ,可能对这一条所说的限制觉得很奇怪,事实上用 JS 写箭头函数来引用确实不会报错,但如果用的是 TypeScript ,不按照这个写法,在 VSCode 提示和执行 TSC 检查的时候都会给抛出一条错误:

    bash
    src/stores/index.ts:9:42 - error TS2339:
    +Property 'fullMessage' does not exist on type '{ message: string; } & {}'.
    +
    +9     emojiMessage: (state) => \`🎉🎉🎉 \${state.fullMessage}\`,
    +                                           ~~~~~~~~~~~
    +
    +
    +Found 1 error in src/stores/index.ts:9

    另外关于普通函数的 TS 返回类型,官方建议显式的进行标注,就像这个例子里的 emojiMessage(): string 里的 : string

    给 getter 传递参数

    getter 本身是不支持参数的,但和 Vuex 一样,支持返回一个具备入参的函数,用来满足需求。

    ts
    import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  getters: {
    +    // 定义一个接收入参的函数作为返回值
    +    signedMessage: (state) => {
    +      return (name: string) => \`\${name} say: "The message is \${state.message}".\`
    +    },
    +  },
    +})

    调用的时候是这样:

    ts
    const signedMessage = store.signedMessage('Petter')
    +console.log('signedMessage', signedMessage)
    +// Petter say: "The message is Hello World".

    这种情况下,这个 getter 只是调用的函数的作用,不再有缓存,如果通过变量定义了这个数据,那么这个变量也只是普通变量,不具备响应性。

    ts
    // 通过变量定义一个值
    +const signedMessage = store.signedMessage('Petter')
    +console.log('signedMessage', signedMessage)
    +// Petter say: "The message is Hello World".
    +
    +// 2s 后改变 message
    +setTimeout(() => {
    +  store.message = 'New Message'
    +
    +  // signedMessage 不会变
    +  console.log('signedMessage', signedMessage)
    +  // Petter say: "The message is Hello World".
    +
    +  // 必须这样再次执行才能拿到更新后的值
    +  console.log('signedMessage', store.signedMessage('Petter'))
    +  // Petter say: "The message is New Message".
    +}, 2000)

    获取和更新 getter

    getter 和 state 都属于数据管理,读取和赋值的方法是一样的,请参考上方 获取和更新 state 一节的内容。

    管理 actions ~new

    状态树的结构 提到了, Pinia 只需要用 actions 就可以解决各种数据操作,无需像 Vuex 一样区分为 mutations / actions 两大类。

    给 Store 添加 action

    可以为当前 Store 封装一些可以开箱即用的方法,支持同步和异步。

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  actions: {
    +    // 异步更新 message
    +    async updateMessage(newMessage: string): Promise<string> {
    +      return new Promise((resolve) => {
    +        setTimeout(() => {
    +          // 这里的 this 是当前的 Store 实例
    +          this.message = newMessage
    +          resolve('Async done.')
    +        }, 3000)
    +      })
    +    },
    +    // 同步更新 message
    +    updateMessageSync(newMessage: string): string {
    +      // 这里的 this 是当前的 Store 实例
    +      this.message = newMessage
    +      return 'Sync done.'
    +    },
    +  },
    +})

    可以看到,在 action 里,如果要访问当前实例的 state 或者 getter ,只需要通过 this 即可操作,方法的入参完全不再受 Vuex 那样有固定形式的困扰。

    TIP

    在 action 里, this 是当前的 Store 实例,所以如果的 action 方法里有其他函数也要调用实例,请记得写成 箭头函数 来提升 this 。

    调用 action

    在 Pinia 中只要像普通的函数一样使用即可,不需要和 Vuex 一样调用 commit 或者 dispatch。

    ts
    export default defineComponent({
    +  setup() {
    +    const store = useStore()
    +    const { message } = storeToRefs(store)
    +
    +    // 立即执行
    +    console.log(store.updateMessageSync('New message by sync.'))
    +
    +    // 3s 后执行
    +    store.updateMessage('New message by async.').then((res) => console.log(res))
    +
    +    return {
    +      message,
    +    }
    +  },
    +})

    添加多个 Store ~new

    到这里,对单个 Store 的配置和调用相信都已经清楚了,实际项目中会涉及到很多数据操作,还可以用多个 Store 来维护不同需求模块的数据状态。

    这一点和 Vuex 的 Module 比较相似,目的都是为了避免状态树过于臃肿,但用起来会更为简单。

    目录结构建议

    建议统一存放在 src/stores 下面管理,根据业务需要进行命名,比如 user 就用来管理登录用户相关的状态数据。

    bash
    src
    +└─stores
    +   # 入口文件
    +  ├─index.ts
    +   # 多个 store
    +  ├─user.ts
    +  ├─game.ts
    +  └─news.ts

    里面暴露的方法就统一以 use 开头加上文件名,并以 Store 结尾,作为小驼峰写法,比如 user 这个 Store 文件里面导出的函数名就是:

    ts
    // src/stores/user.ts
    +export const useUserStore = defineStore('user', {
    +  // ...
    +})

    然后以 index.ts 里作为统一的入口文件, index.ts 里的代码写为:

    ts
    export * from './user'
    +export * from './game'
    +export * from './news'

    这样在使用的时候,只需要从 @/stores 里导入即可,无需写完整的路径,例如,只需要这样:

    ts
    import { useUserStore } from '@/stores'

    而无需这样:

    ts
    import { useUserStore } from '@/stores/user'

    在 Vue 组件 / TS 文件里使用

    这里以一个比较简单的业务场景举例,希望能够方便的理解如何同时使用多个 Store 。

    假设目前有一个 userStore 是管理当前登录用户信息, gameStore 是管理游戏的信息,而 “个人中心” 这个页面需要展示 “用户信息” ,以及 “该用户绑定的游戏信息”,那么就可以这样:

    ts
    import { defineComponent, onMounted, ref } from 'vue'
    +import { storeToRefs } from 'pinia'
    +// 这里导入要用到的 Store
    +import { useUserStore, useGameStore } from '@/stores'
    +import type { GameItem } from '@/types'
    +
    +export default defineComponent({
    +  setup() {
    +    // 先从 userStore 获取用户信息(已经登录过,所以可以直接拿到)
    +    const userStore = useUserStore()
    +    const { userId, userName } = storeToRefs(userStore)
    +
    +    // 使用 gameStore 里的方法,传入用户 ID 去查询用户的游戏列表
    +    const gameStore = useGameStore()
    +    const gameList = ref<GameItem[]>([])
    +    onMounted(async () => {
    +      gameList.value = await gameStore.queryGameList(userId.value)
    +    })
    +
    +    return {
    +      userId,
    +      userName,
    +      gameList,
    +    }
    +  },
    +})

    再次提醒,切记每个 Store 的 ID 必须不同,如果 ID 重复,在同一个 Vue 组件 / TS 文件里定义 Store 实例变量的时候,会以先定义的为有效值,后续定义的会和前面一样。

    如果先定义了 userStore :

    ts
    // 假设两个 Store 的 ID 一样
    +const userStore = useUserStore() // 是想要的 Store
    +const gameStore = useGameStore() // 得到的依然是 userStore 的那个 Store

    如果先定义了 gameStore :

    ts
    // 假设两个 Store 的 ID 一样
    +const gameStore = useGameStore() // 是想要的 Store
    +const userStore = useUserStore() // 得到的依然是 gameStore 的那个 Store

    Store 之间互相引用

    如果在定义一个 Store 的时候,要引用另外一个 Store 的数据,也是很简单,回到那个 message 的例子,添加一个 getter ,它会返回一句问候语欢迎用户:

    ts
    // src/stores/message.ts
    +import { defineStore } from 'pinia'
    +
    +// 导入用户信息的 Store 并启用它
    +import { useUserStore } from './user'
    +const userStore = useUserStore()
    +
    +export const useMessageStore = defineStore('message', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  getters: {
    +    // 这里就可以直接引用 userStore 上面的数据了
    +    greeting: () => \`Welcome, \${userStore.userName}!\`,
    +  },
    +})

    假设现在 userName 是 Petter ,那么会得到一句对 Petter 的问候:

    ts
    const messageStore = useMessageStore()
    +console.log(messageStore.greeting) // Welcome, Petter!

    专属插件的使用 ~new

    Pinia 拥有非常灵活的可扩展性,有专属插件可以开箱即用满足更多的需求场景。

    如何查找插件

    插件有统一的命名格式 pinia-plugin-* ,所以可以在 npmjs 上搜索这个关键词来查询目前有哪些插件已发布。

    点击查询: pinia-plugin - npmjs

    如何使用插件

    这里以 pinia-plugin-persistedstate 为例,这是一个让数据持久化存储的 Pinia 插件。

    TIP

    数据持久化存储,指页面关闭后再打开,浏览器依然可以记录之前保存的本地数据,例如:浏览器原生的 localStorageIndexedDB ,或者是一些兼容多种原生方案并统一用法的第三方方案,例如: localForage

    插件也是独立的 npm 包,需要先安装,再激活,然后才能使用。

    激活方法会涉及到 Pinia 的初始化过程调整,这里不局限于某一个插件,通用的插件用法如下(请留意代码注释):

    ts
    // src/main.ts
    +import { createApp } from 'vue'
    +import App from '@/App.vue'
    +import { createPinia } from 'pinia' // 导入 Pinia
    +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' // 导入 Pinia 插件
    +
    +const pinia = createPinia() // 初始化 Pinia
    +pinia.use(piniaPluginPersistedstate) // 激活 Pinia 插件
    +
    +createApp(App)
    +  .use(pinia) // 启用 Pinia ,这一次是包含了插件的 Pinia 实例
    +  .mount('#app')

    使用前

    Pinia 默认在页面刷新时会丢失当前变更的数据,没有在本地做持久化记录:

    ts
    // 其他代码省略
    +const store = useMessageStore()
    +
    +// 假设初始值是 Hello World
    +setTimeout(() => {
    +  // 2s 后变成 Hello World!
    +  store.message = store.message + '!'
    +}, 2000)
    +
    +// 页面刷新后又变回了 Hello World

    使用后

    按照 persistedstate 插件的文档说明,在其中一个 Store 启用它,只需要添加一个 persist: true 的选项即可开启:

    ts
    // src/stores/message.ts
    +import { defineStore } from 'pinia'
    +import { useUserStore } from './user'
    +
    +const userStore = useUserStore()
    +
    +export const useMessageStore = defineStore('message', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  getters: {
    +    greeting: () => \`Welcome, \${userStore.userName}\`,
    +  },
    +  // 这是按照插件的文档,在实例上启用了该插件,这个选项是插件特有的
    +  persist: true,
    +})

    回到的页面,现在这个 Store 具备了持久化记忆的功能了,它会从 localStorage 读取原来的数据作为初始值,每一次变化后也会将其写入 localStorage 进行记忆存储。

    ts
    // 其他代码省略
    +const store = useMessageStore()
    +
    +// 假设初始值是 Hello World
    +setTimeout(() => {
    +  // 2s 后变成 Hello World!
    +  store.message = store.message + '!'
    +}, 2000)
    +
    +// 页面刷新后变成了 Hello World!!
    +// 再次刷新后变成了 Hello World!!!
    +// 再次刷新后变成了 Hello World!!!!

    可以在浏览器查看到 localStorage 的存储变化,以 Chrome 浏览器为例,按 F12 ,打开 Application 面板,选择 Local Storage ,可以看到以当前 Store ID 为 Key 的存储数据。

    这是其中一个插件使用的例子,更多的用法请根据自己选择的插件的 README 说明操作。

    `,229);function i(C,A,d,g,u,h){const l=a("ReadingTips"),p=a("GitalkComment"),o=a("ClientOnly");return t(),c("div",null,[D,s(l),F,s(o,null,{default:r(()=>[s(p,{issueId:152})]),_:1})])}const E=e(y,[["render",i]]);export{m as __pageData,E as default}; diff --git a/assets/pinia.md.c3d0acb5.lean.js b/assets/pinia.md.c3d0acb5.lean.js new file mode 100644 index 00000000..3e8691ad --- /dev/null +++ b/assets/pinia.md.c3d0acb5.lean.js @@ -0,0 +1,465 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as e,v as t,b as c,t as s,O as r,R as n,M as a}from"./chunks/framework.0d8bea05.js";const m=JSON.parse('{"title":"全局状态管理","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"pinia.md","filePath":"pinia.md"}'),y={name:"pinia.md"},D=n('

    全局状态管理

    本来这部分打算放在 组件之间的通信 里,里面也简单介绍了一下 Vuex ,但 Pinia 作为被官方推荐在 Vue 3 项目里作为全局状态管理的新工具,写着写着笔者认为还是单独开一章来写会更方便阅读和理解。

    官方推出的全局状态管理工具目前有 VuexPinia ,两者的作用和用法都比较相似,但 Pinia 的设计更贴近 Vue 3 组合式 API 的用法。

    TIP

    本章内的大部分内容都会和 Vuex 作对比,方便从 Vuex 项目向 Pinia 的迁移。

    ',4),F=n(`

    关于 Pinia ~new

    由于 Vuex 4.x 版本只是个过渡版,Vuex 4 对 TypeScript 和 Composition API 都不是很友好,虽然官方团队在 GitHub 已有讨论 Vuex 5 的开发提案,但从 2022-02-07 在 Vue 3 被设置为默认版本开始, Pinia 已正式被官方推荐作为全局状态管理的工具。

    Pinia 支持 Vue 3 和 Vue 2 ,对 TypeScript 也有很完好的支持,延续本指南的宗旨,在这里只介绍基于 Vue 3 和 TypeScript 的用法。

    点击访问:Pinia 官网

    安装和启用 ~new

    Pinia 目前还没有被广泛的默认集成在各种脚手架里,所以如果原来创建的项目没有 Pinia ,则需要手动安装它。

    bash
    # 需要 cd 到的项目目录下
    +npm install pinia

    查看的 package.json ,看看里面的 dependencies 是否成功加入了 Pinia 和它的版本号(下方是示例代码,以实际安装的最新版本号为准):

    json
    {
    +  "dependencies": {
    +    "pinia": "^2.0.11"
    +  }
    +}

    然后打开 src/main.ts 文件,添加下面那两行有注释的新代码:

    ts
    import { createApp } from 'vue'
    +import { createPinia } from 'pinia' // 导入 Pinia
    +import App from '@/App.vue'
    +
    +createApp(App)
    +  .use(createPinia()) // 启用 Pinia
    +  .mount('#app')

    到这里, Pinia 就集成到的项目里了。

    TIP

    也可以通过 Create Preset 创建新项目(选择 vue 技术栈进入,选择 vue3-ts-vite 模板),可以得到一个集成常用配置的项目启动模板,该模板现在使用 Pinia 作为全局状态管理工具。

    状态树的结构 ~new

    在开始写代码之前,先来看一个对比,直观的了解 Pinia 的状态树构成,才能在后面的环节更好的理解每个功能的用途。

    鉴于可能有部分开发者之前没有用过 Vuex ,所以加入了 Vue 组件一起对比( Options API 写法)。

    作用Vue ComponentVuexPinia
    数据管理datastatestate
    数据计算computedgettersgetters
    行为方法methodsmutations / actionsactions

    可以看到 Pinia 的结构和用途都和 Vuex 与 Component 非常相似,并且 Pinia 相对于 Vuex ,在行为方法部分去掉了 mutations (同步操作)和 actions (异步操作)的区分,更接近组件的结构,入门成本会更低一些。

    下面来创建一个简单的 Store ,开始用 Pinia 来进行状态管理。

    创建 Store ~new

    和 Vuex 一样, Pinia 的核心也是称之为 Store 。

    参照 Pinia 官网推荐的项目管理方案,也是先在 src 文件夹下创建一个 stores 文件夹,并在里面添加一个 index.ts 文件,然后就可以来添加一个最基础的 Store 。

    Store 是通过 defineStore 方法来创建的,它有两种入参形式:

    形式 1 :接收两个参数

    接收两个参数,第一个参数是 Store 的唯一 ID ,第二个参数是 Store 的选项:

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  // Store 选项...
    +})

    形式 2 :接收一个参数

    接收一个参数,直接传入 Store 的选项,但是需要把唯一 ID 作为选项的一部分一起传入:

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore({
    +  id: 'main',
    +  // Store 选项...
    +})

    TIP

    不论是哪种创建形式,都必须为 Store 指定一个唯一 ID 。

    另外可以看到这里把导出的函数名命名为 useStore ,以 use 开头是 Vue 3 对可组合函数的一个命名约定。

    并且使用的是 export const 而不是 export default (详见:命名导出和默认导出),这样在使用的时候可以和其他的 Vue 组合函数保持一致,都是通过 import { xxx } from 'xxx' 来导入。

    如果有多个 Store ,可以分模块管理,并根据实际的功能用途进行命名( e.g. useMessageStoreuseUserStoreuseGameStore … )。

    管理 state ~new

    在上一小节的 状态树的结构 这里已经了解过, Pinia 是在 state 里面定义状态数据。

    给 Store 添加 state

    它是通过一个箭头函数的形式来返回数据,并且能够正确的帮推导 TypeScript 类型:

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  // 先定义一个最基本的 message 数据
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  // ...
    +})

    需要注意一点的是,如果不显式 return ,箭头函数的返回值需要用圆括号 () 套起来,这个是箭头函数的要求(详见:返回对象字面量)。

    所以相当于这样写:

    ts
    // ...
    +export const useStore = defineStore('main', {
    +  state: () => {
    +    return {
    +      message: 'Hello World',
    +    }
    +  },
    +  // ...
    +})

    笔者还是更喜欢加圆括号的简写方式。

    TIP

    可能有开发者会问: Vuex 可以用一个对象来定义 state 的数据, Pinia 可以吗?

    答案是:不可以! state 的类型必须是 state?: (() => {}) | undefined ,要么不配置(就是 undefined ),要么只能是个箭头函数。

    手动指定数据类型

    虽然 Pinia 会帮推导 TypeScript 的数据类型,但有时候可能不太够用,比如下面这段代码,请留意代码注释的说明:

    ts
    // ...
    +export const useStore = defineStore('main', {
    +  state: () => {
    +    return {
    +      message: 'Hello World',
    +      // 添加了一个随机消息数组
    +      randomMessages: [],
    +    }
    +  },
    +  // ...
    +})

    randomMessages 的预期应该是一个字符串数组 string[] ,但是这个时候 Pinia 会帮推导成 never[] ,那么类型就对不上了。

    这种情况下就需要手动指定 randomMessages 的类型,可以通过 as 来指定:

    ts
    // ...
    +export const useStore = defineStore('main', {
    +  state: () => {
    +    return {
    +      message: 'Hello World',
    +      // 通过 as 关键字指定 TS 类型
    +      randomMessages: [] as string[],
    +    }
    +  },
    +  // ...
    +})

    或者使用尖括号 <> 来指定:

    ts
    // ...
    +export const useStore = defineStore('main', {
    +  state: () => {
    +    return {
    +      message: 'Hello World',
    +      // 通过尖括号指定 TS 类型
    +      randomMessages: <string[]>[],
    +    }
    +  },
    +  // ...
    +})

    这两种方式是等价的。

    获取和更新 state

    获取 state 有多种方法,略微有区别(详见下方各自的说明),但相同的是,他们都是响应性的。

    WARNING

    不能直接通过 ES6 解构的方式( e.g. const { message } = store ),那样会破坏数据的响应性。

    使用 store 实例

    用法上和 Vuex 很相似,但有一点区别是,数据直接是挂在 store 上的,而不是 store.state 上面!

    TIP

    e.g. Vuex 是 store.state.message , Pinia 是 store.message

    所以,可以直接通过 store.message 直接调用 state 里的数据。

    ts
    import { defineComponent } from 'vue'
    +import { useStore } from '@/stores'
    +
    +export default defineComponent({
    +  setup() {
    +    // 像 useRouter 那样定义一个变量拿到实例
    +    const store = useStore()
    +
    +    // 直接通过实例来获取数据
    +    console.log(store.message)
    +
    +    // 这种方式需要把整个 store 给到 template 去渲染数据
    +    return {
    +      store,
    +    }
    +  },
    +})

    但一些比较复杂的数据这样写会很长,所以有时候更推荐用下面介绍的 computed APIstoreToRefs API 等方式来获取。

    在数据更新方面,在 Pinia 可以直接通过 Store 实例更新 state (这一点与 Vuex 有明显的不同,更改 Vuex 的 store 中的状态的唯一方法是提交 mutation),所以如果要更新 message ,只需要像下面这样,就可以更新 message 的值了!

    ts
    store.message = 'New Message.'

    使用 computed API

    现在 state 里已经有定义好的数据了,下面这段代码是在 Vue 组件里导入的 Store ,并通过计算数据 computed 拿到里面的 message 数据传给 template 使用。

    vue
    <script lang="ts">
    +import { computed, defineComponent } from 'vue'
    +import { useStore } from '@/stores'
    +
    +export default defineComponent({
    +  setup() {
    +    // 像 useRouter 那样定义一个变量拿到实例
    +    const store = useStore()
    +
    +    // 通过计算拿到里面的数据
    +    const message = computed(() => store.message)
    +    console.log('message', message.value)
    +
    +    // 传给 template 使用
    +    return {
    +      message,
    +    }
    +  },
    +})
    +</script>

    使用 store 实例 以及 使用 storeToRefs API 不同,这个方式默认情况下无法直接更新 state 的值。

    TIP

    这里的定义的 message 变量是一个只有 getter ,没有 setter 的 ComputedRef 数据,所以它是只读的。

    如果要更新数据怎么办?

    1. 可以通过提前定义好的 Store Actions 方法进行更新。

    2. 在定义 computed 变量的时候,配置好 setter 的行为:

    ts
    // 其他代码和上一个例子一样,这里省略...
    +
    +// 修改:定义 computed 变量的时候配置 getter 和 setter
    +const message = computed({
    +  // getter 还是返回数据的值
    +  get: () => store.message,
    +  // 配置 setter 来定义赋值后的行为
    +  set(newVal) {
    +    store.message = newVal
    +  },
    +})
    +
    +// 此时不再抛出 Write operation failed: computed value is readonly 的警告
    +message.value = 'New Message.'
    +
    +// store 上的数据已成功变成了 New Message.
    +console.log(store.message)

    使用 storeToRefs API

    Pinia 还提供了一个 storeToRefs API 用于把 state 的数据转换为 ref 变量。

    这是一个专门为 Pinia Stores 设计的 API ,类似于 toRefs ,区别在于,它会忽略掉 Store 上面的方法和非响应性的数据,只返回 state 上的响应性数据。

    ts
    import { defineComponent } from 'vue'
    +import { useStore } from '@/stores'
    +
    +// 记得导入这个 API
    +import { storeToRefs } from 'pinia'
    +
    +export default defineComponent({
    +  setup() {
    +    const store = useStore()
    +
    +    // 通过 storeToRefs 来拿到响应性的 message
    +    const { message } = storeToRefs(store)
    +    console.log('message', message.value)
    +
    +    return {
    +      message,
    +    }
    +  },
    +})

    通过这个方式拿到的 message 变量是一个 Ref 类型的数据,所以可以像普通的 ref 变量一样进行读取和赋值。

    ts
    // 直接赋值即可
    +message.value = 'New Message.'
    +
    +// store 上的数据已成功变成了 New Message.
    +console.log(store.message)

    使用 toRefs API

    使用 storeToRefs API 部分所说,该 API 本身的设计就是类似于 toRefs ,所以也可以直接用 toRefs 把 state 上的数据转成 ref 变量。

    ts
    // 注意 toRefs 是 vue 的 API ,不是 Pinia
    +import { defineComponent, toRefs } from 'vue'
    +import { useStore } from '@/stores'
    +
    +export default defineComponent({
    +  setup() {
    +    const store = useStore()
    +
    +    // 跟 storeToRefs 操作都一样,只不过用 Vue 的这个 API 来处理
    +    const { message } = toRefs(store)
    +    console.log('message', message.value)
    +
    +    return {
    +      message,
    +    }
    +  },
    +})

    详见 使用 toRefs 一节的说明,可以像普通的 ref 变量一样进行读取和赋值。

    另外,像上面这样,对 store 执行 toRefs 会把 store 上面的 getters 、 actions 也一起提取,如果只需要提取 state 上的数据,可以这样做:

    ts
    // 只传入 store.$state
    +const { message } = toRefs(store.$state)

    使用 toRef API

    toRef 是 toRefs 的兄弟 API ,一个是只转换一个字段,一个是转换所有字段,所以它也可以用来转换 state 数据变成 ref 变量。

    ts
    // 注意 toRef 是 vue 的 API ,不是 Pinia
    +import { defineComponent, toRef } from 'vue'
    +import { useStore } from '@/stores'
    +
    +export default defineComponent({
    +  setup() {
    +    const store = useStore()
    +
    +    // 遵循 toRef 的用法即可
    +    const message = toRef(store, 'message')
    +    console.log('message', message.value)
    +
    +    return {
    +      message,
    +    }
    +  },
    +})

    详见 使用 toRef 一节的说明,可以像普通的 ref 变量一样进行读取和赋值。

    使用 actions 方法

    在 Vuex ,如果想通过方法来操作 state 的更新,必须通过 mutation 来提交;而异步操作需要更多一个步骤,必须先通过 action 来触发 mutation ,非常繁琐!

    Pinia 所有操作都集合为 action ,无需区分同步和异步,按照平时的函数定义即可更新 state ,具体操作详见 管理 actions 一节。

    批量更新 state

    获取和更新 state 部分说的都是如何修改单个 state 数据,那么有时候要同时修改很多个,会显得比较繁琐。

    如果写过 React 或者微信小程序,应该非常熟悉这些用法:

    ts
    // 下面不是 Vue 的代码,不要在的项目里使用
    +
    +// React
    +this.setState({
    +  foo: 'New Foo Value',
    +  bar: 'New bar Value',
    +})
    +
    +// 微信小程序
    +this.setData({
    +  foo: 'New Foo Value',
    +  bar: 'New bar Value',
    +})

    Pinia 也提供了一个 $patch API 用于同时修改多个数据,它接收一个参数:

    参数类型语法
    partialState对象 / 函数store.$patch(partialState)

    传入一个对象

    当参数类型为对象时,key 是要修改的 state 数据名称, value 是新的值(支持嵌套传值),用法如下:

    ts
    // 继续用前面的数据,这里会打印出修改前的值
    +console.log(JSON.stringify(store.$state))
    +// 输出 {"message":"Hello World","randomMessages":[]}
    +
    +/**
    + * 注意这里,传入了一个对象
    + */
    +store.$patch({
    +  message: 'New Message',
    +  randomMessages: ['msg1', 'msg2', 'msg3'],
    +})
    +
    +// 这里会打印出修改后的值
    +console.log(JSON.stringify(store.$state))
    +// 输出 {"message":"New Message","randomMessages":["msg1","msg2","msg3"]}

    对于简单的数据,直接修改成新值是非常好用的。

    但有时候并不单单只是修改,而是要对数据进行拼接、补充、合并等操作,相对而言开销就会很大,这种情况下,更适合 传入一个函数 来处理。

    TIP

    使用这个方式时, key 只允许是实例上已有的数据,不可以提交未定义的数据进去。

    强制提交的话,在 TypeScript 会抛出错误, JavaScript 虽然不会报错,但实际上, Store 实例上面依然不会有这个新增的非法数据。

    传入一个函数

    当参数类型为函数时,该函数会有一个入参 state ,是当前实例的 state ,等价于 store.$state ,用法如下:

    ts
    // 这里会打印出修改前的值
    +console.log(JSON.stringify(store.$state))
    +// 输出 {"message":"Hello World","randomMessages":[]}
    +
    +/**
    + * 注意这里,这次是传入了一个函数
    + */
    +store.$patch((state) => {
    +  state.message = 'New Message'
    +
    +  // 数组改成用追加的方式,而不是重新赋值
    +  for (let i = 0; i < 3; i++) {
    +    state.randomMessages.push(\`msg\${i + 1}\`)
    +  }
    +})
    +
    +// 这里会打印出修改后的值
    +console.log(JSON.stringify(store.$state))
    +// 输出 {"message":"New Message","randomMessages":["msg1","msg2","msg3"]}

    传入一个对象 比,不一定说就是哪种方式更好,通常要结合业务场景合理使用。

    TIP

    使用这个方式时,和 传入一个对象 一样只能修改已定义的数据,并且另外需要注意,传进去的函数只能是同步函数,不可以是异步函数!

    如果还不清楚什么是同步和异步,可以阅读 同步和异步 JavaScript - MDN 一文。

    全量更新 state

    批量更新 state 了解到可以用 store.$patch 方法对数据进行批量更新操作,不过如其命名,这种方式本质上是一种 “补丁更新” 。

    虽然可以对所有数据都执行一次 “补丁更新” 来达到 “全量更新” 的目的,但 Pinia 也提供了一个更好的办法。

    从前面多次提到 state 数据可以通过 store.$state 来拿到,而这个属性本身是可以直接赋值的。

    还是继续用上面的例子, state 上现在有 messagerandomMessages 这两个数据,那么要全量更新为新的值,就这么操作:

    ts
    store.$state = {
    +  message: 'New Message',
    +  randomMessages: ['msg1', 'msg2', 'msg3'],
    +}

    同样的,必须遵循 state 原有的数据和对应的类型。

    TIP

    该操作不会使 state 失去响应性。

    重置 state

    Pinia 提供了一个 $reset API 挂在每个实例上面,用于重置整颗 state 树为初始数据:

    ts
    // 这个 store 是上面定义好的实例
    +store.$reset()

    具体例子:

    ts
    // 修改数据
    +store.message = 'New Message'
    +console.log(store.message) // 输出 New Message
    +
    +// 3s 后重置状态
    +setTimeout(() => {
    +  store.$reset()
    +  console.log(store.message) // 输出最开始的 Hello World
    +}, 3000)

    订阅 state

    和 Vuex 一样, Pinia 也提供了一个用于订阅 state 的 $subscribe API 。

    订阅 API 的 TS 类型

    在了解这个 API 的使用之前,先看一下它的 TS 类型定义:

    ts
    // $subscribe 部分的 TS 类型
    +// ...
    +$subscribe(
    +  callback: SubscriptionCallback<S>,
    +  options?: { detached?: boolean } & WatchOptions
    +): () => void
    +// ...

    可以看到, $subscribe 可以接受两个参数:

    1. 第一个入参是 callback 函数,必传
    2. 第二个入参是一些选项,可选

    同时还会返回一个函数,执行后可以用于移除当前订阅,下面来看看具体用法。

    添加订阅

    $subscribe API 的功能类似于 watch ,但它只会在 state 被更新的时候才触发一次,并且在组件被卸载时删除(参考:组件的生命周期)。

    订阅 API 的 TS 类型 可以看到,它可以接受两个参数,第一个参数是必传的 callback 函数,一般情况下默认用这个方式即可,使用例子:

    ts
    // 可以在 state 出现变化时,更新本地持久化存储的数据
    +store.$subscribe((mutation, state) => {
    +  localStorage.setItem('store', JSON.stringify(state))
    +})

    这个 callback 里面有 2 个入参:

    入参作用
    mutation本次事件的一些信息
    state当前实例的 state

    其中 mutation 包含了以下数据:

    字段
    storeId发布本次订阅通知的 Pinia 实例的唯一 ID(由 创建 Store 时指定)
    type有 3 个值:返回 direct 代表 直接更改 数据;返回 patch object 代表是通过 传入一个对象 更改;返回 patch function 则代表是通过 传入一个函数 更改
    events触发本次订阅通知的事件列表
    payload通过 传入一个函数 更改时,传递进来的荷载信息,只有 typepatch object 时才有

    如果不希望组件被卸载时删除订阅,可以传递第二个参数 options 用以保留订阅状态,传入一个对象。

    可以简单指定为 { detached: true }

    ts
    store.$subscribe(
    +  (mutation, state) => {
    +    // ...
    +  },
    +  { detached: true }
    +)

    也可以搭配 watch API 的选项一起用。

    移除订阅

    添加订阅 部分已了解过,默认情况下,组件被卸载时订阅也会被一并移除,但如果之前启用了 detached 选项,就需要手动取消了。

    前面在 订阅 API 的 TS 类型 里提到,在启用 $subscribe API 之后,会有一个函数作为返回值,这个函数可以用来取消该订阅。

    用法非常简单,做一下简单了解即可:

    ts
    // 定义一个退订变量,它是一个函数
    +const unsubscribe = store.$subscribe(
    +  (mutation, state) => {
    +    // ...
    +  },
    +  { detached: true }
    +)
    +
    +// 在合适的时期调用它,可以取消这个订阅
    +unsubscribe()

    跟 watch API 的机制非常相似, 它也是返回 一个取消侦听的函数 用于移除指定的 watch 。

    管理 getters ~new

    状态树的结构 了解过, Pinia 的 getters 是用来计算数据的。

    给 Store 添加 getter

    TIP

    如果对 Vue 的计算数据不是很熟悉或者没接触过的话,可以先阅读 数据的计算 这一节,以便有个初步印象,不会云里雾里。

    添加普通的 getter

    继续用刚才的 message ,来定义一个 Getter ,用于返回一句拼接好的句子。

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  // 定义一个 fullMessage 的计算数据
    +  getters: {
    +    fullMessage: (state) => \`The message is "\${state.message}".\`,
    +  },
    +  // ...
    +})

    Options API 的 Computed 写法一样,也是通过函数来返回计算后的值, Getter 可以通过入参的 state 来拿到当前实例的数据(在 Pinia 里,官方更推荐使用箭头函数)。

    添加引用 getter 的 getter

    有时候可能要引用另外一个 getter 的值来返回数据,这个时候不能用箭头函数了,需要定义成普通函数而不是箭头函数,并在函数内部通过 this 来调用当前 Store 上的数据和方法。

    继续在上面的例子里,添加多一个 emojiMessage 的 getter ,在返回 fullMessage 的结果的同时,拼接多一串 emoji 。

    ts
    export const useStore = defineStore('main', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  getters: {
    +    fullMessage: (state) => \`The message is "\${state.message}".\`,
    +    // 这个 getter 返回了另外一个 getter 的结果
    +    emojiMessage(): string {
    +      return \`🎉🎉🎉 \${this.fullMessage}\`
    +    },
    +  },
    +})

    如果只写 JavaScript ,可能对这一条所说的限制觉得很奇怪,事实上用 JS 写箭头函数来引用确实不会报错,但如果用的是 TypeScript ,不按照这个写法,在 VSCode 提示和执行 TSC 检查的时候都会给抛出一条错误:

    bash
    src/stores/index.ts:9:42 - error TS2339:
    +Property 'fullMessage' does not exist on type '{ message: string; } & {}'.
    +
    +9     emojiMessage: (state) => \`🎉🎉🎉 \${state.fullMessage}\`,
    +                                           ~~~~~~~~~~~
    +
    +
    +Found 1 error in src/stores/index.ts:9

    另外关于普通函数的 TS 返回类型,官方建议显式的进行标注,就像这个例子里的 emojiMessage(): string 里的 : string

    给 getter 传递参数

    getter 本身是不支持参数的,但和 Vuex 一样,支持返回一个具备入参的函数,用来满足需求。

    ts
    import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  getters: {
    +    // 定义一个接收入参的函数作为返回值
    +    signedMessage: (state) => {
    +      return (name: string) => \`\${name} say: "The message is \${state.message}".\`
    +    },
    +  },
    +})

    调用的时候是这样:

    ts
    const signedMessage = store.signedMessage('Petter')
    +console.log('signedMessage', signedMessage)
    +// Petter say: "The message is Hello World".

    这种情况下,这个 getter 只是调用的函数的作用,不再有缓存,如果通过变量定义了这个数据,那么这个变量也只是普通变量,不具备响应性。

    ts
    // 通过变量定义一个值
    +const signedMessage = store.signedMessage('Petter')
    +console.log('signedMessage', signedMessage)
    +// Petter say: "The message is Hello World".
    +
    +// 2s 后改变 message
    +setTimeout(() => {
    +  store.message = 'New Message'
    +
    +  // signedMessage 不会变
    +  console.log('signedMessage', signedMessage)
    +  // Petter say: "The message is Hello World".
    +
    +  // 必须这样再次执行才能拿到更新后的值
    +  console.log('signedMessage', store.signedMessage('Petter'))
    +  // Petter say: "The message is New Message".
    +}, 2000)

    获取和更新 getter

    getter 和 state 都属于数据管理,读取和赋值的方法是一样的,请参考上方 获取和更新 state 一节的内容。

    管理 actions ~new

    状态树的结构 提到了, Pinia 只需要用 actions 就可以解决各种数据操作,无需像 Vuex 一样区分为 mutations / actions 两大类。

    给 Store 添加 action

    可以为当前 Store 封装一些可以开箱即用的方法,支持同步和异步。

    ts
    // src/stores/index.ts
    +import { defineStore } from 'pinia'
    +
    +export const useStore = defineStore('main', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  actions: {
    +    // 异步更新 message
    +    async updateMessage(newMessage: string): Promise<string> {
    +      return new Promise((resolve) => {
    +        setTimeout(() => {
    +          // 这里的 this 是当前的 Store 实例
    +          this.message = newMessage
    +          resolve('Async done.')
    +        }, 3000)
    +      })
    +    },
    +    // 同步更新 message
    +    updateMessageSync(newMessage: string): string {
    +      // 这里的 this 是当前的 Store 实例
    +      this.message = newMessage
    +      return 'Sync done.'
    +    },
    +  },
    +})

    可以看到,在 action 里,如果要访问当前实例的 state 或者 getter ,只需要通过 this 即可操作,方法的入参完全不再受 Vuex 那样有固定形式的困扰。

    TIP

    在 action 里, this 是当前的 Store 实例,所以如果的 action 方法里有其他函数也要调用实例,请记得写成 箭头函数 来提升 this 。

    调用 action

    在 Pinia 中只要像普通的函数一样使用即可,不需要和 Vuex 一样调用 commit 或者 dispatch。

    ts
    export default defineComponent({
    +  setup() {
    +    const store = useStore()
    +    const { message } = storeToRefs(store)
    +
    +    // 立即执行
    +    console.log(store.updateMessageSync('New message by sync.'))
    +
    +    // 3s 后执行
    +    store.updateMessage('New message by async.').then((res) => console.log(res))
    +
    +    return {
    +      message,
    +    }
    +  },
    +})

    添加多个 Store ~new

    到这里,对单个 Store 的配置和调用相信都已经清楚了,实际项目中会涉及到很多数据操作,还可以用多个 Store 来维护不同需求模块的数据状态。

    这一点和 Vuex 的 Module 比较相似,目的都是为了避免状态树过于臃肿,但用起来会更为简单。

    目录结构建议

    建议统一存放在 src/stores 下面管理,根据业务需要进行命名,比如 user 就用来管理登录用户相关的状态数据。

    bash
    src
    +└─stores
    +   # 入口文件
    +  ├─index.ts
    +   # 多个 store
    +  ├─user.ts
    +  ├─game.ts
    +  └─news.ts

    里面暴露的方法就统一以 use 开头加上文件名,并以 Store 结尾,作为小驼峰写法,比如 user 这个 Store 文件里面导出的函数名就是:

    ts
    // src/stores/user.ts
    +export const useUserStore = defineStore('user', {
    +  // ...
    +})

    然后以 index.ts 里作为统一的入口文件, index.ts 里的代码写为:

    ts
    export * from './user'
    +export * from './game'
    +export * from './news'

    这样在使用的时候,只需要从 @/stores 里导入即可,无需写完整的路径,例如,只需要这样:

    ts
    import { useUserStore } from '@/stores'

    而无需这样:

    ts
    import { useUserStore } from '@/stores/user'

    在 Vue 组件 / TS 文件里使用

    这里以一个比较简单的业务场景举例,希望能够方便的理解如何同时使用多个 Store 。

    假设目前有一个 userStore 是管理当前登录用户信息, gameStore 是管理游戏的信息,而 “个人中心” 这个页面需要展示 “用户信息” ,以及 “该用户绑定的游戏信息”,那么就可以这样:

    ts
    import { defineComponent, onMounted, ref } from 'vue'
    +import { storeToRefs } from 'pinia'
    +// 这里导入要用到的 Store
    +import { useUserStore, useGameStore } from '@/stores'
    +import type { GameItem } from '@/types'
    +
    +export default defineComponent({
    +  setup() {
    +    // 先从 userStore 获取用户信息(已经登录过,所以可以直接拿到)
    +    const userStore = useUserStore()
    +    const { userId, userName } = storeToRefs(userStore)
    +
    +    // 使用 gameStore 里的方法,传入用户 ID 去查询用户的游戏列表
    +    const gameStore = useGameStore()
    +    const gameList = ref<GameItem[]>([])
    +    onMounted(async () => {
    +      gameList.value = await gameStore.queryGameList(userId.value)
    +    })
    +
    +    return {
    +      userId,
    +      userName,
    +      gameList,
    +    }
    +  },
    +})

    再次提醒,切记每个 Store 的 ID 必须不同,如果 ID 重复,在同一个 Vue 组件 / TS 文件里定义 Store 实例变量的时候,会以先定义的为有效值,后续定义的会和前面一样。

    如果先定义了 userStore :

    ts
    // 假设两个 Store 的 ID 一样
    +const userStore = useUserStore() // 是想要的 Store
    +const gameStore = useGameStore() // 得到的依然是 userStore 的那个 Store

    如果先定义了 gameStore :

    ts
    // 假设两个 Store 的 ID 一样
    +const gameStore = useGameStore() // 是想要的 Store
    +const userStore = useUserStore() // 得到的依然是 gameStore 的那个 Store

    Store 之间互相引用

    如果在定义一个 Store 的时候,要引用另外一个 Store 的数据,也是很简单,回到那个 message 的例子,添加一个 getter ,它会返回一句问候语欢迎用户:

    ts
    // src/stores/message.ts
    +import { defineStore } from 'pinia'
    +
    +// 导入用户信息的 Store 并启用它
    +import { useUserStore } from './user'
    +const userStore = useUserStore()
    +
    +export const useMessageStore = defineStore('message', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  getters: {
    +    // 这里就可以直接引用 userStore 上面的数据了
    +    greeting: () => \`Welcome, \${userStore.userName}!\`,
    +  },
    +})

    假设现在 userName 是 Petter ,那么会得到一句对 Petter 的问候:

    ts
    const messageStore = useMessageStore()
    +console.log(messageStore.greeting) // Welcome, Petter!

    专属插件的使用 ~new

    Pinia 拥有非常灵活的可扩展性,有专属插件可以开箱即用满足更多的需求场景。

    如何查找插件

    插件有统一的命名格式 pinia-plugin-* ,所以可以在 npmjs 上搜索这个关键词来查询目前有哪些插件已发布。

    点击查询: pinia-plugin - npmjs

    如何使用插件

    这里以 pinia-plugin-persistedstate 为例,这是一个让数据持久化存储的 Pinia 插件。

    TIP

    数据持久化存储,指页面关闭后再打开,浏览器依然可以记录之前保存的本地数据,例如:浏览器原生的 localStorageIndexedDB ,或者是一些兼容多种原生方案并统一用法的第三方方案,例如: localForage

    插件也是独立的 npm 包,需要先安装,再激活,然后才能使用。

    激活方法会涉及到 Pinia 的初始化过程调整,这里不局限于某一个插件,通用的插件用法如下(请留意代码注释):

    ts
    // src/main.ts
    +import { createApp } from 'vue'
    +import App from '@/App.vue'
    +import { createPinia } from 'pinia' // 导入 Pinia
    +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' // 导入 Pinia 插件
    +
    +const pinia = createPinia() // 初始化 Pinia
    +pinia.use(piniaPluginPersistedstate) // 激活 Pinia 插件
    +
    +createApp(App)
    +  .use(pinia) // 启用 Pinia ,这一次是包含了插件的 Pinia 实例
    +  .mount('#app')

    使用前

    Pinia 默认在页面刷新时会丢失当前变更的数据,没有在本地做持久化记录:

    ts
    // 其他代码省略
    +const store = useMessageStore()
    +
    +// 假设初始值是 Hello World
    +setTimeout(() => {
    +  // 2s 后变成 Hello World!
    +  store.message = store.message + '!'
    +}, 2000)
    +
    +// 页面刷新后又变回了 Hello World

    使用后

    按照 persistedstate 插件的文档说明,在其中一个 Store 启用它,只需要添加一个 persist: true 的选项即可开启:

    ts
    // src/stores/message.ts
    +import { defineStore } from 'pinia'
    +import { useUserStore } from './user'
    +
    +const userStore = useUserStore()
    +
    +export const useMessageStore = defineStore('message', {
    +  state: () => ({
    +    message: 'Hello World',
    +  }),
    +  getters: {
    +    greeting: () => \`Welcome, \${userStore.userName}\`,
    +  },
    +  // 这是按照插件的文档,在实例上启用了该插件,这个选项是插件特有的
    +  persist: true,
    +})

    回到的页面,现在这个 Store 具备了持久化记忆的功能了,它会从 localStorage 读取原来的数据作为初始值,每一次变化后也会将其写入 localStorage 进行记忆存储。

    ts
    // 其他代码省略
    +const store = useMessageStore()
    +
    +// 假设初始值是 Hello World
    +setTimeout(() => {
    +  // 2s 后变成 Hello World!
    +  store.message = store.message + '!'
    +}, 2000)
    +
    +// 页面刷新后变成了 Hello World!!
    +// 再次刷新后变成了 Hello World!!!
    +// 再次刷新后变成了 Hello World!!!!

    可以在浏览器查看到 localStorage 的存储变化,以 Chrome 浏览器为例,按 F12 ,打开 Application 面板,选择 Local Storage ,可以看到以当前 Store ID 为 Key 的存储数据。

    这是其中一个插件使用的例子,更多的用法请根据自己选择的插件的 README 说明操作。

    `,229);function i(C,A,d,g,u,h){const l=a("ReadingTips"),p=a("GitalkComment"),o=a("ClientOnly");return t(),c("div",null,[D,s(l),F,s(o,null,{default:r(()=>[s(p,{issueId:152})]),_:1})])}const E=e(y,[["render",i]]);export{m as __pageData,E as default}; diff --git a/assets/plugin.md.66b7dcdd.js b/assets/plugin.md.66b7dcdd.js new file mode 100644 index 00000000..0b02b364 --- /dev/null +++ b/assets/plugin.md.66b7dcdd.js @@ -0,0 +1,791 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as r,v as y,b as i,t as s,O as p,F as a,L as D,R as o,M as n}from"./chunks/framework.0d8bea05.js";const x=JSON.parse('{"title":"插件的开发和使用","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"plugin.md","filePath":"plugin.md"}'),F={name:"plugin.md"},C=a("h1",{id:"插件的开发和使用",tabindex:"-1"},[D("插件的开发和使用 "),a("a",{class:"header-anchor",href:"#插件的开发和使用","aria-label":'Permalink to "插件的开发和使用"'},"​")],-1),A=a("p",null,"在构建 Vue 项目的过程中,离不开各种开箱即用的插件支持,用以快速完成需求,避免自己造轮子。",-1),d=a("p",null,"在 Vue 项目里,可以使用针对 Vue 定制开发的专属插件,也可以使用无框架依赖的通用 JS 插件,插件的表现形式也是丰富多彩,既可以是功能的实现,也可以是组件的封装,本章将从插件的使用到亲自开发一个小插件的过程,逐一讲解。",-1),h=o(`

    插件的安装和引入

    前端工程化 十分普及的今天,可以说几乎所有要用到的插件,都可以在 npmjs 上搜到,除了官方提供的包管理器 npm ,也有很多种安装方式选择。

    TIP

    如果还不了解什么是包和包管理器,请先阅读 了解包和插件 一节的内容。

    另外,每个包管理都可以配置镜像源,提升国内的下载速度,对此也可以先阅读 配置镜像源 一节了解。

    虽然对于个人开发者来说,有一个用的顺手的包管理器就足够日常开发了,但是还是有必要多了解一下不同的包管理器,因为未来可能会面对团队协作开发、为开源项目贡献代码等情况,需要遵循团队要求的包管理机制(例如使用 Monorepo 架构的团队会更青睐于 yarn 或 pnpm 的 Workspace 功能)。

    通过 npm 安装

    npm 是 Node.js 自带的包管理器,平时通过 npm install 命令来安装各种 npm 包(比如 npm install vue-router ),就是通过这个包管理器来安装的。

    如果包的下载速度太慢,可以通过以下命令管理镜像源:

    bash
    # 查看下载源
    +npm config get registry
    +
    +# 绑定下载源
    +npm config set registry https://registry.npmmirror.com
    +
    +# 删除下载源
    +npm config rm registry

    TIP

    npm 的 lock 文件是 package-lock.json ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

    通过 cnpm 安装

    cnpm 是阿里巴巴推出的包管理工具,安装之后默认会使用 https://registry.npmmirror.com 这个镜像源。

    它的安装命令和 npm 非常一致,通过 cnpm install 命令来安装(比如 cnpm install vue-router)。

    在使用它之前,需要通过 npm 命令进行全局安装:

    bash
    npm install -g cnpm
    +
    +# 或者
    +# npm install -g cnpm --registry=https://registry.npmmirror.com

    TIP

    cnpm 不生成 lock 文件,也不会识别项目下的 lock 文件,所以还是推荐使用 npm 或者其他包管理工具,通过绑定镜像源的方式来管理项目的包。

    通过 yarn 安装

    yarn 也是一个常用的包管理工具,和 npm 十分相似, npmjs 上的包,也会同步到 yarnpkg

    也是需要全局安装才可以使用:

    bash
    npm install -g yarn

    但是安装命令上会有点不同, yarn 是用 add 代替 install ,用 remove 代替 uninstall ,例如:

    bash
    # 安装单个包
    +yarn add vue-router
    +
    +# 安装全局包
    +yarn global add typescript
    +
    +# 卸载包
    +yarn remove vue-router

    而且在运行脚本的时候,可以直接用 yarn 来代替 npm run ,例如 yarn dev 相当于 npm run dev

    yarn 默认绑定的是 https://registry.yarnpkg.com 的下载源,如果包的下载速度太慢,也可以配置镜像源,但是命令有所差异:

    bash
    # 查看镜像源
    +yarn config get registry
    +
    +# 绑定镜像源
    +yarn config set registry https://registry.npmmirror.com
    +
    +# 删除镜像源(注意这里是 delete )
    +yarn config delete registry

    TIP

    yarn 的 lock 文件是 yarn.lock ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

    通过 pnpm 安装

    pnpm 是包管理工具的一个后起之秀,主打快速的、节省磁盘空间的特色,用法跟其他包管理器很相似,没有太多的学习成本, npm 和 yarn 的命令它都支持。

    也是必须先全局安装它才可以使用:

    bash
    npm install -g pnpm

    目前 pnpm 在开源社区的使用率越来越高,包括接触最多的 Vue / Vite 团队也在逐步迁移到 pnpm 来管理依赖。

    pnpm 的下载源使用的是 npm ,所以如果要绑定镜像源,按照 npm 的方式 处理就可以了。

    相关阅读:

    TIP

    pnpm 的 lock 文件是 pnpm-lock.yaml ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

    通过 CDN 安装

    大部分插件都会提供一个 CDN 版本,让可以在 .html 文件里通过 <script> 标签引入。

    比如:

    html
    <script src="https://unpkg.com/vue-router"></script>

    插件的引入

    除了 CDN 版本是直接可用之外,其他通过 npm 、 yarn 等方式安装的插件,都需要在入口文件 main.ts 或者要用到的 .vue 文件里引入,比如:

    ts
    import { createRouter, createWebHistory } from 'vue-router'

    因为本教程都是基于工程化开发,使用的 CLI 脚手架,所以这些内容暂时不谈及 CDN 的使用方式。

    通常来说会有细微差别,但影响不大,插件作者也会在插件仓库的 README 或者使用文档里进行告知。

    Vue 专属插件

    这里特指 Vue 插件,通过 Vue Plugins 设计规范 开发出来的插件,在 npm 上通常是以 vue-xxx 这样带有 vue 关键字的格式命名(比如 vue-baidu-analytics)。

    专属插件通常分为 全局插件单组件插件,区别在于,全局版本是在 main.ts 引入后 use,而单组件版本则通常是作为一个组件在 .vue 文件里引入使用。

    全局插件的使用 ~new

    在本教程最最前面的时候,特地说了一个内容就是 项目初始化 ,在这里有提到过就是需要通过 use 来初始化框架、插件。

    全局插件的使用,就是在 main.ts 通过 import 引入,然后通过 use 来启动初始化。

    在 Vue 2 ,全局插件是通过 Vue.use(xxx) 来启动,而现在,则需要通过 createAppuse,既可以单独一行一个 use ,也可以直接链式 use 下去。

    参数

    use 方法支持两个参数:

    参数类型作用
    pluginobject | function插件,一般是在 import 时使用的名称
    optionsobject插件的参数,有些插件在初始化时可以配置一定的选项

    基本的写法就是像下面这样:

    ts
    // main.ts
    +import plugin1 from 'plugin1'
    +import plugin2 from 'plugin2'
    +import plugin3 from 'plugin3'
    +import plugin4 from 'plugin4'
    +
    +createApp(App)
    +  .use(plugin1)
    +  .use(plugin2)
    +  .use(plugin3, {
    +    // plugin3's options
    +  })
    +  .use(plugin4)
    +  .mount('#app')

    大部分插件到这里就可以直接启动了,个别插件可能需要通过插件 API 去手动触发,在 npm 包的详情页或者 GitHub 仓库文档上,作者一般会告知使用方法,按照说明书操作即可。

    单组件插件的使用 ~new

    单组件的插件,通常自己本身也是一个 Vue 组件(大部分情况下都会打包为 JS 文件,但本质上是一个 Vue 的 Component )。

    单组件的引入,一般都是在需要用到的 .vue 文件里单独 import ,然后挂到 <template /> 里去渲染,下面是一段模拟代码,理解起来会比较直观:

    vue
    <template>
    +  <!-- 放置组件的渲染标签,用于显示组件 -->
    +  <ComponentExample />
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, onMounted, ref } from 'vue'
    +import logo from '@/assets/logo.png'
    +
    +// 引入单组件插件
    +import ComponentExample from 'a-component-example'
    +
    +export default defineComponent({
    +  // 挂载组件模板
    +  components: {
    +    ComponentExample,
    +  },
    +})
    +</script>

    参考上面的代码还有注释,应该能大概了解如何使用单组件插件了吧!

    通用 JS / TS 插件

    也叫普通插件,这个 “普通” 不是指功能平平无奇,而是指它们无需任何框架依赖,可以应用在任意项目中,属于独立的 Library ,比如 axiosqrcodemd5 等等,在任何技术栈都可以单独引入使用,非 Vue 专属。

    通用插件的使用非常灵活,既可以全局挂载,也可以在需要用到的组件里单独引入。

    组件里单独引入方式:

    ts
    import { defineComponent } from 'vue'
    +import md5 from '@withtypes/md5'
    +
    +export default defineComponent({
    +  setup() {
    +    const md5Msg = md5('message')
    +  },
    +})

    全局挂载方法比较特殊,因为插件本身不是专属 Vue,没有 install 接口,无法通过 use 方法直接启动,下面有一小节内容单独讲这一块的操作,详见 全局 API 挂载

    本地插件 ~new

    插件也不全是来自于网上,有时候针对自己的业务,涉及到一些经常用到的功能模块,也可以抽离出来封装成项目专用的插件。

    封装的目的

    举个例子,比如在做一个具备用户系统的网站时,会涉及到手机短信验证码模块,在开始写代码之前,需要先要考虑到这些问题:

    1. 很多操作都涉及到下发验证码的请求,比如 “登录” 、 “注册” 、 “修改手机绑定” 、 “支付验证” 等等,代码雷同,只是接口 URL 或者参数不太一样

    2. 都是需要对手机号是否有传入、手机号的格式正确性验证等一些判断

    3. 需要对接口请求成功和失败的情况做一些不同的数据返回,但要处理的数据很相似,都是用于告知调用方当前是什么情况

    4. 返回一些 Toast 告知用户当前的交互结果

    TIP

    如果不把这一块的业务代码抽离出来,需要在每个用到的地方都写一次,不仅繁琐,而且以后一旦产品需求有改动,维护起来就惨了。

    常用的封装类型

    常用的本地封装方式有两种:一种是以 通用 JS / TS 插件 的形式,一种是以 Vue 专属插件 的形式。

    关于这两者的区别已经在对应的小节有所介绍,接下来来看看如何封装它们。

    开发本地通用 JS / TS 插件

    一般情况下会以通用类型比较常见,因为大部分都是一些比较小的功能,而且可以很方便的在不同项目之间进行复用。

    TIP

    注:接下来会统一称之为 “通用插件” ,不论是基于 JavaScript 编写的还是 TypeScript 编写的。

    项目结构

    通常会把这一类文件都归类在 src 目录下的 libs 文件夹里,代表存放的是 Library 文件( JS 项目以 .js 文件存放, TS 项目以 .ts 文件存放)。

    bash
    vue-demo
    + # 源码文件夹
    +├─src
    +  # 本地通用插件
    + └─libs
    +   ├─foo.ts
    +   └─bar.ts
    +
    + # 其他结构这里省略…
    +
    +└─package.json

    这样在调用的时候,可以通过 @/libs/foo 来引入,或者配置了 alias 别名,也可以使用别名导入,例如 @libs/foo

    设计规范与开发案例

    在设计本地通用插件的时候,需要遵循 ES Module 模块设计规范 ,并且做好必要的代码注释(用途、入参、返回值等)。

    TIP

    如果还没有了解过 “模块” 的概念的话,可以先阅读 了解模块化设计 一节的内容。

    一般来说,会有以下三种情况需要考虑。

    只有一个默认功能

    如果只有一个默认的功能,那么可以使用 export default 来默认导出一个函数。

    例如需要封装一个打招呼的功能:

    ts
    // src/libs/greet.ts
    +
    +/**
    + * 向对方打招呼
    + * @param name - 打招呼的目标人名
    + * @returns 向传进来的人名返回一句欢迎语
    + */
    +export default function greet(name: string): string {
    +  return \`Welcome, \${name}!\`
    +}

    在 Vue 组件里就可以这样使用:

    vue
    <script lang="ts">
    +import { defineComponent } from 'vue'
    +// 导入本地插件
    +import greet from '@libs/greet'
    +
    +export default defineComponent({
    +  setup() {
    +    // 导入的名称就是这个工具的方法名,可以直接调用
    +    const message = greet('Petter')
    +    console.log(message) // Welcome, Petter!
    +  },
    +})
    +</script>
    是一个小工具合集

    如果有很多个作用相似的函数,那么建议放在一个文件里作为一个工具合集统一管理,使用 export 来导出里面的每个函数。

    例如需要封装几个通过 正则表达式 判断表单的输入内容是否符合要求的函数:

    ts
    // src/libs/regexp.ts
    +
    +/**
    + * 手机号校验
    + * @param phoneNumber - 手机号
    + * @returns true=是手机号,false=不是手机号
    + */
    +export function isMob(phoneNumber: number | string): boolean {
    +  return /^1[3456789]\\d{9}$/.test(String(phoneNumber))
    +}
    +
    +/**
    + * 邮箱校验
    + * @param email - 邮箱地址
    + * @returns true=是邮箱地址,false=不是邮箱地址
    + */
    +export function isEmail(email: string): boolean {
    +  return /^[A-Za-z\\d]+([-_.][A-Za-z\\d]+)*@([A-Za-z\\d]+[-.])+[A-Za-z\\d]{2,4}$/.test(
    +    email
    +  )
    +}

    在 Vue 组件里就可以这样使用:

    vue
    <script lang="ts">
    +import { defineComponent } from 'vue'
    +// 需要用花括号 {} 来按照命名导出时的名称导入
    +import { isMob, isEmail } from '@libs/regexp'
    +
    +export default defineComponent({
    +  setup() {
    +    // 判断是否是手机号
    +    console.log(isMob('13800138000')) // true
    +    console.log(isMob('123456')) // false
    +
    +    // 判断是否是邮箱地址
    +    console.log(isEmail('example@example.com')) // true
    +    console.log(isEmail('example')) // false
    +  },
    +})
    +</script>

    TIP

    类似这种情况,就没有必要为 isMobisEmail 每个方法都单独保存一个文件了,只需要统一放在 regexp.ts 正则文件里维护。

    包含工具及辅助函数

    如果主要提供一个独立功能,但还需要提供一些额外的变量或者辅助函数用于特殊的业务场景,那么可以用 export default 导出主功能,用 export 导出其他变量或者辅助函数。

    只有一个默认功能 这个打招呼例子的基础上修改一下,默认提供的是 “打招呼” 的功能,偶尔需要更热情的赞美一下,那么这个 “赞美” 行为就可以用这个方式来放到这个文件里一起维护。

    ts
    // src/libs/greet.ts
    +
    +/**
    + * 称赞对方
    + * @param name - 要称赞的目标人名
    + * @returns 向传进来的人名发出一句赞美的话
    + */
    +export function praise(name: string): string {
    +  return \`Oh! \${name}! It's so kind of you!\`
    +}
    +
    +/**
    + * 向对方打招呼
    + * @param name - 打招呼的目标人名
    + * @returns 向传进来的人名发出一句欢迎语
    + */
    +export default function greet(name: string): string {
    +  return \`Welcome, \${name}!\`
    +}

    在 Vue 组件里就可以这样使用:

    vue
    <script lang="ts">
    +import { defineComponent } from 'vue'
    +// 两者可以同时导入使用
    +import greet, { praise } from '@libs/greet'
    +
    +export default defineComponent({
    +  setup() {
    +    // 使用默认的打招呼
    +    const message = greet('Petter')
    +    console.log(message) // Welcome, Petter!
    +
    +    // 使用命名导出的赞美
    +    const praiseMessage = praise('Petter')
    +    console.log(praiseMessage) // Oh! Petter! It's so kind of you!
    +  },
    +})
    +</script>

    开发本地 Vue 专属插件

    Vue 专属插件 部分已介绍过,这一类的插件只能给 Vue 使用,有时候自己的业务比较特殊,无法找到完全适用的 npm 包,那么就可以自己写一个!

    项目结构

    通常会把这一类文件都归类在 src 目录下的 plugins 文件夹里,代表存放的是 Plugin 文件( JS 项目以 .js 文件存放, TS 项目以 .ts 文件存放)。

    bash
    vue-demo
    + # 源码文件夹
    +├─src
    +  # 本地 Vue 插件
    + └─plugins
    +   ├─foo.ts
    +   └─bar.ts
    +
    + # 其他结构这里省略…
    +
    +└─package.json

    这样在调用的时候,可以通过 @/plugins/foo 来引入,或者配置了 alias 别名,也可以使用别名导入,例如 @plugins/foo

    设计规范

    在设计本地 Vue 插件的时候,需要遵循 Vue 官方撰写的 Vue Plugins 设计规范 ,并且做好必要的代码注释,除了标明插件 API 的 “用途、入参、返回值” 之外,最好在注释内补充一个 Example 或者 Tips 说明,功能丰富的插件最好直接写个 README 文档。

    开发案例

    全局插件开发并启用后,只需要在 main.ts 里导入并 use 一次,即可在所有的组件内使用插件的功能。

    下面对全局插件进行一个开发示范,希望能给大家以后需要的时候提供思路参考。

    TIP

    单组件插件一般作为 npm 包发布,会借助 Webpack 、 Vite 或者 Rollup 单独构建,本地直接放到 components 文件夹下作为组件管理即可。

    基本结构

    插件支持导出两种格式的:一种是函数,一种是对象。

    1. 当导出为一个函数时, Vue 会直接调用这个函数,此时插件内部是这样子:
    ts
    export default function (app, options) {
    +  // 逻辑代码...
    +}
    1. 当导出为一个对象时,对象上面需要有一个 install 方法给 Vue , Vue 通过调用这个方法来启用插件,此时插件内部是这样子:
    ts
    export default {
    +  install: (app, options) => {
    +    // 逻辑代码...
    +  },
    +}

    不论哪种方式,入口函数都会接受两个入参:

    参数作用类型
    appcreateApp 生成的实例App (从 'vue' 里导入该类型),见下方的案例演示
    options插件初始化时的选项undefined 或一个对象,对象的 TS 类型由插件的选项决定

    如果需要在插件初始化时传入一些必要的选项,可以定义一个对象作为 options ,这样只要在 main.tsuse 插件时传入第二个参数,插件就可以拿到它们:

    ts
    // src/main.ts
    +createApp(App)
    +  // 注意这里的第二个参数就是插件选项
    +  .use(customPlugin, {
    +    foo: 1,
    +    bar: 2,
    +  })
    +  .mount('#app')
    编写插件

    这里以一个 自定义指令 为例,写一个用于管理自定义指令的插件,其中包含两个自定义指令:一个是判断是否有权限,一个是给文本高亮,文本高亮还支持一个插件选项。

    ts
    // src/plugins/directive.ts
    +import type { App } from 'vue'
    +
    +// 插件选项的类型
    +interface Options {
    +  // 文本高亮选项
    +  highlight?: {
    +    // 默认背景色
    +    backgroundColor: string
    +  }
    +}
    +
    +/**
    + * 自定义指令
    + * @description 保证插件单一职责,当前插件只用于添加自定义指令
    + */
    +export default {
    +  install: (app: App, options?: Options) => {
    +    /**
    +     * 权限控制
    +     * @description 用于在功能按钮上绑定权限,没权限时会销毁或隐藏对应 DOM 节点
    +     * @tips 指令传入的值是管理员的组别 id
    +     * @example <div v-permission="1" />
    +     */
    +    app.directive('permission', (el, binding) => {
    +      // 假设 1 是管理员组别的 id ,则无需处理
    +      if (binding.value === 1) return
    +
    +      // 其他情况认为没有权限,需要隐藏掉界面上的 DOM 元素
    +      if (el.parentNode) {
    +        el.parentNode.removeChild(el)
    +      } else {
    +        el.style.display = 'none'
    +      }
    +    })
    +
    +    /**
    +     * 文本高亮
    +     * @description 用于给指定的 DOM 节点添加背景色,搭配文本内容形成高亮效果
    +     * @tips 指令传入的值需要是合法的 CSS 颜色名称或者 Hex 值
    +     * @example <div v-highlight="\`cyan\`" />
    +     */
    +    app.directive('highlight', (el, binding) => {
    +      // 获取默认颜色
    +      let defaultColor = 'unset'
    +      if (
    +        Object.prototype.toString.call(options) === '[object Object]' &&
    +        options?.highlight?.backgroundColor
    +      ) {
    +        defaultColor = options.highlight.backgroundColor
    +      }
    +
    +      // 设置背景色
    +      el.style.backgroundColor =
    +        typeof binding.value === 'string' ? binding.value : defaultColor
    +    })
    +  },
    +}
    启用插件

    main.ts 全局启用插件,在启用的时候传入了第二个参数 “插件的选项” ,这里配置了个高亮指令的默认背景颜色:

    ts
    // src/main.ts
    +import { createApp } from 'vue'
    +import App from '@/App.vue'
    +import directive from '@/plugins/directive' // 导入插件
    +
    +createApp(App)
    +   // 自定义插件
    +  .use(directive, {
    +    highlight: {
    +      backgroundColor: '#ddd',
    +    },
    +  })
    +  .mount('#app')
    使用插件

    在 Vue 组件里使用:

    vue
    <template>
    +  <!-- 测试 permission 指令 -->
    +  <div>根据 permission 指令的判断规则:</div>
    +  <div v-permission="1">这个可以显示</div>
    +  <div v-permission="2">这个没有权限,会被隐藏</div>
    +
    +  <!-- 测试 highlight 指令 -->
    +  <div>根据 highlight 指令的判断规则:</div>
    +  <div v-highlight="\`cyan\`">这个是青色高亮</div>
    +  <div v-highlight="\`yellow\`">这个是黄色高亮</div>
    +  <div v-highlight="\`red\`">这个是红色高亮</div>
    +  <div v-highlight>这个是使用插件初始化时设置的灰色</div>
    +</template>

    全局 API 挂载

    对于一些使用频率比较高的插件方法,如果觉得在每个组件里单独导入再用很麻烦,也可以考虑将其挂载到 Vue 上,使其成为 Vue 的全局变量。

    注:接下来的全局变量,都是指 Vue 环境里的全局变量,非 Window 下的全局变量。

    回顾 Vue 2

    在 Vue 2 ,可以通过 prototype 的方式来挂载全局变量,然后通过 this 关键字来从 Vue 原型上调用该方法。

    md5 插件为例,在 main.ts 里进行全局 import,然后通过 prototype 去挂到 Vue 上。

    ts
    import Vue from 'vue'
    +import md5 from 'md5'
    +
    +Vue.prototype.$md5 = md5

    之后在 .vue 文件里,就可以这样去使用 md5

    ts
    const md5Msg = this.$md5('message')

    了解 Vue 3 ~new

    在 Vue 3 ,已经不再支持 prototype 这样使用了,在 main.ts 里没有了 Vue,在组件的生命周期里也没有了 this

    如果依然想要挂载全局变量,需要通过全新的 globalProperties 来实现,在使用该方式之前,可以把 createApp 定义为一个变量再执行挂载。

    定义全局 API ~new

    如上,在配置全局变量之前,可以把初始化时的 createApp 定义为一个变量(假设为 app ),然后把需要设置为全局可用的变量或方法,挂载到 appconfig.globalProperties 上面。

    ts
    import md5 from 'md5'
    +
    +// 创建 Vue 实例
    +const app = createApp(App)
    +
    +// 把插件的 API 挂载全局变量到实例上
    +app.config.globalProperties.$md5 = md5
    +
    +// 也可以自己写一些全局函数去挂载
    +app.config.globalProperties.$log = (text: string): void => {
    +  console.log(text)
    +}
    +
    +app.mount('#app')

    全局 API 的替代方案

    在 Vue 3 实际上并不是特别推荐使用全局变量,Vue 3 比较推荐按需引入使用,这也是在构建过程中可以更好的做到代码优化。

    特别是针对 TypeScript , Vue 作者尤雨溪先生对于全局 API 的相关 PR 说明: Global API updates ,也是不建议在 TS 里使用。

    那么确实是需要用到一些全局 API 怎么办?

    对于一般的数据和方法,建议采用 Provide / Inject 方案,在根组件(通常是 App.vue )把需要作为全局使用的数据或方法 Provide 下去,在需要用到的组件里通过 Inject 即可获取到,或者使用 EventBus / Vuex / Pinia 等全局通信方案来处理。

    npm 包的开发与发布

    相信很多开发者都想发布一个属于自己的 npm 包,在实际的工作中,也会有一些公司出于开发上的便利,也会将一些常用的业务功能抽离为独立的 npm 包,提前掌握包的开发也是非常重要的能力,接下来将介绍如何从 0 到 1 开发一个 npm 包,并将其发布到 npmjs 上可供其他项目安装使用。

    TIP

    在开始本节内容之前,请先阅读或回顾以下两部分内容:

    1. 阅读 了解 package.json 一节,了解或重温 npm 包清单文件的作用
    2. 阅读 学习模块化设计 一节,了解或重温模块化开发的知识

    常用的构建工具

    平时项目里用到的 npm 包,也可以理解为是一种项目插件,一些很简单的包,其实就和编写 本地插件 一样,假设包的入口文件是 index.js ,那么可以直接在 index.js 里编写代码,再进行模块化导出。

    其他项目里安装这个包之后就可以直接使用里面的方法了,这种方式适合非常非常简单的包,很多独立的工具函数包就是使用这种方式来编写包的源代码。

    例如 is-number 这个包,每周下载量超过 6800 万次,它的源代码非常少:

    js
    /**
    + * 摘自 is-number 的入口文件
    + * @see https://github.com/jonschlinkert/is-number/blob/master/index.js
    + */
    +module.exports = function (num) {
    +  if (typeof num === 'number') {
    +    return num - num === 0
    +  }
    +  if (typeof num === 'string' && num.trim() !== '') {
    +    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num)
    +  }
    +  return false
    +}

    再如 slash 这个包,每周下载量超过 5200 万次,它的源代码也是只有几行:

    js
    /**
    + * 摘自 slash 的入口文件
    + * @see https://github.com/sindresorhus/slash/blob/main/index.js
    + */
    +export default function slash(path) {
    +  const isExtendedLengthPath = /^\\\\\\\\\\?\\\\/.test(path)
    +
    +  if (isExtendedLengthPath) {
    +    return path
    +  }
    +
    +  return path.replace(/\\\\/g, '/')
    +}

    但这一类包通常是提供很基础的功能实现,更多时候需要自己开发的包更倾向于和框架、和业务挂钩,涉及到非 JavaScript 代码,例如 Vue 组件的编译、 Less 等 CSS 预处理器编译、 TypeScript 的编译等等,如果不通过构建工具来处理,那么发布后这个包的使用就会有诸多限制,需要满足和开发这个包时一样的开发环境才能使用,这对于使用者来说非常不友好。

    因此大部分 npm 包的开发也需要用到构建工具来转换项目源代码,统一输出为一个兼容性更好、适用性更广的 JavaScript 文件,配合 .d.ts 文件的类型声明,使用者可以不需要特地配置就可以开箱即用,非常方便,非常友好。

    传统的 Webpack 可以用来构建 npm 包文件,但按照目前更主流的技术选项,编译结果更干净更迷的当属 Rollup ,但 Rollup 需要配置很多插件功能,这对于刚接触包开发的开发者来说学习成本比较高,而 Vite 的出现则解决了这个难题,因为 Vite 的底层是基于 Rollup 来完成构建,上层则简化了很多配置上的问题,因此接下来将使用 Vite 来带领开发者入门 npm 包的开发。

    TIP

    在开始使用构建工具之前,请先在命令行使用 node -v 命令检查当前的 Node.js 版本号是否在构建工具的支持范围内,避免无法正常使用构建工具。

    通常可以在构建工具的官网查询到其支持的 Node 版本,以 Vite 为例,可以在 Vite 官网的 Node 支持 一节了解到当前只能在 Node 14.18+ / 16+ 版本上使用 Vite 。

    当构建工具所支持的 Node 版本和常用的 Node 版本出现严重冲突时,推荐使用 nvm / nvm-windows 或者 n 等 Node 版本管理工具安装多个不同版本的 Node ,即可根据开发需求很方便的切换不同版本的 Node 进行开发。

    项目结构与入口文件

    在动手开发具体功能之前,先把项目框架搭起来,熟悉常用的项目结构,以及如何配置项目清单信息。

    TIP

    当前文档所演示的 hello-lib 项目已托管至 learning-vue3/hello-lib 仓库,可使用 Git 克隆命令拉取至本地:

    bash
    # 从 GitHub 克隆
    +git clone https://github.com/learning-vue3/hello-lib.git
    +
    +# 如果 GitHub 访问失败,可以从 Gitee 克隆
    +git clone https://gitee.com/learning-vue3/hello-lib.git

    成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 npm 包的开发流程,可以更有效的提升学习效果。

    初始化项目

    首先需要初始化一个 Node 项目,打开命令行工具,先使用 cd 命令进入平时存放项目的目录,再通过 mkdir 命令创建一个项目文件夹,这里起名为 hello-lib

    bash
    # 创建一个项目文件夹
    +mkdir hello-lib

    创建了项目文件夹之后,使用 cd 命令进入项目,执行 Node 的项目初始化命令:

    bash
    # 进入项目文件夹
    +cd hello-lib
    +
    +# 执行初始化,使其成为一个 Node 项目
    +npm init -y

    此时 hello-lib 目录下会生成一个 package.json 文件,由于后面还需要手动调整该文件的信息,所以初始化的时候可以添加 -y 参数使用默认的初始化数据直接生成该文件,跳过答题环节。

    配置包信息

    对一个 npm 包来说,最重要的文件莫过于 package.json 项目清单,其中有三个字段是必填的:

    字段是否必填作用
    name必填npm 包的名称,遵循 项目名称的规则
    version必填npm 包的版本号,遵循 语义化版本号的规则
    main必填项目的入口文件,通常指向构建产物所在目录的某个文件,该文件通常包含了所有模块的导出。

    如果只指定了 main 字段,则使用 requireimport 以及浏览器访问 npm 包的 CDN 时,都将默认调用该字段指定的入口文件。

    如果有指定 modulebrowser 字段,则通常对应 cjs 格式的文件,对应 CommonJS 规范。
    module当项目使用 import 引入 npm 包时对应的入口文件,通常指向一个 es 格式的文件,对应 ES Module 规范。
    browser当项目使用了 npm 包的 CDN 链接,在浏览器访问页面时的入口文件,通常指向一个 umd 格式的文件,对应 UMD 规范。
    types一个 .d.ts 类型声明文件,包含了入口文件导出的方法 / 变量的类型声明,如果项目有自带类型文件,那么在使用者在使用 TypeScript 开发的项目里,可以得到友好的类型提示
    files指定发布到 npm 上的文件范围,格式为 string[] 支持配置多个文件名或者文件夹名称。

    通常可以只指定构建的输出目录,例如 dist 文件夹,如果不指定,则发布的时候会把所有源代码一同发布。

    其中 mainmodulebrowser 三个入口文件对应的文件格式和规范,通常都是交给构建工具处理,无需手动编写,开发者只需要维护一份源码即可编译出不同规范的 JS 文件, types 对应的类型声明文件也是由工具来输出,无需手动维护。

    而其他的字段可以根据项目的性质决定是否补充,以下是 hello-lib 的基础信息示例:

    json
    {
    +  "name": "@learning-vue3/lib",
    +  "version": "1.0.0",
    +  "description": "A library demo for learning-vue3.",
    +  "author": "chengpeiquan <chengpeiquan@chengpeiquan.com>",
    +  "homepage": "https://github.com/learning-vue3/hello-lib",
    +  "repository": {
    +    "type": "git",
    +    "url": "git+https://github.com/learning-vue3/hello-lib.git"
    +  },
    +  "license": "MIT",
    +  "files": ["dist"],
    +  "main": "dist/index.cjs",
    +  "module": "dist/index.mjs",
    +  "browser": "dist/index.min.js",
    +  "types": "dist/index.d.ts",
    +  "keywords": ["library", "demo", "example"],
    +  "scripts": {
    +    "build": "vite build"
    +  }
    +}

    此时 mainmodulebrowsertypes 字段对应的文件还不存在,它们将在项目执行 npm run build 构建之后才会产生。

    另外,入口文件使用了不同规范对应的文件扩展名,也可以统一使用 .js 扩展名,通过文件名来区分,例如 es 格式使用 index.es.js

    scripts 字段则配置了一个 build 命令,这里使用了 Vite 的构建命令来打包项目,这个过程会读取 Vite 的配置文件 vite.config.ts ,关于该文件的配置内容将在下文继续介绍。

    安装开发依赖

    本次的 npm 包将使用 Vite 进行构建,使用 TypeScript 编写源代码,由于 Vite 本身对 TypeScript 进行了支持,因此只需要将 Vite 安装到开发依赖:

    bash
    # 添加 -D 选项将其安装到 devDependencies
    +npm i -D vite

    添加配置文件

    配置包信息 的时候已提前配置了一个 npm run build 的命令,它将运行 Vite 来构建 npm 包的入口文件。

    由于 Vite 默认是构建入口文件为 HTML 的网页应用,而开发 npm 包时入口文件是 JS / TS 文件,因此需要添加一份配置文件来指定构建的选项。

    以下是本次的基础配置,可以完成最基本的打包,它将输出三个不同格式的入口文件,分别对应 CommonJS 、 ES Module 和 UMD 规范,分别对应 package.json 里 mainmodulebrowser 字段指定的文件。

    ts
    // vite.config.ts
    +import { defineConfig } from 'vite'
    +
    +// https://cn.vitejs.dev/config/
    +export default defineConfig({
    +  build: {
    +    // 输出目录
    +    outDir: 'dist',
    +    // 构建 npm 包时需要开启 “库模式”
    +    lib: {
    +      // 指定入口文件
    +      entry: 'src/index.ts',
    +      // 输出 UMD 格式时,需要指定一个全局变量的名称
    +      name: 'hello',
    +      // 最终输出的格式,这里指定了三种
    +      formats: ['es', 'cjs', 'umd'],
    +      // 针对不同输出格式对应的文件名
    +      fileName: (format) => {
    +        switch (format) {
    +          // ES Module 格式的文件名
    +          case 'es':
    +            return 'index.mjs'
    +          // CommonJS 格式的文件名
    +          case 'cjs':
    +            return 'index.cjs'
    +          // UMD 格式的文件名
    +          default:
    +            return 'index.min.js'
    +        }
    +      },
    +    },
    +    // 压缩混淆构建后的文件代码
    +    minify: true,
    +  },
    +})

    添加入口文件

    来到这里,最基础的准备工作已完成,接下来添加入口文件并尝试编译。

    添加配置文件 时已指定了入口文件为 src/index.ts ,因此需要对应的创建该文件,并写入一个简单的方法,将用它来测试打包结果:

    ts
    // src/index.ts
    +export default function hello(name: string) {
    +  console.log(\`Hello \${name}\`)
    +}

    在命令行执行 npm run build 命令,可以看到项目下生成了 dist 文件夹,以及三个 JavaScript 文件,此时目录结构如下:

    bash
    hello-lib
    + # 构建产物的输出文件夹
    +├─dist
    + ├─index.cjs
    + ├─index.min.js
    + └─index.mjs
    + # 依赖文件夹
    +├─node_modules
    + # 源码文件夹
    +├─src
    +  # 入口文件
    + └─index.ts
    + # 项目清单信息
    +├─package-lock.json
    +├─package.json
    + # Vite 配置文件
    +└─vite.config.ts

    打开 dist 目录下的文件内容,可以看到虽然源码是使用 TypeScript 编写的,但最终输出的内容是按照指定的格式转换为 JavaScript 并且被执行了压缩和混淆,在这里将它们重新格式化,来看看转换后的结果。

    这是 index.cjs 的文件内容,源码被转换为 CommonJS 风格的代码:

    js
    // dist/index.cjs
    +'use strict'
    +function l(o) {
    +  console.log(\`Hello \${o}\`)
    +}
    +module.exports = l

    这是 index.mjs 的内容,源码被转换为 ES Module 风格的代码:

    js
    // dist/index.mjs
    +function o(l) {
    +  console.log(\`Hello \${l}\`)
    +}
    +export { o as default }

    这是 index.min.js 的内容,源码被转换为 UMD 风格的代码:

    js
    // dist/index.min.js
    +;(function (e, n) {
    +  typeof exports == 'object' && typeof module < 'u'
    +    ? (module.exports = n())
    +    : typeof define == 'function' && define.amd
    +    ? define(n)
    +    : ((e = typeof globalThis < 'u' ? globalThis : e || self), (e.hello = n()))
    +})(this, function () {
    +  'use strict'
    +  function e(n) {
    +    console.log(\`Hello \${n}\`)
    +  }
    +  return e
    +})

    来到这里,准备工作已就绪,下一步将开始进入工具包和组件包的开发。

    开发 npm 包

    这里先从最简单的函数库开始入门包的开发,为什么说它简单呢?因为只需要编写 JavaScript 或 TypeScript 就可以很好的完成开发工作。

    在理解了包的开发流程之后,如果要涉及 Vue 组件包的开发,则安装相关的 Vue 的相关依赖、 Less 等 CSS 预处理器依赖,只要满足了编译条件,就可以正常构建和发布,它们的开发流程是一样的。

    编写 npm 包代码

    在开发的过程中,需要遵循模块化开发的要求,当前这个演示包使用 TypeScript 编码,就需要 使用 ES Module 来设计模块 ,如果对模块化设计还没有足够的了解,请先回顾相关的内容。

    先在 src 目录下创建一个名为 utils.ts 的文件,写入以下内容:

    ts
    // src/utils.ts
    +
    +/**
    + * 生成随机数
    + * @param min - 最小值
    + * @param max - 最大值
    + * @param roundingType - 四舍五入类型
    + * @returns 范围内的随机数
    + */
    +export function getRandomNumber(
    +  min: number = 0,
    +  max: number = 100,
    +  roundingType: 'round' | 'ceil' | 'floor' = 'round'
    +) {
    +  return Math[roundingType](Math.random() * (max - min) + min)
    +}
    +
    +/**
    + * 生成随机布尔值
    + */
    +export function getRandomBoolean() {
    +  const index = getRandomNumber(0, 1)
    +  return [true, false][index]
    +}

    这里导出了两个随机方法,其中 getRandomNumber 提供了随机数值的返回,而 getRandomBoolean 提供了随机布尔值的返回,在源代码方面, getRandomBoolean 调用了 getRandomNumber 获取随机索引。

    这是一个很常见的 npm 工具包的开发思路,包里的函数都使用了细粒度的编程设计,每一个函数都是独立的功能,在必要的情况下,函数 B 可以调用函数 A 来减少代码的重复编写。

    在这里, utils.ts 文件已开发完毕,接下来需要将它导出的方法提供给包的使用者,请删除入口文件 src/index.ts 原来的测试内容,并输入以下新代码:

    ts
    // src/index.ts
    +export * from './utils'

    这代表将 utils.ts 文件里导出的所有方法或者变量,再次导出去,如果有很多个 utils.ts 这样的文件, index.ts 将作为一个统一的入口,统一的导出给构建工具去编译输出。

    接下来在命令行执行 npm run build ,再分别看看 dist 目录下的文件变化:

    此时的 index.cjs 文件,已经按照 CommonJS 规范转换了源代码:

    js
    // dist/index.cjs
    +'use strict'
    +Object.defineProperties(exports, {
    +  __esModule: { value: !0 },
    +  [Symbol.toStringTag]: { value: 'Module' },
    +})
    +function t(e = 0, o = 100, n = 'round') {
    +  return Math[n](Math.random() * (o - e) + e)
    +}
    +function r() {
    +  const e = t(0, 1)
    +  return [!0, !1][e]
    +}
    +exports.getRandomBoolean = r
    +exports.getRandomNumber = t

    index.mjs 也按照 ES Module 规范进行了转换:

    js
    // dist/index.mjs
    +function o(n = 0, t = 100, e = 'round') {
    +  return Math[e](Math.random() * (t - n) + n)
    +}
    +function r() {
    +  const n = o(0, 1)
    +  return [!0, !1][n]
    +}
    +export { r as getRandomBoolean, o as getRandomNumber }

    index.min.js 同样正常按照 UMD 风格转换成了 JavaScript 代码:

    js
    // dist/index.min.js
    +;(function (e, n) {
    +  typeof exports == 'object' && typeof module < 'u'
    +    ? n(exports)
    +    : typeof define == 'function' && define.amd
    +    ? define(['exports'], n)
    +    : ((e = typeof globalThis < 'u' ? globalThis : e || self),
    +      n((e.hello = {})))
    +})(this, function (e) {
    +  'use strict'
    +  function n(o = 0, u = 100, d = 'round') {
    +    return Math[d](Math.random() * (u - o) + o)
    +  }
    +  function t() {
    +    const o = n(0, 1)
    +    return [!0, !1][o]
    +  }
    +  ;(e.getRandomBoolean = t),
    +    (e.getRandomNumber = n),
    +    Object.defineProperties(e, {
    +      __esModule: { value: !0 },
    +      [Symbol.toStringTag]: { value: 'Module' },
    +    })
    +})

    对 npm 包进行本地调试

    开发或者迭代了一个 npm 包之后,不建议直接发布,可以在本地进行测试,直到没有问题了再发布到 npmjs 上供其他人使用。

    npm 提供了一个 npm link 命令供开发者本地联调,假设 path/to/my-library 是一个 npm 包的项目路径, path/to/my-project 是一个调试项目的所在路径,那么通过以下步骤可以在 my-project 里本地调试 my-library 包。

    TIP

    关于 path/to 的典故,可以查看 #294 了解。

    创建本地软链接

    先在 my-library npm 包项目里执行 npm link 命令,创建 npm 包的本地软链接:

    bash
    # 进入 npm 包项目所在的目录
    +cd path/to/my-library
    +
    +# 创建 npm 包的本地软链接
    +npm link

    运行了以上命令之后,意味着刚刚开发好的 npm 包,已经被成功添加到了 Node 的全局安装目录下,可以在命令行运行以下命令查看全局安装目录的位置:

    bash
    npm prefix -g

    假设 {prefix} 是全局安装目录,刚刚这个包在 package.json 里的包名称是 my-library ,那么在 {prefix}/node_modules/my-library 这个目录下可以看到被软链接了一份项目代码。

    TIP

    软链接( Symbolic Link / Symlink / Soft Link ),是指通过指定路径来指向文件或目录,操作系统会自动将其解释为另一个文件或目录的路径,因此软链接被删除或修改不会影响源文件,而源文件的移动或者删除,不会自动更新软链接,这一点和快捷方式的作用比较类似。

    自此已经对这个 npm 包完成了一次 “本地发布” ,接下来就要在调试项目里进行本地关联。

    关联本地软链接

    my-project 调试项目里执行语法为 npm link [<package-spec>] 的 link 命令,关联 npm 包的本地软链接。

    TIP

    这里的 [<package-spec>] 参数,可以是包名称,也可以是 npm 包项目所在的路径。

    bash
    # 进入调试项目所在的目录
    +cd path/to/my-project
    +
    +# 通过 npm 包的包名称关联本地软链接
    +npm link my-library

    如果通过 npm 包名称关联失败,例如返回了如下信息:

    bash
     npm link my-library
    +npm ERR! code E404
    +npm ERR! 404 Not Found - GET https://registry.npmjs.org/my-library - Not found
    +npm ERR! 404
    +npm ERR! 404  'my-library@*' is not in this registry.
    +npm ERR! 404
    +npm ERR! 404 Note that you can also install from a
    +npm ERR! 404 tarball, folder, http url, or git url.

    这种情况通常出现于本地 npm 包还没有在 npmjs 上进行过任意版本的发布,而包管理器又找不到本地全局安装目录的软链接,就会去 npm 源找,都找不到就会返回 404 的报错,针对这种情况,也可以使用 npm 包项目的路径进行关联:

    bash
    # 进入调试项目所在的目录
    +cd path/to/my-project
    +
    +# 通过 npm 包的项目路径关联本地软链接
    +npm link path/to/my-library

    至此,就完成了调试项目对该 npm 包在本地的 “安装” ,此时在 my-project 这个调试项目的 node_modules 目录下也会创建一个软链接,指向 my-library 所在的目录。

    回归当前的演示包项目,先创建一个基于 TypeScript 的 Vue 新项目作为调试项目,在关联了本地 npm 包之后,就可以在调试项目里编写如下代码,测试 npm 包里的方法是否可以正常使用:

    ts
    // 请将 \`@learning-vue3/lib\` 更换为实际的包名称
    +import { getRandomNumber } from '@learning-vue3/lib'
    +
    +const num = getRandomNumber()
    +console.log(num)

    启动 npm run dev 的调试命令并打开本地调试页面,就可以在浏览器控制台正确的打印出了随机结果。

    因为本包还支持 UMD 规范,所以也可以在 HTML 页面通过普通的 <script /> 标签直接引入 dist 目录下的文件测试将来引入 CDN 时的效果,可以在 npm 包项目下创建一个 demo 目录,并添加一个 index.html 文件到该目录下,并写入以下内容:

    html
    <!-- demo/index.html -->
    +<!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>Library Demo</title>
    +  </head>
    +  <body>
    +    <!-- 这里引入的是 UMD 规范的文件 -->
    +    <script src="../dist/index.min.js"></script>
    +    <script>
    +      /**
    +       * UMD 规范的文件会有一个全局变量
    +       * 由 vite.config.ts 的 \`build.lib.name\` 决定
    +       */
    +      console.log(hello)
    +
    +      /**
    +       * 所有的方法会挂在这个全局变量上
    +       * 类似于 jQuery 的 $.xxx() 那样使用
    +       */
    +      const num = hello.getRandomNumber()
    +      console.log(num)
    +    </script>
    +  </body>
    +</html>

    在浏览器打开该 HTML 文件并唤起控制台,一样可以看到随机结果的打印记录。

    添加版权注释

    很多知名项目在 Library 文件的开头都会有一段版权注释,它的作用除了声明版权归属之外,还会告知使用者关于项目的主页地址、版本号、发布日期、 BUG 反馈渠道等信息。

    例如很多开发者入门前端时使用过的经典类库 jQuery :

    js
    // https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.js
    +
    +/*!
    + * jQuery JavaScript Library v3.6.1
    + * https://jquery.com/
    + *
    + * Includes Sizzle.js
    + * https://sizzlejs.com/
    + *
    + * Copyright OpenJS Foundation and other contributors
    + * Released under the MIT license
    + * https://jquery.org/license
    + *
    + * Date: 2022-08-26T17:52Z
    + */
    +( function( global, factory ) {
    +// ...

    又如流行的 JavaScript 工具库 Lodash :

    js
    // https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js
    +
    +/**
    + * @license
    + * Lodash <https://lodash.com/>
    + * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
    + * Released under MIT license <https://lodash.com/license>
    + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
    + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
    + */
    +(function(){
    +// ...

    还有每次做轮播图一定会想到它的 Swiper :

    js
    // https://cdn.jsdelivr.net/npm/swiper@8.4.3/swiper-bundle.js
    +
    +/**
    + * Swiper 8.4.3
    + * Most modern mobile touch slider and framework
    + * with hardware accelerated transitions
    + * https://swiperjs.com
    + *
    + * Copyright 2014-2022 Vladimir Kharlampidi
    + *
    + * Released under the MIT License
    + *
    + * Released on: October 6, 2022
    + */
    +(function (global, factory) {
    +// ...

    聪明的开发者肯定已经猜到了,这些版权注释肯定不是手动添加的,那么它们是如何自动生成的呢?

    npm 社区提供了非常多开箱即用的注入插件,通常可以通过 “当前使用的构建工具名称” 加上 “plugin banner” 这样的关键字,在 npmjs 网站上搜索是否有相关的插件,以当前使用的 Vite 为例,可以通过 vite-plugin-banner 实现版权注释的自动注入。

    回到 hello-lib 项目,安装该插件到 devDependencies :

    bash
    npm i -D vite-plugin-banner

    根据插件的文档建议,打开 vite.config.ts 文件,将其导入,并通过读取 package.json 的信息来生成常用的版权注释信息:

    ts
    // vite.config.ts
    +import { defineConfig } from 'vite'
    +// 导入版权注释插件
    +import banner from 'vite-plugin-banner'
    +// 导入 npm 包信息
    +import pkg from './package.json'
    +
    +// https://cn.vitejs.dev/config/
    +export default defineConfig({
    +  // 其他选项保持不变
    +  // ...
    +  plugins: [
    +    // 新增 banner 插件的启用,传入 package.json 的字段信息
    +    banner(
    +      \`/**\\n * name: \${pkg.name}\\n * version: v\${pkg.version}\\n * description: \${pkg.description}\\n * author: \${pkg.author}\\n * homepage: \${pkg.homepage}\\n */\`
    +    ),
    +  ],
    +})

    再次运行 npm run build 命令,打开 dist 目录下的 Library 文件,可以看到都成功添加了一段版权注释:

    js
    // dist/index.mjs
    +
    +/**
    + * name: @learning-vue3/lib
    + * version: v1.0.0
    + * description: A library demo for learning-vue3.
    + * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
    + * homepage: https://github.com/learning-vue3/hello-lib
    + */
    +function o(n = 0, t = 100, e = 'round') {
    +  return Math[e](Math.random() * (t - n) + n)
    +}
    +function r() {
    +  const n = o(0, 1)
    +  return [!0, !1][n]
    +}
    +export { r as getRandomBoolean, o as getRandomNumber }

    这样其他开发者如果在使用过程中遇到了问题,就可以轻松找到插件作者的联系方式了!

    TIP

    请根据实际的 package.json 存在的字段信息调整 banner 内容。

    生成 npm 包的类型声明

    虽然到这里已经得到一个可以运行的 JavaScript Library 文件,在 JavaScript 项目里使用是完全没有问题的,但还不建议直接发布到 npmjs 上,因为目前的情况下在 TypeScript 项目并不能完全兼容,还需要生成一份 npm 包的类型声明文件。

    为什么需要类型声明

    如果在上一小节 关联本地软链接 创建 Vue 调试项目时,也是使用了 TypeScript 版本的 Vue 项目,会遇到 VSCode 在下面这句代码上:

    ts
    import { getRandomNumber } from '@learning-vue3/lib'

    在包名称 '@learning-vue3/lib' 的位置提示了一个红色波浪线,把鼠标移上去会显示这么一段话:

    无法找到模块 “@learning-vue3/lib” 的声明文件。 “D:/Project/demo/hello-lib/dist/index.cjs” 隐式拥有 "any" 类型。
    尝试使用 npm i --save-dev @types/learning-vue3__lib (如果存在),或者添加一个包含 declare module '@learning-vue3/lib'; 的新声明 (.d.ts) 文件 ts(7016)

    此时在命令行运行 Vue 调试项目的打包命令 npm run build ,也会遇到打包失败的报错,控制台同样反馈了这个问题:缺少声明文件。

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +src/App.vue:8:30 - error TS7016: Could not find a declaration file for module '@learning-vue3/lib'. 'D:/Project/demo/hello-lib/dist/index.cjs' implicitly has an 'any' type.
    +  Try \`npm i --save-dev @types/learning-vue3__lib\` if it exists or add a new declaration (.d.ts) file containing \`declare module '@learning-vue3/lib';\`
    +
    +8 import { getRandomNumber } from '@learning-vue3/lib'
    +                               ~~~~~~~~~~~~~~~~~~~~
    +
    +
    +Found 1 error in src/App.vue:8

    虽然使用者可以按照报错提示,在调试项目下创建一个 d.ts 文件并写入以下内容来声明该 npm 包:

    ts
    declare module '@learning-vue3/lib'

    但这需要每个使用者,或者说每个使用到这个包的项目都声明一次,对于使用者来说非常不友好, declare module 之后虽然不会报错了,但也无法获得 VSCode 对 npm 包提供的 API 进行 TS 类型的自动推导与类型提示、代码补全等功能支持。

    主流的做法

    细心的开发者在 npmjs 网站上搜索 npm 包时,会发现很多 npm 包在详情页的包名后面,跟随有一个蓝色的 TS 图标,鼠标移上去时,还会显示一句提示语:

    This package contains built-in TypeScript declarations

    `,290),u=o(`

    例如上图的 @vue/reactivity , Vue 3 的响应式 API 包,就带有这个图标。

    这表示带有这个图标的 npm 包,已包含内置的 TypeScript 声明,可以获得完善的 TS 类型推导和提示支持,开发过程中也可以获得完善的代码补全功能支持,提高开发效率,在 TypeScript 项目执行 npm run build 的时候也能够被成功打包。

    以 @vue/reactivity 这个包为例,如果项目下安装有这个 npm 包,可以在

    bash
    # 基于项目根目录
    +./node_modules/@vue/reactivity/dist/reactivity.d.ts

    这个文件里查看 Vue 3 响应式 API 的类型声明,也可以通过该文件的 CDN 地址访问到其内容:

    bash
    https://cdn.jsdelivr.net/npm/@vue/reactivity@3.2.40/dist/reactivity.d.ts

    生成 DTS 文件

    有在 “快速上手 TypeScript ” 一章阅读过 了解 tsconfig.json 这节内容的开发者,应该对该文件有了一定的了解,如果还没有阅读过也没关系,可以先按照下方的步骤操作,接下来将分布说明如何生成 npm 包的 DTS 类型声明文件(以 .d.ts 为扩展名的文件)。

    请先全局安装 typescript 这个包:

    bash
    npm install -g typescript

    依然是在在命令行界面,回到 hello-lib 这个 npm 包项目的根目录,执行以下命令生成 tsconfig.json 文件:

    bash
    tsc --init

    打开 tsconfig.json 文件,生成的文件里会有很多默认被注释掉的选项,请将以下几个选项取消注释,同时在 compilerOptions 字段的同级新增 include 字段,这几个选项都修改为如下配置:

    json
    {
    +  "compilerOptions": {
    +    "declaration": true,
    +    "emitDeclarationOnly": true,
    +    "declarationDir": "./dist"
    +  },
    +  "include": ["./src"]
    +}

    其中 compilerOptions 三个选项的意思是: .ts 源文件不编译为 .js 文件,只生成 .d.ts 文件并输出到 dist 目录; include 选项则告诉 TypeScript 编译器,只处理 src 目录下的 TS 文件。

    修改完毕后,在命令行执行以下命令,它将根据 tsconfig.json 的配置对项目进行编译:

    bash
    tsc

    可以看到现在的 dist 目录下多了 2 份 .d.ts 文件: index.d.ts 和 utils.d.ts 。

    bash
    hello-lib
    +└─dist
    +  ├─index.cjs
    +  ├─index.d.ts
    +  ├─index.min.js
    +  ├─index.mjs
    +  └─utils.d.ts

    打开 dist/index.d.ts ,可以看到它的内容和 src/index.ts 是一样的,因为作为入口文件,只提供了模块的导出:

    ts
    // dist/index.d.ts
    +export * from './utils'

    再打开 dist/utils.d.ts ,可以看到它的内容如下,对比 src/utils.ts 的文件内容,它去掉了具体的功能实现,并且根据代码逻辑,转换成了 TypeScript 的类型声明:

    ts
    // dist/utils.d.ts
    +/**
    + * 生成随机数
    + * @param min - 最小值
    + * @param max - 最大值
    + * @param roundingType - 四舍五入类型
    + * @returns 范围内的随机数
    + */
    +export declare function getRandomNumber(
    +  min?: number,
    +  max?: number,
    +  roundingType?: 'round' | 'ceil' | 'floor'
    +): number
    +/**
    + * 生成随机布尔值
    + */
    +export declare function getRandomBoolean(): boolean

    由于 hello-lib 项目的 package.json 已提前指定了类型声明文件指向:

    json
    {
    +  "types": "dist/index.d.ts"
    +}

    因此可以直接回到调试 npm 包的 Vue 项目,此时 VSCode 对那句 import 语句的红色波浪线报错信息已消失不见,鼠标移到 getRandomNumber 这个方法上,也可以看到 VSCode 出现了该方法的类型提示,非常方便。

    TIP

    如果 VSCode 未能及时更新该包的类型,依然提示红色波浪线,可以重启 VSCode 再次查看。

    再次运行 npm run build 命令构建调试项目,这一次顺利通过编译:

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +vite v2.9.15 building for production...
    + 42 modules transformed.
    +dist/assets/logo.03d6d6da.png             6.69 KiB
    +dist/index.html                           0.42 KiB
    +dist/assets/home.9a123f29.js              2.01 KiB / gzip: 1.01 KiB
    +dist/assets/logo.db8b6a93.js              0.12 KiB / gzip: 0.13 KiB
    +dist/assets/TransferStation.25db7d3e.js   0.29 KiB / gzip: 0.22 KiB
    +dist/assets/bar.0e9da4c4.js               0.53 KiB / gzip: 0.37 KiB
    +dist/assets/bar.09e673fa.css              0.22 KiB / gzip: 0.18 KiB
    +dist/assets/home.6bd02f2a.css             0.62 KiB / gzip: 0.33 KiB
    +dist/assets/index.60726771.css            0.47 KiB / gzip: 0.29 KiB
    +dist/assets/index.aebbe022.js             79.87 KiB / gzip: 31.80 KiB

    生成 DTS Bundle

    初始化项目生成 DTS 文件 ,其实已经走完一个 npm 包的完整开发流程了,是可以提交发布了,但在发布之前,先介绍另外一个生成 DTS 文件的方式,可以根据实际情况选择使用。

    请注意这里使用了 DTS Bundle 来称呼类型声明文件,这是因为直接使用 tsc 命令生成的 DTS 文件,是和源码目录的文件数量挂钩的,可以留意到在上一小节使用 tsc 命令生成声明文件后,在 hello-lib 项目中:

    • src 源码目录有 index.ts 和 utils.ts 两个文件
    • dist 输出目录也对应生成了 index.d.ts 和 utils.d.ts 两个文件

    在一个大型项目里,源码的目录和文件非常多,意味着 DTS 文件也是非常多,这样的输出结构并不是特别友好。

    在讲 npm 包对类型声明 主流的做法 的时候,提到了 Vue 响应式 API 的 npm 包是提供了一个完整的 DTS 文件,它包含了所有 API 的类型声明信息:

    bash
    ./node_modules/@vue/reactivity/dist/reactivity.d.ts

    这种将多个模块的文件内容合并为一个完整文件的行为通常称之为 Bundle ,本小节将介绍如何生成这种 DTS Bundle 文件。

    继续回到 hello-lib 这个 npm 包项目,由于 tsc 本身不提供类型文件的合并,所以需要借助第三方依赖来实现,比较流行的第三方包有: dts-bundle-generatornpm-dtsdts-bundledts-generator 等等。

    之前笔者在为公司开发 npm 工具包的时候都对它们进行了一轮体验,鉴于实际开发过程中遇到的一些编译问题,在这里选用问题最少的 dts-bundle-generator 进行开发演示,请先安装到 hello-lib 项目的 devDependencies :

    bash
    npm i -D dts-bundle-generator

    dts-bundle-generator 支持在 package.json 里配置一个 script ,通过命令的形式在命令行生成 DTS Bundle ,也支持通过 JavaScript / TypeScript 编写函数来执行文件的生成,鉴于实际开发过程中使用函数生成 DTS Bundle 的场景比较多(例如 Monorepo 会有生成多个 Bundle 的使用场景),因此这里以函数的方式进行演示。

    TIP

    在使用 Git 等版本控制系统时,如果多个独立项目之间有关联,会把这些项目的代码都存储在同一个代码仓库集中管理,此时这个大型代码仓库就被称之为 Monorepo (其中 Mono 表示单一, Repo 是存储库 Repository 的缩写),当下许多大型项目都基于这种方法管理代码, Vue 3 在 GitHub 的代码仓库也是一个 Monorepo 。

    请在 hello-lib 的根目录下,创建一个与 src 源码目录同级的 scripts 目录,用来存储源码之外的脚本函数。

    将以下代码保存到 scripts 目录下,命名为 buildTypes.mjs :

    js
    // scripts/buildTypes.mjs
    +import { writeFileSync } from 'fs'
    +import { dirname, resolve } from 'path'
    +import { fileURLToPath } from 'url'
    +import { generateDtsBundle } from 'dts-bundle-generator'
    +
    +async function run() {
    +  // 默认情况下 \`.mjs\` 文件需要自己声明 __dirname 变量
    +  const __filename = fileURLToPath(import.meta.url)
    +  const __dirname = dirname(__filename)
    +
    +  // 获取项目的根目录路径
    +  const rootPath = resolve(__dirname, '..')
    +
    +  // 添加构建选项
    +  // 插件要求是一个数组选项,支持多个入口文件
    +  const options = [
    +    {
    +      filePath: resolve(rootPath, \`./src/index.ts\`),
    +      output: {
    +        noBanner: true,
    +      },
    +    },
    +  ]
    +
    +  // 生成 DTS 文件内容
    +  // 插件返回一个数组,返回的文件内容顺序同选项顺序
    +  const dtses = generateDtsBundle(options, {
    +    preferredConfigPath: resolve(rootPath, \`./tsconfig.json\`),
    +  })
    +  if (!Array.isArray(dtses) || !dtses.length) return
    +
    +  // 将 DTS Bundle 的内容输出成 \`.d.ts\` 文件保存到 dist 目录下
    +  // 当前只有一个文件要保存,所以只取第一个下标的数据
    +  const dts = dtses[0]
    +  const output = resolve(rootPath, \`./dist/index.d.ts\`)
    +  writeFileSync(output, dts)
    +}
    +run().catch((e) => {
    +  console.log(e)
    +})

    接下来打开 hello-lib 的 package.json 文件,添加一个 build:types 的 script ,并在 build 命令中通过 && 符号设置为继发执行任务,当前所有的 scripts 如下:

    json
    {
    +  "scripts": {
    +    "build": "vite build && npm run build:types",
    +    "build:types": "node scripts/buildTypes.mjs"
    +  }
    +}

    TIP

    继发执行:只有前一个任务执行成功,才继续执行下一个任务,任务与任务之间使用 && 符号连接。

    接下来再运行 npm run build 命令,将在执行完 Vite 的 build 任务之后,再继续执行 DTS Bundle 的文件生成,可以看到现在的 dist 目录变成了如下,只会生成一个 .d.ts 文件:

    bash
    hello-lib
    +└─dist
    +  ├─index.cjs
    +  ├─index.d.ts
    +  ├─index.min.js
    +  └─index.mjs

    现在 index.d.ts 文件已经集合了源码目录下所有的 TS 类型,变成了如下内容:

    ts
    // dist/index.d.ts
    +/**
    + * 生成随机数
    + * @param min - 最小值
    + * @param max - 最大值
    + * @param roundingType - 四舍五入类型
    + * @returns 范围内的随机数
    + */
    +export declare function getRandomNumber(
    +  min?: number,
    +  max?: number,
    +  roundingType?: 'round' | 'ceil' | 'floor'
    +): number
    +/**
    + * 生成随机布尔值
    + */
    +export declare function getRandomBoolean(): boolean
    +
    +export {}

    对于大型项目,将 DTS 文件集合为 Bundle 输出是一种主流的管理方式,非常建议使用这种方式来为 npm 包生成类型文件。

    添加说明文档

    作为一个完整的 npm 包,应该配备一份操作说明给使用者阅读,复杂的文档可以使用 VitePress 等文档程序独立部署,而简单的项目则只需要完善一份 README 即可。

    请创建一个名为 README.md 的 Markdown 文件在项目根目录下,与 src 源码目录同级,该文件的文件名 README 推荐使用全大写,这是开源社区主流的命名方式,全大写的原因是为了与代码文件进行直观的区分。

    编写 README 使用的 Markdown 是一种轻量级标记语言,可以使用易读易写的纯文本格式编写文档,以 .md 作为文件扩展名,当代码托管到 GitHub 仓库或者发布到 npmjs 等平台时, README 文件会作为项目的主页内容呈现。

    为了方便学习,这里将一些常用的 Markdown 语法与 HTML 代码对比如下,可以看到书写方面非常的简洁:

    Markdown 代码HTML 代码
    # 一级标题<h1>一级标题</h1>
    ## 二级标题<h2>二级标题</h2>
    ### 三级标题<h3>三级标题</h3>
    **加粗文本**<span style="font-weight: bold;">加粗文本</span>
    [链接文本](https://example.com)<a href="https://example.com">链接文本</a>

    更多的 Markdown 语法建议在 Markdown 教程网站 上学习。

    下面附上一份常用的 README 模板:

    md
    # 项目名称
    +
    +写上项目用途的一句话简介。
    +
    +## 功能介绍
    +
    +1. 功能 1 一句话介绍
    +2. 功能 2 一句话介绍
    +3. 功能 3 一句话介绍
    +
    +## 在线演示
    +
    +如果有部署在线 demo ,可放上 demo 的访问地址。
    +
    +## 安装方法
    +
    +使用 npm : \`npm install package-name\`
    +
    +使用 CDN : \`https://example.com/package-name\`
    +
    +## 用法
    +
    +告诉使用者如何使用 npm 包。
    +
    +## 插件选项
    +
    +如果 npm 包是一个插件,并支持传递插件选项,在这里可以使用表格介绍选项的作用。
    +
    +| 选项名称 |  类型  |    作用    |
    +| :------: | :----: | :--------: |
    +|   foo    | string | 一句话介绍 |
    +|   bar    | number | 一句话介绍 |
    +
    +更多内容请根据实际情况补充。

    拥有完善的使用说明文档,会让 npm 包更受欢迎!

    发布 npm 包

    一个 npm 包开发完毕后,就可以进入发布阶段了,这一小节将讲解如何注册 npm 账号并发布到 npmjs 平台上供其他开发者下载使用。

    TIP

    在操作 npm 包发布之前,请先运行 npm config rm registry 命令取消 npm 镜像源的绑定,否则会发布失败,在 npm 包发布后,可以再重新 配置镜像源

    注册 npm 账号

    在发布 npm 包之前,请先在 npm 官网上注册一个账号:点击注册

    接下来需要在命令行上登录该账号以操作发布命令,打开命令行工具,输入以下命令进行登录:

    bash
    npm login

    按照命令行的提示输入在 npmjs 网站上注册的账号和密码即可完成登录,可以通过以下命令查看当前登录的账号名称,验证是否登录成功:

    bash
    npm whoami

    在登录成功之后,命令行会记住账号的登录状态,以后的操作就无需每次都执行登录命令了。

    TIP

    以上操作也可以实用 npm adduser 命令代替,直接在命令行完成注册和登录。

    将包发布到 npmjs

    在 npm 上发布私有包需要进行付费,因此这里只使用公共包的发布作为演示和讲解,如果开发的是公司内部使用的 npm 包,只要源代码是私有仓库,也可以使用这种方式来发布,当前在这样做之前请先获得公司的同意。

    对于一个普通命名的包,要发布到 npmjs 上非常简单,只需要执行 npm 包管理器自带的一个命令即可:

    bash
    npm publish

    它默认会将这个包作为一个公共包发布,如果包名称合法并且没有冲突,则发布成功,可以在 npmjs 查询到,否则会返回错误信息告知原因,如果因为包名冲突导致的失败,可以尝试修改别的名称再次发布。

    如果打算使用像 @vue/cli@vue/compiler-sfc 这样带有 @scope 前缀的作用域包名,需要先在 npmjs 的 创建新组织 页面创建一个组织,或者确保自己拥有 @scope 对应的组织发布权限。

    @scope 作用域包默认会作为私有包发布,因此在执行发布命令的时候还需要加上一个 --access 选项,将其指定为 public 允许公开访问才可以发布成功:

    bash
    npm publish --access public

    当前的 hello-lib 项目已发布到 npmjs ,可以查看该包的主页 @learning-vue3/lib ,也可以通过 npm 安装到项目里使用了:

    bash
    npm i @learning-vue3/lib

    并且发布到 npmjs 上的包,都同时获得热门 CDN 服务的自动同步,可以通过包名称获取到 CDN 链接并通过 <script /> 标签引入到 HTML 页面里:

    bash
    # 使用 jsDelivr CDN
    +https://cdn.jsdelivr.net/npm/@learning-vue3/lib
    +
    +# 使用 UNPKG CDN
    +https://unpkg.com/@learning-vue3/lib

    此时 CDN 地址对应的 npm 包文件内容,就如前文所述,调用了 package.json 里 browser 字段指定的 UMD 规范文件 dist/index.min.js

    给 npm 包打 Tag

    细心的开发者还会留意到,例如像 Vue 这样的包,在 npmjs 上的 版本列表 里有 Current Tags 和 Version History 的版本分类,其中 Version History 是默认的版本发布历史列表,而 Current Tags 则是在发布 npm 包的时候指定打的标签。

    `,89),g=o(`

    标签的好处是可以让使用者无需记住对应的版本号,而是使用一些更具备语义化的单词来安装指定版本,例如:

    bash
    # 安装最新版的 Vue 3 ,即截图里对应的 3.2.40 版本
    +npm i vue@latest
    +
    +# 安装最新版的 Vue 2 ,即截图里对应的 2.7.10 版本
    +npm i vue@v2-latest
    +
    +# 如果后续有功能更新的测试版,也可以通过标签安装
    +npm i vue@beta

    除了减少寻找版本号的麻烦外,一旦后续有版本更新,再次使用相同的标签安装,可以重新安装到该标签对应的最新版本,例如从 1.0.0-beta.1 升级到 1.0.0-beta.2 ,可以使用 @beta 标签再次安装来达到升级的目的。

    在标签列表里,有一个 latest 的标签是发布 npm 包时自带的,对应该包最新的正式版本,安装 npm 包时如果不指定标签,则默认使用 latest 标签,以下两个安装操作是等价的:

    bash
    # 隐式安装 latest 标签对应的版本
    +npm i vue
    +
    +# 显式安装 latest 标签对应的版本
    +npm i vue@latest

    同样的,当发布 npm 包时不指定标签,则该版本也会在发布后作为 @latest 标签对应的版本号。

    其他标签则需要在发布时配合发布命令,使用 --tag 作为选项手动指定,以下命令将为普通包打上名为 alpha 的 Tag :

    bash
    npm publish --tag alpha

    同理,如果是 @scope 作用域包也是在使用 --access 选项的情况下,继续追加一条 --tag 选项指定包的标签。

    bash
    npm publish --access public --tag alpha

    TIP

    请注意,如果是 Alpha 或者 Beta 版本,通常会在版本号上增加 -alpha.0-alpha.1 这样的 版本标识符,以便在发布正式版本的时候可以使用无标识符的相同版本号,以保证版本号在遵循 升级规则 下的连续性。

    `,11);function m(f,E,b,v,B,k){const t=n("ReadingTips"),e=n("ImgWrap"),l=n("ClientOnly"),c=n("GitalkComment");return y(),i("div",null,[C,A,d,s(t),h,s(l,null,{default:p(()=>[s(e,{src:"/assets/img/npm-detail-ts-icon.jpg",alt:"注意 npm 包名称后面的 TS 图标"})]),_:1}),u,s(l,null,{default:p(()=>[s(e,{src:"/assets/img/vue-versions-on-npmjs.jpg",alt:"Vue 在 npmjs 上的版本列表"})]),_:1}),g,s(l,null,{default:p(()=>[s(c,{issueId:48})]),_:1})])}const j=r(F,[["render",m]]);export{x as __pageData,j as default}; diff --git a/assets/plugin.md.66b7dcdd.lean.js b/assets/plugin.md.66b7dcdd.lean.js new file mode 100644 index 00000000..0b02b364 --- /dev/null +++ b/assets/plugin.md.66b7dcdd.lean.js @@ -0,0 +1,791 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as r,v as y,b as i,t as s,O as p,F as a,L as D,R as o,M as n}from"./chunks/framework.0d8bea05.js";const x=JSON.parse('{"title":"插件的开发和使用","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"plugin.md","filePath":"plugin.md"}'),F={name:"plugin.md"},C=a("h1",{id:"插件的开发和使用",tabindex:"-1"},[D("插件的开发和使用 "),a("a",{class:"header-anchor",href:"#插件的开发和使用","aria-label":'Permalink to "插件的开发和使用"'},"​")],-1),A=a("p",null,"在构建 Vue 项目的过程中,离不开各种开箱即用的插件支持,用以快速完成需求,避免自己造轮子。",-1),d=a("p",null,"在 Vue 项目里,可以使用针对 Vue 定制开发的专属插件,也可以使用无框架依赖的通用 JS 插件,插件的表现形式也是丰富多彩,既可以是功能的实现,也可以是组件的封装,本章将从插件的使用到亲自开发一个小插件的过程,逐一讲解。",-1),h=o(`

    插件的安装和引入

    前端工程化 十分普及的今天,可以说几乎所有要用到的插件,都可以在 npmjs 上搜到,除了官方提供的包管理器 npm ,也有很多种安装方式选择。

    TIP

    如果还不了解什么是包和包管理器,请先阅读 了解包和插件 一节的内容。

    另外,每个包管理都可以配置镜像源,提升国内的下载速度,对此也可以先阅读 配置镜像源 一节了解。

    虽然对于个人开发者来说,有一个用的顺手的包管理器就足够日常开发了,但是还是有必要多了解一下不同的包管理器,因为未来可能会面对团队协作开发、为开源项目贡献代码等情况,需要遵循团队要求的包管理机制(例如使用 Monorepo 架构的团队会更青睐于 yarn 或 pnpm 的 Workspace 功能)。

    通过 npm 安装

    npm 是 Node.js 自带的包管理器,平时通过 npm install 命令来安装各种 npm 包(比如 npm install vue-router ),就是通过这个包管理器来安装的。

    如果包的下载速度太慢,可以通过以下命令管理镜像源:

    bash
    # 查看下载源
    +npm config get registry
    +
    +# 绑定下载源
    +npm config set registry https://registry.npmmirror.com
    +
    +# 删除下载源
    +npm config rm registry

    TIP

    npm 的 lock 文件是 package-lock.json ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

    通过 cnpm 安装

    cnpm 是阿里巴巴推出的包管理工具,安装之后默认会使用 https://registry.npmmirror.com 这个镜像源。

    它的安装命令和 npm 非常一致,通过 cnpm install 命令来安装(比如 cnpm install vue-router)。

    在使用它之前,需要通过 npm 命令进行全局安装:

    bash
    npm install -g cnpm
    +
    +# 或者
    +# npm install -g cnpm --registry=https://registry.npmmirror.com

    TIP

    cnpm 不生成 lock 文件,也不会识别项目下的 lock 文件,所以还是推荐使用 npm 或者其他包管理工具,通过绑定镜像源的方式来管理项目的包。

    通过 yarn 安装

    yarn 也是一个常用的包管理工具,和 npm 十分相似, npmjs 上的包,也会同步到 yarnpkg

    也是需要全局安装才可以使用:

    bash
    npm install -g yarn

    但是安装命令上会有点不同, yarn 是用 add 代替 install ,用 remove 代替 uninstall ,例如:

    bash
    # 安装单个包
    +yarn add vue-router
    +
    +# 安装全局包
    +yarn global add typescript
    +
    +# 卸载包
    +yarn remove vue-router

    而且在运行脚本的时候,可以直接用 yarn 来代替 npm run ,例如 yarn dev 相当于 npm run dev

    yarn 默认绑定的是 https://registry.yarnpkg.com 的下载源,如果包的下载速度太慢,也可以配置镜像源,但是命令有所差异:

    bash
    # 查看镜像源
    +yarn config get registry
    +
    +# 绑定镜像源
    +yarn config set registry https://registry.npmmirror.com
    +
    +# 删除镜像源(注意这里是 delete )
    +yarn config delete registry

    TIP

    yarn 的 lock 文件是 yarn.lock ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

    通过 pnpm 安装

    pnpm 是包管理工具的一个后起之秀,主打快速的、节省磁盘空间的特色,用法跟其他包管理器很相似,没有太多的学习成本, npm 和 yarn 的命令它都支持。

    也是必须先全局安装它才可以使用:

    bash
    npm install -g pnpm

    目前 pnpm 在开源社区的使用率越来越高,包括接触最多的 Vue / Vite 团队也在逐步迁移到 pnpm 来管理依赖。

    pnpm 的下载源使用的是 npm ,所以如果要绑定镜像源,按照 npm 的方式 处理就可以了。

    相关阅读:

    TIP

    pnpm 的 lock 文件是 pnpm-lock.yaml ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

    通过 CDN 安装

    大部分插件都会提供一个 CDN 版本,让可以在 .html 文件里通过 <script> 标签引入。

    比如:

    html
    <script src="https://unpkg.com/vue-router"></script>

    插件的引入

    除了 CDN 版本是直接可用之外,其他通过 npm 、 yarn 等方式安装的插件,都需要在入口文件 main.ts 或者要用到的 .vue 文件里引入,比如:

    ts
    import { createRouter, createWebHistory } from 'vue-router'

    因为本教程都是基于工程化开发,使用的 CLI 脚手架,所以这些内容暂时不谈及 CDN 的使用方式。

    通常来说会有细微差别,但影响不大,插件作者也会在插件仓库的 README 或者使用文档里进行告知。

    Vue 专属插件

    这里特指 Vue 插件,通过 Vue Plugins 设计规范 开发出来的插件,在 npm 上通常是以 vue-xxx 这样带有 vue 关键字的格式命名(比如 vue-baidu-analytics)。

    专属插件通常分为 全局插件单组件插件,区别在于,全局版本是在 main.ts 引入后 use,而单组件版本则通常是作为一个组件在 .vue 文件里引入使用。

    全局插件的使用 ~new

    在本教程最最前面的时候,特地说了一个内容就是 项目初始化 ,在这里有提到过就是需要通过 use 来初始化框架、插件。

    全局插件的使用,就是在 main.ts 通过 import 引入,然后通过 use 来启动初始化。

    在 Vue 2 ,全局插件是通过 Vue.use(xxx) 来启动,而现在,则需要通过 createAppuse,既可以单独一行一个 use ,也可以直接链式 use 下去。

    参数

    use 方法支持两个参数:

    参数类型作用
    pluginobject | function插件,一般是在 import 时使用的名称
    optionsobject插件的参数,有些插件在初始化时可以配置一定的选项

    基本的写法就是像下面这样:

    ts
    // main.ts
    +import plugin1 from 'plugin1'
    +import plugin2 from 'plugin2'
    +import plugin3 from 'plugin3'
    +import plugin4 from 'plugin4'
    +
    +createApp(App)
    +  .use(plugin1)
    +  .use(plugin2)
    +  .use(plugin3, {
    +    // plugin3's options
    +  })
    +  .use(plugin4)
    +  .mount('#app')

    大部分插件到这里就可以直接启动了,个别插件可能需要通过插件 API 去手动触发,在 npm 包的详情页或者 GitHub 仓库文档上,作者一般会告知使用方法,按照说明书操作即可。

    单组件插件的使用 ~new

    单组件的插件,通常自己本身也是一个 Vue 组件(大部分情况下都会打包为 JS 文件,但本质上是一个 Vue 的 Component )。

    单组件的引入,一般都是在需要用到的 .vue 文件里单独 import ,然后挂到 <template /> 里去渲染,下面是一段模拟代码,理解起来会比较直观:

    vue
    <template>
    +  <!-- 放置组件的渲染标签,用于显示组件 -->
    +  <ComponentExample />
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, onMounted, ref } from 'vue'
    +import logo from '@/assets/logo.png'
    +
    +// 引入单组件插件
    +import ComponentExample from 'a-component-example'
    +
    +export default defineComponent({
    +  // 挂载组件模板
    +  components: {
    +    ComponentExample,
    +  },
    +})
    +</script>

    参考上面的代码还有注释,应该能大概了解如何使用单组件插件了吧!

    通用 JS / TS 插件

    也叫普通插件,这个 “普通” 不是指功能平平无奇,而是指它们无需任何框架依赖,可以应用在任意项目中,属于独立的 Library ,比如 axiosqrcodemd5 等等,在任何技术栈都可以单独引入使用,非 Vue 专属。

    通用插件的使用非常灵活,既可以全局挂载,也可以在需要用到的组件里单独引入。

    组件里单独引入方式:

    ts
    import { defineComponent } from 'vue'
    +import md5 from '@withtypes/md5'
    +
    +export default defineComponent({
    +  setup() {
    +    const md5Msg = md5('message')
    +  },
    +})

    全局挂载方法比较特殊,因为插件本身不是专属 Vue,没有 install 接口,无法通过 use 方法直接启动,下面有一小节内容单独讲这一块的操作,详见 全局 API 挂载

    本地插件 ~new

    插件也不全是来自于网上,有时候针对自己的业务,涉及到一些经常用到的功能模块,也可以抽离出来封装成项目专用的插件。

    封装的目的

    举个例子,比如在做一个具备用户系统的网站时,会涉及到手机短信验证码模块,在开始写代码之前,需要先要考虑到这些问题:

    1. 很多操作都涉及到下发验证码的请求,比如 “登录” 、 “注册” 、 “修改手机绑定” 、 “支付验证” 等等,代码雷同,只是接口 URL 或者参数不太一样

    2. 都是需要对手机号是否有传入、手机号的格式正确性验证等一些判断

    3. 需要对接口请求成功和失败的情况做一些不同的数据返回,但要处理的数据很相似,都是用于告知调用方当前是什么情况

    4. 返回一些 Toast 告知用户当前的交互结果

    TIP

    如果不把这一块的业务代码抽离出来,需要在每个用到的地方都写一次,不仅繁琐,而且以后一旦产品需求有改动,维护起来就惨了。

    常用的封装类型

    常用的本地封装方式有两种:一种是以 通用 JS / TS 插件 的形式,一种是以 Vue 专属插件 的形式。

    关于这两者的区别已经在对应的小节有所介绍,接下来来看看如何封装它们。

    开发本地通用 JS / TS 插件

    一般情况下会以通用类型比较常见,因为大部分都是一些比较小的功能,而且可以很方便的在不同项目之间进行复用。

    TIP

    注:接下来会统一称之为 “通用插件” ,不论是基于 JavaScript 编写的还是 TypeScript 编写的。

    项目结构

    通常会把这一类文件都归类在 src 目录下的 libs 文件夹里,代表存放的是 Library 文件( JS 项目以 .js 文件存放, TS 项目以 .ts 文件存放)。

    bash
    vue-demo
    + # 源码文件夹
    +├─src
    +  # 本地通用插件
    + └─libs
    +   ├─foo.ts
    +   └─bar.ts
    +
    + # 其他结构这里省略…
    +
    +└─package.json

    这样在调用的时候,可以通过 @/libs/foo 来引入,或者配置了 alias 别名,也可以使用别名导入,例如 @libs/foo

    设计规范与开发案例

    在设计本地通用插件的时候,需要遵循 ES Module 模块设计规范 ,并且做好必要的代码注释(用途、入参、返回值等)。

    TIP

    如果还没有了解过 “模块” 的概念的话,可以先阅读 了解模块化设计 一节的内容。

    一般来说,会有以下三种情况需要考虑。

    只有一个默认功能

    如果只有一个默认的功能,那么可以使用 export default 来默认导出一个函数。

    例如需要封装一个打招呼的功能:

    ts
    // src/libs/greet.ts
    +
    +/**
    + * 向对方打招呼
    + * @param name - 打招呼的目标人名
    + * @returns 向传进来的人名返回一句欢迎语
    + */
    +export default function greet(name: string): string {
    +  return \`Welcome, \${name}!\`
    +}

    在 Vue 组件里就可以这样使用:

    vue
    <script lang="ts">
    +import { defineComponent } from 'vue'
    +// 导入本地插件
    +import greet from '@libs/greet'
    +
    +export default defineComponent({
    +  setup() {
    +    // 导入的名称就是这个工具的方法名,可以直接调用
    +    const message = greet('Petter')
    +    console.log(message) // Welcome, Petter!
    +  },
    +})
    +</script>
    是一个小工具合集

    如果有很多个作用相似的函数,那么建议放在一个文件里作为一个工具合集统一管理,使用 export 来导出里面的每个函数。

    例如需要封装几个通过 正则表达式 判断表单的输入内容是否符合要求的函数:

    ts
    // src/libs/regexp.ts
    +
    +/**
    + * 手机号校验
    + * @param phoneNumber - 手机号
    + * @returns true=是手机号,false=不是手机号
    + */
    +export function isMob(phoneNumber: number | string): boolean {
    +  return /^1[3456789]\\d{9}$/.test(String(phoneNumber))
    +}
    +
    +/**
    + * 邮箱校验
    + * @param email - 邮箱地址
    + * @returns true=是邮箱地址,false=不是邮箱地址
    + */
    +export function isEmail(email: string): boolean {
    +  return /^[A-Za-z\\d]+([-_.][A-Za-z\\d]+)*@([A-Za-z\\d]+[-.])+[A-Za-z\\d]{2,4}$/.test(
    +    email
    +  )
    +}

    在 Vue 组件里就可以这样使用:

    vue
    <script lang="ts">
    +import { defineComponent } from 'vue'
    +// 需要用花括号 {} 来按照命名导出时的名称导入
    +import { isMob, isEmail } from '@libs/regexp'
    +
    +export default defineComponent({
    +  setup() {
    +    // 判断是否是手机号
    +    console.log(isMob('13800138000')) // true
    +    console.log(isMob('123456')) // false
    +
    +    // 判断是否是邮箱地址
    +    console.log(isEmail('example@example.com')) // true
    +    console.log(isEmail('example')) // false
    +  },
    +})
    +</script>

    TIP

    类似这种情况,就没有必要为 isMobisEmail 每个方法都单独保存一个文件了,只需要统一放在 regexp.ts 正则文件里维护。

    包含工具及辅助函数

    如果主要提供一个独立功能,但还需要提供一些额外的变量或者辅助函数用于特殊的业务场景,那么可以用 export default 导出主功能,用 export 导出其他变量或者辅助函数。

    只有一个默认功能 这个打招呼例子的基础上修改一下,默认提供的是 “打招呼” 的功能,偶尔需要更热情的赞美一下,那么这个 “赞美” 行为就可以用这个方式来放到这个文件里一起维护。

    ts
    // src/libs/greet.ts
    +
    +/**
    + * 称赞对方
    + * @param name - 要称赞的目标人名
    + * @returns 向传进来的人名发出一句赞美的话
    + */
    +export function praise(name: string): string {
    +  return \`Oh! \${name}! It's so kind of you!\`
    +}
    +
    +/**
    + * 向对方打招呼
    + * @param name - 打招呼的目标人名
    + * @returns 向传进来的人名发出一句欢迎语
    + */
    +export default function greet(name: string): string {
    +  return \`Welcome, \${name}!\`
    +}

    在 Vue 组件里就可以这样使用:

    vue
    <script lang="ts">
    +import { defineComponent } from 'vue'
    +// 两者可以同时导入使用
    +import greet, { praise } from '@libs/greet'
    +
    +export default defineComponent({
    +  setup() {
    +    // 使用默认的打招呼
    +    const message = greet('Petter')
    +    console.log(message) // Welcome, Petter!
    +
    +    // 使用命名导出的赞美
    +    const praiseMessage = praise('Petter')
    +    console.log(praiseMessage) // Oh! Petter! It's so kind of you!
    +  },
    +})
    +</script>

    开发本地 Vue 专属插件

    Vue 专属插件 部分已介绍过,这一类的插件只能给 Vue 使用,有时候自己的业务比较特殊,无法找到完全适用的 npm 包,那么就可以自己写一个!

    项目结构

    通常会把这一类文件都归类在 src 目录下的 plugins 文件夹里,代表存放的是 Plugin 文件( JS 项目以 .js 文件存放, TS 项目以 .ts 文件存放)。

    bash
    vue-demo
    + # 源码文件夹
    +├─src
    +  # 本地 Vue 插件
    + └─plugins
    +   ├─foo.ts
    +   └─bar.ts
    +
    + # 其他结构这里省略…
    +
    +└─package.json

    这样在调用的时候,可以通过 @/plugins/foo 来引入,或者配置了 alias 别名,也可以使用别名导入,例如 @plugins/foo

    设计规范

    在设计本地 Vue 插件的时候,需要遵循 Vue 官方撰写的 Vue Plugins 设计规范 ,并且做好必要的代码注释,除了标明插件 API 的 “用途、入参、返回值” 之外,最好在注释内补充一个 Example 或者 Tips 说明,功能丰富的插件最好直接写个 README 文档。

    开发案例

    全局插件开发并启用后,只需要在 main.ts 里导入并 use 一次,即可在所有的组件内使用插件的功能。

    下面对全局插件进行一个开发示范,希望能给大家以后需要的时候提供思路参考。

    TIP

    单组件插件一般作为 npm 包发布,会借助 Webpack 、 Vite 或者 Rollup 单独构建,本地直接放到 components 文件夹下作为组件管理即可。

    基本结构

    插件支持导出两种格式的:一种是函数,一种是对象。

    1. 当导出为一个函数时, Vue 会直接调用这个函数,此时插件内部是这样子:
    ts
    export default function (app, options) {
    +  // 逻辑代码...
    +}
    1. 当导出为一个对象时,对象上面需要有一个 install 方法给 Vue , Vue 通过调用这个方法来启用插件,此时插件内部是这样子:
    ts
    export default {
    +  install: (app, options) => {
    +    // 逻辑代码...
    +  },
    +}

    不论哪种方式,入口函数都会接受两个入参:

    参数作用类型
    appcreateApp 生成的实例App (从 'vue' 里导入该类型),见下方的案例演示
    options插件初始化时的选项undefined 或一个对象,对象的 TS 类型由插件的选项决定

    如果需要在插件初始化时传入一些必要的选项,可以定义一个对象作为 options ,这样只要在 main.tsuse 插件时传入第二个参数,插件就可以拿到它们:

    ts
    // src/main.ts
    +createApp(App)
    +  // 注意这里的第二个参数就是插件选项
    +  .use(customPlugin, {
    +    foo: 1,
    +    bar: 2,
    +  })
    +  .mount('#app')
    编写插件

    这里以一个 自定义指令 为例,写一个用于管理自定义指令的插件,其中包含两个自定义指令:一个是判断是否有权限,一个是给文本高亮,文本高亮还支持一个插件选项。

    ts
    // src/plugins/directive.ts
    +import type { App } from 'vue'
    +
    +// 插件选项的类型
    +interface Options {
    +  // 文本高亮选项
    +  highlight?: {
    +    // 默认背景色
    +    backgroundColor: string
    +  }
    +}
    +
    +/**
    + * 自定义指令
    + * @description 保证插件单一职责,当前插件只用于添加自定义指令
    + */
    +export default {
    +  install: (app: App, options?: Options) => {
    +    /**
    +     * 权限控制
    +     * @description 用于在功能按钮上绑定权限,没权限时会销毁或隐藏对应 DOM 节点
    +     * @tips 指令传入的值是管理员的组别 id
    +     * @example <div v-permission="1" />
    +     */
    +    app.directive('permission', (el, binding) => {
    +      // 假设 1 是管理员组别的 id ,则无需处理
    +      if (binding.value === 1) return
    +
    +      // 其他情况认为没有权限,需要隐藏掉界面上的 DOM 元素
    +      if (el.parentNode) {
    +        el.parentNode.removeChild(el)
    +      } else {
    +        el.style.display = 'none'
    +      }
    +    })
    +
    +    /**
    +     * 文本高亮
    +     * @description 用于给指定的 DOM 节点添加背景色,搭配文本内容形成高亮效果
    +     * @tips 指令传入的值需要是合法的 CSS 颜色名称或者 Hex 值
    +     * @example <div v-highlight="\`cyan\`" />
    +     */
    +    app.directive('highlight', (el, binding) => {
    +      // 获取默认颜色
    +      let defaultColor = 'unset'
    +      if (
    +        Object.prototype.toString.call(options) === '[object Object]' &&
    +        options?.highlight?.backgroundColor
    +      ) {
    +        defaultColor = options.highlight.backgroundColor
    +      }
    +
    +      // 设置背景色
    +      el.style.backgroundColor =
    +        typeof binding.value === 'string' ? binding.value : defaultColor
    +    })
    +  },
    +}
    启用插件

    main.ts 全局启用插件,在启用的时候传入了第二个参数 “插件的选项” ,这里配置了个高亮指令的默认背景颜色:

    ts
    // src/main.ts
    +import { createApp } from 'vue'
    +import App from '@/App.vue'
    +import directive from '@/plugins/directive' // 导入插件
    +
    +createApp(App)
    +   // 自定义插件
    +  .use(directive, {
    +    highlight: {
    +      backgroundColor: '#ddd',
    +    },
    +  })
    +  .mount('#app')
    使用插件

    在 Vue 组件里使用:

    vue
    <template>
    +  <!-- 测试 permission 指令 -->
    +  <div>根据 permission 指令的判断规则:</div>
    +  <div v-permission="1">这个可以显示</div>
    +  <div v-permission="2">这个没有权限,会被隐藏</div>
    +
    +  <!-- 测试 highlight 指令 -->
    +  <div>根据 highlight 指令的判断规则:</div>
    +  <div v-highlight="\`cyan\`">这个是青色高亮</div>
    +  <div v-highlight="\`yellow\`">这个是黄色高亮</div>
    +  <div v-highlight="\`red\`">这个是红色高亮</div>
    +  <div v-highlight>这个是使用插件初始化时设置的灰色</div>
    +</template>

    全局 API 挂载

    对于一些使用频率比较高的插件方法,如果觉得在每个组件里单独导入再用很麻烦,也可以考虑将其挂载到 Vue 上,使其成为 Vue 的全局变量。

    注:接下来的全局变量,都是指 Vue 环境里的全局变量,非 Window 下的全局变量。

    回顾 Vue 2

    在 Vue 2 ,可以通过 prototype 的方式来挂载全局变量,然后通过 this 关键字来从 Vue 原型上调用该方法。

    md5 插件为例,在 main.ts 里进行全局 import,然后通过 prototype 去挂到 Vue 上。

    ts
    import Vue from 'vue'
    +import md5 from 'md5'
    +
    +Vue.prototype.$md5 = md5

    之后在 .vue 文件里,就可以这样去使用 md5

    ts
    const md5Msg = this.$md5('message')

    了解 Vue 3 ~new

    在 Vue 3 ,已经不再支持 prototype 这样使用了,在 main.ts 里没有了 Vue,在组件的生命周期里也没有了 this

    如果依然想要挂载全局变量,需要通过全新的 globalProperties 来实现,在使用该方式之前,可以把 createApp 定义为一个变量再执行挂载。

    定义全局 API ~new

    如上,在配置全局变量之前,可以把初始化时的 createApp 定义为一个变量(假设为 app ),然后把需要设置为全局可用的变量或方法,挂载到 appconfig.globalProperties 上面。

    ts
    import md5 from 'md5'
    +
    +// 创建 Vue 实例
    +const app = createApp(App)
    +
    +// 把插件的 API 挂载全局变量到实例上
    +app.config.globalProperties.$md5 = md5
    +
    +// 也可以自己写一些全局函数去挂载
    +app.config.globalProperties.$log = (text: string): void => {
    +  console.log(text)
    +}
    +
    +app.mount('#app')

    全局 API 的替代方案

    在 Vue 3 实际上并不是特别推荐使用全局变量,Vue 3 比较推荐按需引入使用,这也是在构建过程中可以更好的做到代码优化。

    特别是针对 TypeScript , Vue 作者尤雨溪先生对于全局 API 的相关 PR 说明: Global API updates ,也是不建议在 TS 里使用。

    那么确实是需要用到一些全局 API 怎么办?

    对于一般的数据和方法,建议采用 Provide / Inject 方案,在根组件(通常是 App.vue )把需要作为全局使用的数据或方法 Provide 下去,在需要用到的组件里通过 Inject 即可获取到,或者使用 EventBus / Vuex / Pinia 等全局通信方案来处理。

    npm 包的开发与发布

    相信很多开发者都想发布一个属于自己的 npm 包,在实际的工作中,也会有一些公司出于开发上的便利,也会将一些常用的业务功能抽离为独立的 npm 包,提前掌握包的开发也是非常重要的能力,接下来将介绍如何从 0 到 1 开发一个 npm 包,并将其发布到 npmjs 上可供其他项目安装使用。

    TIP

    在开始本节内容之前,请先阅读或回顾以下两部分内容:

    1. 阅读 了解 package.json 一节,了解或重温 npm 包清单文件的作用
    2. 阅读 学习模块化设计 一节,了解或重温模块化开发的知识

    常用的构建工具

    平时项目里用到的 npm 包,也可以理解为是一种项目插件,一些很简单的包,其实就和编写 本地插件 一样,假设包的入口文件是 index.js ,那么可以直接在 index.js 里编写代码,再进行模块化导出。

    其他项目里安装这个包之后就可以直接使用里面的方法了,这种方式适合非常非常简单的包,很多独立的工具函数包就是使用这种方式来编写包的源代码。

    例如 is-number 这个包,每周下载量超过 6800 万次,它的源代码非常少:

    js
    /**
    + * 摘自 is-number 的入口文件
    + * @see https://github.com/jonschlinkert/is-number/blob/master/index.js
    + */
    +module.exports = function (num) {
    +  if (typeof num === 'number') {
    +    return num - num === 0
    +  }
    +  if (typeof num === 'string' && num.trim() !== '') {
    +    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num)
    +  }
    +  return false
    +}

    再如 slash 这个包,每周下载量超过 5200 万次,它的源代码也是只有几行:

    js
    /**
    + * 摘自 slash 的入口文件
    + * @see https://github.com/sindresorhus/slash/blob/main/index.js
    + */
    +export default function slash(path) {
    +  const isExtendedLengthPath = /^\\\\\\\\\\?\\\\/.test(path)
    +
    +  if (isExtendedLengthPath) {
    +    return path
    +  }
    +
    +  return path.replace(/\\\\/g, '/')
    +}

    但这一类包通常是提供很基础的功能实现,更多时候需要自己开发的包更倾向于和框架、和业务挂钩,涉及到非 JavaScript 代码,例如 Vue 组件的编译、 Less 等 CSS 预处理器编译、 TypeScript 的编译等等,如果不通过构建工具来处理,那么发布后这个包的使用就会有诸多限制,需要满足和开发这个包时一样的开发环境才能使用,这对于使用者来说非常不友好。

    因此大部分 npm 包的开发也需要用到构建工具来转换项目源代码,统一输出为一个兼容性更好、适用性更广的 JavaScript 文件,配合 .d.ts 文件的类型声明,使用者可以不需要特地配置就可以开箱即用,非常方便,非常友好。

    传统的 Webpack 可以用来构建 npm 包文件,但按照目前更主流的技术选项,编译结果更干净更迷的当属 Rollup ,但 Rollup 需要配置很多插件功能,这对于刚接触包开发的开发者来说学习成本比较高,而 Vite 的出现则解决了这个难题,因为 Vite 的底层是基于 Rollup 来完成构建,上层则简化了很多配置上的问题,因此接下来将使用 Vite 来带领开发者入门 npm 包的开发。

    TIP

    在开始使用构建工具之前,请先在命令行使用 node -v 命令检查当前的 Node.js 版本号是否在构建工具的支持范围内,避免无法正常使用构建工具。

    通常可以在构建工具的官网查询到其支持的 Node 版本,以 Vite 为例,可以在 Vite 官网的 Node 支持 一节了解到当前只能在 Node 14.18+ / 16+ 版本上使用 Vite 。

    当构建工具所支持的 Node 版本和常用的 Node 版本出现严重冲突时,推荐使用 nvm / nvm-windows 或者 n 等 Node 版本管理工具安装多个不同版本的 Node ,即可根据开发需求很方便的切换不同版本的 Node 进行开发。

    项目结构与入口文件

    在动手开发具体功能之前,先把项目框架搭起来,熟悉常用的项目结构,以及如何配置项目清单信息。

    TIP

    当前文档所演示的 hello-lib 项目已托管至 learning-vue3/hello-lib 仓库,可使用 Git 克隆命令拉取至本地:

    bash
    # 从 GitHub 克隆
    +git clone https://github.com/learning-vue3/hello-lib.git
    +
    +# 如果 GitHub 访问失败,可以从 Gitee 克隆
    +git clone https://gitee.com/learning-vue3/hello-lib.git

    成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 npm 包的开发流程,可以更有效的提升学习效果。

    初始化项目

    首先需要初始化一个 Node 项目,打开命令行工具,先使用 cd 命令进入平时存放项目的目录,再通过 mkdir 命令创建一个项目文件夹,这里起名为 hello-lib

    bash
    # 创建一个项目文件夹
    +mkdir hello-lib

    创建了项目文件夹之后,使用 cd 命令进入项目,执行 Node 的项目初始化命令:

    bash
    # 进入项目文件夹
    +cd hello-lib
    +
    +# 执行初始化,使其成为一个 Node 项目
    +npm init -y

    此时 hello-lib 目录下会生成一个 package.json 文件,由于后面还需要手动调整该文件的信息,所以初始化的时候可以添加 -y 参数使用默认的初始化数据直接生成该文件,跳过答题环节。

    配置包信息

    对一个 npm 包来说,最重要的文件莫过于 package.json 项目清单,其中有三个字段是必填的:

    字段是否必填作用
    name必填npm 包的名称,遵循 项目名称的规则
    version必填npm 包的版本号,遵循 语义化版本号的规则
    main必填项目的入口文件,通常指向构建产物所在目录的某个文件,该文件通常包含了所有模块的导出。

    如果只指定了 main 字段,则使用 requireimport 以及浏览器访问 npm 包的 CDN 时,都将默认调用该字段指定的入口文件。

    如果有指定 modulebrowser 字段,则通常对应 cjs 格式的文件,对应 CommonJS 规范。
    module当项目使用 import 引入 npm 包时对应的入口文件,通常指向一个 es 格式的文件,对应 ES Module 规范。
    browser当项目使用了 npm 包的 CDN 链接,在浏览器访问页面时的入口文件,通常指向一个 umd 格式的文件,对应 UMD 规范。
    types一个 .d.ts 类型声明文件,包含了入口文件导出的方法 / 变量的类型声明,如果项目有自带类型文件,那么在使用者在使用 TypeScript 开发的项目里,可以得到友好的类型提示
    files指定发布到 npm 上的文件范围,格式为 string[] 支持配置多个文件名或者文件夹名称。

    通常可以只指定构建的输出目录,例如 dist 文件夹,如果不指定,则发布的时候会把所有源代码一同发布。

    其中 mainmodulebrowser 三个入口文件对应的文件格式和规范,通常都是交给构建工具处理,无需手动编写,开发者只需要维护一份源码即可编译出不同规范的 JS 文件, types 对应的类型声明文件也是由工具来输出,无需手动维护。

    而其他的字段可以根据项目的性质决定是否补充,以下是 hello-lib 的基础信息示例:

    json
    {
    +  "name": "@learning-vue3/lib",
    +  "version": "1.0.0",
    +  "description": "A library demo for learning-vue3.",
    +  "author": "chengpeiquan <chengpeiquan@chengpeiquan.com>",
    +  "homepage": "https://github.com/learning-vue3/hello-lib",
    +  "repository": {
    +    "type": "git",
    +    "url": "git+https://github.com/learning-vue3/hello-lib.git"
    +  },
    +  "license": "MIT",
    +  "files": ["dist"],
    +  "main": "dist/index.cjs",
    +  "module": "dist/index.mjs",
    +  "browser": "dist/index.min.js",
    +  "types": "dist/index.d.ts",
    +  "keywords": ["library", "demo", "example"],
    +  "scripts": {
    +    "build": "vite build"
    +  }
    +}

    此时 mainmodulebrowsertypes 字段对应的文件还不存在,它们将在项目执行 npm run build 构建之后才会产生。

    另外,入口文件使用了不同规范对应的文件扩展名,也可以统一使用 .js 扩展名,通过文件名来区分,例如 es 格式使用 index.es.js

    scripts 字段则配置了一个 build 命令,这里使用了 Vite 的构建命令来打包项目,这个过程会读取 Vite 的配置文件 vite.config.ts ,关于该文件的配置内容将在下文继续介绍。

    安装开发依赖

    本次的 npm 包将使用 Vite 进行构建,使用 TypeScript 编写源代码,由于 Vite 本身对 TypeScript 进行了支持,因此只需要将 Vite 安装到开发依赖:

    bash
    # 添加 -D 选项将其安装到 devDependencies
    +npm i -D vite

    添加配置文件

    配置包信息 的时候已提前配置了一个 npm run build 的命令,它将运行 Vite 来构建 npm 包的入口文件。

    由于 Vite 默认是构建入口文件为 HTML 的网页应用,而开发 npm 包时入口文件是 JS / TS 文件,因此需要添加一份配置文件来指定构建的选项。

    以下是本次的基础配置,可以完成最基本的打包,它将输出三个不同格式的入口文件,分别对应 CommonJS 、 ES Module 和 UMD 规范,分别对应 package.json 里 mainmodulebrowser 字段指定的文件。

    ts
    // vite.config.ts
    +import { defineConfig } from 'vite'
    +
    +// https://cn.vitejs.dev/config/
    +export default defineConfig({
    +  build: {
    +    // 输出目录
    +    outDir: 'dist',
    +    // 构建 npm 包时需要开启 “库模式”
    +    lib: {
    +      // 指定入口文件
    +      entry: 'src/index.ts',
    +      // 输出 UMD 格式时,需要指定一个全局变量的名称
    +      name: 'hello',
    +      // 最终输出的格式,这里指定了三种
    +      formats: ['es', 'cjs', 'umd'],
    +      // 针对不同输出格式对应的文件名
    +      fileName: (format) => {
    +        switch (format) {
    +          // ES Module 格式的文件名
    +          case 'es':
    +            return 'index.mjs'
    +          // CommonJS 格式的文件名
    +          case 'cjs':
    +            return 'index.cjs'
    +          // UMD 格式的文件名
    +          default:
    +            return 'index.min.js'
    +        }
    +      },
    +    },
    +    // 压缩混淆构建后的文件代码
    +    minify: true,
    +  },
    +})

    添加入口文件

    来到这里,最基础的准备工作已完成,接下来添加入口文件并尝试编译。

    添加配置文件 时已指定了入口文件为 src/index.ts ,因此需要对应的创建该文件,并写入一个简单的方法,将用它来测试打包结果:

    ts
    // src/index.ts
    +export default function hello(name: string) {
    +  console.log(\`Hello \${name}\`)
    +}

    在命令行执行 npm run build 命令,可以看到项目下生成了 dist 文件夹,以及三个 JavaScript 文件,此时目录结构如下:

    bash
    hello-lib
    + # 构建产物的输出文件夹
    +├─dist
    + ├─index.cjs
    + ├─index.min.js
    + └─index.mjs
    + # 依赖文件夹
    +├─node_modules
    + # 源码文件夹
    +├─src
    +  # 入口文件
    + └─index.ts
    + # 项目清单信息
    +├─package-lock.json
    +├─package.json
    + # Vite 配置文件
    +└─vite.config.ts

    打开 dist 目录下的文件内容,可以看到虽然源码是使用 TypeScript 编写的,但最终输出的内容是按照指定的格式转换为 JavaScript 并且被执行了压缩和混淆,在这里将它们重新格式化,来看看转换后的结果。

    这是 index.cjs 的文件内容,源码被转换为 CommonJS 风格的代码:

    js
    // dist/index.cjs
    +'use strict'
    +function l(o) {
    +  console.log(\`Hello \${o}\`)
    +}
    +module.exports = l

    这是 index.mjs 的内容,源码被转换为 ES Module 风格的代码:

    js
    // dist/index.mjs
    +function o(l) {
    +  console.log(\`Hello \${l}\`)
    +}
    +export { o as default }

    这是 index.min.js 的内容,源码被转换为 UMD 风格的代码:

    js
    // dist/index.min.js
    +;(function (e, n) {
    +  typeof exports == 'object' && typeof module < 'u'
    +    ? (module.exports = n())
    +    : typeof define == 'function' && define.amd
    +    ? define(n)
    +    : ((e = typeof globalThis < 'u' ? globalThis : e || self), (e.hello = n()))
    +})(this, function () {
    +  'use strict'
    +  function e(n) {
    +    console.log(\`Hello \${n}\`)
    +  }
    +  return e
    +})

    来到这里,准备工作已就绪,下一步将开始进入工具包和组件包的开发。

    开发 npm 包

    这里先从最简单的函数库开始入门包的开发,为什么说它简单呢?因为只需要编写 JavaScript 或 TypeScript 就可以很好的完成开发工作。

    在理解了包的开发流程之后,如果要涉及 Vue 组件包的开发,则安装相关的 Vue 的相关依赖、 Less 等 CSS 预处理器依赖,只要满足了编译条件,就可以正常构建和发布,它们的开发流程是一样的。

    编写 npm 包代码

    在开发的过程中,需要遵循模块化开发的要求,当前这个演示包使用 TypeScript 编码,就需要 使用 ES Module 来设计模块 ,如果对模块化设计还没有足够的了解,请先回顾相关的内容。

    先在 src 目录下创建一个名为 utils.ts 的文件,写入以下内容:

    ts
    // src/utils.ts
    +
    +/**
    + * 生成随机数
    + * @param min - 最小值
    + * @param max - 最大值
    + * @param roundingType - 四舍五入类型
    + * @returns 范围内的随机数
    + */
    +export function getRandomNumber(
    +  min: number = 0,
    +  max: number = 100,
    +  roundingType: 'round' | 'ceil' | 'floor' = 'round'
    +) {
    +  return Math[roundingType](Math.random() * (max - min) + min)
    +}
    +
    +/**
    + * 生成随机布尔值
    + */
    +export function getRandomBoolean() {
    +  const index = getRandomNumber(0, 1)
    +  return [true, false][index]
    +}

    这里导出了两个随机方法,其中 getRandomNumber 提供了随机数值的返回,而 getRandomBoolean 提供了随机布尔值的返回,在源代码方面, getRandomBoolean 调用了 getRandomNumber 获取随机索引。

    这是一个很常见的 npm 工具包的开发思路,包里的函数都使用了细粒度的编程设计,每一个函数都是独立的功能,在必要的情况下,函数 B 可以调用函数 A 来减少代码的重复编写。

    在这里, utils.ts 文件已开发完毕,接下来需要将它导出的方法提供给包的使用者,请删除入口文件 src/index.ts 原来的测试内容,并输入以下新代码:

    ts
    // src/index.ts
    +export * from './utils'

    这代表将 utils.ts 文件里导出的所有方法或者变量,再次导出去,如果有很多个 utils.ts 这样的文件, index.ts 将作为一个统一的入口,统一的导出给构建工具去编译输出。

    接下来在命令行执行 npm run build ,再分别看看 dist 目录下的文件变化:

    此时的 index.cjs 文件,已经按照 CommonJS 规范转换了源代码:

    js
    // dist/index.cjs
    +'use strict'
    +Object.defineProperties(exports, {
    +  __esModule: { value: !0 },
    +  [Symbol.toStringTag]: { value: 'Module' },
    +})
    +function t(e = 0, o = 100, n = 'round') {
    +  return Math[n](Math.random() * (o - e) + e)
    +}
    +function r() {
    +  const e = t(0, 1)
    +  return [!0, !1][e]
    +}
    +exports.getRandomBoolean = r
    +exports.getRandomNumber = t

    index.mjs 也按照 ES Module 规范进行了转换:

    js
    // dist/index.mjs
    +function o(n = 0, t = 100, e = 'round') {
    +  return Math[e](Math.random() * (t - n) + n)
    +}
    +function r() {
    +  const n = o(0, 1)
    +  return [!0, !1][n]
    +}
    +export { r as getRandomBoolean, o as getRandomNumber }

    index.min.js 同样正常按照 UMD 风格转换成了 JavaScript 代码:

    js
    // dist/index.min.js
    +;(function (e, n) {
    +  typeof exports == 'object' && typeof module < 'u'
    +    ? n(exports)
    +    : typeof define == 'function' && define.amd
    +    ? define(['exports'], n)
    +    : ((e = typeof globalThis < 'u' ? globalThis : e || self),
    +      n((e.hello = {})))
    +})(this, function (e) {
    +  'use strict'
    +  function n(o = 0, u = 100, d = 'round') {
    +    return Math[d](Math.random() * (u - o) + o)
    +  }
    +  function t() {
    +    const o = n(0, 1)
    +    return [!0, !1][o]
    +  }
    +  ;(e.getRandomBoolean = t),
    +    (e.getRandomNumber = n),
    +    Object.defineProperties(e, {
    +      __esModule: { value: !0 },
    +      [Symbol.toStringTag]: { value: 'Module' },
    +    })
    +})

    对 npm 包进行本地调试

    开发或者迭代了一个 npm 包之后,不建议直接发布,可以在本地进行测试,直到没有问题了再发布到 npmjs 上供其他人使用。

    npm 提供了一个 npm link 命令供开发者本地联调,假设 path/to/my-library 是一个 npm 包的项目路径, path/to/my-project 是一个调试项目的所在路径,那么通过以下步骤可以在 my-project 里本地调试 my-library 包。

    TIP

    关于 path/to 的典故,可以查看 #294 了解。

    创建本地软链接

    先在 my-library npm 包项目里执行 npm link 命令,创建 npm 包的本地软链接:

    bash
    # 进入 npm 包项目所在的目录
    +cd path/to/my-library
    +
    +# 创建 npm 包的本地软链接
    +npm link

    运行了以上命令之后,意味着刚刚开发好的 npm 包,已经被成功添加到了 Node 的全局安装目录下,可以在命令行运行以下命令查看全局安装目录的位置:

    bash
    npm prefix -g

    假设 {prefix} 是全局安装目录,刚刚这个包在 package.json 里的包名称是 my-library ,那么在 {prefix}/node_modules/my-library 这个目录下可以看到被软链接了一份项目代码。

    TIP

    软链接( Symbolic Link / Symlink / Soft Link ),是指通过指定路径来指向文件或目录,操作系统会自动将其解释为另一个文件或目录的路径,因此软链接被删除或修改不会影响源文件,而源文件的移动或者删除,不会自动更新软链接,这一点和快捷方式的作用比较类似。

    自此已经对这个 npm 包完成了一次 “本地发布” ,接下来就要在调试项目里进行本地关联。

    关联本地软链接

    my-project 调试项目里执行语法为 npm link [<package-spec>] 的 link 命令,关联 npm 包的本地软链接。

    TIP

    这里的 [<package-spec>] 参数,可以是包名称,也可以是 npm 包项目所在的路径。

    bash
    # 进入调试项目所在的目录
    +cd path/to/my-project
    +
    +# 通过 npm 包的包名称关联本地软链接
    +npm link my-library

    如果通过 npm 包名称关联失败,例如返回了如下信息:

    bash
     npm link my-library
    +npm ERR! code E404
    +npm ERR! 404 Not Found - GET https://registry.npmjs.org/my-library - Not found
    +npm ERR! 404
    +npm ERR! 404  'my-library@*' is not in this registry.
    +npm ERR! 404
    +npm ERR! 404 Note that you can also install from a
    +npm ERR! 404 tarball, folder, http url, or git url.

    这种情况通常出现于本地 npm 包还没有在 npmjs 上进行过任意版本的发布,而包管理器又找不到本地全局安装目录的软链接,就会去 npm 源找,都找不到就会返回 404 的报错,针对这种情况,也可以使用 npm 包项目的路径进行关联:

    bash
    # 进入调试项目所在的目录
    +cd path/to/my-project
    +
    +# 通过 npm 包的项目路径关联本地软链接
    +npm link path/to/my-library

    至此,就完成了调试项目对该 npm 包在本地的 “安装” ,此时在 my-project 这个调试项目的 node_modules 目录下也会创建一个软链接,指向 my-library 所在的目录。

    回归当前的演示包项目,先创建一个基于 TypeScript 的 Vue 新项目作为调试项目,在关联了本地 npm 包之后,就可以在调试项目里编写如下代码,测试 npm 包里的方法是否可以正常使用:

    ts
    // 请将 \`@learning-vue3/lib\` 更换为实际的包名称
    +import { getRandomNumber } from '@learning-vue3/lib'
    +
    +const num = getRandomNumber()
    +console.log(num)

    启动 npm run dev 的调试命令并打开本地调试页面,就可以在浏览器控制台正确的打印出了随机结果。

    因为本包还支持 UMD 规范,所以也可以在 HTML 页面通过普通的 <script /> 标签直接引入 dist 目录下的文件测试将来引入 CDN 时的效果,可以在 npm 包项目下创建一个 demo 目录,并添加一个 index.html 文件到该目录下,并写入以下内容:

    html
    <!-- demo/index.html -->
    +<!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>Library Demo</title>
    +  </head>
    +  <body>
    +    <!-- 这里引入的是 UMD 规范的文件 -->
    +    <script src="../dist/index.min.js"></script>
    +    <script>
    +      /**
    +       * UMD 规范的文件会有一个全局变量
    +       * 由 vite.config.ts 的 \`build.lib.name\` 决定
    +       */
    +      console.log(hello)
    +
    +      /**
    +       * 所有的方法会挂在这个全局变量上
    +       * 类似于 jQuery 的 $.xxx() 那样使用
    +       */
    +      const num = hello.getRandomNumber()
    +      console.log(num)
    +    </script>
    +  </body>
    +</html>

    在浏览器打开该 HTML 文件并唤起控制台,一样可以看到随机结果的打印记录。

    添加版权注释

    很多知名项目在 Library 文件的开头都会有一段版权注释,它的作用除了声明版权归属之外,还会告知使用者关于项目的主页地址、版本号、发布日期、 BUG 反馈渠道等信息。

    例如很多开发者入门前端时使用过的经典类库 jQuery :

    js
    // https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.js
    +
    +/*!
    + * jQuery JavaScript Library v3.6.1
    + * https://jquery.com/
    + *
    + * Includes Sizzle.js
    + * https://sizzlejs.com/
    + *
    + * Copyright OpenJS Foundation and other contributors
    + * Released under the MIT license
    + * https://jquery.org/license
    + *
    + * Date: 2022-08-26T17:52Z
    + */
    +( function( global, factory ) {
    +// ...

    又如流行的 JavaScript 工具库 Lodash :

    js
    // https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js
    +
    +/**
    + * @license
    + * Lodash <https://lodash.com/>
    + * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
    + * Released under MIT license <https://lodash.com/license>
    + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
    + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
    + */
    +(function(){
    +// ...

    还有每次做轮播图一定会想到它的 Swiper :

    js
    // https://cdn.jsdelivr.net/npm/swiper@8.4.3/swiper-bundle.js
    +
    +/**
    + * Swiper 8.4.3
    + * Most modern mobile touch slider and framework
    + * with hardware accelerated transitions
    + * https://swiperjs.com
    + *
    + * Copyright 2014-2022 Vladimir Kharlampidi
    + *
    + * Released under the MIT License
    + *
    + * Released on: October 6, 2022
    + */
    +(function (global, factory) {
    +// ...

    聪明的开发者肯定已经猜到了,这些版权注释肯定不是手动添加的,那么它们是如何自动生成的呢?

    npm 社区提供了非常多开箱即用的注入插件,通常可以通过 “当前使用的构建工具名称” 加上 “plugin banner” 这样的关键字,在 npmjs 网站上搜索是否有相关的插件,以当前使用的 Vite 为例,可以通过 vite-plugin-banner 实现版权注释的自动注入。

    回到 hello-lib 项目,安装该插件到 devDependencies :

    bash
    npm i -D vite-plugin-banner

    根据插件的文档建议,打开 vite.config.ts 文件,将其导入,并通过读取 package.json 的信息来生成常用的版权注释信息:

    ts
    // vite.config.ts
    +import { defineConfig } from 'vite'
    +// 导入版权注释插件
    +import banner from 'vite-plugin-banner'
    +// 导入 npm 包信息
    +import pkg from './package.json'
    +
    +// https://cn.vitejs.dev/config/
    +export default defineConfig({
    +  // 其他选项保持不变
    +  // ...
    +  plugins: [
    +    // 新增 banner 插件的启用,传入 package.json 的字段信息
    +    banner(
    +      \`/**\\n * name: \${pkg.name}\\n * version: v\${pkg.version}\\n * description: \${pkg.description}\\n * author: \${pkg.author}\\n * homepage: \${pkg.homepage}\\n */\`
    +    ),
    +  ],
    +})

    再次运行 npm run build 命令,打开 dist 目录下的 Library 文件,可以看到都成功添加了一段版权注释:

    js
    // dist/index.mjs
    +
    +/**
    + * name: @learning-vue3/lib
    + * version: v1.0.0
    + * description: A library demo for learning-vue3.
    + * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
    + * homepage: https://github.com/learning-vue3/hello-lib
    + */
    +function o(n = 0, t = 100, e = 'round') {
    +  return Math[e](Math.random() * (t - n) + n)
    +}
    +function r() {
    +  const n = o(0, 1)
    +  return [!0, !1][n]
    +}
    +export { r as getRandomBoolean, o as getRandomNumber }

    这样其他开发者如果在使用过程中遇到了问题,就可以轻松找到插件作者的联系方式了!

    TIP

    请根据实际的 package.json 存在的字段信息调整 banner 内容。

    生成 npm 包的类型声明

    虽然到这里已经得到一个可以运行的 JavaScript Library 文件,在 JavaScript 项目里使用是完全没有问题的,但还不建议直接发布到 npmjs 上,因为目前的情况下在 TypeScript 项目并不能完全兼容,还需要生成一份 npm 包的类型声明文件。

    为什么需要类型声明

    如果在上一小节 关联本地软链接 创建 Vue 调试项目时,也是使用了 TypeScript 版本的 Vue 项目,会遇到 VSCode 在下面这句代码上:

    ts
    import { getRandomNumber } from '@learning-vue3/lib'

    在包名称 '@learning-vue3/lib' 的位置提示了一个红色波浪线,把鼠标移上去会显示这么一段话:

    无法找到模块 “@learning-vue3/lib” 的声明文件。 “D:/Project/demo/hello-lib/dist/index.cjs” 隐式拥有 "any" 类型。
    尝试使用 npm i --save-dev @types/learning-vue3__lib (如果存在),或者添加一个包含 declare module '@learning-vue3/lib'; 的新声明 (.d.ts) 文件 ts(7016)

    此时在命令行运行 Vue 调试项目的打包命令 npm run build ,也会遇到打包失败的报错,控制台同样反馈了这个问题:缺少声明文件。

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +src/App.vue:8:30 - error TS7016: Could not find a declaration file for module '@learning-vue3/lib'. 'D:/Project/demo/hello-lib/dist/index.cjs' implicitly has an 'any' type.
    +  Try \`npm i --save-dev @types/learning-vue3__lib\` if it exists or add a new declaration (.d.ts) file containing \`declare module '@learning-vue3/lib';\`
    +
    +8 import { getRandomNumber } from '@learning-vue3/lib'
    +                               ~~~~~~~~~~~~~~~~~~~~
    +
    +
    +Found 1 error in src/App.vue:8

    虽然使用者可以按照报错提示,在调试项目下创建一个 d.ts 文件并写入以下内容来声明该 npm 包:

    ts
    declare module '@learning-vue3/lib'

    但这需要每个使用者,或者说每个使用到这个包的项目都声明一次,对于使用者来说非常不友好, declare module 之后虽然不会报错了,但也无法获得 VSCode 对 npm 包提供的 API 进行 TS 类型的自动推导与类型提示、代码补全等功能支持。

    主流的做法

    细心的开发者在 npmjs 网站上搜索 npm 包时,会发现很多 npm 包在详情页的包名后面,跟随有一个蓝色的 TS 图标,鼠标移上去时,还会显示一句提示语:

    This package contains built-in TypeScript declarations

    `,290),u=o(`

    例如上图的 @vue/reactivity , Vue 3 的响应式 API 包,就带有这个图标。

    这表示带有这个图标的 npm 包,已包含内置的 TypeScript 声明,可以获得完善的 TS 类型推导和提示支持,开发过程中也可以获得完善的代码补全功能支持,提高开发效率,在 TypeScript 项目执行 npm run build 的时候也能够被成功打包。

    以 @vue/reactivity 这个包为例,如果项目下安装有这个 npm 包,可以在

    bash
    # 基于项目根目录
    +./node_modules/@vue/reactivity/dist/reactivity.d.ts

    这个文件里查看 Vue 3 响应式 API 的类型声明,也可以通过该文件的 CDN 地址访问到其内容:

    bash
    https://cdn.jsdelivr.net/npm/@vue/reactivity@3.2.40/dist/reactivity.d.ts

    生成 DTS 文件

    有在 “快速上手 TypeScript ” 一章阅读过 了解 tsconfig.json 这节内容的开发者,应该对该文件有了一定的了解,如果还没有阅读过也没关系,可以先按照下方的步骤操作,接下来将分布说明如何生成 npm 包的 DTS 类型声明文件(以 .d.ts 为扩展名的文件)。

    请先全局安装 typescript 这个包:

    bash
    npm install -g typescript

    依然是在在命令行界面,回到 hello-lib 这个 npm 包项目的根目录,执行以下命令生成 tsconfig.json 文件:

    bash
    tsc --init

    打开 tsconfig.json 文件,生成的文件里会有很多默认被注释掉的选项,请将以下几个选项取消注释,同时在 compilerOptions 字段的同级新增 include 字段,这几个选项都修改为如下配置:

    json
    {
    +  "compilerOptions": {
    +    "declaration": true,
    +    "emitDeclarationOnly": true,
    +    "declarationDir": "./dist"
    +  },
    +  "include": ["./src"]
    +}

    其中 compilerOptions 三个选项的意思是: .ts 源文件不编译为 .js 文件,只生成 .d.ts 文件并输出到 dist 目录; include 选项则告诉 TypeScript 编译器,只处理 src 目录下的 TS 文件。

    修改完毕后,在命令行执行以下命令,它将根据 tsconfig.json 的配置对项目进行编译:

    bash
    tsc

    可以看到现在的 dist 目录下多了 2 份 .d.ts 文件: index.d.ts 和 utils.d.ts 。

    bash
    hello-lib
    +└─dist
    +  ├─index.cjs
    +  ├─index.d.ts
    +  ├─index.min.js
    +  ├─index.mjs
    +  └─utils.d.ts

    打开 dist/index.d.ts ,可以看到它的内容和 src/index.ts 是一样的,因为作为入口文件,只提供了模块的导出:

    ts
    // dist/index.d.ts
    +export * from './utils'

    再打开 dist/utils.d.ts ,可以看到它的内容如下,对比 src/utils.ts 的文件内容,它去掉了具体的功能实现,并且根据代码逻辑,转换成了 TypeScript 的类型声明:

    ts
    // dist/utils.d.ts
    +/**
    + * 生成随机数
    + * @param min - 最小值
    + * @param max - 最大值
    + * @param roundingType - 四舍五入类型
    + * @returns 范围内的随机数
    + */
    +export declare function getRandomNumber(
    +  min?: number,
    +  max?: number,
    +  roundingType?: 'round' | 'ceil' | 'floor'
    +): number
    +/**
    + * 生成随机布尔值
    + */
    +export declare function getRandomBoolean(): boolean

    由于 hello-lib 项目的 package.json 已提前指定了类型声明文件指向:

    json
    {
    +  "types": "dist/index.d.ts"
    +}

    因此可以直接回到调试 npm 包的 Vue 项目,此时 VSCode 对那句 import 语句的红色波浪线报错信息已消失不见,鼠标移到 getRandomNumber 这个方法上,也可以看到 VSCode 出现了该方法的类型提示,非常方便。

    TIP

    如果 VSCode 未能及时更新该包的类型,依然提示红色波浪线,可以重启 VSCode 再次查看。

    再次运行 npm run build 命令构建调试项目,这一次顺利通过编译:

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +vite v2.9.15 building for production...
    + 42 modules transformed.
    +dist/assets/logo.03d6d6da.png             6.69 KiB
    +dist/index.html                           0.42 KiB
    +dist/assets/home.9a123f29.js              2.01 KiB / gzip: 1.01 KiB
    +dist/assets/logo.db8b6a93.js              0.12 KiB / gzip: 0.13 KiB
    +dist/assets/TransferStation.25db7d3e.js   0.29 KiB / gzip: 0.22 KiB
    +dist/assets/bar.0e9da4c4.js               0.53 KiB / gzip: 0.37 KiB
    +dist/assets/bar.09e673fa.css              0.22 KiB / gzip: 0.18 KiB
    +dist/assets/home.6bd02f2a.css             0.62 KiB / gzip: 0.33 KiB
    +dist/assets/index.60726771.css            0.47 KiB / gzip: 0.29 KiB
    +dist/assets/index.aebbe022.js             79.87 KiB / gzip: 31.80 KiB

    生成 DTS Bundle

    初始化项目生成 DTS 文件 ,其实已经走完一个 npm 包的完整开发流程了,是可以提交发布了,但在发布之前,先介绍另外一个生成 DTS 文件的方式,可以根据实际情况选择使用。

    请注意这里使用了 DTS Bundle 来称呼类型声明文件,这是因为直接使用 tsc 命令生成的 DTS 文件,是和源码目录的文件数量挂钩的,可以留意到在上一小节使用 tsc 命令生成声明文件后,在 hello-lib 项目中:

    • src 源码目录有 index.ts 和 utils.ts 两个文件
    • dist 输出目录也对应生成了 index.d.ts 和 utils.d.ts 两个文件

    在一个大型项目里,源码的目录和文件非常多,意味着 DTS 文件也是非常多,这样的输出结构并不是特别友好。

    在讲 npm 包对类型声明 主流的做法 的时候,提到了 Vue 响应式 API 的 npm 包是提供了一个完整的 DTS 文件,它包含了所有 API 的类型声明信息:

    bash
    ./node_modules/@vue/reactivity/dist/reactivity.d.ts

    这种将多个模块的文件内容合并为一个完整文件的行为通常称之为 Bundle ,本小节将介绍如何生成这种 DTS Bundle 文件。

    继续回到 hello-lib 这个 npm 包项目,由于 tsc 本身不提供类型文件的合并,所以需要借助第三方依赖来实现,比较流行的第三方包有: dts-bundle-generatornpm-dtsdts-bundledts-generator 等等。

    之前笔者在为公司开发 npm 工具包的时候都对它们进行了一轮体验,鉴于实际开发过程中遇到的一些编译问题,在这里选用问题最少的 dts-bundle-generator 进行开发演示,请先安装到 hello-lib 项目的 devDependencies :

    bash
    npm i -D dts-bundle-generator

    dts-bundle-generator 支持在 package.json 里配置一个 script ,通过命令的形式在命令行生成 DTS Bundle ,也支持通过 JavaScript / TypeScript 编写函数来执行文件的生成,鉴于实际开发过程中使用函数生成 DTS Bundle 的场景比较多(例如 Monorepo 会有生成多个 Bundle 的使用场景),因此这里以函数的方式进行演示。

    TIP

    在使用 Git 等版本控制系统时,如果多个独立项目之间有关联,会把这些项目的代码都存储在同一个代码仓库集中管理,此时这个大型代码仓库就被称之为 Monorepo (其中 Mono 表示单一, Repo 是存储库 Repository 的缩写),当下许多大型项目都基于这种方法管理代码, Vue 3 在 GitHub 的代码仓库也是一个 Monorepo 。

    请在 hello-lib 的根目录下,创建一个与 src 源码目录同级的 scripts 目录,用来存储源码之外的脚本函数。

    将以下代码保存到 scripts 目录下,命名为 buildTypes.mjs :

    js
    // scripts/buildTypes.mjs
    +import { writeFileSync } from 'fs'
    +import { dirname, resolve } from 'path'
    +import { fileURLToPath } from 'url'
    +import { generateDtsBundle } from 'dts-bundle-generator'
    +
    +async function run() {
    +  // 默认情况下 \`.mjs\` 文件需要自己声明 __dirname 变量
    +  const __filename = fileURLToPath(import.meta.url)
    +  const __dirname = dirname(__filename)
    +
    +  // 获取项目的根目录路径
    +  const rootPath = resolve(__dirname, '..')
    +
    +  // 添加构建选项
    +  // 插件要求是一个数组选项,支持多个入口文件
    +  const options = [
    +    {
    +      filePath: resolve(rootPath, \`./src/index.ts\`),
    +      output: {
    +        noBanner: true,
    +      },
    +    },
    +  ]
    +
    +  // 生成 DTS 文件内容
    +  // 插件返回一个数组,返回的文件内容顺序同选项顺序
    +  const dtses = generateDtsBundle(options, {
    +    preferredConfigPath: resolve(rootPath, \`./tsconfig.json\`),
    +  })
    +  if (!Array.isArray(dtses) || !dtses.length) return
    +
    +  // 将 DTS Bundle 的内容输出成 \`.d.ts\` 文件保存到 dist 目录下
    +  // 当前只有一个文件要保存,所以只取第一个下标的数据
    +  const dts = dtses[0]
    +  const output = resolve(rootPath, \`./dist/index.d.ts\`)
    +  writeFileSync(output, dts)
    +}
    +run().catch((e) => {
    +  console.log(e)
    +})

    接下来打开 hello-lib 的 package.json 文件,添加一个 build:types 的 script ,并在 build 命令中通过 && 符号设置为继发执行任务,当前所有的 scripts 如下:

    json
    {
    +  "scripts": {
    +    "build": "vite build && npm run build:types",
    +    "build:types": "node scripts/buildTypes.mjs"
    +  }
    +}

    TIP

    继发执行:只有前一个任务执行成功,才继续执行下一个任务,任务与任务之间使用 && 符号连接。

    接下来再运行 npm run build 命令,将在执行完 Vite 的 build 任务之后,再继续执行 DTS Bundle 的文件生成,可以看到现在的 dist 目录变成了如下,只会生成一个 .d.ts 文件:

    bash
    hello-lib
    +└─dist
    +  ├─index.cjs
    +  ├─index.d.ts
    +  ├─index.min.js
    +  └─index.mjs

    现在 index.d.ts 文件已经集合了源码目录下所有的 TS 类型,变成了如下内容:

    ts
    // dist/index.d.ts
    +/**
    + * 生成随机数
    + * @param min - 最小值
    + * @param max - 最大值
    + * @param roundingType - 四舍五入类型
    + * @returns 范围内的随机数
    + */
    +export declare function getRandomNumber(
    +  min?: number,
    +  max?: number,
    +  roundingType?: 'round' | 'ceil' | 'floor'
    +): number
    +/**
    + * 生成随机布尔值
    + */
    +export declare function getRandomBoolean(): boolean
    +
    +export {}

    对于大型项目,将 DTS 文件集合为 Bundle 输出是一种主流的管理方式,非常建议使用这种方式来为 npm 包生成类型文件。

    添加说明文档

    作为一个完整的 npm 包,应该配备一份操作说明给使用者阅读,复杂的文档可以使用 VitePress 等文档程序独立部署,而简单的项目则只需要完善一份 README 即可。

    请创建一个名为 README.md 的 Markdown 文件在项目根目录下,与 src 源码目录同级,该文件的文件名 README 推荐使用全大写,这是开源社区主流的命名方式,全大写的原因是为了与代码文件进行直观的区分。

    编写 README 使用的 Markdown 是一种轻量级标记语言,可以使用易读易写的纯文本格式编写文档,以 .md 作为文件扩展名,当代码托管到 GitHub 仓库或者发布到 npmjs 等平台时, README 文件会作为项目的主页内容呈现。

    为了方便学习,这里将一些常用的 Markdown 语法与 HTML 代码对比如下,可以看到书写方面非常的简洁:

    Markdown 代码HTML 代码
    # 一级标题<h1>一级标题</h1>
    ## 二级标题<h2>二级标题</h2>
    ### 三级标题<h3>三级标题</h3>
    **加粗文本**<span style="font-weight: bold;">加粗文本</span>
    [链接文本](https://example.com)<a href="https://example.com">链接文本</a>

    更多的 Markdown 语法建议在 Markdown 教程网站 上学习。

    下面附上一份常用的 README 模板:

    md
    # 项目名称
    +
    +写上项目用途的一句话简介。
    +
    +## 功能介绍
    +
    +1. 功能 1 一句话介绍
    +2. 功能 2 一句话介绍
    +3. 功能 3 一句话介绍
    +
    +## 在线演示
    +
    +如果有部署在线 demo ,可放上 demo 的访问地址。
    +
    +## 安装方法
    +
    +使用 npm : \`npm install package-name\`
    +
    +使用 CDN : \`https://example.com/package-name\`
    +
    +## 用法
    +
    +告诉使用者如何使用 npm 包。
    +
    +## 插件选项
    +
    +如果 npm 包是一个插件,并支持传递插件选项,在这里可以使用表格介绍选项的作用。
    +
    +| 选项名称 |  类型  |    作用    |
    +| :------: | :----: | :--------: |
    +|   foo    | string | 一句话介绍 |
    +|   bar    | number | 一句话介绍 |
    +
    +更多内容请根据实际情况补充。

    拥有完善的使用说明文档,会让 npm 包更受欢迎!

    发布 npm 包

    一个 npm 包开发完毕后,就可以进入发布阶段了,这一小节将讲解如何注册 npm 账号并发布到 npmjs 平台上供其他开发者下载使用。

    TIP

    在操作 npm 包发布之前,请先运行 npm config rm registry 命令取消 npm 镜像源的绑定,否则会发布失败,在 npm 包发布后,可以再重新 配置镜像源

    注册 npm 账号

    在发布 npm 包之前,请先在 npm 官网上注册一个账号:点击注册

    接下来需要在命令行上登录该账号以操作发布命令,打开命令行工具,输入以下命令进行登录:

    bash
    npm login

    按照命令行的提示输入在 npmjs 网站上注册的账号和密码即可完成登录,可以通过以下命令查看当前登录的账号名称,验证是否登录成功:

    bash
    npm whoami

    在登录成功之后,命令行会记住账号的登录状态,以后的操作就无需每次都执行登录命令了。

    TIP

    以上操作也可以实用 npm adduser 命令代替,直接在命令行完成注册和登录。

    将包发布到 npmjs

    在 npm 上发布私有包需要进行付费,因此这里只使用公共包的发布作为演示和讲解,如果开发的是公司内部使用的 npm 包,只要源代码是私有仓库,也可以使用这种方式来发布,当前在这样做之前请先获得公司的同意。

    对于一个普通命名的包,要发布到 npmjs 上非常简单,只需要执行 npm 包管理器自带的一个命令即可:

    bash
    npm publish

    它默认会将这个包作为一个公共包发布,如果包名称合法并且没有冲突,则发布成功,可以在 npmjs 查询到,否则会返回错误信息告知原因,如果因为包名冲突导致的失败,可以尝试修改别的名称再次发布。

    如果打算使用像 @vue/cli@vue/compiler-sfc 这样带有 @scope 前缀的作用域包名,需要先在 npmjs 的 创建新组织 页面创建一个组织,或者确保自己拥有 @scope 对应的组织发布权限。

    @scope 作用域包默认会作为私有包发布,因此在执行发布命令的时候还需要加上一个 --access 选项,将其指定为 public 允许公开访问才可以发布成功:

    bash
    npm publish --access public

    当前的 hello-lib 项目已发布到 npmjs ,可以查看该包的主页 @learning-vue3/lib ,也可以通过 npm 安装到项目里使用了:

    bash
    npm i @learning-vue3/lib

    并且发布到 npmjs 上的包,都同时获得热门 CDN 服务的自动同步,可以通过包名称获取到 CDN 链接并通过 <script /> 标签引入到 HTML 页面里:

    bash
    # 使用 jsDelivr CDN
    +https://cdn.jsdelivr.net/npm/@learning-vue3/lib
    +
    +# 使用 UNPKG CDN
    +https://unpkg.com/@learning-vue3/lib

    此时 CDN 地址对应的 npm 包文件内容,就如前文所述,调用了 package.json 里 browser 字段指定的 UMD 规范文件 dist/index.min.js

    给 npm 包打 Tag

    细心的开发者还会留意到,例如像 Vue 这样的包,在 npmjs 上的 版本列表 里有 Current Tags 和 Version History 的版本分类,其中 Version History 是默认的版本发布历史列表,而 Current Tags 则是在发布 npm 包的时候指定打的标签。

    `,89),g=o(`

    标签的好处是可以让使用者无需记住对应的版本号,而是使用一些更具备语义化的单词来安装指定版本,例如:

    bash
    # 安装最新版的 Vue 3 ,即截图里对应的 3.2.40 版本
    +npm i vue@latest
    +
    +# 安装最新版的 Vue 2 ,即截图里对应的 2.7.10 版本
    +npm i vue@v2-latest
    +
    +# 如果后续有功能更新的测试版,也可以通过标签安装
    +npm i vue@beta

    除了减少寻找版本号的麻烦外,一旦后续有版本更新,再次使用相同的标签安装,可以重新安装到该标签对应的最新版本,例如从 1.0.0-beta.1 升级到 1.0.0-beta.2 ,可以使用 @beta 标签再次安装来达到升级的目的。

    在标签列表里,有一个 latest 的标签是发布 npm 包时自带的,对应该包最新的正式版本,安装 npm 包时如果不指定标签,则默认使用 latest 标签,以下两个安装操作是等价的:

    bash
    # 隐式安装 latest 标签对应的版本
    +npm i vue
    +
    +# 显式安装 latest 标签对应的版本
    +npm i vue@latest

    同样的,当发布 npm 包时不指定标签,则该版本也会在发布后作为 @latest 标签对应的版本号。

    其他标签则需要在发布时配合发布命令,使用 --tag 作为选项手动指定,以下命令将为普通包打上名为 alpha 的 Tag :

    bash
    npm publish --tag alpha

    同理,如果是 @scope 作用域包也是在使用 --access 选项的情况下,继续追加一条 --tag 选项指定包的标签。

    bash
    npm publish --access public --tag alpha

    TIP

    请注意,如果是 Alpha 或者 Beta 版本,通常会在版本号上增加 -alpha.0-alpha.1 这样的 版本标识符,以便在发布正式版本的时候可以使用无标识符的相同版本号,以保证版本号在遵循 升级规则 下的连续性。

    `,11);function m(f,E,b,v,B,k){const t=n("ReadingTips"),e=n("ImgWrap"),l=n("ClientOnly"),c=n("GitalkComment");return y(),i("div",null,[C,A,d,s(t),h,s(l,null,{default:p(()=>[s(e,{src:"/assets/img/npm-detail-ts-icon.jpg",alt:"注意 npm 包名称后面的 TS 图标"})]),_:1}),u,s(l,null,{default:p(()=>[s(e,{src:"/assets/img/vue-versions-on-npmjs.jpg",alt:"Vue 在 npmjs 上的版本列表"})]),_:1}),g,s(l,null,{default:p(()=>[s(c,{issueId:48})]),_:1})])}const j=r(F,[["render",m]]);export{x as __pageData,j as default}; diff --git a/assets/preface.md.59b338cf.js b/assets/preface.md.59b338cf.js new file mode 100644 index 00000000..19703167 --- /dev/null +++ b/assets/preface.md.59b338cf.js @@ -0,0 +1,8 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as l,v as o,b as p,t as a,O as t,R as c,F as e,L as s,M as n}from"./chunks/framework.0d8bea05.js";const j=JSON.parse('{"title":"前言","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"preface.md","filePath":"preface.md"}'),u={name:"preface.md"},h=c('

    前言

    Vue 3.0 从 2020 年 9 月份中旬正式发布,到 2022 年 2 月份代替 Vue 2 成为 Vue 的默认版本,经过长达一年半的市场验证,已经证明了它可以完美地支持常见的企业需求,适合投产使用,未来会被越来越多的企业所采用,只掌握 Vue 2 将远远不能满足企业的技能要求。

    本书以 Vue.js 的 3.0 版本为核心技术栈,围绕 “前端工程化” 和 TypeScript 的知识点展开讲解,读者可以收获到:

    1. 了解如何入门前端工程化开发,掌握 Node.js 和 npm 的使用
    2. 掌握前端领域多年来趋势走高、带有类型支持的 TypeScript 语言
    3. 上手主流前端框架 Vue.js 的全新版本,并且在遇到常见问题时知道如何解决

    本书的每一个小节都融入了笔者多年的开发实践经验,大部分知识点都搭配了通俗易懂的讲解和可实现的代码案例,在阅读的过程中可以亲自敲代码加强学习印象,毕竟上手一个新技术栈最快的方法,就是一边 Reading 一边 Coding 。

    适合人群

    本书作为一本入门类教程,主要面向以下读者人群:

    1. 掌握了基础的 HTML 页面编写知识,想学习一个主流前端框架的新手前端工程师
    2. 已经学会了 Vue 2 ,面对 Vue 3 的大版本更新,想快速上手使用的前端工程师
    3. 非职业前端开发,但涉及前端的工作,需要掌握一个主流前端框架的全栈工程师

    内容说明

    本书根据笔者多年的前端开发经验和一线团队管理经验,将 Vue 3 的知识点按照工程师做项目的顺序梳理成章,一步一步帮助工程师入门前端工程化和 Vue 3 的开发。

    书中包含了很多在构建项目过程中容易遇到的问题点和解决方案,对 Vue 3 和 Vue 2 差异化较大的功能点还进行了版本之间的写法对比。

    这一点和各个技术栈的官方文档有比较大的不同,官方文档更适合作为一本工具书,方便在需要的时候对 API 进行检索查询。

    目前笔者所带领的前端团队已经全员使用 TypeScript 和 Vue 3 进行日常的开发工作,团队成员的学习过程都非常顺利,各位开发者可放心阅读。

    TIP

    对于从 Vue 2 升级到 Vue 3 之后变化很大的内容,文档的侧边栏添加了图标,如果对 Vue 2 版本已经很熟悉,可以针对带有图标的地方单独查阅。

    注:当出现在二级标题时,说明这一节都是新的,如果只出现在三级标题,说明只有那一小部分变化比较大。

    学习顺序

    推荐按照本书章节的顺序学习,从前端工程化开始上手,到 TypeScript 语言的学习,再到使用 TypeScript 开发 Vue 3 项目,这是一个循序渐进的学习过程。

    Vue.js 是一个 “渐进式” 的框架,它可以只用最基础的组件来开发一个小项目,也可以把相关生态引入进来组合成一个大项目(例如 Vue Router 、 Vuex 、 Pinia 等等),本书和 Vue.js 框架一样,也是一个 “渐进式” 的教程,对于本身已经有一定基础的开发者,也可以在遇到具体问题的时候,只阅读对应的部分内容。

    在学习的过程中,推荐将已有的其他技术栈项目,使用 Vue 3 重写,使其可以复刻原来的功能,比如一个使用 jQuery 或者是 Vue 2 编写的活动页面或小工具,用 Vue 3 重新实现一遍,看看能否还原出原来的功能,如果能够成功实现,那么说明已经能够掌握 Vue 3 的使用了。

    疑惑解答

    在学习的过程中如果遇到什么问题无法解决,可以通过以下途径反馈:

    1. 在仓库里提 Issue 或者 Discussions
    2. 发送邮件到笔者的邮箱 chengpeiquan@chengpeiquan.com

    如果阅读本书的内容觉得有帮助,欢迎到仓库给个 Star 鼓励

    赏个罐头

    如果觉得本书的内容有帮助,欢迎 购买纸质版书籍 ,或者捐赠一个猫罐头给作者家的三只猫猫,感恩!

    ',24),d=e("p",null,"作者养了一只黑色英短、一只红虎斑缅因和一只棕虎斑美短,欢迎在线吸猫:",-1),_=e("h2",{id:"版权许可",tabindex:"-1"},[s("版权许可 "),e("a",{class:"header-anchor",href:"#版权许可","aria-label":'Permalink to "版权许可"'},"​")],-1),f=e("p",null,[s("MIT License © 2020 "),e("a",{href:"https://github.com/chengpeiquan",target:"_blank",rel:"noreferrer"},"chengpeiquan")],-1);function b(g,m,V,q,k,P){const i=n("ImgWrap"),r=n("ClientOnly");return o(),p("div",null,[h,a(r,null,{default:t(()=>[a(i,{src:"/assets/img/donate.jpg",dark:"/assets/img/donate-dark.jpg",alt:"请打开微信扫描二维码"})]),_:1}),d,a(r,null,{default:t(()=>[a(i,{src:"/assets/img/cats.jpg",alt:"从左到右:黑妹、小朋友、弟弟"})]),_:1}),_,f])}const v=l(u,[["render",b]]);export{j as __pageData,v as default}; diff --git a/assets/preface.md.59b338cf.lean.js b/assets/preface.md.59b338cf.lean.js new file mode 100644 index 00000000..19703167 --- /dev/null +++ b/assets/preface.md.59b338cf.lean.js @@ -0,0 +1,8 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as l,v as o,b as p,t as a,O as t,R as c,F as e,L as s,M as n}from"./chunks/framework.0d8bea05.js";const j=JSON.parse('{"title":"前言","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"preface.md","filePath":"preface.md"}'),u={name:"preface.md"},h=c('

    前言

    Vue 3.0 从 2020 年 9 月份中旬正式发布,到 2022 年 2 月份代替 Vue 2 成为 Vue 的默认版本,经过长达一年半的市场验证,已经证明了它可以完美地支持常见的企业需求,适合投产使用,未来会被越来越多的企业所采用,只掌握 Vue 2 将远远不能满足企业的技能要求。

    本书以 Vue.js 的 3.0 版本为核心技术栈,围绕 “前端工程化” 和 TypeScript 的知识点展开讲解,读者可以收获到:

    1. 了解如何入门前端工程化开发,掌握 Node.js 和 npm 的使用
    2. 掌握前端领域多年来趋势走高、带有类型支持的 TypeScript 语言
    3. 上手主流前端框架 Vue.js 的全新版本,并且在遇到常见问题时知道如何解决

    本书的每一个小节都融入了笔者多年的开发实践经验,大部分知识点都搭配了通俗易懂的讲解和可实现的代码案例,在阅读的过程中可以亲自敲代码加强学习印象,毕竟上手一个新技术栈最快的方法,就是一边 Reading 一边 Coding 。

    适合人群

    本书作为一本入门类教程,主要面向以下读者人群:

    1. 掌握了基础的 HTML 页面编写知识,想学习一个主流前端框架的新手前端工程师
    2. 已经学会了 Vue 2 ,面对 Vue 3 的大版本更新,想快速上手使用的前端工程师
    3. 非职业前端开发,但涉及前端的工作,需要掌握一个主流前端框架的全栈工程师

    内容说明

    本书根据笔者多年的前端开发经验和一线团队管理经验,将 Vue 3 的知识点按照工程师做项目的顺序梳理成章,一步一步帮助工程师入门前端工程化和 Vue 3 的开发。

    书中包含了很多在构建项目过程中容易遇到的问题点和解决方案,对 Vue 3 和 Vue 2 差异化较大的功能点还进行了版本之间的写法对比。

    这一点和各个技术栈的官方文档有比较大的不同,官方文档更适合作为一本工具书,方便在需要的时候对 API 进行检索查询。

    目前笔者所带领的前端团队已经全员使用 TypeScript 和 Vue 3 进行日常的开发工作,团队成员的学习过程都非常顺利,各位开发者可放心阅读。

    TIP

    对于从 Vue 2 升级到 Vue 3 之后变化很大的内容,文档的侧边栏添加了图标,如果对 Vue 2 版本已经很熟悉,可以针对带有图标的地方单独查阅。

    注:当出现在二级标题时,说明这一节都是新的,如果只出现在三级标题,说明只有那一小部分变化比较大。

    学习顺序

    推荐按照本书章节的顺序学习,从前端工程化开始上手,到 TypeScript 语言的学习,再到使用 TypeScript 开发 Vue 3 项目,这是一个循序渐进的学习过程。

    Vue.js 是一个 “渐进式” 的框架,它可以只用最基础的组件来开发一个小项目,也可以把相关生态引入进来组合成一个大项目(例如 Vue Router 、 Vuex 、 Pinia 等等),本书和 Vue.js 框架一样,也是一个 “渐进式” 的教程,对于本身已经有一定基础的开发者,也可以在遇到具体问题的时候,只阅读对应的部分内容。

    在学习的过程中,推荐将已有的其他技术栈项目,使用 Vue 3 重写,使其可以复刻原来的功能,比如一个使用 jQuery 或者是 Vue 2 编写的活动页面或小工具,用 Vue 3 重新实现一遍,看看能否还原出原来的功能,如果能够成功实现,那么说明已经能够掌握 Vue 3 的使用了。

    疑惑解答

    在学习的过程中如果遇到什么问题无法解决,可以通过以下途径反馈:

    1. 在仓库里提 Issue 或者 Discussions
    2. 发送邮件到笔者的邮箱 chengpeiquan@chengpeiquan.com

    如果阅读本书的内容觉得有帮助,欢迎到仓库给个 Star 鼓励

    赏个罐头

    如果觉得本书的内容有帮助,欢迎 购买纸质版书籍 ,或者捐赠一个猫罐头给作者家的三只猫猫,感恩!

    ',24),d=e("p",null,"作者养了一只黑色英短、一只红虎斑缅因和一只棕虎斑美短,欢迎在线吸猫:",-1),_=e("h2",{id:"版权许可",tabindex:"-1"},[s("版权许可 "),e("a",{class:"header-anchor",href:"#版权许可","aria-label":'Permalink to "版权许可"'},"​")],-1),f=e("p",null,[s("MIT License © 2020 "),e("a",{href:"https://github.com/chengpeiquan",target:"_blank",rel:"noreferrer"},"chengpeiquan")],-1);function b(g,m,V,q,k,P){const i=n("ImgWrap"),r=n("ClientOnly");return o(),p("div",null,[h,a(r,null,{default:t(()=>[a(i,{src:"/assets/img/donate.jpg",dark:"/assets/img/donate-dark.jpg",alt:"请打开微信扫描二维码"})]),_:1}),d,a(r,null,{default:t(()=>[a(i,{src:"/assets/img/cats.jpg",alt:"从左到右:黑妹、小朋友、弟弟"})]),_:1}),_,f])}const v=l(u,[["render",b]]);export{j as __pageData,v as default}; diff --git a/assets/router.md.e17ca07e.js b/assets/router.md.e17ca07e.js new file mode 100644 index 00000000..2a4a36e6 --- /dev/null +++ b/assets/router.md.e17ca07e.js @@ -0,0 +1,503 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as e,v as t,b as c,t as s,O as r,R as n,M as a}from"./chunks/framework.0d8bea05.js";const m=JSON.parse('{"title":"路由的使用","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"router.md","filePath":"router.md"}'),y={name:"router.md"},D=n('

    路由的使用

    在传统的 Web 开发过程中,当需要实现多个站内页面时,以前需要写很多个 HTML 页面,然后通过 <a /> 标签来实现互相跳转。

    在如今工程化模式下的前端开发,像 Vue 工程,可以轻松实现只用一个 HTML 文件,却能够完成多个站内页面渲染、跳转的功能,这就是路由。

    TIP

    从这里开始,所有包含到 .vue 文件引入的地方,可能会看到 @xx/xx.vue 这样的写法。

    @viewssrc/views 的路径别名,@cpsrc/components 的路径别名。

    路径别名可以在 vite.config.ts 等构建工具配置文件里添加 alias ,点击了解:添加项目配置

    ',4),F=n(`

    路由的目录结构

    Vue 3 引入路由的方式和 Vue 2 一样,路由的管理也是放在 src/router 这个目录下:

    bash
    src
    + # 路由目录
    +├─router
    +   # 路由入口文件
    +├───index.ts
    +   # 路由配置,如果路由很多,可以再拆分模块文件
    +├───routes.ts
    + # 项目入口文件
    +└─main.ts

    其中 index.ts 是路由的入口文件,如果路由很少,那么可以只维护在这个文件里,但对复杂项目来说,往往需要配置上二级、三级路由,逻辑和配置都放到一个文件的话,太臃肿了。

    所以如果项目稍微复杂一些,可以像上面这个结构一样拆分成两个文件: index.ts 和 routes.ts ,在 routes.ts 里维护路由树的结构,在 index.ts 导入路由树结构并激活路由,同时可以在该文件里配置路由钩子。

    如果项目更加复杂,例如做一个 Admin 后台,可以按照业务模块,再把 routes 拆分得更细,例如 game.ts / member.ts / order.ts 等业务模块,再统一导入到 index.ts 文件里。

    TIP

    需要注意的是,与 Vue 3 配套的路由版本是 vue-router 4.x 以上才可以正确适配项目。

    在项目里引入路由

    不管是 Vue 2 还是 Vue 3 ,引入路由都是在 src/router/index.ts 文件里,但是版本升级带来的变化很大,由于本书关于 Vue 3 都是使用 TypeScript ,所以这里只做一个 TypeScript 的变化对比。

    TIP

    下文可能会出现多次 import.meta.env.BASE_URL 这个变量,它是由 Vite 提供的环境变量,详见 Vite 官网关于 环境变量 的说明。

    使用其他构建工具请自行替换为对应构建工具提供的环境变量,例如使用 @vue/cli 创建的项目因为是基于 Webpack ,所以使用的是 process.env.BASE_URL

    回顾 Vue 2

    Vue 2 的引入方式如下(其中 RouteConfig 是路由项目的 TS 类型)。

    ts
    import Vue from 'vue'
    +import VueRouter from 'vue-router'
    +import type { RouteConfig } from 'vue-router'
    +
    +Vue.use(VueRouter)
    +
    +const routes: Array<RouteConfig> = [
    +  // ...
    +]
    +
    +const router = new VueRouter({
    +  mode: 'history',
    +  base: import.meta.env.BASE_URL,
    +  routes,
    +})
    +
    +export default router

    里面一些选项的功能说明:

    routes 是路由树的配置,当项目的路由很多的时候可以集中到 routes.ts 管理,然后再 import 进来(具体的配置请看后面的 路由配置部分 说明)。

    mode 决定访问路径模式,可配置为 hash 或者 history , Hash 模式是这种 http://abc.com/#/home 这样带 # 号的地址,支持所有浏览器, History 模式是 http://abc.com/home 这样不带 # 号,不仅美观,而且体验更好,但需要服务端做一些配置支持(详见下文的 服务端配置方案 ),也只对主流浏览器支持。

    base 是 History 模式在进行路由切换时的基础路径,默认是 / 根目录,如果的项目不是部署在根目录下,而是二级目录、三级目录等多级目录,就必须指定这个 base ,否则路由切换会有问题。

    了解 Vue 3 ~new

    Vue 3 的引入方式如下(其中 RouteRecordRaw 是路由项目的 TS 类型)。

    ts
    import { createRouter, createWebHistory } from 'vue-router'
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +const routes: Array<RouteRecordRaw> = [
    +  // ...
    +]
    +
    +const router = createRouter({
    +  history: createWebHistory(import.meta.env.BASE_URL),
    +  routes,
    +})
    +
    +export default router

    在 Vue 3 (也就是 vue-router 4.x) 里,路由简化了一些配置项,其中 routes 和 Vue 2 一样,是路由树的配置。

    但是 history 和 Vue 2 有所不同,在 Vue 3 ,使用 history 来代替 Vue 2 的 mode ,但功能是一样的,也是决定访问路径模式是 Hash 模式 还是 History 模式,同时合并了 Vue 2 (也就是 vue-router 3.x) 的 base 选项作为模式函数的入参。

    和在使用 Vue 2 的时候一样, Vue 3 也可以配置一些额外的路由选项,比如:指定 router-link 为当前激活的路由所匹配的 className :

    ts
    const router = createRouter({
    +  history: createWebHistory(import.meta.env.BASE_URL),
    +  linkActiveClass: 'cur',
    +  linkExactActiveClass: 'cur',
    +  routes,
    +})

    更多的配置项可以参考 Vue Router 官网的 API 参考 一章。

    路由树的配置

    引入路由 部分有说到,当项目的路由很多的时候,文件会变得非常长,难以维护,这个时候可以集中到 routes.ts 或者更多的模块化文件管理,然后再 import 到 index.ts 里。

    暂且把 routes.ts 这个文件称为 “路由树” ,因为它像一棵大树一样,不仅可以以一级路由为树干去生长,还可以添加二级、三级等多级路由来开枝散叶,下面来看看 routes.ts 应该怎么写。

    基础格式 ~new

    在 TypeScript 里,路由文件的基础格式由三个部分组成:类型声明、数组结构、模块导出。

    ts
    // src/router/routes.ts
    +
    +// 使用 TypeScript 时需要导入路由项目的类型声明
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +// 使用路由项目类型声明一个路由数组
    +const routes: Array<RouteRecordRaw> = [
    +  // ...
    +]
    +
    +// 将路由数组导出给其他模块使用
    +export default routes

    之后就可以在 index.ts 里导入使用了。

    那么里面的路由数组又是怎么写呢?这里就涉及到了 一级路由多级路由 的编写。

    公共基础路径

    在配置路由之前,需要先了解 “公共基础路径” 的概念,在讲解使用 Vite 等工具创建项目时,都提到了一个 项目配置 的管理,以 Vite 项目的配置文件 vite.config.ts 为例,里面有一个选项 base ,其实就是用来控制路由的公共基础路径,那么它有什么用呢?

    base 的默认值是 /,也就是说,如果不配置它,那么所有的资源文件都是从域名根目录读取,如果项目部署在域名根目录那当然好,但是如果不是呢?那么就必须来配置它了。

    配置很简单,只要把项目要上线的最终地址,去掉域名,剩下的那部分就是 base 的值。假设项目是部署在 https://example.com/vue3/ ,那么 base 就可以设置为 /vue3/

    TIP

    如果路由只有一级,那么 base 也可以设置为相对路径 ./,这样可以把项目部署到任意地方。

    如果路由不止一级,那么请准确的指定 base,并且确保是以 / 开头并以 / 结尾,例如 /foo/

    一级路由

    一级路由,顾名思义,就是在的项目地址后面,只有一级 Path ,比如 https://example.com/home 这里的 home 就是一级路由。

    来看一下最基本的路由配置应该包含哪些字段:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    其中 path 是路由的访问路径,像上面说的,如果的域名是 https://example.com, 配置为 /home,那么访问路径就是 https://example.com/home

    TIP

    一级路由的 path 都必须是以 / 开头,比如: /home/setting

    如果的项目首页不想带上 home 之类的尾巴,只想要 https://example.com/ 这样的域名直达 ,其实也是配置一级路由,只需要把路由的 path 指定为 / 即可。

    name 是路由的名称,非必填,但是一般都会配置上去,这样可以很方便的通过 name 来代替 path 实现路由的跳转,因为像有时候的开发环境和生产环境的路径不一致,或者说路径变更,通过 name 无需调整,但如果通过 path,可能就要修改很多文件里面的链接跳转目标了。

    component 是路由的模板文件,指向一个 vue 组件,用于指定路由在浏览器端的视图渲染,这里有两种方式来指定使用哪个组件:

    同步组件

    字段 component 接收一个变量,变量的值就是对应的模板组件。

    在打包的时候,会把组件的所有代码都打包到一个文件里,对于大项目来说,这种方式的首屏加载是个灾难,要面对文件过大带来等待时间变长的问题。

    ts
    import Home from '@views/home.vue'
    +
    +const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: Home,
    +  },
    +]

    所以现在都推荐使用第二种方式,可以实现 路由懒加载

    异步组件

    字段 component 接收一个函数,在 return 的时候返回模板组件,同时组件里的代码在打包的时候都会生成独立的文件,并在访问到对应路由的时候按需引入。

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    关于这部分的更多说明,可以查看 路由懒加载

    多级路由

    在 Vue 路由生态里,支持配置二级、三级、四级等多级路由,理论上没有上限,实际业务中用到的级数通常是三级到四级。

    比如做一个美食类网站,打算在 “中餐” 大分类下配置一个 “饺子” 栏目,那么地址就是:

    https://example.com/chinese-food/dumplings

    这种情况下,中餐 chinese-food 就是一级路由,饺子 dumplings 就是二级路由。

    如果想再细化一下,“饺子” 下面再增加一个 “韭菜” 、“白菜” 等不同馅料的子分类:

    https://example.com/chinese-food/dumplings/chives

    这里的韭菜 chives 就是饺子 dumplings 的子路由,也就是三级路由。

    在了解了子路由的概念后,来看一下具体如何配置以及注意事项。

    父子路由的关系,都是严格按照 JSON 的层级关系,子路由的信息配置到父级的 children 数组里面,孙路由也是按照一样的格式,配置到子路由的 children 里。

    这是一个简单的子路由示范:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 注意:这里是一级路由
    +  {
    +    path: '/lv1',
    +    name: 'lv1',
    +    component: () => import('@views/lv1.vue'),
    +    // 注意:这里是二级路由,在 \`path\` 的前面没有 \`/\`
    +    children: [
    +      {
    +        path: 'lv2',
    +        name: 'lv2',
    +        component: () => import('@views/lv2.vue'),
    +        // 注意:这里是三级路由,在 \`path\` 的前面没有 \`/\`
    +        children: [
    +          {
    +            path: 'lv3',
    +            name: 'lv3',
    +            component: () => import('@views/lv3.vue'),
    +          },
    +        ],
    +      },
    +    ],
    +  },
    +]

    上面这个配置,最终三级路由的访问地址如下:

    https://example.com/lv1/lv2/lv3

    可以看到在注释里提示了二级、三级路由的 path 字段前面没有 / ,这样路径前面才会有其父级路由的 path 以体现其层级关系,否则会从根目录开始。

    路由懒加载

    在上面提过,路由在配置 同步组件 的时候,构建出来的文件都集中在一起,大的项目的文件会变得非常大,影响页面加载。

    所以 Vue 在 Webpack 的代码分割功能的基础上,推出了 异步组件,可以把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样按需载入,很方便的实现路由组件的懒加载。

    在这一段配置里面:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    起到懒加载配置作用的就是 component 接收的值 () => import('@views/home.vue') ,其中 @views/home.vue 就是路由的组件。

    在命令行运行 npm run build 打包构建后,会看到控制台输出的打包结果:

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +vite v2.9.15 building for production...
    + 42 modules transformed.
    +dist/index.html                       0.42 KiB
    +dist/assets/home.03ad1823.js          0.65 KiB / gzip: 0.42 KiB
    +dist/assets/HelloWorld.1322d484.js    1.88 KiB / gzip: 0.96 KiB
    +dist/assets/about.c2af6d65.js         0.64 KiB / gzip: 0.41 KiB
    +dist/assets/login.e9d1d9f9.js         0.65 KiB / gzip: 0.42 KiB
    +dist/assets/index.60726771.css        0.47 KiB / gzip: 0.29 KiB
    +dist/assets/login.bef803dc.css        0.12 KiB / gzip: 0.10 KiB
    +dist/assets/HelloWorld.b2638077.css   0.38 KiB / gzip: 0.19 KiB
    +dist/assets/home.ea56cd55.css         0.12 KiB / gzip: 0.10 KiB
    +dist/assets/about.a0917080.css        0.12 KiB / gzip: 0.10 KiB
    +dist/assets/index.19d6fb3b.js         79.94 KiB / gzip: 31.71 KiB

    可以看到路由文件都按照 views 目录下的路由组件和 components 目录下的组件命名,输出了对应的 JS 文件和 CSS 文件,项目部署后, Vue 只会根据当前路由加载需要的文件,其他文件只做预加载,对于大型项目的访问体验非常友好。

    而如果不使用路由懒加载,打包出来的文件是这样的:

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +vite v2.9.15 building for production...
    + 41 modules transformed.
    +dist/index.html                  0.42 KiB
    +dist/assets/index.67b1ee4f.css   1.22 KiB / gzip: 0.49 KiB
    +dist/assets/index.f758ee53.js    78.85 KiB / gzip: 31.05 KiB

    可以看到所有的组件都被打包成了一个很大的 JS 文件和 CSS 文件,没有进行代码分割,对大型项目来说,这种方式打包出来的文件可能会有好几兆,对首屏加载的速度可想而知。

    路由的渲染

    所有路由组件,要在访问后进行渲染,都必须在父级组件里带有 <router-view /> 标签。

    <router-view /> 在哪里,路由组件的代码就渲染在哪个节点上,一级路由的父级组件,就是 src/App.vue 这个根组件。

    其中最基础的配置就是 <template /> 里面直接就是写一个 <router-view /> ,整个页面就是路由组件。

    vue
    <template>
    +  <router-view />
    +</template>

    如果站点带有全局公共组件,比如有全站统一的页头、页脚,只有中间区域才是路由,那么可以这样配置:

    vue
    <template>
    +  <!-- 全局页头 -->
    +  <Header />
    +
    +  <!-- 路由 -->
    +  <router-view />
    +
    +  <!-- 全局页脚 -->
    +  <Footer />
    +</template>

    如果有一部分路由带公共组件,一部分没有,比如大部分页面都需要有侧边栏,但登录页、注册页不需要,就可以这么处理:

    vue
    <template>
    +  <!-- 登录 -->
    +  <Login v-if="route.name === 'login'" />
    +
    +  <!-- 注册 -->
    +  <Register v-else-if="route.name === 'register'" />
    +
    +  <!-- 带有侧边栏的其他路由 -->
    +  <div v-else>
    +    <!-- 固定在左侧的侧边栏 -->
    +    <Sidebar />
    +
    +    <!-- 路由 -->
    +    <router-view />
    +  </div>
    +</template>

    也可以通过 路由元信息 来管理这些规则。

    使用 route 获取路由信息 ~new

    和 Vue 2 可以直接在组件里使用 this.$route 来获取当前路由信息不同,在 Vue 3 的组件里,Vue 实例既没有了 this,也没有了 $route

    要牢记一个事情就是,Vue 3 用啥都要导入,所以获取当前路由信息的正确用法是先导入路由 API :

    ts
    import { useRoute } from 'vue-router'

    再在 setup 里定义一个变量来获取当前路由:

    ts
    const route = useRoute()

    接下来就可以通过定义好的变量 route 去获取当前路由信息了。

    当然,如果要在 <template /> 里使用路由,记得把 routesetup 里 return 出去。

    ts
    // 获取路由名称
    +console.log(route.name)
    +
    +// 获取路由参数
    +console.log(route.params.id)

    Vue 3 的 route 和 Vue 2 的用法基本一致,日常使用应该很快能上手。

    WARNING

    但是 Vue 3 的新路由也有一些小变化,有一些属性是被移除了,比如之前获取父级路由信息,很喜欢用的 parent 属性,现在已经没有了,可以在 Vue Router 官网的 从 Vue2 迁移 一章查看所有破坏性变化。

    类似被移除的 parent ,如果要获取父级路由信息(比如在做面包屑功能的时候),可以改成下面这样,手动指定倒数第二个为父级信息:

    ts
    // 获取路由记录
    +const matched = route.matched
    +
    +// 获取该记录的路由个数
    +const max = matched.length
    +
    +// 获取倒数第二个路由(也就是当前路由的父级路由)
    +const parentRoute = matched[max - 2]

    如果有配置父级路由,那么 parentRoute 就是父级路由信息,否则会返回 undefined

    使用 router 操作路由 ~new

    route 一样,在 Vue 3 也不能再使用 this.$router ,也必须通过导入路由 API 来使用:

    ts
    import { useRouter } from 'vue-router'

    useRoute 一样, useRouter 也是一个函数,需要在 setup 里定义一个变量来获取路由信息。

    ts
    const router = useRouter()

    接下来就可以通过定义好的变量 router 去操作路由了:

    ts
    // 跳转首页
    +router.push({
    +  name: 'home',
    +})
    +
    +// 返回上一页
    +router.back()

    router-link 是一个全局组件,可直接在 <template /> 里直接使用,无需导入,基础的用法在 Vue 2 和 Vue 3 里是一样。

    默认会被转换为一个 a 标签,对比写死的 <a href="..."> ,使用 router-link 会更加灵活。

    基础跳转

    最基础的用法就是把它当成一个 target="_self"a 标签使用,但无需重新刷新页面,因为是路由跳转,它的体验和使用 router 去进行路由导航的效果完全一样。

    vue
    <template>
    +  <router-link to="/home">首页</router-link>
    +</template>

    等价于 routerpush

    ts
    router.push({
    +  name: 'home',
    +})

    可以写个 <div /> 标签绑定 Click 事件达到 router-link 的效果:

    vue
    <template>
    +  <div
    +    class="link"
    +    @click="
    +      router.push({
    +        name: 'home',
    +      })
    +    "
    +  >
    +    <span>首页</span>
    +  </div>
    +</template>

    了解这种使用对比,对下文其他跳转方式的学习会有帮助。

    带参数的跳转

    使用 router 的时候,可以轻松的带上参数去那些有 ID 的内容页、用户资料页、栏目列表页等等。

    比如要访问一篇文章 https://example.com/article/123 ,用 push 的写法是:

    ts
    router.push({
    +  name: 'article',
    +  params: {
    +    id: 123,
    +  },
    +})

    同理,从基础跳转的写法,很容易就能猜到在 router-link 里应该怎么写:

    vue
    <template>
    +  <router-link
    +    class="link"
    +    :to="{
    +      name: 'article',
    +      params: {
    +        id: 123,
    +      },
    +    }"
    +  >
    +    这是文章的标题
    +  </router-link>
    +</template>

    不生成 a 标签 ~new

    router-link 默认是被转换为一个 a 标签,但根据业务场景,也可以把它指定为生成其他标签,比如 spandivli 等等,这些标签因为不具备 href 属性,所以在跳转时都是通过 Click 事件去执行。

    在 Vue 2 ,指定为其他标签只需要一个 tag 属性即可:

    vue
    <template>
    +  <router-link tag="span" to="/home">首页</router-link>
    +</template>

    但在 Vue 3 ,tag 属性已被移除,需要通过 customv-slot 的配合将其渲染为其他标签。

    比如要渲染为一个带有路由导航功能的其他标签:

    vue
    <template>
    +  <router-link to="/home" custom v-slot="{ navigate }">
    +    <span class="link" @click="navigate"> 首页 </span>
    +  </router-link>
    +</template>

    渲染后就是一个普通的 <span /> 标签,当该标签被点击的时候,会通过路由的导航跳转到指定的路由页:

    html
    <!-- 渲染后的标签 -->
    +<span class="link">首页</span>

    关于这两个属性的参数说明如下:

    1. custom ,一个布尔值,用于控制是否需要渲染为 a 标签,当不包含 custom 或者把 custom 设置为 false 时,则依然使用 a 标签渲染。

    2. v-slot 是一个对象,用来决定标签的行为,它包含了:

    字段含义
    href解析后的 URL,将会作为一个 a 元素的 href 属性
    route解析后的规范化的地址
    navigate触发导航的函数,会在必要时自动阻止事件,和 router-link 同理
    isActive如果需要应用激活的 class 则为 true,允许应用一个任意的 class
    isExactActive如果需要应用精确激活的 class 则为 true,允许应用一个任意的 class

    一般来说,v-slot 必备的只有 navigate ,用来绑定元素的点击事件,否则元素点击后不会有任何反应,其他的可以根据实际需求来添加。

    TIP

    要渲染为非 a 标签,切记两个点:

    1. router-link 必须带上 customv-slot 属性

    2. 最终要渲染的标签,写在 router-link 里,包括对应的 className 和点击事件

    在独立 TS/JS 文件里使用路由

    除了可以在 .vue 文件里使用路由之外,也可以在单独的 .ts.js 里使用。

    比如要做一个带有用户系统的站点,登录的相关代码除了在 login.vue 里运用外,在注册页面 register.vue,用户注册成功还要帮用户执行一次自动登录。

    登录完成还要记录用户的登录信息、 Token 、过期时间等等,有不少数据要做处理,以及需要帮助用户自动切去登录前的页面等行为,这是两个不同的组件,如果写两次几乎一样的代码,会大大提高维护成本。

    这种情况下就可以通过抽离核心代码,封装成一个 login.ts 文件,在这个独立的 ts 文件里去操作路由。

    ts
    // 导入路由
    +import router from '@/router'
    +
    +// 执行路由跳转
    +router.push({
    +  name: 'home',
    +})

    路由元信息配置

    有时候的项目需要一些个性化配置,比如:

    1. 每个路由给予独立的标题;

    2. 管理后台的路由,部分页面需要限制一些访问权限;

    3. 通过路由来自动生成侧边栏、面包屑;

    4. 部分路由的生命周期需要做缓存( Keep Alive );

    5. 其他更多业务场景…

    无需维护很多套配置,在定义路由树的时候可以配置 meta 字段,比如下面就是包含了多种元信息的一个登录路由:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/login',
    +    name: 'login',
    +    component: () => import('@views/login.vue'),
    +    meta: {
    +      title: '登录',
    +      isDisableBreadcrumbLink: true,
    +      isShowBreadcrumb: false,
    +      addToSidebar: false,
    +      sidebarIcon: '',
    +      sidebarIconAlt: '',
    +      isNoLogin: true,
    +    },
    +  },
    +]

    这个是笔者曾经在做后台项目时用过的一些配置,主要的功能是:

    字段类型含义
    titlestring用于在渲染的时候配置浏览器标题;
    isDisableBreadcrumbLinkboolean是否禁用面包屑链接(对一些没有内容的路由可以屏蔽访问);
    isShowBreadcrumbboolean是否显示面包屑(此处的登录页不需要面包屑);
    addToSidebarboolean是否加入侧边栏(此处的登录页不需要加入侧边栏);
    sidebarIconstring配置侧边栏的图标 className(默认);
    sidebarIconAltstring配置侧边栏的图标 className(展开状态);
    isNoLoginboolean是否免登录(后台默认强制登录,设置为 true 则可以免登录访问,此处的登录页不需要校验);

    类似的,如果有其他需求,比如要增加对不同用户组的权限控制(比如有管理员、普通用户分组,部分页面只有管理员允许访问),都可以通过配置 Meta 里的字段,再配合 路由拦截 一起使用。

    路由重定向

    对一些已下线的页面,直接访问原来的地址会导致 404 ,为了避免这种情况出现,通常会配置重定向将其指向一个新的页面,或者跳转回首页。

    基本用法

    路由重定向是使用一个 redirect 字段进行配置到对应的路由里面去实现跳转:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +    meta: {
    +      title: 'Home',
    +    },
    +  },
    +  // 访问这个路由会被重定向到首页
    +  {
    +    path: '/error',
    +    redirect: '/',
    +  },
    +]

    通常来说,配置了 redirect 的路由,只需要指定 2 个字段即可,1 个是 path 该路由本身的路径,1 个是 redirect 目标路由的路径,其他字段可以忽略。

    redirect 字段可以接收三种类型的值:

    类型填写的值
    string另外一个路由的 path
    route另外一个路由(类似 router.push
    function可以判断不同情况的重定向目标,最终 return 一个 path 或者 route

    业务场景

    路由重定向可以避免用户访问到一些无效路由页面:

    1. 比如项目上线了一段时间后,有个路由需要改名,或者调整路径层级,可以把旧路由重定向到新的,避免原来的用户从收藏夹等地方进来后找不到

    2. 一些容易打错的地址,比如通常个人资料页都是用 /profile,但是业务网站是使用 /account,那也可以把 /profile 重定向到 /account

    3. 对于一些有会员体系的站点,可以根据用户权限进行重定向,分别指向他们具备访问权限的页面

    4. 官网首页在 PC 端、移动端、游戏内嵌横屏版分别有 3 套页面,但希望能通过主域名来识别不同设备,帮助用户自动切换访问

    了解了业务场景,接下来就能比较清晰的了解应该如何配置重定向了。

    配置为 path

    最常用的场景,恐怕就是首页的指向了,比如首页地址是 https://example.com/home,但是想让主域名 https://example.com/ 也能跳转到 /home,可以这么配置:

    这是最简单的配置方式,把目标路由的 path 配置进来就可以了:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 重定向到 \`/home\`
    +  {
    +    path: '/',
    +    redirect: '/home',
    +  },
    +  // 真正的首页
    +  {
    +    path: '/home',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    但缺点也显而易见,只能针对那些不带参数的路由。

    配置为 route

    如果想要重定向后的路由地址带上一些参数,可以配置为 route

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 重定向到 \`/home\` ,并带上一个 \`query\` 参数
    +  {
    +    path: '/',
    +    redirect: {
    +      name: 'home',
    +      query: {
    +        from: 'redirect',
    +      },
    +    },
    +  },
    +  // 真正的首页
    +  {
    +    path: '/home',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    最终访问的地址就是 https://example.com/home?from=redirect, 像这样带有来路参数的,就可以在 “百度统计” 或者 “ CNZZ 统计” 之类的统计站点查看来路的流量。

    配置为 function

    结合业务场景来解释是最直观的,比如的网站有 3 个用户组,一个是管理员,一个是普通用户,还有一个是游客(未登录),他们的网站首页是不一样的:

    用户组访问首页时
    管理员具备各种数据可视化图表、最新的网站数据、一些最新的用户消息等等
    普通用户只有一些常用模块的入口链接
    未登录用户直接跳转到登录页面

    产品需要在访问网站主域名的时候,识别用户身份跳转不同的首页,那么就可以这样配置路由重定向:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 访问主域名时,根据用户的登录信息,重定向到不同的页面
    +  {
    +    path: '/',
    +    redirect: () => {
    +      // \`loginInfo\` 是当前用户的登录信息
    +      // 可以从 \`localStorage\` 或者 \`Pinia\` 读取
    +      const { groupId } = loginInfo
    +
    +      // 根据组别 ID 进行跳转
    +      switch (groupId) {
    +        // 管理员跳去仪表盘
    +        case 1:
    +          return '/dashboard'
    +
    +        // 普通用户跳去首页
    +        case 2:
    +          return '/home'
    +
    +        // 其他都认为未登录,跳去登录页
    +        default:
    +          return '/login'
    +      }
    +    },
    +  },
    +]

    路由别名配置

    根据的业务需求,也可以为路由指定一个别名,与上面的 路由重定向 功能相似,但又有不同:

    配置了路由重定向,当用户访问 /a 时,URL 将会被替换成 /b,然后匹配的实际路由是 /b

    配置了路由别名,/a 的别名是 /b,当用户访问 /b 时,URL 会保持为 /b,但是路由匹配则为 /a,就像用户访问 /a 一样。

    配置方法

    添加一个 alias 字段即可轻松实现:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/home',
    +    alias: '/index',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    如上的配置,即可实现可以通过 /home 访问首页,也可以通过 /index 访问首页。

    404 路由页面配置 ~new

    可以配置一个 404 路由来代替站内的 404 页面。

    配置方法

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/:pathMatch(.*)*',
    +    name: '404',
    +    component: () => import('@views/404.vue'),
    +  },
    +]

    这样配置之后,只要访问到不存在的路由,就会显示为这个 404 模板。

    WARNING

    新版的路由不再支持直接配置通配符 * ,而是必须使用带有自定义正则表达式的参数进行定义,详见官网 删除了 *(星标或通配符)路由 的说明。

    导航守卫

    和 Vue 2 时使用的路由一样, Vue 3 也支持导航守卫,并且用法基本上是一样的。

    导航守卫这个词对初次接触的开发者来说应该会有点云里雾里,其实就是几个专属的钩子函数,先来看一下使用场景,大致理解一下基本概念和作用。

    钩子的应用场景

    对于导航守卫还不熟悉的开发者,可以从一些实际使用场景来加强印象,比如:

    1. 前面说的,在渲染的时候配置浏览器标题,由于 Vue 项目只有一个 HTML 文件,所以默认只有一个标题,但想在访问 /home 的时候标题显示为 “首页”,访问 /about 的时候标题显示为 “关于” 。

    2. 部分页面需要管理员才能访问,普通用户不允许进入到该路由页面。

    3. Vue 单页面项目,传统的 CNZZ / 百度统计等网站统计代码只会在页面加载的时候统计一次,但需要每次切换路由都上报一次 PV 数据。

    这样的场景还有很多,导航守卫支持全局使用,也可以在 .vue 文件里单独使用,接下来看看具体的用法。

    路由里的全局钩子

    顾名思义,是在创建 router 的时候进行全局的配置,也就是说,只要配置了钩子,那么所有的路由在被访问到的时候,都会触发这些钩子函数。

    可用钩子含义触发时机
    beforeEach全局前置守卫在路由跳转前触发
    beforeResolve全局解析守卫在导航被确认前,同时在组件内守卫和异步路由组件被解析后
    afterEach全局后置守卫在路由跳转完成后触发

    全局配置非常简单,在 src/router/index.ts 里,在创建路由之后、在导出去之前使用:

    ts
    import { createRouter } from 'vue-router'
    +
    +// 创建路由
    +const router = createRouter({ ... })
    +
    +// 在这里调用导航守卫的钩子函数
    +router.beforeEach((to, from) => {
    +  // ...
    +})
    +
    +// 导出去
    +export default router

    beforeEach ~new

    全局前置守卫,这是导航守卫里面运用的最多的一个钩子函数,通常将其称为 “路由拦截”。

    拦截这个词,顾名思义,就是在 XXX 目的达到之前,把它拦下来,所以路由的目的就是渲染指定的组件,路由拦截就是在组件被渲染之前,做一些拦截操作。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    TIP

    和 Vue 2 不同,Vue 2 的 beforeEach 是默认三个参数,第三个参数是 next,用来操作路由接下来的跳转。

    但在新版本路由里,已经通过 RFC 将其删除,虽然目前还是作为可选参数使用,但以后不确定是否会移除,不建议继续使用,点击查看原因

    新版本路由可以通过 return 来代替 next

    用法

    比如在进入路由之前,根据 Meta 路由元信息 的配置,设定路由的网页标题:

    ts
    router.beforeEach((to, from) => {
    +  const { title } = to.meta
    +  document.title = title || '默认标题'
    +})

    或者判断是否需要登录:

    ts
    router.beforeEach((to, from) => {
    +  const { isNoLogin } = to.meta
    +  if (!isNoLogin) return '/login'
    +})

    或者针对一些需要 ID 参数,但参数丢失的路由做拦截,比如:很多网站的文章详情页都是类似 https://example.com/article/123 这样格式的地址,是需要带有文章 ID 作为 URL 的一部分,如果只访问 https://example.com/article 则需要拦截掉。

    这里是关于 article 路由的配置,是有要求 Params 要带上 ID 参数:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 这是一个配置了 \`params\` ,访问的时候必须带 \`id\` 的路由
    +  {
    +    path: '/article/:id',
    +    name: 'article',
    +    component: () => import('@views/article.vue'),
    +  },
    +  // ...
    +]

    当路由的 params 丢失的时候,路由记录 matched 是一个空数组,针对这样的情况,就可以配置一个拦截,丢失参数时返回首页:

    ts
    router.beforeEach((to) => {
    +  if (to.name === 'article' && to.matched.length === 0) {
    +    return '/'
    +  }
    +})

    beforeResolve

    全局解析守卫,它会在每次导航时触发,但是在所有组件内守卫和异步路由组件被解析之后,将在确认导航之前被调用。

    这个钩子用的比较少,因为它和 beforeEach 非常相似,相信大部分开发者都是会用 beforeEach 来代替它。

    那么它有什么用?

    它通常会用在一些申请权限的环节,比如一些 H5 页面需要申请系统相机权限、一些微信活动需要申请微信的登录信息授权,获得权限之后才允许获取接口数据和给用户更多的操作,使用 beforeEach 时机太早,使用 afterEach 又有点晚,那么这个钩子的时机就刚刚好。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    用法

    以以前 Vue Router 官网的申请照相机权限的例子来举例:

    ts
    // https://router.vuejs.org/zh/guide/advanced/navigation-guards.html
    +
    +router.beforeResolve(async (to) => {
    +  // 如果路由配置了必须调用相机权限
    +  if (to.meta.requiresCamera) {
    +    // 正常流程,咨询是否允许使用照相机
    +    try {
    +      await askForCameraPermission()
    +    } catch (error) {
    +      // 容错
    +      if (error instanceof NotAllowedError) {
    +        // ... 处理错误,然后取消导航
    +        return false
    +      } else {
    +        // 如果出现意外,则取消导航并抛出错误
    +        throw error
    +      }
    +    }
    +  }
    +})

    afterEach

    全局后置守卫,这也是导航守卫里面用的比较多的一个钩子函数。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    用法

    在刚刚的 钩子的应用场景 里面有个例子,就是每次切换路由都上报一次 PV 数据,类似这种每个路由都要执行一次,但又不必在渲染前操作的,都可以放到后置钩子里去执行。

    笔者之前写过两个数据统计的插件:Vue 版 CNZZ 统计Vue 版百度统计,就是用的这个后置钩子来实现自动上报数据。

    ts
    router.afterEach((to, from) => {
    +  // 上报流量的操作
    +  // ...
    +})

    在组件内使用全局钩子

    上面所讲的都是全局钩子,虽然一般都是在路由文件里使用,但如果有需要,也可以在 .vue 文件里操作。

    TIP

    和路由的渲染不同,渲染是父级路由组件必须带有 <router-view /> 标签才能渲染,但是使用全局钩子不受此限制。

    建议只在一些入口文件里使用,比如 App.vue ,或者是一些全局的 Header.vueFooter.vue 里使用,方便后续维护。

    setup 里,定义一个 router 变量获取路由之后,就可以操作了:

    ts
    import { defineComponent } from 'vue'
    +import { useRouter } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    // 定义路由
    +    const router = useRouter()
    +
    +    // 调用全局钩子
    +    router.beforeEach((to, from) => {
    +      // ...
    +    })
    +  },
    +})

    路由里的独享钩子

    介绍完全局钩子,如果只是有个别路由要做处理,可以使用路由独享的守卫,用来针对个别路由定制一些特殊功能,可以减少在全局钩子里面写一堆判断。

    可用钩子含义触发时机
    beforeEnter路由独享前置守卫在路由跳转前触发

    注:路由独享的钩子,必须配置在 routes 的 JSON 树里面,挂在对应的路由下面(与 pathnamemeta 这些字段同级)。

    beforeEnter ~new

    它和全局钩子 beforeEach 的作用相同,都是在进入路由之前触发,触发时机比 beforeResolve 要早。

    顺序:beforeEach(全局) > beforeEnter(独享) > beforeResolve(全局)。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    TIP

    beforeEach 一样,也是取消了 next,可以通过 return 来代替。

    用法

    比如:整个站点的默认标题都是以 “栏目标题” + “全站关键标题” 的格式作为网页的 Title ,例如 “项目经验 - 程沛权” ,但在首页的时候,想做一些不一样的定制。

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/home',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +    // 在这里添加单独的路由守卫
    +    beforeEnter: (to, from) => {
    +      document.title = '程沛权 - 养了三只猫'
    +    },
    +  },
    +]

    就可以通过 beforeEnter 来实现一些个别路由的单独定制。

    TIP

    需要注意的是,只有从不同的路由切换进来,才会触发该钩子。

    针对同一个路由,但是不同的 paramsquery 或者 hash ,都不会重复触发该钩子。

    比如从 https://example.com/article/123 切换到 https://example.com/article/234 是不会触发的。

    其他的用法和 beforeEach 可以说是一样的。

    组件内单独使用 ~new

    组件里除了可以使用全局钩子外,还可以使用组件专属的路由钩子。

    可用钩子含义触发时机
    onBeforeRouteUpdate组件内的更新守卫在当前路由改变,但是该组件被复用时调用
    onBeforeRouteLeave组件内的离开守卫导航离开该组件的对应路由时调用

    TIP

    1、组件内钩子的入参,也都是取消了 next,可以通过 return 来代替。

    2、和其他 Composition API 一样,需要先 import 再操作。

    和旧版路由不同,新版的 Composition API 移除了 beforeRouteEnter 这个钩子了。

    onBeforeRouteUpdate

    可以在当前路由改变,但是该组件被复用时,重新调用里面的一些函数用来更新模板数据的渲染。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    用法

    比如一个内容网站,通常在文章详情页底部会有相关阅读推荐,这个时候就会有一个操作场景是,从文章 A 跳转到文章 B。

    比如从 https://example.com/article/111 切去 https://example.com/article/222 ,这种情况就属于 “路由改变,但是组件被复用” 的情况了。

    这种情况下,原本放在 onMounted 里执行数据请求的函数就不会被调用,可以借助该钩子来实现渲染新的文章内容。

    ts
    import { defineComponent, onMounted } from 'vue'
    +import { useRoute, onBeforeRouteUpdate } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    // 其他代码略...
    +
    +    // 查询文章详情
    +    async function queryArticleDetail(id: number) {
    +      // 请求接口数据
    +      const res = await axios({
    +        url: \`/article/\${id}\`,
    +      })
    +      // ...
    +    }
    +
    +    // 组件挂载完成后执行文章内容的请求
    +    // 注意这里是获取 \`route\` 的 \`params\`
    +    onMounted(async () => {
    +      const id = Number(route.params.id) || 0
    +      await queryArticleDetail(id)
    +    })
    +
    +    // 组件被复用时重新请求新的文章内容
    +    onBeforeRouteUpdate(async (to, from) => {
    +      // ID 不变时减少重复请求
    +      if (to.params.id === from.params.id) return
    +
    +      // 注意这里是获取 \`to\` 的 \`params\`
    +      const id = Number(to.params.id) || 0
    +      await queryArticleDetail(id)
    +    })
    +  },
    +})

    onBeforeRouteLeave

    可以在离开当前路由之前,实现一些离开前的判断拦截。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    用法

    这个离开守卫通常用来禁止用户在还未保存修改前突然离开,可以通过 return false 来取消用户离开当前路由。

    ts
    import { defineComponent } from 'vue'
    +import { onBeforeRouteLeave } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    // 调用离开守卫
    +    onBeforeRouteLeave((to, from) => {
    +      // 弹出一个确认框
    +      const confirmText = '确认要离开吗?您的更改尚未保存!'
    +      const isConfirmLeave = window.confirm(confirmText)
    +
    +      // 当用户点取消时,不离开路由
    +      if (!isConfirmLeave) {
    +        return false
    +      }
    +    })
    +  },
    +})

    路由侦听 ~new

    路由的侦听,可以延续以往的 watch 大法,也可以用全新的 watchEffect

    watch

    在 Vue 2 的时候,侦听路由变化用的最多的就是 watch 了, Vue 3 的 watch API 使用更简单。

    侦听整个路由

    可以跟以前一样,直接侦听整个路由的变化:

    ts
    import { defineComponent, watch } from 'vue'
    +import { useRoute } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    const route = useRoute()
    +
    +    // 侦听整个路由
    +    watch(route, (to, from) => {
    +      // 处理一些事情
    +      // ...
    +    })
    +  },
    +})

    第一个参数传入整个路由;第二个参数是个 Callback ,可以获取 tofrom 来判断路由变化情况。

    侦听路由的某个数据

    如果只想侦听路由的某个数据变化,比如侦听一个 Query ,或者一个 Param ,可以采用这种方式:

    ts
    import { defineComponent, watch } from 'vue'
    +import { useRoute } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    const route = useRoute()
    +
    +    // 侦听路由参数的变化
    +    watch(
    +      () => route.query.id,
    +      () => {
    +        console.log('侦听到 ID 变化')
    +      }
    +    )
    +  },
    +})

    第一个参数传入一个 getter 函数, return 要侦听的值;第二个参数是个 Callback ,可以针对参数变化进行一些操作。

    watchEffect

    这是 Vue 3 新出的一个侦听函数,可以简化 watch 的行为。

    比如定义了一个函数,通过路由的参数来获取文章 ID ,然后请求文章内容:

    ts
    import { defineComponent, watchEffect } from 'vue'
    +import { useRoute } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    const route = useRoute()
    +
    +    // 从接口查询文章详情
    +    async function queryArticleDetail() {
    +      const id = Number(route.params.id) || 0
    +      console.log('文章 ID 是:', id)
    +
    +      const res = await axios({
    +        url: \`/article/\${id}\`,
    +      })
    +      // ...
    +    }
    +
    +    // 直接侦听包含路由参数的那个函数
    +    watchEffect(queryArticleDetail)
    +  },
    +})

    对比 watch 的使用, watchEffect 在操作上更加简单,把包含要被侦听数据的函数,当成它的入参传进去即可。

    部署问题与服务端配置

    通常使用路由的 Hash 模式,部署后有问题的情况很少,但是如果使用 History 模式,可能会遇到这样那样的问题。

    常见部署问题

    这里整理一些常见部署问题的原因分析和解决方案,可作参考。

    页面刷新就 404

    页面部署到服务端之后,访问首页正常;通过导航上面的链接进行路由跳转,也正常;但是刷新页面就变成 404 了。

    问题原因

    一般这种情况是路由开启了 History 模式,但是服务端没有配置功能支持。

    解决方案

    请根据 服务端配置 部分的说明,与的运维同事沟通,让他帮忙修改服务端的配置。

    部分路由白屏

    如果在项目配置文件里,把里面的 publicPath (使用 Vue CLI ) 或者 base (使用 Vite ) 配置成相对路径 ./ ,但是路由配置了二级或以上,那么就会出现这个问题。

    问题原因

    原因是打包后的 JS 、 CSS 等静态资源都是存放在项目根目录下,一级路由的 ./ 就是根目录,所以访问正常;而二级路由的 ./ 则不是根目录了,是从当前目录载入的 ,这就导致无法正确载入 JS 文件,从而导致了白屏。

    假设项目域名是 https://example.com ,那么:

    • 一级路由是 https://example.com/home
    • 二级路由是 https://example.com/foo/bar
    • 假设打包后的 JS 文件等静态资产存放于 https://example.com/assets/ 文件夹下

    访问一级路由时, ./ 访问到的 JS 文件是 https://example.com/assets/home.js ,所以一级路由可以正常访问到。

    访问二级路由时, ./ 访问到的 JS 文件是 https://example.com/foo/assets/bar.js ,但实际上文件是存放在 https://example.com/assets/bar.js ,访问到的 URL 资源不存在,所以白屏了。

    解决方案

    如果的项目开启了 History 模式,并且配置有二级或者二级以上的路由时,不要使用 ./ 这样的相对路径。

    正确的方式应该是修改 publicPath (使用 Vue CLI ) 或者 base (使用 Vite ),如果是部署在域名根目录则写 / ,如果是子目录,则按照子目录的格式,将其以 / 开头,以 / 结尾的形式配置( e.g. /hello-world/

    服务端配置方案

    如果使用的是 HTML5 的 History 模式,那么服务端也需要配置对应的支持,否则会出现路由跳转正常,但页面一刷新就 404 的情况。

    TIP

    服务端配置后,就不再进入 404 了,需要在项目里手动配置 404 路由页面 的路由。

    Nginx

    现在大部分公司的服务程序都在使用 Nginx ,可以将以下代码发给运维工程师参考,调整 Nginx 的配置:

    nginx
    location / {
    +  try_files $uri $uri/ /index.html;
    +}

    Express

    如果是前端工程师使用 Node.js 作服务端,并且使用了 Express 服务端框架,那么操作将变得更简单:

    1. 仅需要安装一个中间件
    bash
    npm install connect-history-api-fallback
    1. 在服务启动入口文件里导入该中间件并激活
    js
    const express = require('express')
    +const history = require('connect-history-api-fallback')
    +
    +// 创建 Express 实例
    +const app = express()
    +app
    +  // 启用 History 中间件
    +  .use(history())
    +  // 这里是读取打包后的页面文件目录
    +  .use('/', express.static(resolve('../dist')))

    更多用法可以看: connect-history-api-fallback 的文档。

    更多方案

    其他的诸如 Apache 、 IIS 、或者原生 Node 等等配置方案, Vue 官方都提供了对应的演示代码,点击查看更多配置方案: 服务器配置示例

    `,339);function i(C,A,d,h,u,g){const l=a("ReadingTips"),o=a("GitalkComment"),p=a("ClientOnly");return t(),c("div",null,[D,s(l),F,s(p,null,{default:r(()=>[s(o,{issueId:47})]),_:1})])}const b=e(y,[["render",i]]);export{m as __pageData,b as default}; diff --git a/assets/router.md.e17ca07e.lean.js b/assets/router.md.e17ca07e.lean.js new file mode 100644 index 00000000..2a4a36e6 --- /dev/null +++ b/assets/router.md.e17ca07e.lean.js @@ -0,0 +1,503 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as e,v as t,b as c,t as s,O as r,R as n,M as a}from"./chunks/framework.0d8bea05.js";const m=JSON.parse('{"title":"路由的使用","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"router.md","filePath":"router.md"}'),y={name:"router.md"},D=n('

    路由的使用

    在传统的 Web 开发过程中,当需要实现多个站内页面时,以前需要写很多个 HTML 页面,然后通过 <a /> 标签来实现互相跳转。

    在如今工程化模式下的前端开发,像 Vue 工程,可以轻松实现只用一个 HTML 文件,却能够完成多个站内页面渲染、跳转的功能,这就是路由。

    TIP

    从这里开始,所有包含到 .vue 文件引入的地方,可能会看到 @xx/xx.vue 这样的写法。

    @viewssrc/views 的路径别名,@cpsrc/components 的路径别名。

    路径别名可以在 vite.config.ts 等构建工具配置文件里添加 alias ,点击了解:添加项目配置

    ',4),F=n(`

    路由的目录结构

    Vue 3 引入路由的方式和 Vue 2 一样,路由的管理也是放在 src/router 这个目录下:

    bash
    src
    + # 路由目录
    +├─router
    +   # 路由入口文件
    +├───index.ts
    +   # 路由配置,如果路由很多,可以再拆分模块文件
    +├───routes.ts
    + # 项目入口文件
    +└─main.ts

    其中 index.ts 是路由的入口文件,如果路由很少,那么可以只维护在这个文件里,但对复杂项目来说,往往需要配置上二级、三级路由,逻辑和配置都放到一个文件的话,太臃肿了。

    所以如果项目稍微复杂一些,可以像上面这个结构一样拆分成两个文件: index.ts 和 routes.ts ,在 routes.ts 里维护路由树的结构,在 index.ts 导入路由树结构并激活路由,同时可以在该文件里配置路由钩子。

    如果项目更加复杂,例如做一个 Admin 后台,可以按照业务模块,再把 routes 拆分得更细,例如 game.ts / member.ts / order.ts 等业务模块,再统一导入到 index.ts 文件里。

    TIP

    需要注意的是,与 Vue 3 配套的路由版本是 vue-router 4.x 以上才可以正确适配项目。

    在项目里引入路由

    不管是 Vue 2 还是 Vue 3 ,引入路由都是在 src/router/index.ts 文件里,但是版本升级带来的变化很大,由于本书关于 Vue 3 都是使用 TypeScript ,所以这里只做一个 TypeScript 的变化对比。

    TIP

    下文可能会出现多次 import.meta.env.BASE_URL 这个变量,它是由 Vite 提供的环境变量,详见 Vite 官网关于 环境变量 的说明。

    使用其他构建工具请自行替换为对应构建工具提供的环境变量,例如使用 @vue/cli 创建的项目因为是基于 Webpack ,所以使用的是 process.env.BASE_URL

    回顾 Vue 2

    Vue 2 的引入方式如下(其中 RouteConfig 是路由项目的 TS 类型)。

    ts
    import Vue from 'vue'
    +import VueRouter from 'vue-router'
    +import type { RouteConfig } from 'vue-router'
    +
    +Vue.use(VueRouter)
    +
    +const routes: Array<RouteConfig> = [
    +  // ...
    +]
    +
    +const router = new VueRouter({
    +  mode: 'history',
    +  base: import.meta.env.BASE_URL,
    +  routes,
    +})
    +
    +export default router

    里面一些选项的功能说明:

    routes 是路由树的配置,当项目的路由很多的时候可以集中到 routes.ts 管理,然后再 import 进来(具体的配置请看后面的 路由配置部分 说明)。

    mode 决定访问路径模式,可配置为 hash 或者 history , Hash 模式是这种 http://abc.com/#/home 这样带 # 号的地址,支持所有浏览器, History 模式是 http://abc.com/home 这样不带 # 号,不仅美观,而且体验更好,但需要服务端做一些配置支持(详见下文的 服务端配置方案 ),也只对主流浏览器支持。

    base 是 History 模式在进行路由切换时的基础路径,默认是 / 根目录,如果的项目不是部署在根目录下,而是二级目录、三级目录等多级目录,就必须指定这个 base ,否则路由切换会有问题。

    了解 Vue 3 ~new

    Vue 3 的引入方式如下(其中 RouteRecordRaw 是路由项目的 TS 类型)。

    ts
    import { createRouter, createWebHistory } from 'vue-router'
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +const routes: Array<RouteRecordRaw> = [
    +  // ...
    +]
    +
    +const router = createRouter({
    +  history: createWebHistory(import.meta.env.BASE_URL),
    +  routes,
    +})
    +
    +export default router

    在 Vue 3 (也就是 vue-router 4.x) 里,路由简化了一些配置项,其中 routes 和 Vue 2 一样,是路由树的配置。

    但是 history 和 Vue 2 有所不同,在 Vue 3 ,使用 history 来代替 Vue 2 的 mode ,但功能是一样的,也是决定访问路径模式是 Hash 模式 还是 History 模式,同时合并了 Vue 2 (也就是 vue-router 3.x) 的 base 选项作为模式函数的入参。

    和在使用 Vue 2 的时候一样, Vue 3 也可以配置一些额外的路由选项,比如:指定 router-link 为当前激活的路由所匹配的 className :

    ts
    const router = createRouter({
    +  history: createWebHistory(import.meta.env.BASE_URL),
    +  linkActiveClass: 'cur',
    +  linkExactActiveClass: 'cur',
    +  routes,
    +})

    更多的配置项可以参考 Vue Router 官网的 API 参考 一章。

    路由树的配置

    引入路由 部分有说到,当项目的路由很多的时候,文件会变得非常长,难以维护,这个时候可以集中到 routes.ts 或者更多的模块化文件管理,然后再 import 到 index.ts 里。

    暂且把 routes.ts 这个文件称为 “路由树” ,因为它像一棵大树一样,不仅可以以一级路由为树干去生长,还可以添加二级、三级等多级路由来开枝散叶,下面来看看 routes.ts 应该怎么写。

    基础格式 ~new

    在 TypeScript 里,路由文件的基础格式由三个部分组成:类型声明、数组结构、模块导出。

    ts
    // src/router/routes.ts
    +
    +// 使用 TypeScript 时需要导入路由项目的类型声明
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +// 使用路由项目类型声明一个路由数组
    +const routes: Array<RouteRecordRaw> = [
    +  // ...
    +]
    +
    +// 将路由数组导出给其他模块使用
    +export default routes

    之后就可以在 index.ts 里导入使用了。

    那么里面的路由数组又是怎么写呢?这里就涉及到了 一级路由多级路由 的编写。

    公共基础路径

    在配置路由之前,需要先了解 “公共基础路径” 的概念,在讲解使用 Vite 等工具创建项目时,都提到了一个 项目配置 的管理,以 Vite 项目的配置文件 vite.config.ts 为例,里面有一个选项 base ,其实就是用来控制路由的公共基础路径,那么它有什么用呢?

    base 的默认值是 /,也就是说,如果不配置它,那么所有的资源文件都是从域名根目录读取,如果项目部署在域名根目录那当然好,但是如果不是呢?那么就必须来配置它了。

    配置很简单,只要把项目要上线的最终地址,去掉域名,剩下的那部分就是 base 的值。假设项目是部署在 https://example.com/vue3/ ,那么 base 就可以设置为 /vue3/

    TIP

    如果路由只有一级,那么 base 也可以设置为相对路径 ./,这样可以把项目部署到任意地方。

    如果路由不止一级,那么请准确的指定 base,并且确保是以 / 开头并以 / 结尾,例如 /foo/

    一级路由

    一级路由,顾名思义,就是在的项目地址后面,只有一级 Path ,比如 https://example.com/home 这里的 home 就是一级路由。

    来看一下最基本的路由配置应该包含哪些字段:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    其中 path 是路由的访问路径,像上面说的,如果的域名是 https://example.com, 配置为 /home,那么访问路径就是 https://example.com/home

    TIP

    一级路由的 path 都必须是以 / 开头,比如: /home/setting

    如果的项目首页不想带上 home 之类的尾巴,只想要 https://example.com/ 这样的域名直达 ,其实也是配置一级路由,只需要把路由的 path 指定为 / 即可。

    name 是路由的名称,非必填,但是一般都会配置上去,这样可以很方便的通过 name 来代替 path 实现路由的跳转,因为像有时候的开发环境和生产环境的路径不一致,或者说路径变更,通过 name 无需调整,但如果通过 path,可能就要修改很多文件里面的链接跳转目标了。

    component 是路由的模板文件,指向一个 vue 组件,用于指定路由在浏览器端的视图渲染,这里有两种方式来指定使用哪个组件:

    同步组件

    字段 component 接收一个变量,变量的值就是对应的模板组件。

    在打包的时候,会把组件的所有代码都打包到一个文件里,对于大项目来说,这种方式的首屏加载是个灾难,要面对文件过大带来等待时间变长的问题。

    ts
    import Home from '@views/home.vue'
    +
    +const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: Home,
    +  },
    +]

    所以现在都推荐使用第二种方式,可以实现 路由懒加载

    异步组件

    字段 component 接收一个函数,在 return 的时候返回模板组件,同时组件里的代码在打包的时候都会生成独立的文件,并在访问到对应路由的时候按需引入。

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    关于这部分的更多说明,可以查看 路由懒加载

    多级路由

    在 Vue 路由生态里,支持配置二级、三级、四级等多级路由,理论上没有上限,实际业务中用到的级数通常是三级到四级。

    比如做一个美食类网站,打算在 “中餐” 大分类下配置一个 “饺子” 栏目,那么地址就是:

    https://example.com/chinese-food/dumplings

    这种情况下,中餐 chinese-food 就是一级路由,饺子 dumplings 就是二级路由。

    如果想再细化一下,“饺子” 下面再增加一个 “韭菜” 、“白菜” 等不同馅料的子分类:

    https://example.com/chinese-food/dumplings/chives

    这里的韭菜 chives 就是饺子 dumplings 的子路由,也就是三级路由。

    在了解了子路由的概念后,来看一下具体如何配置以及注意事项。

    父子路由的关系,都是严格按照 JSON 的层级关系,子路由的信息配置到父级的 children 数组里面,孙路由也是按照一样的格式,配置到子路由的 children 里。

    这是一个简单的子路由示范:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 注意:这里是一级路由
    +  {
    +    path: '/lv1',
    +    name: 'lv1',
    +    component: () => import('@views/lv1.vue'),
    +    // 注意:这里是二级路由,在 \`path\` 的前面没有 \`/\`
    +    children: [
    +      {
    +        path: 'lv2',
    +        name: 'lv2',
    +        component: () => import('@views/lv2.vue'),
    +        // 注意:这里是三级路由,在 \`path\` 的前面没有 \`/\`
    +        children: [
    +          {
    +            path: 'lv3',
    +            name: 'lv3',
    +            component: () => import('@views/lv3.vue'),
    +          },
    +        ],
    +      },
    +    ],
    +  },
    +]

    上面这个配置,最终三级路由的访问地址如下:

    https://example.com/lv1/lv2/lv3

    可以看到在注释里提示了二级、三级路由的 path 字段前面没有 / ,这样路径前面才会有其父级路由的 path 以体现其层级关系,否则会从根目录开始。

    路由懒加载

    在上面提过,路由在配置 同步组件 的时候,构建出来的文件都集中在一起,大的项目的文件会变得非常大,影响页面加载。

    所以 Vue 在 Webpack 的代码分割功能的基础上,推出了 异步组件,可以把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样按需载入,很方便的实现路由组件的懒加载。

    在这一段配置里面:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    起到懒加载配置作用的就是 component 接收的值 () => import('@views/home.vue') ,其中 @views/home.vue 就是路由的组件。

    在命令行运行 npm run build 打包构建后,会看到控制台输出的打包结果:

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +vite v2.9.15 building for production...
    + 42 modules transformed.
    +dist/index.html                       0.42 KiB
    +dist/assets/home.03ad1823.js          0.65 KiB / gzip: 0.42 KiB
    +dist/assets/HelloWorld.1322d484.js    1.88 KiB / gzip: 0.96 KiB
    +dist/assets/about.c2af6d65.js         0.64 KiB / gzip: 0.41 KiB
    +dist/assets/login.e9d1d9f9.js         0.65 KiB / gzip: 0.42 KiB
    +dist/assets/index.60726771.css        0.47 KiB / gzip: 0.29 KiB
    +dist/assets/login.bef803dc.css        0.12 KiB / gzip: 0.10 KiB
    +dist/assets/HelloWorld.b2638077.css   0.38 KiB / gzip: 0.19 KiB
    +dist/assets/home.ea56cd55.css         0.12 KiB / gzip: 0.10 KiB
    +dist/assets/about.a0917080.css        0.12 KiB / gzip: 0.10 KiB
    +dist/assets/index.19d6fb3b.js         79.94 KiB / gzip: 31.71 KiB

    可以看到路由文件都按照 views 目录下的路由组件和 components 目录下的组件命名,输出了对应的 JS 文件和 CSS 文件,项目部署后, Vue 只会根据当前路由加载需要的文件,其他文件只做预加载,对于大型项目的访问体验非常友好。

    而如果不使用路由懒加载,打包出来的文件是这样的:

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +vite v2.9.15 building for production...
    + 41 modules transformed.
    +dist/index.html                  0.42 KiB
    +dist/assets/index.67b1ee4f.css   1.22 KiB / gzip: 0.49 KiB
    +dist/assets/index.f758ee53.js    78.85 KiB / gzip: 31.05 KiB

    可以看到所有的组件都被打包成了一个很大的 JS 文件和 CSS 文件,没有进行代码分割,对大型项目来说,这种方式打包出来的文件可能会有好几兆,对首屏加载的速度可想而知。

    路由的渲染

    所有路由组件,要在访问后进行渲染,都必须在父级组件里带有 <router-view /> 标签。

    <router-view /> 在哪里,路由组件的代码就渲染在哪个节点上,一级路由的父级组件,就是 src/App.vue 这个根组件。

    其中最基础的配置就是 <template /> 里面直接就是写一个 <router-view /> ,整个页面就是路由组件。

    vue
    <template>
    +  <router-view />
    +</template>

    如果站点带有全局公共组件,比如有全站统一的页头、页脚,只有中间区域才是路由,那么可以这样配置:

    vue
    <template>
    +  <!-- 全局页头 -->
    +  <Header />
    +
    +  <!-- 路由 -->
    +  <router-view />
    +
    +  <!-- 全局页脚 -->
    +  <Footer />
    +</template>

    如果有一部分路由带公共组件,一部分没有,比如大部分页面都需要有侧边栏,但登录页、注册页不需要,就可以这么处理:

    vue
    <template>
    +  <!-- 登录 -->
    +  <Login v-if="route.name === 'login'" />
    +
    +  <!-- 注册 -->
    +  <Register v-else-if="route.name === 'register'" />
    +
    +  <!-- 带有侧边栏的其他路由 -->
    +  <div v-else>
    +    <!-- 固定在左侧的侧边栏 -->
    +    <Sidebar />
    +
    +    <!-- 路由 -->
    +    <router-view />
    +  </div>
    +</template>

    也可以通过 路由元信息 来管理这些规则。

    使用 route 获取路由信息 ~new

    和 Vue 2 可以直接在组件里使用 this.$route 来获取当前路由信息不同,在 Vue 3 的组件里,Vue 实例既没有了 this,也没有了 $route

    要牢记一个事情就是,Vue 3 用啥都要导入,所以获取当前路由信息的正确用法是先导入路由 API :

    ts
    import { useRoute } from 'vue-router'

    再在 setup 里定义一个变量来获取当前路由:

    ts
    const route = useRoute()

    接下来就可以通过定义好的变量 route 去获取当前路由信息了。

    当然,如果要在 <template /> 里使用路由,记得把 routesetup 里 return 出去。

    ts
    // 获取路由名称
    +console.log(route.name)
    +
    +// 获取路由参数
    +console.log(route.params.id)

    Vue 3 的 route 和 Vue 2 的用法基本一致,日常使用应该很快能上手。

    WARNING

    但是 Vue 3 的新路由也有一些小变化,有一些属性是被移除了,比如之前获取父级路由信息,很喜欢用的 parent 属性,现在已经没有了,可以在 Vue Router 官网的 从 Vue2 迁移 一章查看所有破坏性变化。

    类似被移除的 parent ,如果要获取父级路由信息(比如在做面包屑功能的时候),可以改成下面这样,手动指定倒数第二个为父级信息:

    ts
    // 获取路由记录
    +const matched = route.matched
    +
    +// 获取该记录的路由个数
    +const max = matched.length
    +
    +// 获取倒数第二个路由(也就是当前路由的父级路由)
    +const parentRoute = matched[max - 2]

    如果有配置父级路由,那么 parentRoute 就是父级路由信息,否则会返回 undefined

    使用 router 操作路由 ~new

    route 一样,在 Vue 3 也不能再使用 this.$router ,也必须通过导入路由 API 来使用:

    ts
    import { useRouter } from 'vue-router'

    useRoute 一样, useRouter 也是一个函数,需要在 setup 里定义一个变量来获取路由信息。

    ts
    const router = useRouter()

    接下来就可以通过定义好的变量 router 去操作路由了:

    ts
    // 跳转首页
    +router.push({
    +  name: 'home',
    +})
    +
    +// 返回上一页
    +router.back()

    router-link 是一个全局组件,可直接在 <template /> 里直接使用,无需导入,基础的用法在 Vue 2 和 Vue 3 里是一样。

    默认会被转换为一个 a 标签,对比写死的 <a href="..."> ,使用 router-link 会更加灵活。

    基础跳转

    最基础的用法就是把它当成一个 target="_self"a 标签使用,但无需重新刷新页面,因为是路由跳转,它的体验和使用 router 去进行路由导航的效果完全一样。

    vue
    <template>
    +  <router-link to="/home">首页</router-link>
    +</template>

    等价于 routerpush

    ts
    router.push({
    +  name: 'home',
    +})

    可以写个 <div /> 标签绑定 Click 事件达到 router-link 的效果:

    vue
    <template>
    +  <div
    +    class="link"
    +    @click="
    +      router.push({
    +        name: 'home',
    +      })
    +    "
    +  >
    +    <span>首页</span>
    +  </div>
    +</template>

    了解这种使用对比,对下文其他跳转方式的学习会有帮助。

    带参数的跳转

    使用 router 的时候,可以轻松的带上参数去那些有 ID 的内容页、用户资料页、栏目列表页等等。

    比如要访问一篇文章 https://example.com/article/123 ,用 push 的写法是:

    ts
    router.push({
    +  name: 'article',
    +  params: {
    +    id: 123,
    +  },
    +})

    同理,从基础跳转的写法,很容易就能猜到在 router-link 里应该怎么写:

    vue
    <template>
    +  <router-link
    +    class="link"
    +    :to="{
    +      name: 'article',
    +      params: {
    +        id: 123,
    +      },
    +    }"
    +  >
    +    这是文章的标题
    +  </router-link>
    +</template>

    不生成 a 标签 ~new

    router-link 默认是被转换为一个 a 标签,但根据业务场景,也可以把它指定为生成其他标签,比如 spandivli 等等,这些标签因为不具备 href 属性,所以在跳转时都是通过 Click 事件去执行。

    在 Vue 2 ,指定为其他标签只需要一个 tag 属性即可:

    vue
    <template>
    +  <router-link tag="span" to="/home">首页</router-link>
    +</template>

    但在 Vue 3 ,tag 属性已被移除,需要通过 customv-slot 的配合将其渲染为其他标签。

    比如要渲染为一个带有路由导航功能的其他标签:

    vue
    <template>
    +  <router-link to="/home" custom v-slot="{ navigate }">
    +    <span class="link" @click="navigate"> 首页 </span>
    +  </router-link>
    +</template>

    渲染后就是一个普通的 <span /> 标签,当该标签被点击的时候,会通过路由的导航跳转到指定的路由页:

    html
    <!-- 渲染后的标签 -->
    +<span class="link">首页</span>

    关于这两个属性的参数说明如下:

    1. custom ,一个布尔值,用于控制是否需要渲染为 a 标签,当不包含 custom 或者把 custom 设置为 false 时,则依然使用 a 标签渲染。

    2. v-slot 是一个对象,用来决定标签的行为,它包含了:

    字段含义
    href解析后的 URL,将会作为一个 a 元素的 href 属性
    route解析后的规范化的地址
    navigate触发导航的函数,会在必要时自动阻止事件,和 router-link 同理
    isActive如果需要应用激活的 class 则为 true,允许应用一个任意的 class
    isExactActive如果需要应用精确激活的 class 则为 true,允许应用一个任意的 class

    一般来说,v-slot 必备的只有 navigate ,用来绑定元素的点击事件,否则元素点击后不会有任何反应,其他的可以根据实际需求来添加。

    TIP

    要渲染为非 a 标签,切记两个点:

    1. router-link 必须带上 customv-slot 属性

    2. 最终要渲染的标签,写在 router-link 里,包括对应的 className 和点击事件

    在独立 TS/JS 文件里使用路由

    除了可以在 .vue 文件里使用路由之外,也可以在单独的 .ts.js 里使用。

    比如要做一个带有用户系统的站点,登录的相关代码除了在 login.vue 里运用外,在注册页面 register.vue,用户注册成功还要帮用户执行一次自动登录。

    登录完成还要记录用户的登录信息、 Token 、过期时间等等,有不少数据要做处理,以及需要帮助用户自动切去登录前的页面等行为,这是两个不同的组件,如果写两次几乎一样的代码,会大大提高维护成本。

    这种情况下就可以通过抽离核心代码,封装成一个 login.ts 文件,在这个独立的 ts 文件里去操作路由。

    ts
    // 导入路由
    +import router from '@/router'
    +
    +// 执行路由跳转
    +router.push({
    +  name: 'home',
    +})

    路由元信息配置

    有时候的项目需要一些个性化配置,比如:

    1. 每个路由给予独立的标题;

    2. 管理后台的路由,部分页面需要限制一些访问权限;

    3. 通过路由来自动生成侧边栏、面包屑;

    4. 部分路由的生命周期需要做缓存( Keep Alive );

    5. 其他更多业务场景…

    无需维护很多套配置,在定义路由树的时候可以配置 meta 字段,比如下面就是包含了多种元信息的一个登录路由:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/login',
    +    name: 'login',
    +    component: () => import('@views/login.vue'),
    +    meta: {
    +      title: '登录',
    +      isDisableBreadcrumbLink: true,
    +      isShowBreadcrumb: false,
    +      addToSidebar: false,
    +      sidebarIcon: '',
    +      sidebarIconAlt: '',
    +      isNoLogin: true,
    +    },
    +  },
    +]

    这个是笔者曾经在做后台项目时用过的一些配置,主要的功能是:

    字段类型含义
    titlestring用于在渲染的时候配置浏览器标题;
    isDisableBreadcrumbLinkboolean是否禁用面包屑链接(对一些没有内容的路由可以屏蔽访问);
    isShowBreadcrumbboolean是否显示面包屑(此处的登录页不需要面包屑);
    addToSidebarboolean是否加入侧边栏(此处的登录页不需要加入侧边栏);
    sidebarIconstring配置侧边栏的图标 className(默认);
    sidebarIconAltstring配置侧边栏的图标 className(展开状态);
    isNoLoginboolean是否免登录(后台默认强制登录,设置为 true 则可以免登录访问,此处的登录页不需要校验);

    类似的,如果有其他需求,比如要增加对不同用户组的权限控制(比如有管理员、普通用户分组,部分页面只有管理员允许访问),都可以通过配置 Meta 里的字段,再配合 路由拦截 一起使用。

    路由重定向

    对一些已下线的页面,直接访问原来的地址会导致 404 ,为了避免这种情况出现,通常会配置重定向将其指向一个新的页面,或者跳转回首页。

    基本用法

    路由重定向是使用一个 redirect 字段进行配置到对应的路由里面去实现跳转:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +    meta: {
    +      title: 'Home',
    +    },
    +  },
    +  // 访问这个路由会被重定向到首页
    +  {
    +    path: '/error',
    +    redirect: '/',
    +  },
    +]

    通常来说,配置了 redirect 的路由,只需要指定 2 个字段即可,1 个是 path 该路由本身的路径,1 个是 redirect 目标路由的路径,其他字段可以忽略。

    redirect 字段可以接收三种类型的值:

    类型填写的值
    string另外一个路由的 path
    route另外一个路由(类似 router.push
    function可以判断不同情况的重定向目标,最终 return 一个 path 或者 route

    业务场景

    路由重定向可以避免用户访问到一些无效路由页面:

    1. 比如项目上线了一段时间后,有个路由需要改名,或者调整路径层级,可以把旧路由重定向到新的,避免原来的用户从收藏夹等地方进来后找不到

    2. 一些容易打错的地址,比如通常个人资料页都是用 /profile,但是业务网站是使用 /account,那也可以把 /profile 重定向到 /account

    3. 对于一些有会员体系的站点,可以根据用户权限进行重定向,分别指向他们具备访问权限的页面

    4. 官网首页在 PC 端、移动端、游戏内嵌横屏版分别有 3 套页面,但希望能通过主域名来识别不同设备,帮助用户自动切换访问

    了解了业务场景,接下来就能比较清晰的了解应该如何配置重定向了。

    配置为 path

    最常用的场景,恐怕就是首页的指向了,比如首页地址是 https://example.com/home,但是想让主域名 https://example.com/ 也能跳转到 /home,可以这么配置:

    这是最简单的配置方式,把目标路由的 path 配置进来就可以了:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 重定向到 \`/home\`
    +  {
    +    path: '/',
    +    redirect: '/home',
    +  },
    +  // 真正的首页
    +  {
    +    path: '/home',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    但缺点也显而易见,只能针对那些不带参数的路由。

    配置为 route

    如果想要重定向后的路由地址带上一些参数,可以配置为 route

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 重定向到 \`/home\` ,并带上一个 \`query\` 参数
    +  {
    +    path: '/',
    +    redirect: {
    +      name: 'home',
    +      query: {
    +        from: 'redirect',
    +      },
    +    },
    +  },
    +  // 真正的首页
    +  {
    +    path: '/home',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    最终访问的地址就是 https://example.com/home?from=redirect, 像这样带有来路参数的,就可以在 “百度统计” 或者 “ CNZZ 统计” 之类的统计站点查看来路的流量。

    配置为 function

    结合业务场景来解释是最直观的,比如的网站有 3 个用户组,一个是管理员,一个是普通用户,还有一个是游客(未登录),他们的网站首页是不一样的:

    用户组访问首页时
    管理员具备各种数据可视化图表、最新的网站数据、一些最新的用户消息等等
    普通用户只有一些常用模块的入口链接
    未登录用户直接跳转到登录页面

    产品需要在访问网站主域名的时候,识别用户身份跳转不同的首页,那么就可以这样配置路由重定向:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 访问主域名时,根据用户的登录信息,重定向到不同的页面
    +  {
    +    path: '/',
    +    redirect: () => {
    +      // \`loginInfo\` 是当前用户的登录信息
    +      // 可以从 \`localStorage\` 或者 \`Pinia\` 读取
    +      const { groupId } = loginInfo
    +
    +      // 根据组别 ID 进行跳转
    +      switch (groupId) {
    +        // 管理员跳去仪表盘
    +        case 1:
    +          return '/dashboard'
    +
    +        // 普通用户跳去首页
    +        case 2:
    +          return '/home'
    +
    +        // 其他都认为未登录,跳去登录页
    +        default:
    +          return '/login'
    +      }
    +    },
    +  },
    +]

    路由别名配置

    根据的业务需求,也可以为路由指定一个别名,与上面的 路由重定向 功能相似,但又有不同:

    配置了路由重定向,当用户访问 /a 时,URL 将会被替换成 /b,然后匹配的实际路由是 /b

    配置了路由别名,/a 的别名是 /b,当用户访问 /b 时,URL 会保持为 /b,但是路由匹配则为 /a,就像用户访问 /a 一样。

    配置方法

    添加一个 alias 字段即可轻松实现:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/home',
    +    alias: '/index',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +]

    如上的配置,即可实现可以通过 /home 访问首页,也可以通过 /index 访问首页。

    404 路由页面配置 ~new

    可以配置一个 404 路由来代替站内的 404 页面。

    配置方法

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/:pathMatch(.*)*',
    +    name: '404',
    +    component: () => import('@views/404.vue'),
    +  },
    +]

    这样配置之后,只要访问到不存在的路由,就会显示为这个 404 模板。

    WARNING

    新版的路由不再支持直接配置通配符 * ,而是必须使用带有自定义正则表达式的参数进行定义,详见官网 删除了 *(星标或通配符)路由 的说明。

    导航守卫

    和 Vue 2 时使用的路由一样, Vue 3 也支持导航守卫,并且用法基本上是一样的。

    导航守卫这个词对初次接触的开发者来说应该会有点云里雾里,其实就是几个专属的钩子函数,先来看一下使用场景,大致理解一下基本概念和作用。

    钩子的应用场景

    对于导航守卫还不熟悉的开发者,可以从一些实际使用场景来加强印象,比如:

    1. 前面说的,在渲染的时候配置浏览器标题,由于 Vue 项目只有一个 HTML 文件,所以默认只有一个标题,但想在访问 /home 的时候标题显示为 “首页”,访问 /about 的时候标题显示为 “关于” 。

    2. 部分页面需要管理员才能访问,普通用户不允许进入到该路由页面。

    3. Vue 单页面项目,传统的 CNZZ / 百度统计等网站统计代码只会在页面加载的时候统计一次,但需要每次切换路由都上报一次 PV 数据。

    这样的场景还有很多,导航守卫支持全局使用,也可以在 .vue 文件里单独使用,接下来看看具体的用法。

    路由里的全局钩子

    顾名思义,是在创建 router 的时候进行全局的配置,也就是说,只要配置了钩子,那么所有的路由在被访问到的时候,都会触发这些钩子函数。

    可用钩子含义触发时机
    beforeEach全局前置守卫在路由跳转前触发
    beforeResolve全局解析守卫在导航被确认前,同时在组件内守卫和异步路由组件被解析后
    afterEach全局后置守卫在路由跳转完成后触发

    全局配置非常简单,在 src/router/index.ts 里,在创建路由之后、在导出去之前使用:

    ts
    import { createRouter } from 'vue-router'
    +
    +// 创建路由
    +const router = createRouter({ ... })
    +
    +// 在这里调用导航守卫的钩子函数
    +router.beforeEach((to, from) => {
    +  // ...
    +})
    +
    +// 导出去
    +export default router

    beforeEach ~new

    全局前置守卫,这是导航守卫里面运用的最多的一个钩子函数,通常将其称为 “路由拦截”。

    拦截这个词,顾名思义,就是在 XXX 目的达到之前,把它拦下来,所以路由的目的就是渲染指定的组件,路由拦截就是在组件被渲染之前,做一些拦截操作。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    TIP

    和 Vue 2 不同,Vue 2 的 beforeEach 是默认三个参数,第三个参数是 next,用来操作路由接下来的跳转。

    但在新版本路由里,已经通过 RFC 将其删除,虽然目前还是作为可选参数使用,但以后不确定是否会移除,不建议继续使用,点击查看原因

    新版本路由可以通过 return 来代替 next

    用法

    比如在进入路由之前,根据 Meta 路由元信息 的配置,设定路由的网页标题:

    ts
    router.beforeEach((to, from) => {
    +  const { title } = to.meta
    +  document.title = title || '默认标题'
    +})

    或者判断是否需要登录:

    ts
    router.beforeEach((to, from) => {
    +  const { isNoLogin } = to.meta
    +  if (!isNoLogin) return '/login'
    +})

    或者针对一些需要 ID 参数,但参数丢失的路由做拦截,比如:很多网站的文章详情页都是类似 https://example.com/article/123 这样格式的地址,是需要带有文章 ID 作为 URL 的一部分,如果只访问 https://example.com/article 则需要拦截掉。

    这里是关于 article 路由的配置,是有要求 Params 要带上 ID 参数:

    ts
    const routes: Array<RouteRecordRaw> = [
    +  // 这是一个配置了 \`params\` ,访问的时候必须带 \`id\` 的路由
    +  {
    +    path: '/article/:id',
    +    name: 'article',
    +    component: () => import('@views/article.vue'),
    +  },
    +  // ...
    +]

    当路由的 params 丢失的时候,路由记录 matched 是一个空数组,针对这样的情况,就可以配置一个拦截,丢失参数时返回首页:

    ts
    router.beforeEach((to) => {
    +  if (to.name === 'article' && to.matched.length === 0) {
    +    return '/'
    +  }
    +})

    beforeResolve

    全局解析守卫,它会在每次导航时触发,但是在所有组件内守卫和异步路由组件被解析之后,将在确认导航之前被调用。

    这个钩子用的比较少,因为它和 beforeEach 非常相似,相信大部分开发者都是会用 beforeEach 来代替它。

    那么它有什么用?

    它通常会用在一些申请权限的环节,比如一些 H5 页面需要申请系统相机权限、一些微信活动需要申请微信的登录信息授权,获得权限之后才允许获取接口数据和给用户更多的操作,使用 beforeEach 时机太早,使用 afterEach 又有点晚,那么这个钩子的时机就刚刚好。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    用法

    以以前 Vue Router 官网的申请照相机权限的例子来举例:

    ts
    // https://router.vuejs.org/zh/guide/advanced/navigation-guards.html
    +
    +router.beforeResolve(async (to) => {
    +  // 如果路由配置了必须调用相机权限
    +  if (to.meta.requiresCamera) {
    +    // 正常流程,咨询是否允许使用照相机
    +    try {
    +      await askForCameraPermission()
    +    } catch (error) {
    +      // 容错
    +      if (error instanceof NotAllowedError) {
    +        // ... 处理错误,然后取消导航
    +        return false
    +      } else {
    +        // 如果出现意外,则取消导航并抛出错误
    +        throw error
    +      }
    +    }
    +  }
    +})

    afterEach

    全局后置守卫,这也是导航守卫里面用的比较多的一个钩子函数。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    用法

    在刚刚的 钩子的应用场景 里面有个例子,就是每次切换路由都上报一次 PV 数据,类似这种每个路由都要执行一次,但又不必在渲染前操作的,都可以放到后置钩子里去执行。

    笔者之前写过两个数据统计的插件:Vue 版 CNZZ 统计Vue 版百度统计,就是用的这个后置钩子来实现自动上报数据。

    ts
    router.afterEach((to, from) => {
    +  // 上报流量的操作
    +  // ...
    +})

    在组件内使用全局钩子

    上面所讲的都是全局钩子,虽然一般都是在路由文件里使用,但如果有需要,也可以在 .vue 文件里操作。

    TIP

    和路由的渲染不同,渲染是父级路由组件必须带有 <router-view /> 标签才能渲染,但是使用全局钩子不受此限制。

    建议只在一些入口文件里使用,比如 App.vue ,或者是一些全局的 Header.vueFooter.vue 里使用,方便后续维护。

    setup 里,定义一个 router 变量获取路由之后,就可以操作了:

    ts
    import { defineComponent } from 'vue'
    +import { useRouter } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    // 定义路由
    +    const router = useRouter()
    +
    +    // 调用全局钩子
    +    router.beforeEach((to, from) => {
    +      // ...
    +    })
    +  },
    +})

    路由里的独享钩子

    介绍完全局钩子,如果只是有个别路由要做处理,可以使用路由独享的守卫,用来针对个别路由定制一些特殊功能,可以减少在全局钩子里面写一堆判断。

    可用钩子含义触发时机
    beforeEnter路由独享前置守卫在路由跳转前触发

    注:路由独享的钩子,必须配置在 routes 的 JSON 树里面,挂在对应的路由下面(与 pathnamemeta 这些字段同级)。

    beforeEnter ~new

    它和全局钩子 beforeEach 的作用相同,都是在进入路由之前触发,触发时机比 beforeResolve 要早。

    顺序:beforeEach(全局) > beforeEnter(独享) > beforeResolve(全局)。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    TIP

    beforeEach 一样,也是取消了 next,可以通过 return 来代替。

    用法

    比如:整个站点的默认标题都是以 “栏目标题” + “全站关键标题” 的格式作为网页的 Title ,例如 “项目经验 - 程沛权” ,但在首页的时候,想做一些不一样的定制。

    ts
    const routes: Array<RouteRecordRaw> = [
    +  {
    +    path: '/home',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +    // 在这里添加单独的路由守卫
    +    beforeEnter: (to, from) => {
    +      document.title = '程沛权 - 养了三只猫'
    +    },
    +  },
    +]

    就可以通过 beforeEnter 来实现一些个别路由的单独定制。

    TIP

    需要注意的是,只有从不同的路由切换进来,才会触发该钩子。

    针对同一个路由,但是不同的 paramsquery 或者 hash ,都不会重复触发该钩子。

    比如从 https://example.com/article/123 切换到 https://example.com/article/234 是不会触发的。

    其他的用法和 beforeEach 可以说是一样的。

    组件内单独使用 ~new

    组件里除了可以使用全局钩子外,还可以使用组件专属的路由钩子。

    可用钩子含义触发时机
    onBeforeRouteUpdate组件内的更新守卫在当前路由改变,但是该组件被复用时调用
    onBeforeRouteLeave组件内的离开守卫导航离开该组件的对应路由时调用

    TIP

    1、组件内钩子的入参,也都是取消了 next,可以通过 return 来代替。

    2、和其他 Composition API 一样,需要先 import 再操作。

    和旧版路由不同,新版的 Composition API 移除了 beforeRouteEnter 这个钩子了。

    onBeforeRouteUpdate

    可以在当前路由改变,但是该组件被复用时,重新调用里面的一些函数用来更新模板数据的渲染。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    用法

    比如一个内容网站,通常在文章详情页底部会有相关阅读推荐,这个时候就会有一个操作场景是,从文章 A 跳转到文章 B。

    比如从 https://example.com/article/111 切去 https://example.com/article/222 ,这种情况就属于 “路由改变,但是组件被复用” 的情况了。

    这种情况下,原本放在 onMounted 里执行数据请求的函数就不会被调用,可以借助该钩子来实现渲染新的文章内容。

    ts
    import { defineComponent, onMounted } from 'vue'
    +import { useRoute, onBeforeRouteUpdate } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    // 其他代码略...
    +
    +    // 查询文章详情
    +    async function queryArticleDetail(id: number) {
    +      // 请求接口数据
    +      const res = await axios({
    +        url: \`/article/\${id}\`,
    +      })
    +      // ...
    +    }
    +
    +    // 组件挂载完成后执行文章内容的请求
    +    // 注意这里是获取 \`route\` 的 \`params\`
    +    onMounted(async () => {
    +      const id = Number(route.params.id) || 0
    +      await queryArticleDetail(id)
    +    })
    +
    +    // 组件被复用时重新请求新的文章内容
    +    onBeforeRouteUpdate(async (to, from) => {
    +      // ID 不变时减少重复请求
    +      if (to.params.id === from.params.id) return
    +
    +      // 注意这里是获取 \`to\` 的 \`params\`
    +      const id = Number(to.params.id) || 0
    +      await queryArticleDetail(id)
    +    })
    +  },
    +})

    onBeforeRouteLeave

    可以在离开当前路由之前,实现一些离开前的判断拦截。

    参数

    参数作用
    to即将要进入的路由对象
    from当前导航正要离开的路由

    用法

    这个离开守卫通常用来禁止用户在还未保存修改前突然离开,可以通过 return false 来取消用户离开当前路由。

    ts
    import { defineComponent } from 'vue'
    +import { onBeforeRouteLeave } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    // 调用离开守卫
    +    onBeforeRouteLeave((to, from) => {
    +      // 弹出一个确认框
    +      const confirmText = '确认要离开吗?您的更改尚未保存!'
    +      const isConfirmLeave = window.confirm(confirmText)
    +
    +      // 当用户点取消时,不离开路由
    +      if (!isConfirmLeave) {
    +        return false
    +      }
    +    })
    +  },
    +})

    路由侦听 ~new

    路由的侦听,可以延续以往的 watch 大法,也可以用全新的 watchEffect

    watch

    在 Vue 2 的时候,侦听路由变化用的最多的就是 watch 了, Vue 3 的 watch API 使用更简单。

    侦听整个路由

    可以跟以前一样,直接侦听整个路由的变化:

    ts
    import { defineComponent, watch } from 'vue'
    +import { useRoute } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    const route = useRoute()
    +
    +    // 侦听整个路由
    +    watch(route, (to, from) => {
    +      // 处理一些事情
    +      // ...
    +    })
    +  },
    +})

    第一个参数传入整个路由;第二个参数是个 Callback ,可以获取 tofrom 来判断路由变化情况。

    侦听路由的某个数据

    如果只想侦听路由的某个数据变化,比如侦听一个 Query ,或者一个 Param ,可以采用这种方式:

    ts
    import { defineComponent, watch } from 'vue'
    +import { useRoute } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    const route = useRoute()
    +
    +    // 侦听路由参数的变化
    +    watch(
    +      () => route.query.id,
    +      () => {
    +        console.log('侦听到 ID 变化')
    +      }
    +    )
    +  },
    +})

    第一个参数传入一个 getter 函数, return 要侦听的值;第二个参数是个 Callback ,可以针对参数变化进行一些操作。

    watchEffect

    这是 Vue 3 新出的一个侦听函数,可以简化 watch 的行为。

    比如定义了一个函数,通过路由的参数来获取文章 ID ,然后请求文章内容:

    ts
    import { defineComponent, watchEffect } from 'vue'
    +import { useRoute } from 'vue-router'
    +
    +export default defineComponent({
    +  setup() {
    +    const route = useRoute()
    +
    +    // 从接口查询文章详情
    +    async function queryArticleDetail() {
    +      const id = Number(route.params.id) || 0
    +      console.log('文章 ID 是:', id)
    +
    +      const res = await axios({
    +        url: \`/article/\${id}\`,
    +      })
    +      // ...
    +    }
    +
    +    // 直接侦听包含路由参数的那个函数
    +    watchEffect(queryArticleDetail)
    +  },
    +})

    对比 watch 的使用, watchEffect 在操作上更加简单,把包含要被侦听数据的函数,当成它的入参传进去即可。

    部署问题与服务端配置

    通常使用路由的 Hash 模式,部署后有问题的情况很少,但是如果使用 History 模式,可能会遇到这样那样的问题。

    常见部署问题

    这里整理一些常见部署问题的原因分析和解决方案,可作参考。

    页面刷新就 404

    页面部署到服务端之后,访问首页正常;通过导航上面的链接进行路由跳转,也正常;但是刷新页面就变成 404 了。

    问题原因

    一般这种情况是路由开启了 History 模式,但是服务端没有配置功能支持。

    解决方案

    请根据 服务端配置 部分的说明,与的运维同事沟通,让他帮忙修改服务端的配置。

    部分路由白屏

    如果在项目配置文件里,把里面的 publicPath (使用 Vue CLI ) 或者 base (使用 Vite ) 配置成相对路径 ./ ,但是路由配置了二级或以上,那么就会出现这个问题。

    问题原因

    原因是打包后的 JS 、 CSS 等静态资源都是存放在项目根目录下,一级路由的 ./ 就是根目录,所以访问正常;而二级路由的 ./ 则不是根目录了,是从当前目录载入的 ,这就导致无法正确载入 JS 文件,从而导致了白屏。

    假设项目域名是 https://example.com ,那么:

    • 一级路由是 https://example.com/home
    • 二级路由是 https://example.com/foo/bar
    • 假设打包后的 JS 文件等静态资产存放于 https://example.com/assets/ 文件夹下

    访问一级路由时, ./ 访问到的 JS 文件是 https://example.com/assets/home.js ,所以一级路由可以正常访问到。

    访问二级路由时, ./ 访问到的 JS 文件是 https://example.com/foo/assets/bar.js ,但实际上文件是存放在 https://example.com/assets/bar.js ,访问到的 URL 资源不存在,所以白屏了。

    解决方案

    如果的项目开启了 History 模式,并且配置有二级或者二级以上的路由时,不要使用 ./ 这样的相对路径。

    正确的方式应该是修改 publicPath (使用 Vue CLI ) 或者 base (使用 Vite ),如果是部署在域名根目录则写 / ,如果是子目录,则按照子目录的格式,将其以 / 开头,以 / 结尾的形式配置( e.g. /hello-world/

    服务端配置方案

    如果使用的是 HTML5 的 History 模式,那么服务端也需要配置对应的支持,否则会出现路由跳转正常,但页面一刷新就 404 的情况。

    TIP

    服务端配置后,就不再进入 404 了,需要在项目里手动配置 404 路由页面 的路由。

    Nginx

    现在大部分公司的服务程序都在使用 Nginx ,可以将以下代码发给运维工程师参考,调整 Nginx 的配置:

    nginx
    location / {
    +  try_files $uri $uri/ /index.html;
    +}

    Express

    如果是前端工程师使用 Node.js 作服务端,并且使用了 Express 服务端框架,那么操作将变得更简单:

    1. 仅需要安装一个中间件
    bash
    npm install connect-history-api-fallback
    1. 在服务启动入口文件里导入该中间件并激活
    js
    const express = require('express')
    +const history = require('connect-history-api-fallback')
    +
    +// 创建 Express 实例
    +const app = express()
    +app
    +  // 启用 History 中间件
    +  .use(history())
    +  // 这里是读取打包后的页面文件目录
    +  .use('/', express.static(resolve('../dist')))

    更多用法可以看: connect-history-api-fallback 的文档。

    更多方案

    其他的诸如 Apache 、 IIS 、或者原生 Node 等等配置方案, Vue 官方都提供了对应的演示代码,点击查看更多配置方案: 服务器配置示例

    `,339);function i(C,A,d,h,u,g){const l=a("ReadingTips"),o=a("GitalkComment"),p=a("ClientOnly");return t(),c("div",null,[D,s(l),F,s(p,null,{default:r(()=>[s(o,{issueId:47})]),_:1})])}const b=e(y,[["render",i]]);export{m as __pageData,b as default}; diff --git a/assets/style.dfe14009.css b/assets/style.dfe14009.css new file mode 100644 index 00000000..69b7e629 --- /dev/null +++ b/assets/style.dfe14009.css @@ -0,0 +1,8 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-gray: #8e8e93;--vp-c-text-light-1: rgba(60, 60, 67);--vp-c-text-light-2: rgba(60, 60, 67, .75);--vp-c-text-light-3: rgba(60, 60, 67, .33);--vp-c-text-dark-1: rgba(255, 255, 245, .86);--vp-c-text-dark-2: rgba(235, 235, 245, .6);--vp-c-text-dark-3: rgba(235, 235, 245, .38);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #d97706;--vp-c-yellow-light: #f59e0b;--vp-c-yellow-lighter: #fbbf24;--vp-c-yellow-dark: #b45309;--vp-c-yellow-darker: #92400e;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5);--vp-c-sponsor: #db2777}:root{--vp-c-bg: #ffffff;--vp-c-bg-elv: #ffffff;--vp-c-bg-elv-up: #ffffff;--vp-c-bg-elv-down: #f6f6f7;--vp-c-bg-elv-mute: #f6f6f7;--vp-c-bg-soft: #f6f6f7;--vp-c-bg-soft-up: #f9f9fa;--vp-c-bg-soft-down: #e3e3e5;--vp-c-bg-soft-mute: #e3e3e5;--vp-c-bg-alt: #f6f6f7;--vp-c-border: rgba(60, 60, 67, .29);--vp-c-divider: rgba(60, 60, 67, .12);--vp-c-gutter: rgba(60, 60, 67, .12);--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-code: #476582;--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-mute: #f6f6f7;--vp-c-mute-light: #f9f9fc;--vp-c-mute-lighter: #ffffff;--vp-c-mute-dark: #e3e3e5;--vp-c-mute-darker: #d7d7d9}.dark{--vp-c-bg: #1e1e20;--vp-c-bg-elv: #252529;--vp-c-bg-elv-up: #313136;--vp-c-bg-elv-down: #1e1e20;--vp-c-bg-elv-mute: #313136;--vp-c-bg-soft: #252529;--vp-c-bg-soft-up: #313136;--vp-c-bg-soft-down: #1e1e20;--vp-c-bg-soft-mute: #313136;--vp-c-bg-alt: #161618;--vp-c-border: rgba(82, 82, 89, .68);--vp-c-divider: rgba(82, 82, 89, .32);--vp-c-gutter: #000000;--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-code: #c9def1;--vp-c-mute: #313136;--vp-c-mute-light: #3a3a3c;--vp-c-mute-lighter: #505053;--vp-c-mute-dark: #2c2c30;--vp-c-mute-darker: #252529}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-layout-top: 30;--vp-z-index-backdrop: 40;--vp-z-index-sidebar: 50;--vp-z-index-footer: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-c-code-dimm: var(--vp-c-text-dark-3);--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292b30;--vp-code-block-bg-light: #1e1e20;--vp-code-block-divider-color: #000000;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-line-diff-add-color: var(--vp-c-green-dimm-2);--vp-code-line-diff-add-symbol-color: var(--vp-c-green);--vp-code-line-diff-remove-color: var(--vp-c-red-dimm-2);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red);--vp-code-line-warning-color: var(--vp-c-yellow-dimm-2);--vp-code-line-error-color: var(--vp-c-red-dimm-2);--vp-code-copy-code-border-color: transparent;--vp-code-copy-code-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2);--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-dark-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-bar-color: var(--vp-c-brand)}.dark{--vp-code-block-bg: #161618}:root:not(.dark) .vp-adaptive-theme{--vp-c-code-dimm: var(--vp-c-text-2);--vp-code-block-color: var(--vp-c-text-1);--vp-code-block-bg: #f8f8f8;--vp-code-block-divider-color: var(--vp-c-divider);--vp-code-line-highlight-color: #ececec;--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-copy-code-bg: #e2e2e2;--vp-code-copy-code-hover-bg: #dcdcdc;--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-tab-divider: var(--vp-c-divider);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1)}:root{--vp-button-brand-border: var(--vp-c-brand-lighter);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-dark);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-darker);--vp-button-alt-border: var(--vp-c-border);--vp-button-alt-text: var(--vp-c-neutral);--vp-button-alt-bg: var(--vp-c-mute);--vp-button-alt-hover-border: var(--vp-c-border);--vp-button-alt-hover-text: var(--vp-c-neutral);--vp-button-alt-hover-bg: var(--vp-c-mute-dark);--vp-button-alt-active-border: var(--vp-c-border);--vp-button-alt-active-text: var(--vp-c-neutral);--vp-button-alt-active-bg: var(--vp-c-mute-darker);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-border);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-bg-soft-up);--vp-custom-block-info-code-bg: var(--vp-c-bg-soft);--vp-custom-block-tip-border: var(--vp-c-green);--vp-custom-block-tip-text: var(--vp-c-green-dark);--vp-custom-block-tip-bg: var(--vp-c-bg-soft-up);--vp-custom-block-tip-code-bg: var(--vp-c-bg-soft);--vp-custom-block-warning-border: var(--vp-c-yellow);--vp-custom-block-warning-text: var(--vp-c-yellow);--vp-custom-block-warning-bg: var(--vp-c-bg-soft-up);--vp-custom-block-warning-code-bg: var(--vp-c-bg-soft);--vp-custom-block-danger-border: var(--vp-c-red);--vp-custom-block-danger-text: var(--vp-c-red);--vp-custom-block-danger-bg: var(--vp-c-bg-soft-up);--vp-custom-block-danger-code-bg: var(--vp-c-bg-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-hover-border-color: var(--vp-c-gray);--vp-input-switch-bg-color: var(--vp-c-mute)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: var(--vp-c-border);--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-bg-soft-up);--vp-badge-tip-border: var(--vp-c-green-dark);--vp-badge-tip-text: var(--vp-c-green);--vp-badge-tip-bg: var(--vp-c-green-dimm-1);--vp-badge-warning-border: var(--vp-c-yellow-dark);--vp-badge-warning-text: var(--vp-c-yellow);--vp-badge-warning-bg: var(--vp-c-yellow-dimm-1);--vp-badge-danger-border: var(--vp-c-red-dark);--vp-badge-danger-text: var(--vp-c-red);--vp-badge-danger-bg: var(--vp-c-red-dimm-1)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand);--vp-local-search-highlight-bg: var(--vp-c-green-lighter);--vp-local-search-highlight-text: var(--vp-c-black)}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600}.custom-block a:hover{text-decoration:underline}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:absolute;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:1px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-]{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active{display:block}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{text-decoration:underline}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600}.vp-doc .custom-block a:hover{text-decoration:underline}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;left:-65px;display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-code-dimm);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-soft-down)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-1aa52f9a]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:10px;padding:0 8px;line-height:18px;font-size:12px;font-weight:600;transform:translateY(-2px)}h1 .VPBadge[data-v-1aa52f9a],h2 .VPBadge[data-v-1aa52f9a],h3 .VPBadge[data-v-1aa52f9a],h4 .VPBadge[data-v-1aa52f9a],h5 .VPBadge[data-v-1aa52f9a],h6 .VPBadge[data-v-1aa52f9a]{vertical-align:text-top}h2 .VPBadge[data-v-1aa52f9a]{border-radius:11px;line-height:20px}.VPBadge.info[data-v-1aa52f9a]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-1aa52f9a]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-1aa52f9a]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-1aa52f9a]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c6055897]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c6055897],.VPBackdrop.fade-leave-to[data-v-c6055897]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c6055897]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c6055897]{display:none}}.NotFound[data-v-35559be6]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-35559be6]{padding:96px 32px 168px}}.code[data-v-35559be6]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-35559be6]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-35559be6]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-35559be6]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-35559be6]{padding-top:20px}.link[data-v-35559be6]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-35559be6]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.root[data-v-748e15f2]{position:relative;z-index:1}.nested[data-v-748e15f2]{padding-left:13px}.outline-link[data-v-748e15f2]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:500}.outline-link[data-v-748e15f2]:hover,.outline-link.active[data-v-748e15f2]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-748e15f2]{padding-left:13px}.VPDocAsideOutline[data-v-bd3a7332]{display:none}.VPDocAsideOutline.has-outline[data-v-bd3a7332]{display:block}.content[data-v-bd3a7332]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-bd3a7332]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-bd3a7332]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-61b1a3c5]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-61b1a3c5]{flex-grow:1}.VPDocAside[data-v-61b1a3c5] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-61b1a3c5] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-61b1a3c5] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-06008453]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-06008453]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-4a75099f]{margin-top:64px}.edit-info[data-v-4a75099f]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-4a75099f]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-4a75099f]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-4a75099f]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-4a75099f]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-4a75099f]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-4a75099f]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-4a75099f]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-4a75099f]:hover{border-color:var(--vp-c-brand)}.pager-link.next[data-v-4a75099f]{margin-left:auto;text-align:right}.desc[data-v-4a75099f]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-4a75099f]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDocOutlineDropdown[data-v-ff90d418]{margin-bottom:42px}.VPDocOutlineDropdown button[data-v-ff90d418]{display:block;font-size:14px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;border:1px solid var(--vp-c-border);padding:4px 12px;border-radius:8px}.VPDocOutlineDropdown button[data-v-ff90d418]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-ff90d418]{color:var(--vp-c-text-1)}.icon[data-v-ff90d418]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-ff90d418] .outline-link{font-size:13px}.open>.icon[data-v-ff90d418]{transform:rotate(90deg)}.items[data-v-ff90d418]{margin-top:10px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-ff46f99c]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-ff46f99c]{display:none}@media (min-width: 960px) and (max-width: 1279px){.VPDoc .VPDocOutlineDropdown[data-v-ff46f99c]{display:block}}@media (min-width: 768px){.VPDoc[data-v-ff46f99c]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-ff46f99c]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-ff46f99c]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-ff46f99c]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-ff46f99c]{display:flex;justify-content:center}.VPDoc .aside[data-v-ff46f99c]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-ff46f99c]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-ff46f99c]{max-width:1104px}}.container[data-v-ff46f99c]{margin:0 auto;width:100%}.aside[data-v-ff46f99c]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-ff46f99c]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-ff46f99c]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-ff46f99c]::-webkit-scrollbar{display:none}.aside-curtain[data-v-ff46f99c]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-ff46f99c]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-ff46f99c]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-ff46f99c]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-ff46f99c]{order:1;margin:0;min-width:640px}}.content-container[data-v-ff46f99c]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-ff46f99c]{max-width:688px}.external-link-icon-enabled[data-v-ff46f99c] :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.VPButton[data-v-fceb97bb]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-fceb97bb]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-fceb97bb]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-fceb97bb]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-fceb97bb]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-fceb97bb]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-fceb97bb]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-fceb97bb]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-fceb97bb]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-fceb97bb]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-fceb97bb]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-fceb97bb]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-fceb97bb]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-d79cd251]{display:none}.dark .VPImage.light[data-v-d79cd251]{display:none}.VPHero[data-v-d29a3d56]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-d29a3d56]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-d29a3d56]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-d29a3d56]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-d29a3d56]{flex-direction:row}}.main[data-v-d29a3d56]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-d29a3d56]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-d29a3d56]{text-align:left}}@media (min-width: 960px){.main[data-v-d29a3d56]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-d29a3d56]{max-width:592px}}.name[data-v-d29a3d56],.text[data-v-d29a3d56]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-d29a3d56],.VPHero.has-image .text[data-v-d29a3d56]{margin:0 auto}.name[data-v-d29a3d56]{color:var(--vp-home-hero-name-color)}.clip[data-v-d29a3d56]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-d29a3d56],.text[data-v-d29a3d56]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-d29a3d56],.text[data-v-d29a3d56]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-d29a3d56],.VPHero.has-image .text[data-v-d29a3d56]{margin:0}}.tagline[data-v-d29a3d56]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-d29a3d56]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-d29a3d56]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-d29a3d56]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-d29a3d56]{margin:0}}.actions[data-v-d29a3d56]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-d29a3d56]{justify-content:center}@media (min-width: 640px){.actions[data-v-d29a3d56]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-d29a3d56]{justify-content:flex-start}}.action[data-v-d29a3d56]{flex-shrink:0;padding:6px}.image[data-v-d29a3d56]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-d29a3d56]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-d29a3d56]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-d29a3d56]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-d29a3d56]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-d29a3d56]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-d29a3d56]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-d29a3d56]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-d29a3d56]{width:320px;height:320px}}[data-v-d29a3d56] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-d29a3d56] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-d29a3d56] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-cf6e479c]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-cf6e479c]:hover{border-color:var(--vp-c-brand);background-color:var(--vp-c-bg-soft-up)}.box[data-v-cf6e479c]{display:flex;flex-direction:column;padding:24px;height:100%}.VPFeature[data-v-cf6e479c] .VPImage{width:48px;height:48px;margin-bottom:20px}.icon[data-v-cf6e479c]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-bg-soft-down);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-cf6e479c]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-cf6e479c]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-cf6e479c]{padding-top:8px}.link-text-value[data-v-cf6e479c]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.link-text-icon[data-v-cf6e479c]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-8ce6a87c]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-8ce6a87c]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-8ce6a87c]{padding:0 64px}}.container[data-v-8ce6a87c]{margin:0 auto;max-width:1152px}.items[data-v-8ce6a87c]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-8ce6a87c]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-8ce6a87c],.item.grid-4[data-v-8ce6a87c],.item.grid-6[data-v-8ce6a87c]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-8ce6a87c],.item.grid-4[data-v-8ce6a87c]{width:50%}.item.grid-3[data-v-8ce6a87c],.item.grid-6[data-v-8ce6a87c]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-8ce6a87c]{width:25%}}.VPHome[data-v-5d1897af]{padding-bottom:96px}.VPHome[data-v-5d1897af] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-5d1897af]{padding-bottom:128px}}.VPContent[data-v-35450758]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-35450758]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-35450758]{margin:0}@media (min-width: 960px){.VPContent[data-v-35450758]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-35450758]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-35450758]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-a51421e3]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-a51421e3]{display:none}@media (min-width: 768px){.VPFooter[data-v-a51421e3]{padding:32px}}.container[data-v-a51421e3]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-a51421e3],.copyright[data-v-a51421e3]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-e7d97842]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-e7d97842]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-e7d97842]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-e7d97842]{color:var(--vp-c-text-1)}.icon[data-v-e7d97842]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-e7d97842] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-e7d97842]{transform:rotate(90deg)}.items[data-v-e7d97842]{position:absolute;left:20px;right:20px;top:64px;background-color:var(--vp-local-nav-bg-color);padding:4px 10px 16px;border:1px solid var(--vp-c-divider);border-radius:8px;max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.top-link[data-v-e7d97842]{display:block;color:var(--vp-c-brand);font-size:13px;font-weight:500;padding:6px 0;margin:0 13px 10px;border-bottom:1px solid var(--vp-c-divider)}.flyout-enter-active[data-v-e7d97842]{transition:all .2s ease-out}.flyout-leave-active[data-v-e7d97842]{transition:all .15s ease-in}.flyout-enter-from[data-v-e7d97842],.flyout-leave-to[data-v-e7d97842]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-341c3ee5]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--vp-c-gutter);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-341c3ee5]{position:fixed}.VPLocalNav.reached-top[data-v-341c3ee5]{border-top-color:transparent}@media (min-width: 960px){.VPLocalNav[data-v-341c3ee5]{display:none}}.menu[data-v-341c3ee5]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-341c3ee5]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-341c3ee5]{padding:0 32px}}.menu-icon[data-v-341c3ee5]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-341c3ee5]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-341c3ee5]{padding:12px 32px 11px}}.VPSwitch[data-v-40b19bac]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s}.VPSwitch[data-v-40b19bac]:hover{border-color:var(--vp-input-hover-border-color)}.check[data-v-40b19bac]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s}.icon[data-v-40b19bac]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-40b19bac] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-40b19bac] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-535a86eb]{opacity:1}.moon[data-v-535a86eb],.dark .sun[data-v-535a86eb]{opacity:0}.dark .moon[data-v-535a86eb]{opacity:1}.dark .VPSwitchAppearance[data-v-535a86eb] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-c4c830a7]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-c4c830a7]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-2b1427af]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-2b1427af]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-2b1427af]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-elv-mute)}.link.active[data-v-2b1427af]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-f69155d8]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-f69155d8]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-f69155d8]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-f69155d8]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-bcc9fed1]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-bcc9fed1] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-bcc9fed1] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-bcc9fed1] .group:last-child{padding-bottom:0}.VPMenu[data-v-bcc9fed1] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-bcc9fed1] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-bcc9fed1] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-bcc9fed1] .action{padding-left:24px}.VPFlyout[data-v-87f2bbca]{position:relative}.VPFlyout[data-v-87f2bbca]:hover{color:var(--vp-c-brand);transition:color .25s}.VPFlyout:hover .text[data-v-87f2bbca]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-87f2bbca]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-87f2bbca]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-87f2bbca]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-87f2bbca],.button[aria-expanded=true]+.menu[data-v-87f2bbca]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-87f2bbca]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-87f2bbca]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-87f2bbca]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-87f2bbca]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-87f2bbca]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-87f2bbca]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-39e5dc3a]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-39e5dc3a]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-39e5dc3a]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-726a530e]{display:flex;justify-content:center}.VPNavBarExtra[data-v-4b777cbc]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-4b777cbc]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-4b777cbc]{display:none}}.trans-title[data-v-4b777cbc]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-4b777cbc],.item.social-links[data-v-4b777cbc]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-4b777cbc]{min-width:176px}.appearance-action[data-v-4b777cbc]{margin-right:-2px}.social-links-list[data-v-4b777cbc]{margin:-4px -8px}.VPNavBarHamburger[data-v-1363b7e8]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-1363b7e8]{display:none}}.container[data-v-1363b7e8]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-1363b7e8]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-1363b7e8]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-1363b7e8]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-1363b7e8]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-1363b7e8]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-1363b7e8]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-1363b7e8],.VPNavBarHamburger.active:hover .middle[data-v-1363b7e8],.VPNavBarHamburger.active:hover .bottom[data-v-1363b7e8]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-1363b7e8],.middle[data-v-1363b7e8],.bottom[data-v-1363b7e8]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-1363b7e8]{top:0;left:0;transform:translate(0)}.middle[data-v-1363b7e8]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-1363b7e8]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-6b3352fb]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-6b3352fb],.VPNavBarMenuLink[data-v-6b3352fb]:hover{color:var(--vp-c-brand)}.VPNavBarMenu[data-v-bc887b7f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-bc887b7f]{display:flex}}/*! @docsearch/css 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-soft-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:1px;letter-spacing:-12px;color:transparent}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:var(--vp-meta-key);font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-soft-mute)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-ed745fe3]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-ed745fe3]{display:flex;align-items:center}}.title[data-v-edfdb996]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-edfdb996]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-edfdb996]{border-bottom-color:var(--vp-c-divider)}}[data-v-edfdb996] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-e2ffc50f]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-e2ffc50f]{display:flex;align-items:center}}.title[data-v-e2ffc50f]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-cf1858b3]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap}@media (min-width: 768px){.VPNavBar[data-v-cf1858b3]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-cf1858b3]{padding:0}.VPNavBar.fill[data-v-cf1858b3]:not(.has-sidebar){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-cf1858b3]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-cf1858b3],.container>.content[data-v-cf1858b3]{pointer-events:none}.container[data-v-cf1858b3] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-cf1858b3]{max-width:100%}}.title[data-v-cf1858b3]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-cf1858b3]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-cf1858b3]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-cf1858b3]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-cf1858b3]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-cf1858b3]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-cf1858b3]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .content-body[data-v-cf1858b3],.VPNavBar.fill .content-body[data-v-cf1858b3]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 768px){.content-body[data-v-cf1858b3]{column-gap:.5rem}}.menu+.translations[data-v-cf1858b3]:before,.menu+.appearance[data-v-cf1858b3]:before,.menu+.social-links[data-v-cf1858b3]:before,.translations+.appearance[data-v-cf1858b3]:before,.appearance+.social-links[data-v-cf1858b3]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-cf1858b3]:before,.translations+.appearance[data-v-cf1858b3]:before{margin-right:16px}.appearance+.social-links[data-v-cf1858b3]:before{margin-left:16px}.social-links[data-v-cf1858b3]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-cf1858b3]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-cf1858b3]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-cf1858b3]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenMenuLink[data-v-067d5c32]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-067d5c32]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-7f48e5dc]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-7f48e5dc]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-5def7a83]{display:block}.title[data-v-5def7a83]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-90941ff9]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-90941ff9]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-90941ff9]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-90941ff9]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-90941ff9]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-90941ff9]{transform:rotate(45deg)}.button[data-v-90941ff9]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-90941ff9]:hover{color:var(--vp-c-brand)}.button-icon[data-v-90941ff9]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-90941ff9]:first-child{padding-top:0}.group+.group[data-v-90941ff9],.group+.item[data-v-90941ff9]{padding-top:4px}.VPNavScreenAppearance[data-v-a4ad84ce]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-a4ad84ce]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenTranslations[data-v-bd8c50c0]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-bd8c50c0]{height:auto}.title[data-v-bd8c50c0]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-bd8c50c0]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-bd8c50c0]{margin-right:8px}.icon.chevron[data-v-bd8c50c0]{margin-left:4px}.list[data-v-bd8c50c0]{padding:4px 0 0 24px}.link[data-v-bd8c50c0]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-b67951f6]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-b67951f6],.VPNavScreen.fade-leave-active[data-v-b67951f6]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-b67951f6],.VPNavScreen.fade-leave-active .container[data-v-b67951f6]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-b67951f6],.VPNavScreen.fade-leave-to[data-v-b67951f6]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-b67951f6],.VPNavScreen.fade-leave-to .container[data-v-b67951f6]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-b67951f6]{display:none}}.container[data-v-b67951f6]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-b67951f6],.menu+.appearance[data-v-b67951f6],.translations+.appearance[data-v-b67951f6]{margin-top:24px}.menu+.social-links[data-v-b67951f6]{margin-top:16px}.appearance+.social-links[data-v-b67951f6]{margin-top:16px}.VPNav[data-v-640c0ee4]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-640c0ee4]{position:fixed}}.VPSidebarItem.level-0[data-v-db75407b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-db75407b]{padding-bottom:10px}.item[data-v-db75407b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-db75407b]{cursor:pointer}.indicator[data-v-db75407b]{position:absolute;top:6px;bottom:6px;left:-17px;width:1px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-db75407b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-db75407b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-db75407b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-db75407b]{background-color:var(--vp-c-brand)}.link[data-v-db75407b]{display:flex;align-items:center;flex-grow:1}.text[data-v-db75407b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-db75407b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-db75407b],.VPSidebarItem.level-2 .text[data-v-db75407b],.VPSidebarItem.level-3 .text[data-v-db75407b],.VPSidebarItem.level-4 .text[data-v-db75407b],.VPSidebarItem.level-5 .text[data-v-db75407b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-db75407b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-db75407b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-db75407b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-db75407b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-db75407b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-db75407b]{color:var(--vp-c-brand)}.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-db75407b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-db75407b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-db75407b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-db75407b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-db75407b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-db75407b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-db75407b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-db75407b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-db75407b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-db75407b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-db75407b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-db75407b]{color:var(--vp-c-brand)}.caret[data-v-db75407b]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-db75407b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-db75407b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-db75407b]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-db75407b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-db75407b],.VPSidebarItem.level-2 .items[data-v-db75407b],.VPSidebarItem.level-3 .items[data-v-db75407b],.VPSidebarItem.level-4 .items[data-v-db75407b],.VPSidebarItem.level-5 .items[data-v-db75407b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-db75407b]{display:none}.VPSidebar[data-v-4489ee23]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-4489ee23]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-4489ee23]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-4489ee23]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-4489ee23]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-4489ee23]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-4489ee23]{outline:0}.group+.group[data-v-4489ee23]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-4489ee23]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-9fa85018]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-9fa85018]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-9fa85018]{top:14px;left:16px}}.Layout[data-v-1f16208e]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-6c7fa9e1]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-6c7fa9e1]{margin:0 auto;max-width:1152px}.love[data-v-6c7fa9e1]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-6c7fa9e1]{width:28px;height:28px;fill:currentColor}.message[data-v-6c7fa9e1]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-6c7fa9e1]{padding-top:32px}.action[data-v-6c7fa9e1]{padding-top:40px;text-align:center}.VPTeamPage[data-v-a1dbfdab]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-a1dbfdab]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-a1dbfdab-s],.VPTeamMembers+.VPTeamPageSection[data-v-a1dbfdab-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-a1dbfdab-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-a1dbfdab-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-a1dbfdab-s],.VPTeamMembers+.VPTeamPageSection[data-v-a1dbfdab-s]{margin-top:96px}}.VPTeamMembers[data-v-a1dbfdab-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-a1dbfdab-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-a1dbfdab-s]{padding:0 64px}}.VPTeamPageTitle[data-v-4231b9dc]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-4231b9dc]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-4231b9dc]{padding:80px 64px 48px}}.title[data-v-4231b9dc]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-4231b9dc]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-4231b9dc]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-4231b9dc]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1face36]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1face36]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1face36]{padding:0 64px}}.title[data-v-b1face36]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1face36]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1face36]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1face36]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1face36]{padding-top:40px}.VPTeamMembersItem[data-v-125054c1]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-125054c1]{padding:32px}.VPTeamMembersItem.small .data[data-v-125054c1]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-125054c1]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-125054c1]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-125054c1]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-125054c1]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-125054c1]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-125054c1]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-125054c1]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-125054c1]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-125054c1]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-125054c1]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-125054c1]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-125054c1]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-125054c1]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-125054c1]{text-align:center}.avatar[data-v-125054c1]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-125054c1]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-125054c1]{margin:0;font-weight:600}.affiliation[data-v-125054c1]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-125054c1]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-125054c1]:hover{color:var(--vp-c-brand)}.desc[data-v-125054c1]{margin:0 auto}.desc[data-v-125054c1] a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.links[data-v-125054c1]{display:flex;justify-content:center;height:56px}.sp-link[data-v-125054c1]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-125054c1]:hover,.sp .sp-link.link[data-v-125054c1]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-125054c1]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-d11b4b54]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-d11b4b54]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-d11b4b54]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-d11b4b54]{max-width:876px}.VPTeamMembers.medium .container[data-v-d11b4b54]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-d11b4b54]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-d11b4b54]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-d11b4b54]{max-width:760px}.container[data-v-d11b4b54]{display:grid;gap:24px;margin:0 auto;max-width:1152px}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format("woff")}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-smi,.markdown-body .pl-s .pl-s1{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-s,.markdown-body .pl-pds,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-sr .pl-sra{color:#032f62}.markdown-body .pl-v,.markdown-body .pl-smw{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2:before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent;-webkit-text-decoration-skip:objects}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit}.markdown-body strong{font-weight:bolder}.markdown-body h1{font-size:2em;margin:.67em 0}.markdown-body img{border-style:none}.markdown-body svg:not(:root){overflow:hidden}.markdown-body code,.markdown-body kbd,.markdown-body pre{font-family:monospace,monospace;font-size:1em}.markdown-body hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}.markdown-body input{font:inherit;margin:0}.markdown-body input{overflow:visible}.markdown-body [type=checkbox]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}.markdown-body *{-webkit-box-sizing:border-box;box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border:0;border-bottom:1px solid #dfe2e5}.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ul,.markdown-body ol{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0;font:12px SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body:before{display:table;content:""}.markdown-body:after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0!important}.markdown-body>*:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #959da5;box-shadow:inset 0 -1px #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ul,.markdown-body ol{padding-left:2em}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff}.markdown-body code{padding:.2em 0;margin:0;font-size:85%;background-color:#1b1f230d;border-radius:3px}.markdown-body code:before,.markdown-body code:after{letter-spacing:-.2em;content:" "}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code:before,.markdown-body pre code:after{content:normal}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #c6cbd1;box-shadow:inset 0 -1px #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.gt-container{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px}.gt-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.gt-container a{color:#6190e8}.gt-container a:hover{color:#81a6ed;border-color:#81a6ed}.gt-container a.is--active{color:#333;cursor:default!important}.gt-container a.is--active:hover{color:#333}.gt-container .hide{display:none!important}.gt-container .gt-svg{display:inline-block;width:1em;height:1em;vertical-align:sub}.gt-container .gt-svg svg{width:100%;height:100%;fill:#6190e8}.gt-container .gt-ico{display:inline-block}.gt-container .gt-ico-text{margin-left:.3125em}.gt-container .gt-ico-github,.gt-container .gt-ico-github .gt-svg{width:100%;height:100%}.gt-container .gt-ico-github svg{fill:inherit}.gt-container .gt-spinner{position:relative}.gt-container .gt-spinner:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:3px;width:.75em;height:.75em;margin-top:-.1875em;margin-left:-.375em;border-radius:50%;border:1px solid #fff;border-top-color:#6190e8;-webkit-animation:gt-kf-rotate .6s linear infinite;animation:gt-kf-rotate .6s linear infinite}.gt-container .gt-loader{position:relative;border:1px solid #999;-webkit-animation:ease gt-kf-rotate 1.5s infinite;animation:ease gt-kf-rotate 1.5s infinite;display:inline-block;font-style:normal;width:1.75em;height:1.75em;line-height:1.75em;border-radius:50%}.gt-container .gt-loader:before{content:"";position:absolute;display:block;top:0;left:50%;margin-top:-.1875em;margin-left:-.1875em;width:.375em;height:.375em;background-color:#999;border-radius:50%}.gt-container .gt-avatar{display:inline-block;width:3.125em;height:3.125em}@media (max-width: 479px){.gt-container .gt-avatar{width:2em;height:2em}}.gt-container .gt-avatar img{width:100%;height:auto;border-radius:3px}.gt-container .gt-avatar-github{width:3em;height:3em;cursor:pointer}@media (max-width: 479px){.gt-container .gt-avatar-github{width:1.875em;height:1.875em}}.gt-container .gt-btn{padding:.75em 1.25em;display:inline-block;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;border:1px solid #6190e8;border-radius:5px;background-color:#6190e8;color:#fff;outline:none;font-size:.75em}.gt-container .gt-btn-text{font-weight:400}.gt-container .gt-btn-loading{position:relative;margin-left:.5em;display:inline-block;width:.75em;height:1em;vertical-align:top}.gt-container .gt-btn.is--disable{cursor:not-allowed;opacity:.5}.gt-container .gt-btn-login{margin-right:0}.gt-container .gt-btn-preview{background-color:#fff;color:#6190e8}.gt-container .gt-btn-preview:hover{background-color:#f2f2f2;border-color:#81a6ed}.gt-container .gt-btn-public:hover{background-color:#81a6ed;border-color:#81a6ed}.gt-container .gt-error{text-align:center;margin:.625em;color:#ff3860}.gt-container .gt-initing{padding:1.25em 0;text-align:center}.gt-container .gt-initing-text{margin:.625em auto;font-size:92%}.gt-container .gt-no-init{padding:1.25em 0;text-align:center}.gt-container .gt-link{border-bottom:1px dotted #6190e8}.gt-container .gt-link-counts,.gt-container .gt-link-project{text-decoration:none}.gt-container .gt-meta{margin:1.25em 0;padding:1em 0;border-bottom:1px solid #e9e9e9;font-size:1em;position:relative;z-index:10}.gt-container .gt-meta:before,.gt-container .gt-meta:after{content:" ";display:table}.gt-container .gt-meta:after{clear:both}.gt-container .gt-counts{margin:0 .625em 0 0}.gt-container .gt-user{float:right;margin:0;font-size:92%}.gt-container .gt-user-pic{width:16px;height:16px;vertical-align:top;margin-right:.5em}.gt-container .gt-user-inner{display:inline-block;cursor:pointer}.gt-container .gt-user .gt-ico{margin:0 0 0 .3125em}.gt-container .gt-user .gt-ico svg{fill:inherit}.gt-container .gt-user .is--poping .gt-ico svg{fill:#6190e8}.gt-container .gt-version{color:#a1a1a1;margin-left:.375em}.gt-container .gt-copyright{margin:0 .9375em .5em;border-top:1px solid #e9e9e9;padding-top:.5em}.gt-container .gt-popup{position:absolute;right:0;top:2.375em;background:#fff;display:inline-block;border:1px solid #e9e9e9;padding:.625em 0;font-size:.875em;letter-spacing:.5px}.gt-container .gt-popup .gt-action{cursor:pointer;display:block;margin:.5em 0;padding:0 1.125em;position:relative;text-decoration:none}.gt-container .gt-popup .gt-action.is--active:before{content:"";width:.25em;height:.25em;background:#6190e8;position:absolute;left:.5em;top:.4375em}.gt-container .gt-header{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex}.gt-container .gt-header-comment{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:1.25em}@media (max-width: 479px){.gt-container .gt-header-comment{margin-left:.875em}}.gt-container .gt-header-textarea{padding:.75em;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;min-height:5.125em;max-height:15em;border-radius:5px;border:1px solid rgba(0,0,0,.1);font-size:.875em;word-wrap:break-word;resize:vertical;background-color:#f6f6f6;outline:none;-webkit-transition:all .25s ease;transition:all .25s ease}.gt-container .gt-header-textarea:hover{background-color:#fbfbfb}.gt-container .gt-header-preview{padding:.75em;border-radius:5px;border:1px solid rgba(0,0,0,.1);background-color:#f6f6f6}.gt-container .gt-header-controls{position:relative;margin:.75em 0 0}.gt-container .gt-header-controls:before,.gt-container .gt-header-controls:after{content:" ";display:table}.gt-container .gt-header-controls:after{clear:both}@media (max-width: 479px){.gt-container .gt-header-controls{margin:0}}.gt-container .gt-header-controls-tip{font-size:.875em;color:#6190e8;text-decoration:none;vertical-align:sub}@media (max-width: 479px){.gt-container .gt-header-controls-tip{display:none}}.gt-container .gt-header-controls .gt-btn{float:right;margin-left:1.25em}@media (max-width: 479px){.gt-container .gt-header-controls .gt-btn{float:none;width:100%;margin:.75em 0 0}}.gt-container:after{content:"";position:fixed;bottom:100%;left:0;right:0;top:0;opacity:0}.gt-container.gt-input-focused{position:relative}.gt-container.gt-input-focused:after{content:"";position:fixed;bottom:0%;left:0;right:0;top:0;background:#000;opacity:.6;-webkit-transition:opacity .3s,bottom 0s;transition:opacity .3s,bottom 0s;z-index:9999}.gt-container.gt-input-focused .gt-header-comment{z-index:10000}.gt-container .gt-comments{padding-top:1.25em}.gt-container .gt-comments-null{text-align:center}.gt-container .gt-comments-controls{margin:1.25em 0;text-align:center}.gt-container .gt-comment{position:relative;padding:.625em 0;display:-webkit-box;display:-ms-flexbox;display:flex}.gt-container .gt-comment-content{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:1.25em;padding:.75em 1em;background-color:#f9f9f9;overflow:auto;-webkit-transition:all ease .25s;transition:all ease .25s}.gt-container .gt-comment-content:hover{-webkit-box-shadow:0 .625em 3.75em 0 #f4f4f4;box-shadow:0 .625em 3.75em #f4f4f4}@media (max-width: 479px){.gt-container .gt-comment-content{margin-left:.875em;padding:.625em .75em}}.gt-container .gt-comment-header{margin-bottom:.5em;font-size:.875em;position:relative}.gt-container .gt-comment-block-1{float:right;height:1.375em;width:2em}.gt-container .gt-comment-block-2{float:right;height:1.375em;width:4em}.gt-container .gt-comment-username{font-weight:500;color:#6190e8;text-decoration:none}.gt-container .gt-comment-username:hover{text-decoration:underline}.gt-container .gt-comment-text,.gt-container .gt-comment-date{margin-left:.5em;color:#a1a1a1}.gt-container .gt-comment-like,.gt-container .gt-comment-edit,.gt-container .gt-comment-reply{position:absolute;height:1.375em}.gt-container .gt-comment-like:hover,.gt-container .gt-comment-edit:hover,.gt-container .gt-comment-reply:hover{cursor:pointer}.gt-container .gt-comment-like{top:0;right:2em}.gt-container .gt-comment-edit,.gt-container .gt-comment-reply{top:0;right:0}.gt-container .gt-comment-body{color:#333!important}.gt-container .gt-comment-body .email-hidden-toggle a{display:inline-block;height:12px;padding:0 9px;font-size:12px;font-weight:600;line-height:6px;color:#444d56;text-decoration:none;vertical-align:middle;background:#dfe2e5;border-radius:1px}.gt-container .gt-comment-body .email-hidden-toggle a:hover{background-color:#c6cbd1}.gt-container .gt-comment-body .email-hidden-reply{display:none;white-space:pre-wrap}.gt-container .gt-comment-body .email-hidden-reply .email-signature-reply{padding:0 15px;margin:15px 0;color:#586069;border-left:4px solid #dfe2e5}.gt-container .gt-comment-body .email-hidden-reply.expanded{display:block}.gt-container .gt-comment-admin .gt-comment-content{background-color:#f6f9fe}@-webkit-keyframes gt-kf-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes gt-kf-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.gitalk-container[data-v-c2acb4b7] .gt-container a{color:var(--c-brand)!important}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-header-textarea{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background-color:var(--c-bg-light)}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-svg svg{fill:var(--c-brand)}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-link{border-color:var(--c-brand)}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-btn{background-color:var(--c-brand);border-color:var(--c-brand)}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-btn.gt-btn-preview{color:var(--c-brand);background-color:var(--c-bg)}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-comments .gt-comments-null{color:var(--c-text)}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-comment-content{background-color:var(--c-bg-light);box-shadow:none}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-comment-content .gt-comment-body{color:var(--c-text)!important}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-comment-content blockquote{color:var(--c-text-quote)!important;border:0;background-color:var(--c-bg-lighter);padding:1em;margin-top:1em!important}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-avatar{border-radius:50%;overflow:hidden}.gitalk-container[data-v-c2acb4b7] .gt-container .gt-avatar img{height:100%;object-fit:cover}.img-wrap[data-v-04203bbc]{display:flex;flex-direction:column;flex-shrink:0;align-items:center;width:100%;margin:20px 0}.img-wrap .img[data-v-04203bbc]{width:auto;height:auto;max-width:100%;border-radius:4px}.img-wrap .desc[data-v-04203bbc]{font-size:14px;color:#999;margin:10px 0 0}:root{scroll-behavior:smooth}body{overflow-x:hidden}.vp-doc p,.vp-doc li+li{text-align:justify} diff --git a/assets/typescript.md.e6e7bfb1.js b/assets/typescript.md.e6e7bfb1.js new file mode 100644 index 00000000..c1506400 --- /dev/null +++ b/assets/typescript.md.e6e7bfb1.js @@ -0,0 +1,677 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{v as y,b as D,t as a,O as e,F as s,L as n,X as F,R as p,M as l}from"./chunks/framework.0d8bea05.js";const C=p('

    快速上手 TypeScript

    如果已经看完 工程化的起步准备 一章,相信此时的已经对 Node 工程项目有了足够的认识了,在此之前的所有代码都是使用 JavaScript 编写的,接下来这一节,将开始介绍 TypeScript ,这是一门新的语言,但是上手非常简单。

    TypeScript 简称 TS ,既是一门新语言,也是 JS 的一个超集,它是在 JavaScript 的基础上增加了一套类型系统,它支持所有的 JS 语句,为工程化开发而生,最终在编译的时候去掉类型和特有的语法,生成 JS 代码。

    虽然带有类型系统的前端语言不止 TypeScript (例如 Facebook 推出的 Flow.js ),但从目前整个 开源社区的流行趋势 看, TypeScript 无疑是更好的选择。

    ',4),A=p(`

    而且只要本身已经学会了 JS ,并且经历过很多协作类的项目,那么使用 TS 编程是一个很自然而然的过程。

    为什么需要类型系统

    要想知道自己为什么要用 TypeScript ,得先从 JavaScript 有什么不足说起,举一个非常小的例子:

    js
    function getFirstWord(msg) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World') // 输出 Hello
    +
    +getFirstWord(123) // TypeError: msg.split is not a function

    这里定义了一个用空格切割字符串的方法,并打印出第一个单词:

    1. 第一次执行时,字符串支持 split 方法,所以成功获取到了第一个单词 Hello
    2. 第二次执行时,由于数值不存在 split 方法,所以传入 123 引起了程序崩溃

    这就是 JavaScript 的弊端,过于灵活,没有类型的约束,很容易因为类型的变化导致一些本可避免的 BUG 出现,而且这些 BUG 通常需要在程序运行的时候才会被发现,很容易引发生产事故。

    虽然可以在执行 split 方法之前执行一层判断或者转换,但很明显增加了很多工作量。

    TypeScript 的出现,在编译的时候就可以执行检查来避免掉这些问题,而且配合 VSCode 等编辑器的智能提示,可以很方便的知道每个变量对应的类型。

    Hello TypeScript

    将继续使用 Hello Node 这个 demo ,或者可以再建一个新 demo ,依然是在 src 文件夹下,创建一个 ts 文件夹归类本次的测试文件,然后创建一个 index.ts 文件在 ts 文件夹下。

    TIP

    TypeScript 语言对应的文件扩展名是 .ts

    然后在命令行通过 cd 命令进入项目所在的目录路径,安装 TypeScript 开发的两个主要依赖包:

    1. typescript 这个包是用 TypeScript 编程的语言依赖包

    2. ts-node 是让 Node 可以运行 TypeScript 的执行环境

    bash
    npm install -D typescript ts-node

    这次添加了一个 -D 参数,因为 TypeScript 和 TS-Node 是开发过程中使用的依赖,所以将其添加到 package.json 的 devDependencies 字段里。

    然后修改 scripts 字段,增加一个 dev:ts 的 script :

    json
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "description": "",
    +  "main": "index.js",
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs",
    +    "dev:esm": "node src/esm/index.mjs",
    +    "dev:ts": "ts-node src/ts/index.ts",
    +    "compile": "babel src/babel --out-dir compiled",
    +    "serve": "node server/index.js"
    +  },
    +  "keywords": [],
    +  "author": "",
    +  "license": "ISC",
    +  "dependencies": {
    +    "md5": "^2.3.0"
    +  },
    +  "devDependencies": {
    +    "ts-node": "^10.7.0",
    +    "typescript": "^4.6.3"
    +  }
    +}

    准备工作完毕!

    TIP

    请注意, dev:ts 这个 script 是用了 ts-node 来代替原来在用的 node ,因为使用 node 无法识别 TypeScript 语言。

    为什么需要类型系统 里面提到的例子放到 src/ts/index.ts 里:

    ts
    // src/ts/index.ts
    +function getFirstWord(msg) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')
    +
    +getFirstWord(123)

    然后在命令行运行 npm run dev:ts 来看看这次的结果:

    bash
    TSError:  Unable to compile TypeScript:
    +src/ts/index.ts:1:23 - error TS7006: Parameter 'msg' implicitly has an 'any' type.
    +
    +1 function getFirstWord(msg) {
    +                        ~~~

    这是告知 getFirstWord 的入参 msg 带有隐式 any 类型,这个时候可能还不了解 any 代表什么意思,没关系,来看下如何修正这段代码:

    ts
    // src/ts/index.ts
    +function getFirstWord(msg: string) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')
    +
    +getFirstWord(123)

    留意到没有,现在函数的入参 msg 已经变成了 msg: string ,这是 TypeScript 指定参数为字符串类型的一个写法。

    现在再运行 npm run dev:ts ,上一个错误提示已经不再出现,取而代之的是一个新的报错:

    bash
    TSError:  Unable to compile TypeScript:
    +src/ts/index.ts:7:14 - error TS2345:
    +Argument of type 'number' is not assignable to parameter of type 'string'.
    +
    +7 getFirstWord(123)
    +               ~~~

    这次的报错代码是在 getFirstWord(123) 这里,告诉 number 类型的数据不能分配给 string 类型的参数,也就是故意传入一个会报错的数值进去,被 TypeScript 检查出来了!

    可以再仔细留意一下控制台的信息,会发现没有报错的 getFirstWord('Hello World') 也没有打印出结果,这是因为 TypeScript 需要先被编译成 JavaScript ,然后再执行。

    这个机制让有问题的代码能够被及早发现,一旦代码出现问题,编译阶段就会失败。

    移除会报错的那行代码,只保留如下:

    ts
    // src/ts/index.ts
    +function getFirstWord(msg: string) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')

    再次运行 npm run dev:ts ,这次完美运行!

    ts
    npm run dev:ts
    +
    +> demo@1.0.0 dev:ts
    +> ts-node src/ts/index.ts
    +
    +Hello

    在这个例子里,相信已经感受到 TypeScript 的魅力了!接下来来认识一下不同的 JavaScript 类型,在 TypeScript 里面应该如何定义。

    常用的 TS 类型定义

    Hello TypeScript 的体验中,相信能够感受到 TypeScript 编程带来的好处了,代码的健壮性得到了大大的提升!

    并且应该也能够深刻理解,TypeScript 的类型系统并不会给编程带来极高的门槛或者说开发障碍,这是以非常小的成本换取巨大收益的举措。

    TIP

    如果还没有体验这个 demo ,建议先按教程跑一下,然后来讲解不同的 JavaScript 类型应该如何在 TypeScript 里定义,接下来的时间里,可以一边看,一边在 demo 里实践。

    原始数据类型

    原始数据类型 是一种既非对象也无方法的数据,刚才演示代码里,函数的入参使用的字符串 String 就是原始数据类型之一。

    除了 String ,另外还有数值 Number 、布尔值 Boolean 等等,它们在 TypeScript 都有统一的表达方式,列个表格对比,能够更直观的了解:

    原始数据类型JavaScriptTypeScript
    字符串Stringstring
    数值Numbernumber
    布尔值Booleanboolean
    大整数BigIntbigint
    符号Symbolsymbol
    不存在Nullnull
    未定义Undefinedundefined

    有没有发现窍门?对! TypeScript 对原始数据的类型定义真的是超级简单,就是转为全小写即可!

    举几个例子:

    ts
    // 字符串
    +const str: string = 'Hello World'
    +
    +// 数值
    +const num: number = 1
    +
    +// 布尔值
    +const bool: boolean = true

    不过在实际的编程过程中,原始数据类型的类型定义是可以省略的,因为 TypeScript 会根据声明变量时赋值的类型,自动推导变量类型,也就是可以跟平时写 JavaScript 一样:

    ts
    // 这样也不会报错,因为 TS 会推导它们的类型
    +const str = 'Hello World'
    +const num = 1
    +const bool = true

    数组

    除了原始数据类型之外, JavaScript 还有引用类型,数组 Array 就是其中的一种。

    之所以先讲数组,是因为它在 TS 类型定义的写法上面,可能是最接近原始数据的一个类型了,为什么这么说?还是列个表格,来看一下如何定义数组:

    数组里的数据类型写法 1类型写法 2
    字符串string[]Array<string>
    数值number[]Array<number>
    布尔值boolean[]Array<boolean>
    大整数bigint[]Array<bigint>
    符号symbol[]Array<symbol>
    不存在null[]Array<null>
    未定义undefined[]Array<undefined>

    是吧!就只是在原始数据类型的基础上变化了一下书写格式,就成为了数组的定义!

    笔者最常用的就是 string[] 这样的格式,只需要追加一个方括号 [] ,另外一种写法是基于 TS 的泛型 Array<T> ,两种方式定义出来的类型其实是一样的。

    举几个例子:

    ts
    // 字符串数组
    +const strs: string[] = ['Hello World', 'Hi World']
    +
    +// 数值数组
    +const nums: number[] = [1, 2, 3]
    +
    +// 布尔值数组
    +const bools: boolean[] = [true, true, false]

    在实际的编程过程中,如果数组一开始就有初始数据(数组长度不为 0 ),那么 TypeScript 也会根据数组里面的项目类型,正确自动帮推导这个数组的类型,这种情况下也可以省略类型定义:

    ts
    // 这种有初始项目的数组, TS 也会推导它们的类型
    +const strs = ['Hello World', 'Hi World']
    +const nums = [1, 2, 3]
    +const bools = [true, true, false]

    但是!如果一开始是 [] ,那么就必须显式的指定数组类型(取决于当前项目的 tsconfig.json 配置,可能会引起报错):

    ts
    // 这个时候会认为是 any[] 或者 never[] 类型
    +const nums = []
    +
    +// 这个时候再 push 一个 number 数据进去,也不会使其成为 number[]
    +nums.push(1)

    而对于复杂的数组,比如数组里面的 item 都是对象,其实格式也是一样,只不过把原始数据类型换成 对象的类型 即可,例如 UserItem[] 表示这是一个关于用户的数组列表。

    对象(接口)

    看完了数组,接下来看看对象的用法,对象也是引用类型,在 数组 的最后提到了一个 UserItem[] 的写法,这里的 UserItem 就是一个对象的类型定义。

    如果熟悉 JavaScript ,那么就知道对象的 “键值对” 里面的值,可能是由原始数据、数组、对象组成的,所以在 TypeScript ,类型定义也是需要根据值的类型来确定它的类型,因此定义对象的类型应该是第一个比较有门槛的地方。

    如何定义对象的类型

    对象的类型定义有两个语法支持: typeinterface

    先看看 type 的写法:

    ts
    type UserItem = {
    +  // ...
    +}

    再看看 interface 的写法:

    ts
    interface UserItem {
    +  // ...
    +}

    可以看到它们表面上的区别是一个有 = 号,一个没有,事实上在一般的情况下也确实如此,两者非常接近,但是在特殊的时候也有一定的区别。

    了解接口的使用

    为了降低学习门槛,统一使用 interface 来做入门教学,它的写法与 Object 更为接近,事实上它也被用的更多。

    对象的类型 interface 也叫做接口,用来描述对象的结构。

    TIP

    对象的类型定义通常采用 Upper Camel Case 大驼峰命名法,也就是每个单词的首字母大写,例如 UserItemGameDetail ,这是为了跟普通变量进行区分(变量通常使用 Lower Camel Case 小驼峰写法,也就是第一个单词的首字母小写,其他首字母大写,例如 userItem )。

    这里通过一些举例来带举一反三,随时可以在 demo 里进行代码实践。

    以这个用户信息为例子,比如要描述 Petter 这个用户,他的最基础信息就是姓名和年龄,那么定义为接口就是这么写:

    ts
    // 定义用户对象的类型
    +interface UserItem {
    +  name: string
    +  age: number
    +}
    +
    +// 在声明变量的时候将其关联到类型上
    +const petter: UserItem = {
    +  name: 'Petter',
    +  age: 20,
    +}

    如果需要添加数组、对象等类型到属性里,按照这样继续追加即可。

    可选的接口属性

    注意,上面这样定义的接口类型,表示 nameage 都是必选的属性,不可以缺少,一旦缺少,代码运行起来就会报错!

    src/ts/index.ts 里敲入以下代码,也就是在声明变量的时候故意缺少了 age 属性,来看看会发生什么:

    ts
    // 注意!这是一段会报错的代码
    +
    +interface UserItem {
    +  name: string
    +  age: number
    +}
    +
    +const petter: UserItem = {
    +  name: 'Petter',
    +}

    运行 npm run dev:ts ,会看到控制台给的报错信息,缺少了必选的属性 age

    bash
    src/ts/index.ts:6:7 - error TS2741:
    +Property 'age' is missing in type '{ name: string; }'
    +but required in type 'UserItem'.
    +
    +6 const petter: UserItem = {
    +        ~~~~~~
    +
    +  src/ts/index.ts:3:3
    +    3   age: number
    +        ~~~
    +    'age' is declared here.

    在实际的业务中,有可能会出现一些属性并不是必须的,就像这个年龄,可以将其设置为可选属性,通过添加 ? 来定义。

    请注意下面代码的第三行, age 后面紧跟了一个 ? 号再接 : 号,这是 TypeScript 对象对于可选属性的一个定义方式,这一次这段代码是可以成功运行的!

    ts
    interface UserItem {
    +  name: string
    +  // 这个属性变成了可选
    +  age?: number
    +}
    +
    +const petter: UserItem = {
    +  name: 'Petter',
    +}

    调用自身接口的属性

    如果一些属性的结构跟本身一致,也可以直接引用,比如下面例子里的 friendList 属性,用户的好友列表,它就可以继续使用 UserItem 这个接口作为数组的类型:

    ts
    interface UserItem {
    +  name: string
    +  age: number
    +  enjoyFoods: string[]
    +  // 这个属性引用了本身的类型
    +  friendList: UserItem[]
    +}
    +
    +const petter: UserItem = {
    +  name: 'Petter',
    +  age: 18,
    +  enjoyFoods: ['rice', 'noodle', 'pizza'],
    +  friendList: [
    +    {
    +      name: 'Marry',
    +      age: 16,
    +      enjoyFoods: ['pizza', 'ice cream'],
    +      friendList: [],
    +    },
    +    {
    +      name: 'Tom',
    +      age: 20,
    +      enjoyFoods: ['chicken', 'cake'],
    +      friendList: [],
    +    }
    +  ],
    +}

    接口的继承

    接口还可以继承,比如要对用户设置管理员,管理员信息也是一个对象,但要比普通用户多一个权限级别的属性,那么就可以使用继承,它通过 extends 来实现:

    ts
    interface UserItem {
    +  name: string
    +  age: number
    +  enjoyFoods: string[]
    +  friendList: UserItem[]
    +}
    +
    +// 这里继承了 UserItem 的所有属性类型,并追加了一个权限等级属性
    +interface Admin extends UserItem {
    +  permissionLevel: number
    +}
    +
    +const admin: Admin = {
    +  name: 'Petter',
    +  age: 18,
    +  enjoyFoods: ['rice', 'noodle', 'pizza'],
    +  friendList: [
    +    {
    +      name: 'Marry',
    +      age: 16,
    +      enjoyFoods: ['pizza', 'ice cream'],
    +      friendList: [],
    +    },
    +    {
    +      name: 'Tom',
    +      age: 20,
    +      enjoyFoods: ['chicken', 'cake'],
    +      friendList: [],
    +    }
    +  ],
    +  permissionLevel: 1,
    +}

    如果觉得这个 Admin 类型不需要记录这么多属性,也可以在继承的过程中舍弃某些属性,通过 Omit 帮助类型来实现,Omit 的类型如下:

    ts
    type Omit<T, K extends string | number | symbol>

    其中 T 代表已有的一个对象类型, K 代表要删除的属性名,如果只有一个属性就直接是一个字符串,如果有多个属性,用 | 来分隔开,下面的例子就是删除了两个不需要的属性:

    ts
    interface UserItem {
    +  name: string
    +  age: number
    +  enjoyFoods: string[]
    +  friendList?: UserItem[]
    +}
    +
    +// 这里在继承 UserItem 类型的时候,删除了两个多余的属性
    +interface Admin extends Omit<UserItem, 'enjoyFoods' | 'friendList'> {
    +  permissionLevel: number
    +}
    +
    +// 现在的 admin 就非常精简了
    +const admin: Admin = {
    +  name: 'Petter',
    +  age: 18,
    +  permissionLevel: 1,
    +}

    看到这里并实际体验过的话,在业务中常见的类型定义已经难不倒了!

    类是 JavaScript ES6 推出的一个概念,通过 class 关键字,可以定义一个对象的模板,如果对类还比较陌生的话,可以先阅读一下阮一峰老师的 ES6 文章:Class 的基本语法

    在 TypeScript ,通过类得到的变量,它的类型就是这个类,可能这句话看起来有点难以理解,来看个例子,可以在 demo 里运行它:

    ts
    // 定义一个类
    +class User {
    +  // constructor 上的数据需要先这样定好类型
    +  name: string
    +
    +  // 入参也要定义类型
    +  constructor(userName: string) {
    +    this.name = userName
    +  }
    +
    +  getName() {
    +    console.log(this.name)
    +  }
    +}
    +
    +// 通过 new 这个类得到的变量,它的类型就是这个类
    +const petter: User = new User('Petter')
    +petter.getName() // Petter

    类与类之间可以继承:

    ts
    // 这是一个基础类
    +class UserBase {
    +  name: string
    +  constructor(userName: string) {
    +    this.name = userName
    +  }
    +}
    +
    +// 这是另外一个类,继承自基础类
    +class User extends UserBase {
    +  getName() {
    +    console.log(this.name)
    +  }
    +}
    +
    +// 这个变量拥有上面两个类的所有属性和方法
    +const petter: User = new User('Petter')
    +petter.getName()

    类也可以提供给接口去继承:

    ts
    // 这是一个类
    +class UserBase {
    +  name: string
    +  constructor(userName: string) {
    +    this.name = userName
    +  }
    +}
    +
    +// 这是一个接口,可以继承自类
    +interface User extends UserBase {
    +  age: number
    +}
    +
    +// 这样这个变量就必须同时存在两个属性
    +const petter: User = {
    +  name: 'Petter',
    +  age: 18,
    +}

    如果类上面本身有方法存在,接口在继承的时候也要相应的实现,当然也可以借助在 对象(接口) 提到的 Omit 帮助类型来去掉这些方法。

    ts
    class UserBase {
    +  name: string
    +  constructor(userName: string) {
    +    this.name = userName
    +  }
    +  // 这是一个方法
    +  getName() {
    +    console.log(this.name)
    +  }
    +}
    +
    +// 接口继承类的时候也可以去掉类上面的方法
    +interface User extends Omit<UserBase, 'getName'> {
    +  age: number
    +}
    +
    +// 最终只保留数据属性,不带有方法
    +const petter: User = {
    +  name: 'Petter',
    +  age: 18,
    +}

    联合类型

    阅读到这里,对 JavaScript 的数据和对象如何在 TypeScript 定义类型相信没有太大问题了吧!

    所以这里先插入一个知识点,在介绍 对象(接口) 的类型定义时,提到 Omit 的帮助类型,它的类型里面有一个写法是 string | number | symbol ,这其实是 TypeScript 的一个联合类型。

    当一个变量可能出现多种类型的值的时候,可以使用联合类型来定义它,类型之间用 | 符号分隔。

    举一个简单的例子,下面这个函数接收一个代表 “计数” 的入参,并拼接成一句话打印到控制台,因为最终打印出来的句子是字符串,所以参数没有必要非得是数值,传字符串也是可以的,所以就可以使用联合类型:

    ts
    // 可以在 demo 里运行这段代码
    +function counter(count: number | string) {
    +  console.log(\`The current count is: \${count}.\`)
    +}
    +
    +// 不论传数值还是字符串,都可以达到的目的
    +counter(1)  // The current count is: 1.
    +counter('2')  // The current count is: 2.
    `,117),i=s("p",{class:"custom-block-title"},"TIP",-1),d=s("code",null,"counter",-1),g=s("code",null,"console.log",-1),h=s("a",{href:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals",target:"_blank",rel:"noreferrer"},"模板字符串",-1),u=s("p",null,[n("对 JavaScript 后面推出的新语法不太熟悉的话,很容易和单引号混淆,在学名上,它也被称之为 “反引号” ( Backquote ) ,可以使用标准键盘的 "),s("code",null,"ESC"),n(" 键下方、也就是 "),s("code",null,"1"),n(" 左边的那个按键打出来。")],-1),m=p(`

    在实际的业务场景中,例如 Vue 的路由在不同的数据结构里也有不同的类型,有时候需要通过路由实例来判断是否符合要求的页面,也需要用到这种联合类型:

    ts
    // 注意:这不是完整的代码,只是一个使用场景示例
    +import type { RouteRecordRaw, RouteLocationNormalizedLoaded } from 'vue-router'
    +
    +function isArticle(
    +  route: RouteRecordRaw | RouteLocationNormalizedLoaded
    +): boolean {
    +  // ...
    +}

    再举个例子,是用 Vue 做页面,会涉及到子组件或者 DOM 的操作,当它们还没有渲染出来时,获取到的是 null ,渲染后才能拿到组件或者 DOM 结构,这种场景也可以使用联合类型:

    ts
    // querySelector 拿不到 DOM 的时候返回 null
    +const ele: HTMLElement | null = document.querySelector('.main')

    最后这个使用场景在 Vue 单组件的 DOM 元素与子组件 一节里也有相关的讲解。

    当决定使用联合类型的时候,大部分情况下可能需要对变量做一些类型判断再写逻辑,当然有时候也可以无所谓,就像第一个例子拼接字符串那样。

    这一小节在这里做简单了解即可,因为下面会继续配合不同的知识点把这个联合类型再次拿出来讲,比如 函数的重载 部分。

    函数

    函数是 JavaScript 里最重要的成员之一,所有的功能实现都是基于函数。

    函数的基本的写法

    在 JavaScript ,函数有很多种写法:

    js
    // 注意:这是 JavaScript 代码
    +
    +// 写法一:函数声明
    +function sum1(x, y) {
    +  return x + y
    +}
    +
    +// 写法二:函数表达式
    +const sum2 = function (x, y) {
    +  return x + y
    +}
    +
    +// 写法三:箭头函数
    +const sum3 = (x, y) => x + y
    +
    +// 写法四:对象上的方法
    +const obj = {
    +  sum4(x, y) {
    +    return x + y
    +  },
    +}
    +
    +// 还有很多……

    但其实离不开两个最核心的操作:输入与输出,也就是对应函数的 “入参” 和 “返回值” ,在 TypeScript ,函数本身和 TS 类型有关系的也是在这两个地方。

    函数的入参是把类型写在参数后面,返回值是写在圆括号后面,把上面在 JavaScript 的这几个写法,转换成 TypeScript 看看区别在哪里:

    ts
    // 注意:这是 TypeScript 代码
    +
    +// 写法一:函数声明
    +function sum1(x: number, y: number): number {
    +  return x + y
    +}
    +
    +// 写法二:函数表达式
    +const sum2 = function(x: number, y: number): number {
    +  return x + y
    +}
    +
    +// 写法三:箭头函数
    +const sum3 = (x: number, y: number): number => x + y
    +
    +// 写法四:对象上的方法
    +const obj = {
    +  sum4(x: number, y: number): number {
    +    return x + y
    +  }
    +}
    +
    +// 还有很多……

    是不是一下子 Get 到了技巧!函数的类型定义也是非常的简单,掌握这个技巧可以让解决大部分常见的函数。

    函数的可选参数

    实际业务中会遇到有一些函数入参是可选,可以用和 对象(接口) 一样,用 ? 来定义:

    ts
    // 注意 isDouble 这个入参后面有个 ? 号,表示可选
    +function sum(x: number, y: number, isDouble?: boolean): number {
    +  return isDouble ? (x + y) * 2 : x + y
    +}
    +
    +// 这样传参都不会报错,因为第三个参数是可选的
    +sum(1, 2) // 3
    +sum(1, 2, true) // 6

    TIP

    需要注意的是,可选参数必须排在必传参数的后面。

    无返回值的函数

    除了有返回值的函数,更多时候是不带返回值的,例如下面这个例子,这种函数用 void 来定义它的返回,也就是空。

    ts
    // 注意这里的返回值类型
    +function sayHi(name: string): void {
    +  console.log(\`Hi, \${name}!\`)
    +}
    +
    +sayHi('Petter') // Hi, Petter!

    需要注意的是, voidnullundefined 不可以混用,如果的函数返回值类型是 null ,那么是真的需要 return 一个 null 值:

    ts
    // 只有返回 null 值才能定义返回类型为 null
    +function sayHi(name: string): null {
    +  console.log(\`Hi, \${name}!\`)
    +  return null
    +}

    有时候要判断参数是否合法,不符合要求时需要提前终止执行(比如在做一些表单校验的时候),这种情况下也可以用 void

    ts
    function sayHi(name: string): void {
    +  // 这里判断参数不符合要求则提前终止运行,但它没有返回值
    +  if (!name) return
    +
    +  // 否则正常运行
    +  console.log(\`Hi, \${name}!\`)
    +}

    异步函数的返回值

    对于异步函数,需要用 Promise<T> 类型来定义它的返回值,这里的 T 是泛型,取决于该函数最终返回一个什么样的值( async / await 也适用这个类型)。

    例如这个例子,这是一个异步函数,会 resolve 一个字符串,所以它的返回类型是 Promise<string> (假如没有 resolve 数据,那么就是 Promise<void> )。

    ts
    // 注意这里的返回值类型
    +function queryData(): Promise<string> {
    +  return new Promise((resolve) => {
    +    setTimeout(() => {
    +      resolve('Hello World')
    +    }, 3000)
    +  })
    +}
    +
    +queryData().then((data) => console.log(data))

    函数本身的类型

    细心的开发者可能会有个疑问,通过函数表达式或者箭头函数声明的函数,这样写好像只对函数体的类型进行了定义,而左边的变量并没有指定。

    没错,确实是没有为这个变量指定类型:

    ts
    // 这里的 sum ,确实是没有指定类型
    +const sum = (x: number, y: number): number => x + y

    这是因为,通常 TypeScript 会根据函数体自动推导,所以可以省略这里的定义。

    如果确实有必要,可以这样来定义等号左边的类型:

    ts
    const sum: (x: number, y: number) => number = (x: number, y: number): number =>
    +  x + y

    这里出现了 2 个箭头 => ,注意第一个箭头是 TypeScript 的,第二个箭头是 JavaScript ES6 的。

    实际上上面这句代码是分成了三部分:

    1. const sum: (x: number, y: number) => number 是这个函数的名称和类型
    2. = (x: number, y: number) 这里是指明了函数的入参和类型
    3. : number => x + y 这里是函数的返回值和类型

    第 2 和 3 点相信从上面的例子已经能够理解了,所以注意力放在第一点:

    TypeScript 的函数类型是以 () => void 这样的形式来写的:左侧圆括号是函数的入参类型,如果没有参数,就只有一个圆括号,如果有参数,就按照参数的类型写进去;右侧则是函数的返回值。

    事实上由于 TypeScript 会推导函数类型,所以很少会显式的去写出来,除非在给对象定义方法:

    ts
    // 对象的接口
    +interface Obj {
    +  // 上面的方法就需要显式的定义出来
    +  sum: (x: number, y: number) => number
    +}
    +
    +// 声明一个对象
    +const obj: Obj = {
    +  sum(x: number, y: number): number {
    +    return x + y
    +  }
    +}

    函数的重载

    在未来的实际开发中,可能会接触到一个 API 有多个 TS 类型的情况,比如 Vue 的 watch API

    Vue 的这个 watch API 在被调用时,需要接收一个数据源参数,当侦听单个数据源时,它匹配了类型 1 ,当传入一个数组侦听多个数据源时,它匹配了类型 2 。

    这个知识点其实就是 TypeScript 里的函数重载。

    先来看一下在不使用函数重载时应该如何编写代码:

    ts
    // 对单人或者多人打招呼
    +function greet(name: string | string[]): string | string[] {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 单个问候语
    +const greeting = greet('Petter')
    +console.log(greeting) // Welcome, Petter!
    +
    +// 多个问候语
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)
    +// [ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

    TIP

    注意这里的入参和返回值使用了 TypeScript 的 联合类型 ,不了解的话请先重温知识点。

    虽然代码逻辑部分还是比较清晰的,区分了入参的数组类型和字符串类型,返回不同的结果,但是,在入参和返回值的类型这里,却显得非常乱。

    并且这样子写,下面在调用函数时,定义的变量也无法准确的获得它们的类型:

    ts
    // 此时这个变量依然可能有多个类型
    +const greeting: string | string[]

    如果要强制确认类型,需要使用 TS 的 类型断言 (留意后面的 as 关键字):

    ts
    const greeting = greet('Petter') as string
    +const greetings = greet(['Petter', 'Tom', 'Jimmy']) as string[]

    这无形的增加了编码时的心智负担。

    此时,利用 TypeScript 的函数重载就非常有用!来看一下具体如何实现:

    ts
    // 这一次用了函数重载
    +function greet(name: string): string  // TS 类型
    +function greet(name: string[]): string[]  // TS 类型
    +function greet(name: string | string[]) {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 单个问候语,此时只有一个类型 string
    +const greeting = greet('Petter')
    +console.log(greeting) // Welcome, Petter!
    +
    +// 多个问候语,此时只有一个类型 string[]
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)
    +// [ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

    上面是利用函数重载优化后的代码,可以看到一共写了 3 行 function greet … ,区别如下:

    第 1 行是函数的 TS 类型,告知 TypeScript ,当入参为 string 类型时,返回值也是 string ;

    第 2 行也是函数的 TS 类型,告知 TypeScript ,当入参为 string[] 类型时,返回值也是 string[] ;

    第 3 行开始才是真正的函数体,这里的函数入参需要把可能涉及到的类型都写出来,用以匹配前两行的类型,并且这种情况下,函数的返回值类型可以省略,因为在第 1 、 2 行里已经定义过返回类型了。

    任意值

    如果实在不知道应该如何定义一个变量的类型, TypeScript 也允许使用任意值。

    还记得在 为什么需要类型系统 的用的那个例子吗?再次放到 src/ts/index.ts 里:

    ts
    // 这段代码在 TS 里运行会报错
    +function getFirstWord(msg) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')
    +
    +getFirstWord(123)

    运行 npm run dev:ts 的时候,会得到一句报错 Parameter 'msg' implicitly has an 'any' type. ,意思是这个参数带有隐式 any 类型。

    这里的 any 类型,就是 TypeScript 任意值。

    既然报错是 “隐式” ,那 “显式” 的指定就可以了,当然,为了程序能够正常运行,还提高一下函数体内的代码健壮性:

    ts
    // 这里的入参显式指定了 any
    +function getFirstWord(msg: any) {
    +  // 这里使用了 String 来避免程序报错
    +  console.log(String(msg).split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')
    +
    +getFirstWord(123)

    这次就不会报错了,不论是传 string 还是 number 还是其他类型,都可以正常运行。

    TIP

    使用 any 的目的是让在开发的过程中,可以不必在无法确认类型的地方消耗太多时间,不代表不需要注意代码的健壮性。

    一旦使用了 any ,代码里的逻辑请务必考虑多种情况进行判断或者处理兼容。

    npm 包

    虽然现在从 npm 安装的包都基本自带 TS 类型了,不过也存在一些包没有默认支持 TypeScript ,比如前面提到的 md5

    在 TS 文件里导入并使用这个包的时候,会编译失败,比如在前面的 Hello TypeScript demo 里敲入以下代码:

    ts
    // src/ts/index.ts
    +import md5 from 'md5'
    +console.log(md5('Hello World'))

    在命令行执行 npm run dev:ts 之后,会得到一段报错信息:

    bash
    src/ts/index.ts:1:17 - error TS7016:
    +Could not find a declaration file for module 'md5'.
    +'D:/Project/demo/hello-node/node_modules/md5/md5.js' implicitly has an 'any' type.
    +  Try \`npm i --save-dev @types/md5\` if it exists
    +  or add a new declaration (.d.ts) file
    +  containing \`declare module 'md5';\`
    +
    +1 import md5 from 'md5'
    +                  ~~~~~

    这是因为缺少 md5 这个包的类型定义,根据命令行的提示,安装 @types/md5 这个包。

    这是因为这些包是很早期用 JavaScript 编写的,因为功能够用作者也没有进行维护更新,所以缺少相应的 TS 类型,因此开源社区推出了一套 @types 类型包,专门处理这样的情况。

    @types 类型包的命名格式为 @types/<package-name> ,也就是在原有的包名前面拼接 @types ,日常开发要用到的知名 npm 包都会有相应的类型包,只需要将其安装到 package.json 的 devDependencies 里即可解决该问题。

    来安装一下 md5 的类型包:

    bash
    npm install -D @types/md5

    再次运行就不会报错了!

    bash
    npm run dev:ts
    +
    +> demo@1.0.0 dev:ts
    +> ts-node src/ts/index.ts
    +
    +b10a8db164e0754105b7a99be72e3fe5

    类型断言

    在讲解 函数的重载 的时候,提到了一个用法:

    ts
    const greeting = greet('Petter') as string

    这里的 值 as 类型 就是 TypeScript 类型断言的语法,它还有另外一个语法是 <类型>值

    当一个变量应用了 联合类型 时,在某些时候如果不显式的指明其中的一种类型,可能会导致后续的代码运行报错。

    这个时候就可以通过类型断言强制指定其中一种类型,以便程序顺利运行下去。

    常见的使用场景

    把函数重载时最开始用到的那个例子,也就是下面的代码放到 src/ts/index.ts 里:

    ts
    // 对单人或者多人打招呼
    +function greet(name: string | string[]): string | string[] {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 虽然已知此时应该是 string[]
    +// 但 TypeScript 还是会认为这是 string | string[]
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +
    +// 会导致无法使用 join 方法
    +const greetingSentence = greetings.join(' ')
    +console.log(greetingSentence)

    执行 npm run dev:ts ,可以清楚的看到报错原因,因为 string 类型不具备 join 方法。

    bash
    src/ts/index.ts:11:31 - error TS2339:
    +Property 'join' does not exist on type 'string | string[]'.
    +  Property 'join' does not exist on type 'string'.
    +
    +11 const greetingStr = greetings.join(' ')
    +                                 ~~~~

    此时利用类型断言就可以达到目的:

    ts
    // 对单人或者多人打招呼
    +function greet(name: string | string[]): string | string[] {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 已知此时应该是 string[] ,所以用类型断言将其指定为 string[]
    +const greetings = greet(['Petter', 'Tom', 'Jimmy']) as string[]
    +
    +// 现在可以正常使用 join 方法
    +const greetingSentence = greetings.join(' ')
    +console.log(greetingSentence)

    需要注意的事情

    但是,请不要滥用类型断言,只在能够确保代码正确的情况下去使用它,来看一个反例:

    ts
    // 原本要求 age 也是必须的属性之一
    +interface User {
    +  name: string
    +  age: number
    +}
    +
    +// 但是类型断言过程中,遗漏了
    +const petter = {} as User
    +petter.name = 'Petter'
    +
    +// TypeScript 依然可以运行下去,但实际上的数据是不完整的
    +console.log(petter) // { name: 'Petter' }

    TIP

    使用类型断言可以让 TypeScript 不再检查该代码,默认是正确无误的。

    所以,请务必保证这段代码真的是正确的!

    类型推论

    还记得在讲 原始数据类型 的时候,最后提到的:

    不过在实际的编程过程中,原始数据类型的类型定义是可以省略的,因为 TypeScript 会根据声明变量时赋值的类型,自动帮推导变量类型

    这其实是 TypeScript 的类型推论功能,当在声明变量的时候可以确认它的值,那么 TypeScript 也可以在这个时候帮推导它的类型,这种情况下就可以省略一些代码量。

    下面这个变量这样声明是 OK 的,因为 TypeScript 会推导 msgstring 类型。

    ts
    // 相当于 msg: string
    +let msg = 'Hello World'
    +
    +// 所以要赋值为 number 类型时会报错
    +msg = 3 // Type 'number' is not assignable to type 'string'

    下面这段代码也是可以正常运行的,因为 TypeScript 会根据 return 的结果推导 getRandomNumber 的返回值是 number 类型,从而推导变量 num 也是 number 类型。

    ts
    // 相当于 getRandomNumber(): number
    +function getRandomNumber() {
    +  return Math.round(Math.random() * 10)
    +}
    +
    +// 相当于 num: number
    +const num = getRandomNumber()

    类型推论的前提是变量在声明时有明确的值,如果一开始没有赋值,那么会被默认为 any 类型。

    ts
    // 此时相当于 foo: any
    +let foo
    +
    +// 所以可以任意改变类型
    +foo = 1 // 1
    +foo = true // true

    类型推论可以节约很多书写工作量,在确保变量初始化有明确的值的时候,可以省略其类型,但必要的时候,该写上的还是要写上。

    如何编译为 JavaScript 代码

    学习到这里,对于 TypeScript 的入门知识已经学到了吧!

    前面学习的时候,一直是基于 dev:ts 命令,它调用的是 ts-node 来运行的 TS 文件:

    json
    {
    +  // ...
    +  "scripts": {
    +    // ...
    +    "dev:ts": "ts-node src/ts/index.ts"
    +  }
    +  // ...
    +}

    但最终可能需要的是一个 JS 文件,比如要通过 <script src> 来放到 HTML 页面里,这就涉及到对 TypeScript 的编译。

    来看看如何把一个 TS 文件编译成 JS 文件,让其从 TypeScript 变成 JavaScript 代码。

    编译单个文件

    先在 package.json 里增加一个 build script :

    json
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "description": "",
    +  "main": "index.js",
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs",
    +    "dev:esm": "node src/esm/index.mjs",
    +    "dev:ts": "ts-node src/ts/index.ts",
    +    "build": "tsc src/ts/index.ts --outDir dist",
    +    "compile": "babel src/babel --out-dir compiled",
    +    "serve": "node server/index.js"
    +  },
    +  "keywords": [],
    +  "author": "",
    +  "license": "ISC",
    +  "dependencies": {
    +    "md5": "^2.3.0"
    +  },
    +  "devDependencies": {
    +    "@types/md5": "^2.3.2",
    +    "ts-node": "^10.7.0",
    +    "typescript": "^4.6.3"
    +  }
    +}

    这样在命令行运行 npm run build 的时候,就会把 src/ts/index.ts 这个 TS 文件编译,并输出到项目下与 src 文件夹同级的 dist 目录下。

    其中 tsc 是 TypeScript 用来编译文件的命令, --outDir 是它的一个选项,用来指定输出目录,如果不指定,则默认生成到源文件所在的目录下面。

    把之前在 函数的重载 用过的这个例子放到 src/ts/index.ts 文件里,因为它是一段比较典型的、包含了多个知识点的 TypeScript 代码:

    ts
    // 对单人或者多人打招呼
    +function greet(name: string): string
    +function greet(name: string[]): string[]
    +function greet(name: string | string[]) {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 单个问候语
    +const greeting = greet('Petter')
    +console.log(greeting)
    +
    +// 多个问候语
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    可以先执行 npm run dev:ts 测试它的可运行性,当然,如果期间的代码运行有问题,在编译阶段也会给报错。

    现在来编译它,现在在命令行输入 npm run build 并回车执行。

    可以看到多了一个 dist 文件夹,里面多了一个 index.js 文件。

    bash
    hello-node
    + # 构建产物
    +├─dist
    +  # 编译后的 JS 文件
    + └─index.js
    + # 依赖文件夹
    +├─node_modules
    + # 源码文件夹
    +├─src
    + # 锁定安装依赖的版本号
    +├─package-lock.json
    + # 项目清单
    +└─package.json

    index.js 文件里面的代码如下:

    js
    function greet(name) {
    +  if (Array.isArray(name)) {
    +    return name.map(function (n) {
    +      return 'Welcome, '.concat(n, '!')
    +    })
    +  }
    +  return 'Welcome, '.concat(name, '!')
    +}
    +// 单个问候语
    +var greeting = greet('Petter')
    +console.log(greeting)
    +// 多个问候语
    +var greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    可以看到已经成功把 TypeScript 代码编译成 JavaScript 代码了。

    在命令行执行 node dist/index.js ,像之前测试 JS 文件一样使用 node 命令,运行 dist 目录下的 index.js 文件,它可以正确运行:

    bash
    node dist/index.js
    +Welcome, Petter!
    +[ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

    编译多个模块

    刚才只是编译一个 index.ts 文件,如果 index.ts 里引入了其他模块,此时 index.ts 是作为入口文件,入口文件 import 进来使用的模块也会被 TypeScript 一并编译。

    拆分一下模块,把 greet 函数单独抽离成一个模块文件 src/ts/greet.ts

    ts
    // src/ts/greet.ts
    +function greet(name: string): string
    +function greet(name: string[]): string[]
    +function greet(name: string | string[]) {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +export default greet

    src/ts/index.ts 这边,把这个模块导进来:

    ts
    // src/ts/index.ts
    +import greet from './greet'
    +
    +// 单个问候语
    +const greeting = greet('Petter')
    +console.log(greeting)
    +
    +// 多个问候语
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    package.json 里的 build script 无需修改,依然只编译 index.ts ,但因为导入了 greet.ts ,所以 TypeScript 也会一并编译,来试一下运行 npm run build , 现在 dist 目录下有两个文件了:

    bash
    hello-node
    + # 构建产物
    +├─dist
    + ├─greet.js  # 多了这个文件
    + └─index.js
    +
    + # 其他文件这里省略...
    +└─package.json

    来看看这一次的编译结果:

    先看看 greet.js

    js
    // dist/greet.js
    +'use strict'
    +exports.__esModule = true
    +function greet(name) {
    +  if (Array.isArray(name)) {
    +    return name.map(function (n) {
    +      return 'Welcome, '.concat(n, '!')
    +    })
    +  }
    +  return 'Welcome, '.concat(name, '!')
    +}
    +exports['default'] = greet

    再看看 index.js

    js
    // dist/index.js
    +'use strict'
    +exports.__esModule = true
    +var greet_1 = require('./greet')
    +// 单个问候语
    +var greeting = (0, greet_1['default'])('Petter')
    +console.log(greeting)
    +// 多个问候语
    +var greetings = (0, greet_1['default'])(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    这个代码风格有没有觉得似曾相识?是的,就是前面提到的 CommonJS 模块代码。

    其实在 编译单个文件 代码的时候,它也是 CommonJS ,只不过因为只有一个文件,没有涉及到模块化,所以第一眼看不出来。

    还是在命令行执行 node dist/index.js ,虽然也是运行 dist 目录下的 index.js 文件,但这次它的作用是充当一个入口文件了,引用到的 greet.js 模块文件也会被调用。

    这次一样可以得到正确的结果:

    bash
    node dist/index.js
    +Welcome, Petter!
    +[ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

    修改编译后的 JS 版本

    还可以修改编译配置,让 TypeScript 编译成不同的 JavaScript 版本。

    修改 package.json 里的 build script ,在原有的命令后面增加一个 --target 选项:

    json
    {
    +  // ...
    +  "scripts": {
    +    // ...
    +    "build": "tsc src/ts/index.ts --outDir dist --target es6"
    +  }
    +  // ...
    +}

    --target 选项的作用是控制编译后的 JavaScript 版本,可选的值目前有: es3es5es6es2015es2016es2017es2018es2019es2020es2021es2022esnext ,分别对应不同的 JS 规范(所以未来的可选值会根据 JS 规范一起增加)。

    之前编译出来的 JavaScript 是 CommonJS 规范 ,本次配置的是 es6 ,这是支持 ES Module 规范 的版本。

    TIP

    通常还需要配置一个 --module 选项,用于决定编译后是 CJS 规范还是 ESM 规范,但如果缺省,会根据 --target 来决定。

    再次在命令行运行 npm run build ,这次看看变成了什么:

    先看看 greet.js

    js
    // dist/greet.js
    +function greet(name) {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +export default greet

    再看看 index.js

    js
    // dist/index.js
    +import greet from './greet'
    +// 单个问候语
    +const greeting = greet('Petter')
    +console.log(greeting)
    +// 多个问候语
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    这次编译出来的都是基于 ES6 的 JavaScript 代码,因为涉及到 ESM 模块,所以不能直接在 node 运行它了,可以手动改一下扩展名,改成 .mjs (包括 index 文件里 import 的 greet 文件名也要改),然后再运行 node dist/index.mjs

    其他事项

    在尝试 编译单个文件编译多个模块 的时候,相信各位开发者应该没有太大的疑问,但是来到 修改编译后的 JS 版本 这里,事情就开始变得复杂了起来,应该能感觉到编译的选项和测试成本都相应的增加了很多。

    事实上刚才编译的 JS 文件,因为涉及到 ESM 模块化,是无法通过普通的 <script /> 标签在 HTML 页面里使用的(单个文件可以,因为没有涉及模块),不仅需要加上 ESM 模块所需的 <script type="module" /> 属性,本地开发还需要启动本地服务器通过 HTTP 协议访问页面,才允许在浏览器里使用 ESM 模块(详见: 在浏览器里访问 ESM 一节)。

    因此在实际的项目开发中,需要借助 构建工具 来处理很多编译过程中的兼容性问题,降低开发成本。

    而刚才用到的诸如 --target 这样的选项,可以用一个更简单的方式来管理,类似于 package.json 项目清单, TypeScript 也有一份适用于项目的配置清单,请看 了解 tsconfig.json 部分。

    了解 tsconfig.json

    TypeScript 项目一般都会有一个 tsconfig.json 文件,放置于项目的根目录下,这个文件的作用是用来管理 TypeScript 在编译过程中的一些选项配置。

    在开始之前,需要全局安装一下 TypeScript :

    bash
    npm install -g typescript

    这样就可以使用 TypeScript 提供的全局功能,可以直接在命令行里使用 tsc 命令了(之前本地安装的时候,需要封装成 package.json 的 script 才能调用它)。

    依然是用的 Hello TypeScript demo ,记得先通过 cd 命令进入项目所在的目录。

    在命令行输入 tsc --init ,这是 TypeScript 提供的初始化功能,会生成一个默认的 tsconfig.json 文件。

    bash
    tsc --init
    +
    +Created a new tsconfig.json with:
    +                                                                               TS
    +  target: es2016
    +  module: commonjs
    +  strict: true
    +  esModuleInterop: true
    +  skipLibCheck: true
    +  forceConsistentCasingInFileNames: true
    +
    +
    +You can learn more at https://aka.ms/tsconfig.json

    现在的目录结构是这样子,多了一个 tsconfig.json 文件:

    bash
    hello-node
    + # 构建产物
    +├─dist
    + # 依赖文件夹
    +├─node_modules
    + # 源码文件夹
    +├─src
    + # 锁定安装依赖的版本号
    +├─package-lock.json
    + # 项目清单
    +├─package.json
    + # TypeScript 配置
    +└─tsconfig.json

    每一个 tsc 的命令行的选项,都可以作为这个 JSON 的一个字段来管理,例如刚才的 --outDir--target 选项,在这个 JSON 文件里对应的就是:

    json
    {
    +  "compilerOptions": {
    +    "target": "es6",
    +    "module": "es6",
    +    "outDir": "./dist"
    +  }
    +}

    可以直接在生成的 tsconfig.json 上面修改。

    来试试效果,这一次不需要用到 package.json 里的 build script 了,直接在命令行运行 tsc ,它现在会根据配置的 tsconfig.json 文件,按照的要求来编译。

    可以看到它依然按照要求在 dist 目录下生成编译后的 JS 文件,而且这一次的编译结果,和在 build script 里使用的 tsc src/ts/index.ts --outDir dist --target es6 这一长串命令是一样的。

    所以正常工作中,都是使用 tsconfig.json 来管理 TypeScript 的配置的。

    完整的选项可以查看 TypeScript 官网: tsconfig - typescriptlang

    不过实际工作中的项目都是通过一些脚手架创建的,例如 Vue CLI ,或者现在的 Create Vue 或者 Create Preset ,都会在创建项目模板的时候,提前配置好通用的选项,只需要在不满足条件的情况下去调整。

    `,191),q=JSON.parse('{"title":"快速上手 TypeScript","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"typescript.md","filePath":"typescript.md"}'),E={name:"typescript.md"},S=Object.assign(E,{setup(B){const t="``";return(f,b)=>{const c=l("ImgWrap"),o=l("ClientOnly"),r=l("GitalkComment");return y(),D("div",null,[C,a(o,null,{default:e(()=>[a(c,{src:"/assets/img/github-top-languages.jpg",dark:"/assets/img/github-top-languages-dark.jpg",alt:"TypeScript 的流行程度(来自 GitHub 年度统计报告)"})]),_:1}),A,s("div",{class:"tip custom-block"},[i,s("p",null,[n("注意在上面 "),d,n(" 函数的 "),g,n(" 语句里,使用了一个 "),s("code",null,F(t)),n(" 符号来定义字符串,这是 ES6 语法里的 "),h,n(" ,它和传统的单引号 / 双引号相比更为灵活,特别是遇到字符串需要配合多变量拼接和换行的情况。")]),u]),m,a(o,null,{default:e(()=>[a(r,{issueId:193})]),_:1})])}}});export{q as __pageData,S as default}; diff --git a/assets/typescript.md.e6e7bfb1.lean.js b/assets/typescript.md.e6e7bfb1.lean.js new file mode 100644 index 00000000..c1506400 --- /dev/null +++ b/assets/typescript.md.e6e7bfb1.lean.js @@ -0,0 +1,677 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{v as y,b as D,t as a,O as e,F as s,L as n,X as F,R as p,M as l}from"./chunks/framework.0d8bea05.js";const C=p('

    快速上手 TypeScript

    如果已经看完 工程化的起步准备 一章,相信此时的已经对 Node 工程项目有了足够的认识了,在此之前的所有代码都是使用 JavaScript 编写的,接下来这一节,将开始介绍 TypeScript ,这是一门新的语言,但是上手非常简单。

    TypeScript 简称 TS ,既是一门新语言,也是 JS 的一个超集,它是在 JavaScript 的基础上增加了一套类型系统,它支持所有的 JS 语句,为工程化开发而生,最终在编译的时候去掉类型和特有的语法,生成 JS 代码。

    虽然带有类型系统的前端语言不止 TypeScript (例如 Facebook 推出的 Flow.js ),但从目前整个 开源社区的流行趋势 看, TypeScript 无疑是更好的选择。

    ',4),A=p(`

    而且只要本身已经学会了 JS ,并且经历过很多协作类的项目,那么使用 TS 编程是一个很自然而然的过程。

    为什么需要类型系统

    要想知道自己为什么要用 TypeScript ,得先从 JavaScript 有什么不足说起,举一个非常小的例子:

    js
    function getFirstWord(msg) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World') // 输出 Hello
    +
    +getFirstWord(123) // TypeError: msg.split is not a function

    这里定义了一个用空格切割字符串的方法,并打印出第一个单词:

    1. 第一次执行时,字符串支持 split 方法,所以成功获取到了第一个单词 Hello
    2. 第二次执行时,由于数值不存在 split 方法,所以传入 123 引起了程序崩溃

    这就是 JavaScript 的弊端,过于灵活,没有类型的约束,很容易因为类型的变化导致一些本可避免的 BUG 出现,而且这些 BUG 通常需要在程序运行的时候才会被发现,很容易引发生产事故。

    虽然可以在执行 split 方法之前执行一层判断或者转换,但很明显增加了很多工作量。

    TypeScript 的出现,在编译的时候就可以执行检查来避免掉这些问题,而且配合 VSCode 等编辑器的智能提示,可以很方便的知道每个变量对应的类型。

    Hello TypeScript

    将继续使用 Hello Node 这个 demo ,或者可以再建一个新 demo ,依然是在 src 文件夹下,创建一个 ts 文件夹归类本次的测试文件,然后创建一个 index.ts 文件在 ts 文件夹下。

    TIP

    TypeScript 语言对应的文件扩展名是 .ts

    然后在命令行通过 cd 命令进入项目所在的目录路径,安装 TypeScript 开发的两个主要依赖包:

    1. typescript 这个包是用 TypeScript 编程的语言依赖包

    2. ts-node 是让 Node 可以运行 TypeScript 的执行环境

    bash
    npm install -D typescript ts-node

    这次添加了一个 -D 参数,因为 TypeScript 和 TS-Node 是开发过程中使用的依赖,所以将其添加到 package.json 的 devDependencies 字段里。

    然后修改 scripts 字段,增加一个 dev:ts 的 script :

    json
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "description": "",
    +  "main": "index.js",
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs",
    +    "dev:esm": "node src/esm/index.mjs",
    +    "dev:ts": "ts-node src/ts/index.ts",
    +    "compile": "babel src/babel --out-dir compiled",
    +    "serve": "node server/index.js"
    +  },
    +  "keywords": [],
    +  "author": "",
    +  "license": "ISC",
    +  "dependencies": {
    +    "md5": "^2.3.0"
    +  },
    +  "devDependencies": {
    +    "ts-node": "^10.7.0",
    +    "typescript": "^4.6.3"
    +  }
    +}

    准备工作完毕!

    TIP

    请注意, dev:ts 这个 script 是用了 ts-node 来代替原来在用的 node ,因为使用 node 无法识别 TypeScript 语言。

    为什么需要类型系统 里面提到的例子放到 src/ts/index.ts 里:

    ts
    // src/ts/index.ts
    +function getFirstWord(msg) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')
    +
    +getFirstWord(123)

    然后在命令行运行 npm run dev:ts 来看看这次的结果:

    bash
    TSError:  Unable to compile TypeScript:
    +src/ts/index.ts:1:23 - error TS7006: Parameter 'msg' implicitly has an 'any' type.
    +
    +1 function getFirstWord(msg) {
    +                        ~~~

    这是告知 getFirstWord 的入参 msg 带有隐式 any 类型,这个时候可能还不了解 any 代表什么意思,没关系,来看下如何修正这段代码:

    ts
    // src/ts/index.ts
    +function getFirstWord(msg: string) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')
    +
    +getFirstWord(123)

    留意到没有,现在函数的入参 msg 已经变成了 msg: string ,这是 TypeScript 指定参数为字符串类型的一个写法。

    现在再运行 npm run dev:ts ,上一个错误提示已经不再出现,取而代之的是一个新的报错:

    bash
    TSError:  Unable to compile TypeScript:
    +src/ts/index.ts:7:14 - error TS2345:
    +Argument of type 'number' is not assignable to parameter of type 'string'.
    +
    +7 getFirstWord(123)
    +               ~~~

    这次的报错代码是在 getFirstWord(123) 这里,告诉 number 类型的数据不能分配给 string 类型的参数,也就是故意传入一个会报错的数值进去,被 TypeScript 检查出来了!

    可以再仔细留意一下控制台的信息,会发现没有报错的 getFirstWord('Hello World') 也没有打印出结果,这是因为 TypeScript 需要先被编译成 JavaScript ,然后再执行。

    这个机制让有问题的代码能够被及早发现,一旦代码出现问题,编译阶段就会失败。

    移除会报错的那行代码,只保留如下:

    ts
    // src/ts/index.ts
    +function getFirstWord(msg: string) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')

    再次运行 npm run dev:ts ,这次完美运行!

    ts
    npm run dev:ts
    +
    +> demo@1.0.0 dev:ts
    +> ts-node src/ts/index.ts
    +
    +Hello

    在这个例子里,相信已经感受到 TypeScript 的魅力了!接下来来认识一下不同的 JavaScript 类型,在 TypeScript 里面应该如何定义。

    常用的 TS 类型定义

    Hello TypeScript 的体验中,相信能够感受到 TypeScript 编程带来的好处了,代码的健壮性得到了大大的提升!

    并且应该也能够深刻理解,TypeScript 的类型系统并不会给编程带来极高的门槛或者说开发障碍,这是以非常小的成本换取巨大收益的举措。

    TIP

    如果还没有体验这个 demo ,建议先按教程跑一下,然后来讲解不同的 JavaScript 类型应该如何在 TypeScript 里定义,接下来的时间里,可以一边看,一边在 demo 里实践。

    原始数据类型

    原始数据类型 是一种既非对象也无方法的数据,刚才演示代码里,函数的入参使用的字符串 String 就是原始数据类型之一。

    除了 String ,另外还有数值 Number 、布尔值 Boolean 等等,它们在 TypeScript 都有统一的表达方式,列个表格对比,能够更直观的了解:

    原始数据类型JavaScriptTypeScript
    字符串Stringstring
    数值Numbernumber
    布尔值Booleanboolean
    大整数BigIntbigint
    符号Symbolsymbol
    不存在Nullnull
    未定义Undefinedundefined

    有没有发现窍门?对! TypeScript 对原始数据的类型定义真的是超级简单,就是转为全小写即可!

    举几个例子:

    ts
    // 字符串
    +const str: string = 'Hello World'
    +
    +// 数值
    +const num: number = 1
    +
    +// 布尔值
    +const bool: boolean = true

    不过在实际的编程过程中,原始数据类型的类型定义是可以省略的,因为 TypeScript 会根据声明变量时赋值的类型,自动推导变量类型,也就是可以跟平时写 JavaScript 一样:

    ts
    // 这样也不会报错,因为 TS 会推导它们的类型
    +const str = 'Hello World'
    +const num = 1
    +const bool = true

    数组

    除了原始数据类型之外, JavaScript 还有引用类型,数组 Array 就是其中的一种。

    之所以先讲数组,是因为它在 TS 类型定义的写法上面,可能是最接近原始数据的一个类型了,为什么这么说?还是列个表格,来看一下如何定义数组:

    数组里的数据类型写法 1类型写法 2
    字符串string[]Array<string>
    数值number[]Array<number>
    布尔值boolean[]Array<boolean>
    大整数bigint[]Array<bigint>
    符号symbol[]Array<symbol>
    不存在null[]Array<null>
    未定义undefined[]Array<undefined>

    是吧!就只是在原始数据类型的基础上变化了一下书写格式,就成为了数组的定义!

    笔者最常用的就是 string[] 这样的格式,只需要追加一个方括号 [] ,另外一种写法是基于 TS 的泛型 Array<T> ,两种方式定义出来的类型其实是一样的。

    举几个例子:

    ts
    // 字符串数组
    +const strs: string[] = ['Hello World', 'Hi World']
    +
    +// 数值数组
    +const nums: number[] = [1, 2, 3]
    +
    +// 布尔值数组
    +const bools: boolean[] = [true, true, false]

    在实际的编程过程中,如果数组一开始就有初始数据(数组长度不为 0 ),那么 TypeScript 也会根据数组里面的项目类型,正确自动帮推导这个数组的类型,这种情况下也可以省略类型定义:

    ts
    // 这种有初始项目的数组, TS 也会推导它们的类型
    +const strs = ['Hello World', 'Hi World']
    +const nums = [1, 2, 3]
    +const bools = [true, true, false]

    但是!如果一开始是 [] ,那么就必须显式的指定数组类型(取决于当前项目的 tsconfig.json 配置,可能会引起报错):

    ts
    // 这个时候会认为是 any[] 或者 never[] 类型
    +const nums = []
    +
    +// 这个时候再 push 一个 number 数据进去,也不会使其成为 number[]
    +nums.push(1)

    而对于复杂的数组,比如数组里面的 item 都是对象,其实格式也是一样,只不过把原始数据类型换成 对象的类型 即可,例如 UserItem[] 表示这是一个关于用户的数组列表。

    对象(接口)

    看完了数组,接下来看看对象的用法,对象也是引用类型,在 数组 的最后提到了一个 UserItem[] 的写法,这里的 UserItem 就是一个对象的类型定义。

    如果熟悉 JavaScript ,那么就知道对象的 “键值对” 里面的值,可能是由原始数据、数组、对象组成的,所以在 TypeScript ,类型定义也是需要根据值的类型来确定它的类型,因此定义对象的类型应该是第一个比较有门槛的地方。

    如何定义对象的类型

    对象的类型定义有两个语法支持: typeinterface

    先看看 type 的写法:

    ts
    type UserItem = {
    +  // ...
    +}

    再看看 interface 的写法:

    ts
    interface UserItem {
    +  // ...
    +}

    可以看到它们表面上的区别是一个有 = 号,一个没有,事实上在一般的情况下也确实如此,两者非常接近,但是在特殊的时候也有一定的区别。

    了解接口的使用

    为了降低学习门槛,统一使用 interface 来做入门教学,它的写法与 Object 更为接近,事实上它也被用的更多。

    对象的类型 interface 也叫做接口,用来描述对象的结构。

    TIP

    对象的类型定义通常采用 Upper Camel Case 大驼峰命名法,也就是每个单词的首字母大写,例如 UserItemGameDetail ,这是为了跟普通变量进行区分(变量通常使用 Lower Camel Case 小驼峰写法,也就是第一个单词的首字母小写,其他首字母大写,例如 userItem )。

    这里通过一些举例来带举一反三,随时可以在 demo 里进行代码实践。

    以这个用户信息为例子,比如要描述 Petter 这个用户,他的最基础信息就是姓名和年龄,那么定义为接口就是这么写:

    ts
    // 定义用户对象的类型
    +interface UserItem {
    +  name: string
    +  age: number
    +}
    +
    +// 在声明变量的时候将其关联到类型上
    +const petter: UserItem = {
    +  name: 'Petter',
    +  age: 20,
    +}

    如果需要添加数组、对象等类型到属性里,按照这样继续追加即可。

    可选的接口属性

    注意,上面这样定义的接口类型,表示 nameage 都是必选的属性,不可以缺少,一旦缺少,代码运行起来就会报错!

    src/ts/index.ts 里敲入以下代码,也就是在声明变量的时候故意缺少了 age 属性,来看看会发生什么:

    ts
    // 注意!这是一段会报错的代码
    +
    +interface UserItem {
    +  name: string
    +  age: number
    +}
    +
    +const petter: UserItem = {
    +  name: 'Petter',
    +}

    运行 npm run dev:ts ,会看到控制台给的报错信息,缺少了必选的属性 age

    bash
    src/ts/index.ts:6:7 - error TS2741:
    +Property 'age' is missing in type '{ name: string; }'
    +but required in type 'UserItem'.
    +
    +6 const petter: UserItem = {
    +        ~~~~~~
    +
    +  src/ts/index.ts:3:3
    +    3   age: number
    +        ~~~
    +    'age' is declared here.

    在实际的业务中,有可能会出现一些属性并不是必须的,就像这个年龄,可以将其设置为可选属性,通过添加 ? 来定义。

    请注意下面代码的第三行, age 后面紧跟了一个 ? 号再接 : 号,这是 TypeScript 对象对于可选属性的一个定义方式,这一次这段代码是可以成功运行的!

    ts
    interface UserItem {
    +  name: string
    +  // 这个属性变成了可选
    +  age?: number
    +}
    +
    +const petter: UserItem = {
    +  name: 'Petter',
    +}

    调用自身接口的属性

    如果一些属性的结构跟本身一致,也可以直接引用,比如下面例子里的 friendList 属性,用户的好友列表,它就可以继续使用 UserItem 这个接口作为数组的类型:

    ts
    interface UserItem {
    +  name: string
    +  age: number
    +  enjoyFoods: string[]
    +  // 这个属性引用了本身的类型
    +  friendList: UserItem[]
    +}
    +
    +const petter: UserItem = {
    +  name: 'Petter',
    +  age: 18,
    +  enjoyFoods: ['rice', 'noodle', 'pizza'],
    +  friendList: [
    +    {
    +      name: 'Marry',
    +      age: 16,
    +      enjoyFoods: ['pizza', 'ice cream'],
    +      friendList: [],
    +    },
    +    {
    +      name: 'Tom',
    +      age: 20,
    +      enjoyFoods: ['chicken', 'cake'],
    +      friendList: [],
    +    }
    +  ],
    +}

    接口的继承

    接口还可以继承,比如要对用户设置管理员,管理员信息也是一个对象,但要比普通用户多一个权限级别的属性,那么就可以使用继承,它通过 extends 来实现:

    ts
    interface UserItem {
    +  name: string
    +  age: number
    +  enjoyFoods: string[]
    +  friendList: UserItem[]
    +}
    +
    +// 这里继承了 UserItem 的所有属性类型,并追加了一个权限等级属性
    +interface Admin extends UserItem {
    +  permissionLevel: number
    +}
    +
    +const admin: Admin = {
    +  name: 'Petter',
    +  age: 18,
    +  enjoyFoods: ['rice', 'noodle', 'pizza'],
    +  friendList: [
    +    {
    +      name: 'Marry',
    +      age: 16,
    +      enjoyFoods: ['pizza', 'ice cream'],
    +      friendList: [],
    +    },
    +    {
    +      name: 'Tom',
    +      age: 20,
    +      enjoyFoods: ['chicken', 'cake'],
    +      friendList: [],
    +    }
    +  ],
    +  permissionLevel: 1,
    +}

    如果觉得这个 Admin 类型不需要记录这么多属性,也可以在继承的过程中舍弃某些属性,通过 Omit 帮助类型来实现,Omit 的类型如下:

    ts
    type Omit<T, K extends string | number | symbol>

    其中 T 代表已有的一个对象类型, K 代表要删除的属性名,如果只有一个属性就直接是一个字符串,如果有多个属性,用 | 来分隔开,下面的例子就是删除了两个不需要的属性:

    ts
    interface UserItem {
    +  name: string
    +  age: number
    +  enjoyFoods: string[]
    +  friendList?: UserItem[]
    +}
    +
    +// 这里在继承 UserItem 类型的时候,删除了两个多余的属性
    +interface Admin extends Omit<UserItem, 'enjoyFoods' | 'friendList'> {
    +  permissionLevel: number
    +}
    +
    +// 现在的 admin 就非常精简了
    +const admin: Admin = {
    +  name: 'Petter',
    +  age: 18,
    +  permissionLevel: 1,
    +}

    看到这里并实际体验过的话,在业务中常见的类型定义已经难不倒了!

    类是 JavaScript ES6 推出的一个概念,通过 class 关键字,可以定义一个对象的模板,如果对类还比较陌生的话,可以先阅读一下阮一峰老师的 ES6 文章:Class 的基本语法

    在 TypeScript ,通过类得到的变量,它的类型就是这个类,可能这句话看起来有点难以理解,来看个例子,可以在 demo 里运行它:

    ts
    // 定义一个类
    +class User {
    +  // constructor 上的数据需要先这样定好类型
    +  name: string
    +
    +  // 入参也要定义类型
    +  constructor(userName: string) {
    +    this.name = userName
    +  }
    +
    +  getName() {
    +    console.log(this.name)
    +  }
    +}
    +
    +// 通过 new 这个类得到的变量,它的类型就是这个类
    +const petter: User = new User('Petter')
    +petter.getName() // Petter

    类与类之间可以继承:

    ts
    // 这是一个基础类
    +class UserBase {
    +  name: string
    +  constructor(userName: string) {
    +    this.name = userName
    +  }
    +}
    +
    +// 这是另外一个类,继承自基础类
    +class User extends UserBase {
    +  getName() {
    +    console.log(this.name)
    +  }
    +}
    +
    +// 这个变量拥有上面两个类的所有属性和方法
    +const petter: User = new User('Petter')
    +petter.getName()

    类也可以提供给接口去继承:

    ts
    // 这是一个类
    +class UserBase {
    +  name: string
    +  constructor(userName: string) {
    +    this.name = userName
    +  }
    +}
    +
    +// 这是一个接口,可以继承自类
    +interface User extends UserBase {
    +  age: number
    +}
    +
    +// 这样这个变量就必须同时存在两个属性
    +const petter: User = {
    +  name: 'Petter',
    +  age: 18,
    +}

    如果类上面本身有方法存在,接口在继承的时候也要相应的实现,当然也可以借助在 对象(接口) 提到的 Omit 帮助类型来去掉这些方法。

    ts
    class UserBase {
    +  name: string
    +  constructor(userName: string) {
    +    this.name = userName
    +  }
    +  // 这是一个方法
    +  getName() {
    +    console.log(this.name)
    +  }
    +}
    +
    +// 接口继承类的时候也可以去掉类上面的方法
    +interface User extends Omit<UserBase, 'getName'> {
    +  age: number
    +}
    +
    +// 最终只保留数据属性,不带有方法
    +const petter: User = {
    +  name: 'Petter',
    +  age: 18,
    +}

    联合类型

    阅读到这里,对 JavaScript 的数据和对象如何在 TypeScript 定义类型相信没有太大问题了吧!

    所以这里先插入一个知识点,在介绍 对象(接口) 的类型定义时,提到 Omit 的帮助类型,它的类型里面有一个写法是 string | number | symbol ,这其实是 TypeScript 的一个联合类型。

    当一个变量可能出现多种类型的值的时候,可以使用联合类型来定义它,类型之间用 | 符号分隔。

    举一个简单的例子,下面这个函数接收一个代表 “计数” 的入参,并拼接成一句话打印到控制台,因为最终打印出来的句子是字符串,所以参数没有必要非得是数值,传字符串也是可以的,所以就可以使用联合类型:

    ts
    // 可以在 demo 里运行这段代码
    +function counter(count: number | string) {
    +  console.log(\`The current count is: \${count}.\`)
    +}
    +
    +// 不论传数值还是字符串,都可以达到的目的
    +counter(1)  // The current count is: 1.
    +counter('2')  // The current count is: 2.
    `,117),i=s("p",{class:"custom-block-title"},"TIP",-1),d=s("code",null,"counter",-1),g=s("code",null,"console.log",-1),h=s("a",{href:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals",target:"_blank",rel:"noreferrer"},"模板字符串",-1),u=s("p",null,[n("对 JavaScript 后面推出的新语法不太熟悉的话,很容易和单引号混淆,在学名上,它也被称之为 “反引号” ( Backquote ) ,可以使用标准键盘的 "),s("code",null,"ESC"),n(" 键下方、也就是 "),s("code",null,"1"),n(" 左边的那个按键打出来。")],-1),m=p(`

    在实际的业务场景中,例如 Vue 的路由在不同的数据结构里也有不同的类型,有时候需要通过路由实例来判断是否符合要求的页面,也需要用到这种联合类型:

    ts
    // 注意:这不是完整的代码,只是一个使用场景示例
    +import type { RouteRecordRaw, RouteLocationNormalizedLoaded } from 'vue-router'
    +
    +function isArticle(
    +  route: RouteRecordRaw | RouteLocationNormalizedLoaded
    +): boolean {
    +  // ...
    +}

    再举个例子,是用 Vue 做页面,会涉及到子组件或者 DOM 的操作,当它们还没有渲染出来时,获取到的是 null ,渲染后才能拿到组件或者 DOM 结构,这种场景也可以使用联合类型:

    ts
    // querySelector 拿不到 DOM 的时候返回 null
    +const ele: HTMLElement | null = document.querySelector('.main')

    最后这个使用场景在 Vue 单组件的 DOM 元素与子组件 一节里也有相关的讲解。

    当决定使用联合类型的时候,大部分情况下可能需要对变量做一些类型判断再写逻辑,当然有时候也可以无所谓,就像第一个例子拼接字符串那样。

    这一小节在这里做简单了解即可,因为下面会继续配合不同的知识点把这个联合类型再次拿出来讲,比如 函数的重载 部分。

    函数

    函数是 JavaScript 里最重要的成员之一,所有的功能实现都是基于函数。

    函数的基本的写法

    在 JavaScript ,函数有很多种写法:

    js
    // 注意:这是 JavaScript 代码
    +
    +// 写法一:函数声明
    +function sum1(x, y) {
    +  return x + y
    +}
    +
    +// 写法二:函数表达式
    +const sum2 = function (x, y) {
    +  return x + y
    +}
    +
    +// 写法三:箭头函数
    +const sum3 = (x, y) => x + y
    +
    +// 写法四:对象上的方法
    +const obj = {
    +  sum4(x, y) {
    +    return x + y
    +  },
    +}
    +
    +// 还有很多……

    但其实离不开两个最核心的操作:输入与输出,也就是对应函数的 “入参” 和 “返回值” ,在 TypeScript ,函数本身和 TS 类型有关系的也是在这两个地方。

    函数的入参是把类型写在参数后面,返回值是写在圆括号后面,把上面在 JavaScript 的这几个写法,转换成 TypeScript 看看区别在哪里:

    ts
    // 注意:这是 TypeScript 代码
    +
    +// 写法一:函数声明
    +function sum1(x: number, y: number): number {
    +  return x + y
    +}
    +
    +// 写法二:函数表达式
    +const sum2 = function(x: number, y: number): number {
    +  return x + y
    +}
    +
    +// 写法三:箭头函数
    +const sum3 = (x: number, y: number): number => x + y
    +
    +// 写法四:对象上的方法
    +const obj = {
    +  sum4(x: number, y: number): number {
    +    return x + y
    +  }
    +}
    +
    +// 还有很多……

    是不是一下子 Get 到了技巧!函数的类型定义也是非常的简单,掌握这个技巧可以让解决大部分常见的函数。

    函数的可选参数

    实际业务中会遇到有一些函数入参是可选,可以用和 对象(接口) 一样,用 ? 来定义:

    ts
    // 注意 isDouble 这个入参后面有个 ? 号,表示可选
    +function sum(x: number, y: number, isDouble?: boolean): number {
    +  return isDouble ? (x + y) * 2 : x + y
    +}
    +
    +// 这样传参都不会报错,因为第三个参数是可选的
    +sum(1, 2) // 3
    +sum(1, 2, true) // 6

    TIP

    需要注意的是,可选参数必须排在必传参数的后面。

    无返回值的函数

    除了有返回值的函数,更多时候是不带返回值的,例如下面这个例子,这种函数用 void 来定义它的返回,也就是空。

    ts
    // 注意这里的返回值类型
    +function sayHi(name: string): void {
    +  console.log(\`Hi, \${name}!\`)
    +}
    +
    +sayHi('Petter') // Hi, Petter!

    需要注意的是, voidnullundefined 不可以混用,如果的函数返回值类型是 null ,那么是真的需要 return 一个 null 值:

    ts
    // 只有返回 null 值才能定义返回类型为 null
    +function sayHi(name: string): null {
    +  console.log(\`Hi, \${name}!\`)
    +  return null
    +}

    有时候要判断参数是否合法,不符合要求时需要提前终止执行(比如在做一些表单校验的时候),这种情况下也可以用 void

    ts
    function sayHi(name: string): void {
    +  // 这里判断参数不符合要求则提前终止运行,但它没有返回值
    +  if (!name) return
    +
    +  // 否则正常运行
    +  console.log(\`Hi, \${name}!\`)
    +}

    异步函数的返回值

    对于异步函数,需要用 Promise<T> 类型来定义它的返回值,这里的 T 是泛型,取决于该函数最终返回一个什么样的值( async / await 也适用这个类型)。

    例如这个例子,这是一个异步函数,会 resolve 一个字符串,所以它的返回类型是 Promise<string> (假如没有 resolve 数据,那么就是 Promise<void> )。

    ts
    // 注意这里的返回值类型
    +function queryData(): Promise<string> {
    +  return new Promise((resolve) => {
    +    setTimeout(() => {
    +      resolve('Hello World')
    +    }, 3000)
    +  })
    +}
    +
    +queryData().then((data) => console.log(data))

    函数本身的类型

    细心的开发者可能会有个疑问,通过函数表达式或者箭头函数声明的函数,这样写好像只对函数体的类型进行了定义,而左边的变量并没有指定。

    没错,确实是没有为这个变量指定类型:

    ts
    // 这里的 sum ,确实是没有指定类型
    +const sum = (x: number, y: number): number => x + y

    这是因为,通常 TypeScript 会根据函数体自动推导,所以可以省略这里的定义。

    如果确实有必要,可以这样来定义等号左边的类型:

    ts
    const sum: (x: number, y: number) => number = (x: number, y: number): number =>
    +  x + y

    这里出现了 2 个箭头 => ,注意第一个箭头是 TypeScript 的,第二个箭头是 JavaScript ES6 的。

    实际上上面这句代码是分成了三部分:

    1. const sum: (x: number, y: number) => number 是这个函数的名称和类型
    2. = (x: number, y: number) 这里是指明了函数的入参和类型
    3. : number => x + y 这里是函数的返回值和类型

    第 2 和 3 点相信从上面的例子已经能够理解了,所以注意力放在第一点:

    TypeScript 的函数类型是以 () => void 这样的形式来写的:左侧圆括号是函数的入参类型,如果没有参数,就只有一个圆括号,如果有参数,就按照参数的类型写进去;右侧则是函数的返回值。

    事实上由于 TypeScript 会推导函数类型,所以很少会显式的去写出来,除非在给对象定义方法:

    ts
    // 对象的接口
    +interface Obj {
    +  // 上面的方法就需要显式的定义出来
    +  sum: (x: number, y: number) => number
    +}
    +
    +// 声明一个对象
    +const obj: Obj = {
    +  sum(x: number, y: number): number {
    +    return x + y
    +  }
    +}

    函数的重载

    在未来的实际开发中,可能会接触到一个 API 有多个 TS 类型的情况,比如 Vue 的 watch API

    Vue 的这个 watch API 在被调用时,需要接收一个数据源参数,当侦听单个数据源时,它匹配了类型 1 ,当传入一个数组侦听多个数据源时,它匹配了类型 2 。

    这个知识点其实就是 TypeScript 里的函数重载。

    先来看一下在不使用函数重载时应该如何编写代码:

    ts
    // 对单人或者多人打招呼
    +function greet(name: string | string[]): string | string[] {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 单个问候语
    +const greeting = greet('Petter')
    +console.log(greeting) // Welcome, Petter!
    +
    +// 多个问候语
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)
    +// [ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

    TIP

    注意这里的入参和返回值使用了 TypeScript 的 联合类型 ,不了解的话请先重温知识点。

    虽然代码逻辑部分还是比较清晰的,区分了入参的数组类型和字符串类型,返回不同的结果,但是,在入参和返回值的类型这里,却显得非常乱。

    并且这样子写,下面在调用函数时,定义的变量也无法准确的获得它们的类型:

    ts
    // 此时这个变量依然可能有多个类型
    +const greeting: string | string[]

    如果要强制确认类型,需要使用 TS 的 类型断言 (留意后面的 as 关键字):

    ts
    const greeting = greet('Petter') as string
    +const greetings = greet(['Petter', 'Tom', 'Jimmy']) as string[]

    这无形的增加了编码时的心智负担。

    此时,利用 TypeScript 的函数重载就非常有用!来看一下具体如何实现:

    ts
    // 这一次用了函数重载
    +function greet(name: string): string  // TS 类型
    +function greet(name: string[]): string[]  // TS 类型
    +function greet(name: string | string[]) {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 单个问候语,此时只有一个类型 string
    +const greeting = greet('Petter')
    +console.log(greeting) // Welcome, Petter!
    +
    +// 多个问候语,此时只有一个类型 string[]
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)
    +// [ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

    上面是利用函数重载优化后的代码,可以看到一共写了 3 行 function greet … ,区别如下:

    第 1 行是函数的 TS 类型,告知 TypeScript ,当入参为 string 类型时,返回值也是 string ;

    第 2 行也是函数的 TS 类型,告知 TypeScript ,当入参为 string[] 类型时,返回值也是 string[] ;

    第 3 行开始才是真正的函数体,这里的函数入参需要把可能涉及到的类型都写出来,用以匹配前两行的类型,并且这种情况下,函数的返回值类型可以省略,因为在第 1 、 2 行里已经定义过返回类型了。

    任意值

    如果实在不知道应该如何定义一个变量的类型, TypeScript 也允许使用任意值。

    还记得在 为什么需要类型系统 的用的那个例子吗?再次放到 src/ts/index.ts 里:

    ts
    // 这段代码在 TS 里运行会报错
    +function getFirstWord(msg) {
    +  console.log(msg.split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')
    +
    +getFirstWord(123)

    运行 npm run dev:ts 的时候,会得到一句报错 Parameter 'msg' implicitly has an 'any' type. ,意思是这个参数带有隐式 any 类型。

    这里的 any 类型,就是 TypeScript 任意值。

    既然报错是 “隐式” ,那 “显式” 的指定就可以了,当然,为了程序能够正常运行,还提高一下函数体内的代码健壮性:

    ts
    // 这里的入参显式指定了 any
    +function getFirstWord(msg: any) {
    +  // 这里使用了 String 来避免程序报错
    +  console.log(String(msg).split(' ')[0])
    +}
    +
    +getFirstWord('Hello World')
    +
    +getFirstWord(123)

    这次就不会报错了,不论是传 string 还是 number 还是其他类型,都可以正常运行。

    TIP

    使用 any 的目的是让在开发的过程中,可以不必在无法确认类型的地方消耗太多时间,不代表不需要注意代码的健壮性。

    一旦使用了 any ,代码里的逻辑请务必考虑多种情况进行判断或者处理兼容。

    npm 包

    虽然现在从 npm 安装的包都基本自带 TS 类型了,不过也存在一些包没有默认支持 TypeScript ,比如前面提到的 md5

    在 TS 文件里导入并使用这个包的时候,会编译失败,比如在前面的 Hello TypeScript demo 里敲入以下代码:

    ts
    // src/ts/index.ts
    +import md5 from 'md5'
    +console.log(md5('Hello World'))

    在命令行执行 npm run dev:ts 之后,会得到一段报错信息:

    bash
    src/ts/index.ts:1:17 - error TS7016:
    +Could not find a declaration file for module 'md5'.
    +'D:/Project/demo/hello-node/node_modules/md5/md5.js' implicitly has an 'any' type.
    +  Try \`npm i --save-dev @types/md5\` if it exists
    +  or add a new declaration (.d.ts) file
    +  containing \`declare module 'md5';\`
    +
    +1 import md5 from 'md5'
    +                  ~~~~~

    这是因为缺少 md5 这个包的类型定义,根据命令行的提示,安装 @types/md5 这个包。

    这是因为这些包是很早期用 JavaScript 编写的,因为功能够用作者也没有进行维护更新,所以缺少相应的 TS 类型,因此开源社区推出了一套 @types 类型包,专门处理这样的情况。

    @types 类型包的命名格式为 @types/<package-name> ,也就是在原有的包名前面拼接 @types ,日常开发要用到的知名 npm 包都会有相应的类型包,只需要将其安装到 package.json 的 devDependencies 里即可解决该问题。

    来安装一下 md5 的类型包:

    bash
    npm install -D @types/md5

    再次运行就不会报错了!

    bash
    npm run dev:ts
    +
    +> demo@1.0.0 dev:ts
    +> ts-node src/ts/index.ts
    +
    +b10a8db164e0754105b7a99be72e3fe5

    类型断言

    在讲解 函数的重载 的时候,提到了一个用法:

    ts
    const greeting = greet('Petter') as string

    这里的 值 as 类型 就是 TypeScript 类型断言的语法,它还有另外一个语法是 <类型>值

    当一个变量应用了 联合类型 时,在某些时候如果不显式的指明其中的一种类型,可能会导致后续的代码运行报错。

    这个时候就可以通过类型断言强制指定其中一种类型,以便程序顺利运行下去。

    常见的使用场景

    把函数重载时最开始用到的那个例子,也就是下面的代码放到 src/ts/index.ts 里:

    ts
    // 对单人或者多人打招呼
    +function greet(name: string | string[]): string | string[] {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 虽然已知此时应该是 string[]
    +// 但 TypeScript 还是会认为这是 string | string[]
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +
    +// 会导致无法使用 join 方法
    +const greetingSentence = greetings.join(' ')
    +console.log(greetingSentence)

    执行 npm run dev:ts ,可以清楚的看到报错原因,因为 string 类型不具备 join 方法。

    bash
    src/ts/index.ts:11:31 - error TS2339:
    +Property 'join' does not exist on type 'string | string[]'.
    +  Property 'join' does not exist on type 'string'.
    +
    +11 const greetingStr = greetings.join(' ')
    +                                 ~~~~

    此时利用类型断言就可以达到目的:

    ts
    // 对单人或者多人打招呼
    +function greet(name: string | string[]): string | string[] {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 已知此时应该是 string[] ,所以用类型断言将其指定为 string[]
    +const greetings = greet(['Petter', 'Tom', 'Jimmy']) as string[]
    +
    +// 现在可以正常使用 join 方法
    +const greetingSentence = greetings.join(' ')
    +console.log(greetingSentence)

    需要注意的事情

    但是,请不要滥用类型断言,只在能够确保代码正确的情况下去使用它,来看一个反例:

    ts
    // 原本要求 age 也是必须的属性之一
    +interface User {
    +  name: string
    +  age: number
    +}
    +
    +// 但是类型断言过程中,遗漏了
    +const petter = {} as User
    +petter.name = 'Petter'
    +
    +// TypeScript 依然可以运行下去,但实际上的数据是不完整的
    +console.log(petter) // { name: 'Petter' }

    TIP

    使用类型断言可以让 TypeScript 不再检查该代码,默认是正确无误的。

    所以,请务必保证这段代码真的是正确的!

    类型推论

    还记得在讲 原始数据类型 的时候,最后提到的:

    不过在实际的编程过程中,原始数据类型的类型定义是可以省略的,因为 TypeScript 会根据声明变量时赋值的类型,自动帮推导变量类型

    这其实是 TypeScript 的类型推论功能,当在声明变量的时候可以确认它的值,那么 TypeScript 也可以在这个时候帮推导它的类型,这种情况下就可以省略一些代码量。

    下面这个变量这样声明是 OK 的,因为 TypeScript 会推导 msgstring 类型。

    ts
    // 相当于 msg: string
    +let msg = 'Hello World'
    +
    +// 所以要赋值为 number 类型时会报错
    +msg = 3 // Type 'number' is not assignable to type 'string'

    下面这段代码也是可以正常运行的,因为 TypeScript 会根据 return 的结果推导 getRandomNumber 的返回值是 number 类型,从而推导变量 num 也是 number 类型。

    ts
    // 相当于 getRandomNumber(): number
    +function getRandomNumber() {
    +  return Math.round(Math.random() * 10)
    +}
    +
    +// 相当于 num: number
    +const num = getRandomNumber()

    类型推论的前提是变量在声明时有明确的值,如果一开始没有赋值,那么会被默认为 any 类型。

    ts
    // 此时相当于 foo: any
    +let foo
    +
    +// 所以可以任意改变类型
    +foo = 1 // 1
    +foo = true // true

    类型推论可以节约很多书写工作量,在确保变量初始化有明确的值的时候,可以省略其类型,但必要的时候,该写上的还是要写上。

    如何编译为 JavaScript 代码

    学习到这里,对于 TypeScript 的入门知识已经学到了吧!

    前面学习的时候,一直是基于 dev:ts 命令,它调用的是 ts-node 来运行的 TS 文件:

    json
    {
    +  // ...
    +  "scripts": {
    +    // ...
    +    "dev:ts": "ts-node src/ts/index.ts"
    +  }
    +  // ...
    +}

    但最终可能需要的是一个 JS 文件,比如要通过 <script src> 来放到 HTML 页面里,这就涉及到对 TypeScript 的编译。

    来看看如何把一个 TS 文件编译成 JS 文件,让其从 TypeScript 变成 JavaScript 代码。

    编译单个文件

    先在 package.json 里增加一个 build script :

    json
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "description": "",
    +  "main": "index.js",
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs",
    +    "dev:esm": "node src/esm/index.mjs",
    +    "dev:ts": "ts-node src/ts/index.ts",
    +    "build": "tsc src/ts/index.ts --outDir dist",
    +    "compile": "babel src/babel --out-dir compiled",
    +    "serve": "node server/index.js"
    +  },
    +  "keywords": [],
    +  "author": "",
    +  "license": "ISC",
    +  "dependencies": {
    +    "md5": "^2.3.0"
    +  },
    +  "devDependencies": {
    +    "@types/md5": "^2.3.2",
    +    "ts-node": "^10.7.0",
    +    "typescript": "^4.6.3"
    +  }
    +}

    这样在命令行运行 npm run build 的时候,就会把 src/ts/index.ts 这个 TS 文件编译,并输出到项目下与 src 文件夹同级的 dist 目录下。

    其中 tsc 是 TypeScript 用来编译文件的命令, --outDir 是它的一个选项,用来指定输出目录,如果不指定,则默认生成到源文件所在的目录下面。

    把之前在 函数的重载 用过的这个例子放到 src/ts/index.ts 文件里,因为它是一段比较典型的、包含了多个知识点的 TypeScript 代码:

    ts
    // 对单人或者多人打招呼
    +function greet(name: string): string
    +function greet(name: string[]): string[]
    +function greet(name: string | string[]) {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +// 单个问候语
    +const greeting = greet('Petter')
    +console.log(greeting)
    +
    +// 多个问候语
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    可以先执行 npm run dev:ts 测试它的可运行性,当然,如果期间的代码运行有问题,在编译阶段也会给报错。

    现在来编译它,现在在命令行输入 npm run build 并回车执行。

    可以看到多了一个 dist 文件夹,里面多了一个 index.js 文件。

    bash
    hello-node
    + # 构建产物
    +├─dist
    +  # 编译后的 JS 文件
    + └─index.js
    + # 依赖文件夹
    +├─node_modules
    + # 源码文件夹
    +├─src
    + # 锁定安装依赖的版本号
    +├─package-lock.json
    + # 项目清单
    +└─package.json

    index.js 文件里面的代码如下:

    js
    function greet(name) {
    +  if (Array.isArray(name)) {
    +    return name.map(function (n) {
    +      return 'Welcome, '.concat(n, '!')
    +    })
    +  }
    +  return 'Welcome, '.concat(name, '!')
    +}
    +// 单个问候语
    +var greeting = greet('Petter')
    +console.log(greeting)
    +// 多个问候语
    +var greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    可以看到已经成功把 TypeScript 代码编译成 JavaScript 代码了。

    在命令行执行 node dist/index.js ,像之前测试 JS 文件一样使用 node 命令,运行 dist 目录下的 index.js 文件,它可以正确运行:

    bash
    node dist/index.js
    +Welcome, Petter!
    +[ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

    编译多个模块

    刚才只是编译一个 index.ts 文件,如果 index.ts 里引入了其他模块,此时 index.ts 是作为入口文件,入口文件 import 进来使用的模块也会被 TypeScript 一并编译。

    拆分一下模块,把 greet 函数单独抽离成一个模块文件 src/ts/greet.ts

    ts
    // src/ts/greet.ts
    +function greet(name: string): string
    +function greet(name: string[]): string[]
    +function greet(name: string | string[]) {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +
    +export default greet

    src/ts/index.ts 这边,把这个模块导进来:

    ts
    // src/ts/index.ts
    +import greet from './greet'
    +
    +// 单个问候语
    +const greeting = greet('Petter')
    +console.log(greeting)
    +
    +// 多个问候语
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    package.json 里的 build script 无需修改,依然只编译 index.ts ,但因为导入了 greet.ts ,所以 TypeScript 也会一并编译,来试一下运行 npm run build , 现在 dist 目录下有两个文件了:

    bash
    hello-node
    + # 构建产物
    +├─dist
    + ├─greet.js  # 多了这个文件
    + └─index.js
    +
    + # 其他文件这里省略...
    +└─package.json

    来看看这一次的编译结果:

    先看看 greet.js

    js
    // dist/greet.js
    +'use strict'
    +exports.__esModule = true
    +function greet(name) {
    +  if (Array.isArray(name)) {
    +    return name.map(function (n) {
    +      return 'Welcome, '.concat(n, '!')
    +    })
    +  }
    +  return 'Welcome, '.concat(name, '!')
    +}
    +exports['default'] = greet

    再看看 index.js

    js
    // dist/index.js
    +'use strict'
    +exports.__esModule = true
    +var greet_1 = require('./greet')
    +// 单个问候语
    +var greeting = (0, greet_1['default'])('Petter')
    +console.log(greeting)
    +// 多个问候语
    +var greetings = (0, greet_1['default'])(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    这个代码风格有没有觉得似曾相识?是的,就是前面提到的 CommonJS 模块代码。

    其实在 编译单个文件 代码的时候,它也是 CommonJS ,只不过因为只有一个文件,没有涉及到模块化,所以第一眼看不出来。

    还是在命令行执行 node dist/index.js ,虽然也是运行 dist 目录下的 index.js 文件,但这次它的作用是充当一个入口文件了,引用到的 greet.js 模块文件也会被调用。

    这次一样可以得到正确的结果:

    bash
    node dist/index.js
    +Welcome, Petter!
    +[ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

    修改编译后的 JS 版本

    还可以修改编译配置,让 TypeScript 编译成不同的 JavaScript 版本。

    修改 package.json 里的 build script ,在原有的命令后面增加一个 --target 选项:

    json
    {
    +  // ...
    +  "scripts": {
    +    // ...
    +    "build": "tsc src/ts/index.ts --outDir dist --target es6"
    +  }
    +  // ...
    +}

    --target 选项的作用是控制编译后的 JavaScript 版本,可选的值目前有: es3es5es6es2015es2016es2017es2018es2019es2020es2021es2022esnext ,分别对应不同的 JS 规范(所以未来的可选值会根据 JS 规范一起增加)。

    之前编译出来的 JavaScript 是 CommonJS 规范 ,本次配置的是 es6 ,这是支持 ES Module 规范 的版本。

    TIP

    通常还需要配置一个 --module 选项,用于决定编译后是 CJS 规范还是 ESM 规范,但如果缺省,会根据 --target 来决定。

    再次在命令行运行 npm run build ,这次看看变成了什么:

    先看看 greet.js

    js
    // dist/greet.js
    +function greet(name) {
    +  if (Array.isArray(name)) {
    +    return name.map((n) => \`Welcome, \${n}!\`)
    +  }
    +  return \`Welcome, \${name}!\`
    +}
    +export default greet

    再看看 index.js

    js
    // dist/index.js
    +import greet from './greet'
    +// 单个问候语
    +const greeting = greet('Petter')
    +console.log(greeting)
    +// 多个问候语
    +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
    +console.log(greetings)

    这次编译出来的都是基于 ES6 的 JavaScript 代码,因为涉及到 ESM 模块,所以不能直接在 node 运行它了,可以手动改一下扩展名,改成 .mjs (包括 index 文件里 import 的 greet 文件名也要改),然后再运行 node dist/index.mjs

    其他事项

    在尝试 编译单个文件编译多个模块 的时候,相信各位开发者应该没有太大的疑问,但是来到 修改编译后的 JS 版本 这里,事情就开始变得复杂了起来,应该能感觉到编译的选项和测试成本都相应的增加了很多。

    事实上刚才编译的 JS 文件,因为涉及到 ESM 模块化,是无法通过普通的 <script /> 标签在 HTML 页面里使用的(单个文件可以,因为没有涉及模块),不仅需要加上 ESM 模块所需的 <script type="module" /> 属性,本地开发还需要启动本地服务器通过 HTTP 协议访问页面,才允许在浏览器里使用 ESM 模块(详见: 在浏览器里访问 ESM 一节)。

    因此在实际的项目开发中,需要借助 构建工具 来处理很多编译过程中的兼容性问题,降低开发成本。

    而刚才用到的诸如 --target 这样的选项,可以用一个更简单的方式来管理,类似于 package.json 项目清单, TypeScript 也有一份适用于项目的配置清单,请看 了解 tsconfig.json 部分。

    了解 tsconfig.json

    TypeScript 项目一般都会有一个 tsconfig.json 文件,放置于项目的根目录下,这个文件的作用是用来管理 TypeScript 在编译过程中的一些选项配置。

    在开始之前,需要全局安装一下 TypeScript :

    bash
    npm install -g typescript

    这样就可以使用 TypeScript 提供的全局功能,可以直接在命令行里使用 tsc 命令了(之前本地安装的时候,需要封装成 package.json 的 script 才能调用它)。

    依然是用的 Hello TypeScript demo ,记得先通过 cd 命令进入项目所在的目录。

    在命令行输入 tsc --init ,这是 TypeScript 提供的初始化功能,会生成一个默认的 tsconfig.json 文件。

    bash
    tsc --init
    +
    +Created a new tsconfig.json with:
    +                                                                               TS
    +  target: es2016
    +  module: commonjs
    +  strict: true
    +  esModuleInterop: true
    +  skipLibCheck: true
    +  forceConsistentCasingInFileNames: true
    +
    +
    +You can learn more at https://aka.ms/tsconfig.json

    现在的目录结构是这样子,多了一个 tsconfig.json 文件:

    bash
    hello-node
    + # 构建产物
    +├─dist
    + # 依赖文件夹
    +├─node_modules
    + # 源码文件夹
    +├─src
    + # 锁定安装依赖的版本号
    +├─package-lock.json
    + # 项目清单
    +├─package.json
    + # TypeScript 配置
    +└─tsconfig.json

    每一个 tsc 的命令行的选项,都可以作为这个 JSON 的一个字段来管理,例如刚才的 --outDir--target 选项,在这个 JSON 文件里对应的就是:

    json
    {
    +  "compilerOptions": {
    +    "target": "es6",
    +    "module": "es6",
    +    "outDir": "./dist"
    +  }
    +}

    可以直接在生成的 tsconfig.json 上面修改。

    来试试效果,这一次不需要用到 package.json 里的 build script 了,直接在命令行运行 tsc ,它现在会根据配置的 tsconfig.json 文件,按照的要求来编译。

    可以看到它依然按照要求在 dist 目录下生成编译后的 JS 文件,而且这一次的编译结果,和在 build script 里使用的 tsc src/ts/index.ts --outDir dist --target es6 这一长串命令是一样的。

    所以正常工作中,都是使用 tsconfig.json 来管理 TypeScript 的配置的。

    完整的选项可以查看 TypeScript 官网: tsconfig - typescriptlang

    不过实际工作中的项目都是通过一些脚手架创建的,例如 Vue CLI ,或者现在的 Create Vue 或者 Create Preset ,都会在创建项目模板的时候,提前配置好通用的选项,只需要在不满足条件的情况下去调整。

    `,191),q=JSON.parse('{"title":"快速上手 TypeScript","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"typescript.md","filePath":"typescript.md"}'),E={name:"typescript.md"},S=Object.assign(E,{setup(B){const t="``";return(f,b)=>{const c=l("ImgWrap"),o=l("ClientOnly"),r=l("GitalkComment");return y(),D("div",null,[C,a(o,null,{default:e(()=>[a(c,{src:"/assets/img/github-top-languages.jpg",dark:"/assets/img/github-top-languages-dark.jpg",alt:"TypeScript 的流行程度(来自 GitHub 年度统计报告)"})]),_:1}),A,s("div",{class:"tip custom-block"},[i,s("p",null,[n("注意在上面 "),d,n(" 函数的 "),g,n(" 语句里,使用了一个 "),s("code",null,F(t)),n(" 符号来定义字符串,这是 ES6 语法里的 "),h,n(" ,它和传统的单引号 / 双引号相比更为灵活,特别是遇到字符串需要配合多变量拼接和换行的情况。")]),u]),m,a(o,null,{default:e(()=>[a(r,{issueId:193})]),_:1})])}}});export{q as __pageData,S as default}; diff --git a/assets/upgrade.md.25cf659f.js b/assets/upgrade.md.25cf659f.js new file mode 100644 index 00000000..5d8981ad --- /dev/null +++ b/assets/upgrade.md.25cf659f.js @@ -0,0 +1,190 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as c,v as i,b as D,t as s,O as n,R as t,F as e,L as o,M as p}from"./chunks/framework.0d8bea05.js";const q=JSON.parse('{"title":"脚手架的升级与配置","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"upgrade.md","filePath":"upgrade.md"}'),y={name:"upgrade.md"},C=t('

    脚手架的升级与配置

    相信在 “了解前端工程化” 一章里阅读过 Vue.js 与工程化 一节内容的开发者,可以轻松猜到本书接下来关于 Vue 3 的学习都将基于前端工程化展开,本章将介绍如何配置 Vue 3 的开发环境,并创建基于前端工程化的 Vue 3 项目。

    TIP

    如果还不熟悉 Node.js 、 npm 依赖管理等前端工程化工具链的使用,请先阅读 工程化的前期准备 一章。

    全新的 Vue 版本 ~new

    在 2022 年 2 月 7 日, Vue 3 代替了 Vue 2 成为 Vue 的默认版本,有一些注意事项需要留意:

    使用 Vue 3

    在 npmjs 网站 Vue 主页的版本列表 上面,可以看到当前已使用 3.x.x 这样的版本号作为 latest 这个 Tag 对应的版本,也就是运行 npm i vue 默认会安装 Vue 3 了,无需再和以前一样,需要指定 vue@next 才可以安装到 Vue 3 。

    ',7),F=t(`

    包括 vue-routervuexvue-loader@vue/test-utils 等相关的生态,同样不需要指定 next 版本了,都配合 Vue 3 指定了新的 latest 默认版本。

    同时 Vue 生态的所有官方文档也都默认切换到 Vue 3 版本,可在 官方文档 一节了解最新的官方资源站点。

    使用 Vue 2

    如果还需要使用 Vue 2 ,则在安装的时候需要手动指定 Tag 为 legacy 或者 v2-latest 才能安装到 Vue 2 :

    bash
    # 安装 2.6.x 的最新版本
    +npm i vue@legacy
    +
    +# 安装 2.7.x 的最新版本
    +npm i vue@v2-latest

    注意到 Vue 2 配对了两个不同的 Tag ,分别对应 2.7 系列和 2.6 系列。

    TIP

    Vue 2.7 系列是在 Vue 2 的基础上,对标 Vue 3 的功能支持所作的升级,主要是面向想使用 Vue 3 的新特性、但顾虑于产品对旧浏览器的支持而无法贸然升级的开发者。

    Vue 2.7 与 Vue 2.6 之前的旧版本在使用上略有不同,具体可以查看 Vue 2 的 更新记录 了解具体的差异化。

    对于一些没有打 Tag 的 Vue 2 相关生态(如 vuex 截止到撰写本文时还没有为旧版本打 Tag ),则需要显式的指定版本号才可以安装到配套的程序:

    bash
    # 显式的指定具体版本号安装
    +npm i vuex@3.6.2

    如果之前使用了 latest 标签或 * 从 npm 安装 Vue 或其他官方库,请确保项目下的 package.json 文件能够明确使用兼容 Vue 2 的版本。

    diff
    {
    +  "dependencies": {
    +-   "vue": "latest",
    ++   "vue": "^2.6.14",
    +-   "vue-router": "latest",
    ++   "vue-router": "^3.5.3",
    +-   "vuex": "latest"
    ++   "vuex": "^3.6.2"
    +  },
    +  "devDependencies": {
    +-   "vue-loader": "latest",
    ++   "vue-loader": "^15.9.8",
    +-   "@vue/test-utils": "latest"
    ++   "@vue/test-utils": "^1.3.0"
    +  }
    +}

    TIP

    上方代码块里的 - 号代表移除, + 号代表新增,这是一种 Diff 风格的排版,表明修改前后的变化,后文如有类似的代码风格同理。

    Hello Vue3

    如果想早点开始 Vue 3 的世界,可以通过以下命令直接创建一个启动项目:

    bash
    # 全局安装脚手架
    +npm install -g create-preset
    +
    +# 使用 \`vue3-ts-vite\` 模板创建一个名为 \`hello-vue3\` 的项目
    +preset init hello-vue3 --template vue3-ts-vite

    这是一个基于 Vite + TypeScript + Vue 3 + Pinia 的项目启动模板,可以使用这个项目来练习后面的案例代码,创建完毕后可以直接跳到 安装 VSCode添加 VSCode 插件 继续学习。

    当然有时间还是希望继续阅读 使用 Vite 创建项目使用 @vue/cli 创建项目 这两部分内容,了解 Vue 3 更主流的项目创建方案。

    TIP

    如果网络问题下载失败,可以先执行 preset proxy on 开启加速镜像代理下载。

    使用 Vite 创建项目 ~new

    Vite 是由 Vue 作者尤雨溪先生带领团队开发的一个构建工具,它利用浏览器原生支持 ES 模块的特点,极大提升了开发体验,自 2021 年 1 月份发布 2.0 版本以来,发展非常快,笔者也在第一时间参与贡献了一些文档和插件,并且在 2021 年期间,个人项目已经全面切换到 Vite ,公司业务也在 2021 年底开始使用 Vite 创建新项目,整体情况非常稳定,前景非常乐观。

    关于是否使用 Vite 和安利团队使用 Vue 3 ,可以看笔者在 2022 年春节前写的 Markdown 工程师的一周 一文,记录了一次关于团队技术栈升级的总结,笔者是非常推荐升级技术栈的!

    在这里推荐以下这几种创建 Vite 项目的方式:Create ViteCreate VueCreate Preset

    Create Vite

    create-vite 是 Vite 官方推荐的一个脚手架工具,可以创建基于 Vite 的不同技术栈基础模板。

    运行以下命令创建模板项目,再按照命令行的提示操作(选择 vue 技术栈进入),即可创建一个基于 Vite 的基础空项目。

    bash
    npm create vite

    不过这个方式创建的项目非常基础,如果需要用到 Router 、 Vuex 、 ESLint 等程序,都需要再单独安装和配置,所以推荐使用 Create Preset

    Create Vue

    create-vue 是 Vue 官方推出的一个新脚手架,用以代替基于 Webpack 的 Vue CLI ,它可以创建基于 Vite 的 Vue 基础模板。

    运行以下命令创建模板项目,然后根据命令行的提示操作即可。

    bash
    npm init vue@3

    Create Preset

    create-preset 是 Awesome Starter 的 CLI 脚手架,提供快速创建预设项目的能力,可以创建一些有趣实用的项目启动模板,也可以用来管理的常用项目配置。

    简单使用

    可以通过包管理器直接创建配置,然后按照命令行的提示操作,即可创建开箱即用的模板项目。

    bash
    npm create preset

    在这里选择 vue 技术栈进入,选择 vue3-ts-vite 创建一个基于 Vite + Vue 3 + TypeScript 的项目启动模板。

    TIP

    如果下载失败,可以通过 npm create preset proxy on 开启加速镜像代理下载。

    点击查看:代理选项 - Create Preset

    全局安装

    也可以像使用 @vue/cli 一样,全局安装到本地,通过 preset init 命令来创建项目。

    推荐全局安装它,用起来更方便,请先全局安装:

    bash
    npm install -g create-preset

    可以通过下面这个命令来检查安装是否成功,如果成功,将会得到一个版本号:

    bash
    preset -v

    然后可以通过 --template 选项直接指定一个模板创建项目,在这里使用 vue3-ts-vite 模板创建一个名为 hello-vue3 的项目:

    bash
    preset init hello-vue3 --template vue3-ts-vite

    常用的项目模板也可以绑定为本地配置,点击 Create Preset 官方文档 查看完整使用教程。

    管理项目配置

    不论使用上方哪种方式创建项目,在项目的根目录下都会有一个名为 vite.config.jsvite.config.ts 的项目配置文件(其扩展名由项目使用 JavaScript 还是 TypeScript 决定)。

    里面会有一些预设好的配置,可以在 Vite 官网的配置文档 查阅更多的可配置选项。

    使用 @vue/cli 创建项目

    如果不习惯 Vite ,依然可以使用 Vue CLI 作为开发脚手架。

    和 Vite 的区别

    Vue CLI 使用的构建工具是基于 Webpack ,可以在 了解构建工具 一节了解 Webpack 和 Vite 这两个构建工具的区别。

    更新 CLI 脚手架

    请先全局安装,把脚手架更新到最新版本(最低版本要求在 4.5.6 以上才能支持 Vue 3 项目的创建)。

    js
    npm install -g @vue/cli

    使用 CLI 创建 3.x 项目 ~new

    Vue CLI 全局安装后,可以在命令行输入 vue 进行操作,创建项目使用的是 create 命令:

    js
    vue create hello-vue3

    由于要使用 TypeScript ,所以需要选择最后一个选项来进行自定义搭配,通过键盘的上下箭头进行切换选择:

    js
    Vue CLI v5.0.4
    +? Please pick a preset:
    +  Default ([Vue 3] babel, eslint)
    +  Default ([Vue 2] babel, eslint)
    +> Manually select features

    多选菜单可以按空格选中需要的依赖,总共选择了下面这些选项:

    js
    Vue CLI v5.0.4
    +? Please pick a preset: Manually select features
    +? Check the features needed for your project: (Press <space> to select,
    +<a> to toggle all, <i> to invert selection, and <enter> to proceed)
    + (*) Babel
    + (*) TypeScript
    + ( ) Progressive Web App (PWA) Support
    + (*) Router
    + (*) Vuex
    + (*) CSS Pre-processors
    +>(*) Linter / Formatter
    + ( ) Unit Testing
    + ( ) E2E Testing

    选择 Vue 版本,要用 Vue 3 所以需要选择 3.x :

    js
    ? Choose a version of Vue.js that you want to start the project with
    +  (Use arrow keys)
    +> 3.x
    +  2.x

    是否选择 Class 语法的模板,在 Vue 2 版本为了更好的支持 TypeScript ,通常需要使用 Class 语法,由于 Vue 3 有了对 TypeScript 支持度更高的 Composition API ,因此选择 n ,也就是 “否” :

    js
    ? Use class-style component syntax? (y/N) n

    Babel 可以把新版本的 JavaScript 语句转换为兼容性更好的低版本 Polyfill 写法,所以选 y 确认使用:

    js
    ? Use Babel alongside TypeScript
    +  (required for modern mode, auto-detected polyfills, transpiling JSX)?
    +  (Y/n) y

    接下来是选择路由模式,选 y 启用 History 模式,选 n 使用 Hash 模式,可根据项目情况选择。

    建议先选 y 确认,如果遇到部署的问题可以在 “路由” 一章的 部署问题与服务端配置 小节查看如何处理。

    js
    ? Use history mode for router?
    +  (Requires proper server setup for index fallback in production)
    +  (Y/n) y

    选择一个 CSS 预处理器,可以根据自己的喜好选择,不过鉴于目前开源社区组件常用的都是 Less ,所以也建议选择 Less 作为入门的预处理器工具。

    js
    ? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported
    + by default):
    +  Sass/SCSS (with dart-sass)
    +> Less
    +  Stylus

    Lint 规则,用来代码检查,写 TypeScript 离不开 Lint ,可以根据自己喜好选择,也可以先选择默认,后面在 添加协作规范 一节也有说明如何配置规则,这里先默认第一个:

    js
    ? Pick a linter / formatter config: (Use arrow keys)
    +> ESLint with error prevention only
    +  ESLint + Airbnb config
    +  ESLint + Standard config
    +  ESLint + Prettier

    Lint 的校验时机,一个是在保存时校验,一个是在提交 commit 的时候才校验,这里也选默认:

    js
    ? Pick additional lint features: (Press <space> to select,
    + <a> to toggle all, <i> to invert selection, and <enter> to proceed)
    +>(*) Lint on save
    + ( ) Lint and fix on commit

    项目配置文件,笔者更习惯保存为独立文件:

    js
    ? Where do you prefer placing config for Babel, ESLint, etc.?
    +  (Use arrow keys)
    +> In dedicated config files
    +  In package.json

    是否保存为未来的项目配置,存起来方便以后快速创建:

    js
    ? Save this as a preset for future projects? Yes
    +? Save preset as: vue-3-ts-config

    至此,项目创建完成!可以通过 npm run serve 开启热更进行开发调试,通过 npm run build 构建打包上线。

    管理项目配置

    Vue CLI 的配置文件是 vue.config.js ,可以参考官网的说明文档调整各个选项配置:配置参考 - Vue CLI

    调整 TS Config

    如果在 Vite 的配置文件 vite.config.ts ,或者是在 Vue CLI 的配置文件 vue.config.js 里设置了 alias 的话,因为 TypeScript 不认识里面配置的 alias 别名,所以需要再对 tsconfig.json 做一点调整,增加对应的 paths ,否则在 VSCode 里可能会路径报红,提示找不到模块或其相应的类型声明。

    比如在 Vue 组件里引入路径为 @cp/HelloWorld.vue 的时候,可以避免写出 ../../../../components/HelloWorld.vue 这样的非常多层级的相对路径,但是默认情况下 TypeScript 并不知道这个 alias 等价于 src/components/HelloWorld.vue 这个文件路径,从而会报错找不到该模块并导致无法正确编译。

    假设在 vite.config.ts 里配置了这些 alias :

    ts
    export default defineConfig({
    +  // ...
    +  resolve: {
    +    alias: {
    +      '@': resolve('src'), // 源码根目录
    +      '@img': resolve('src/assets/img'), // 图片
    +      '@less': resolve('src/assets/less'), // 预处理器
    +      '@libs': resolve('src/libs'), // 本地库
    +      '@plugins': resolve('src/plugins'), // 本地插件
    +      '@cp': resolve('src/components'), // 公共组件
    +      '@views': resolve('src/views'), // 路由组件
    +    },
    +  },
    +  // ...
    +})

    那么在该项目的 tsconfig.json 文件里就需要相应的加上这些 paths :

    json
    {
    +  "compilerOptions": {
    +    // ...
    +    "paths": {
    +      "@/*": ["src/*"],
    +      "@img/*": ["src/assets/img/*"],
    +      "@less/*": ["src/assets/less/*"],
    +      "@libs/*": ["src/libs/*"],
    +      "@plugins/*": ["src/plugins/*"],
    +      "@cp/*": ["src/components/*"],
    +      "@views/*": ["src/views/*"]
    +    },
    +    // ...
    +  },
    +  // ...
    +}

    TIP

    注意 paths 的配置全部要以 /* 结尾,代表该目录下的文件都可以被匹配,而不是指向某一个文件。

    添加协作规范

    考虑到后续可能会有团队协作,最好是能够统一编码风格。

    Editor Config

    在项目根目录下再增加一个名为 .editorconfig 的文件。

    这个文件的作用是强制编辑器以该配置来进行编码,比如缩进统一为空格而不是 Tab ,每次缩进都是 2 个空格而不是 4 个等等。

    文件内容如下:

    js
    # http://editorconfig.org
    +root = true
    +
    +[*]
    +charset = utf-8
    +end_of_line = lf
    +indent_size = 2
    +indent_style = space
    +insert_final_newline = true
    +max_line_length = 80
    +trim_trailing_whitespace = true
    +
    +[*.md]
    +max_line_length = 0
    +trim_trailing_whitespace = false

    具体的参数说明可参考:项目代码风格统一神器 editorconfig 的作用与配置说明

    TIP

    部分编辑器可能需要安装对应的插件才可以支持该配置。

    例如 VSCode 需要安装 EditorConfig for VSCode 扩展

    Prettier

    Prettier 是目前最流行的代码格式化工具,可以约束的代码风格不会乱七八糟,目前所知道的知名项目(如 Vue 、 Vite 、 React 等)和大厂团队(谷歌、微软、阿里、腾讯等)都在使用 Prettier 格式化代码。

    通过脚手架创建的项目很多都内置了 Prettier 功能集成(例如 Create Preset ,参考了主流的格式化规范,比如 2 个空格的缩进、无需写分号结尾、数组 / 对象每一项都带有尾逗号等等)。

    如果需要手动增加功能支持,请在项目根目录下创建一个名为 .prettierrc 的文件,写入以下内容:

    json
    {
    +  "semi": false,
    +  "singleQuote": true
    +}

    这代表 JavaScript / TypeScript 代码一般情况下不需要加 ; 分号结尾,然后使用 '' 单引号来定义字符串等变量。

    这里只需要写入与默认配置不同的选项即可,如果和默认配置一致,可以省略,完整的配置选项以及默认值可以在 Prettier 官网的 Options Docs 查看。

    配合 VSCode 的 VSCode Prettier 扩展,可以在编辑器里使用该规则格式化文件(此时无需在项目下安装 Prettier 依赖)。

    如果开启了 ESLint ,配合 ESLint 的代码提示,可以更方便的体验格式化排版,详见 ESLint 一节的说明。

    TIP

    配合 VSCode Prettier 扩展 ,这份配置直接在 VSCode 里生效,如果配合 ESLint 使用,需要安装 Prettier 依赖。

    ESLint

    ESLint 是一个查找 JavaScript / TypeScript 代码问题并提供修复建议的工具,换句话说就是可以约束的代码不会写出一堆 BUG ,它是代码健壮性的重要保障。

    虽然大部分前端开发者都不愿意接受这些约束(当年笔者入坑的时候也是),但说实话,经过 ESLint 检查过的代码质量真的高了很多,如果不愿意总是做一个游兵散勇,建议努力让自己习惯被 ESLint 检查,大厂和大项目都是有 ESLint 检查的。

    特别是写 TypeScript ,配合 ESLint 的检查实在太爽了(字面意思,真的很舒服)。

    通过脚手架创建的项目通常都会帮配置好 ESLint 规则,如果有一些项目是一开始没有,后面想增加 ESLint 检查,也可以手动配置具体规则。

    这里以一个 Vite + TypeScript + Prettier 的 Vue 3 项目为例,在项目根目录下创建一个名为 .eslintrc.js 文件,写入以下内容:

    js
    module.exports = {
    +  root: true,
    +  env: {
    +    node: true,
    +    browser: true,
    +  },
    +  extends: ['plugin:vue/vue3-essential', 'eslint:recommended', 'prettier'],
    +  parser: 'vue-eslint-parser',
    +  parserOptions: {
    +    parser: '@typescript-eslint/parser',
    +    ecmaVersion: 2020,
    +    sourceType: 'module',
    +  },
    +  plugins: ['@typescript-eslint', 'prettier'],
    +  rules: {
    +    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    +    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    +    'prettier/prettier': 'warn',
    +    'vue/multi-word-component-names': 'off',
    +  },
    +  globals: {
    +    defineProps: 'readonly',
    +    defineEmits: 'readonly',
    +    defineExpose: 'readonly',
    +    withDefaults: 'readonly',
    +  },
    +}

    然后安装对应的依赖(记得添加 -D 参数添加到 devDependencies ,因为都是开发环境下使用的):

    这样就可以在项目中生效了(如果 VSCode 未能立即生效,重启编辑器即可),一旦代码有问题, ESLint 就会帮检查出来并反馈具体的报错原因,久而久之的代码就会越写越规范。

    更多的选项可以在 ESLint 官网的 Configuring ESLint 查阅。

    如果有一些文件需要排除检查,可以再创建一个 .eslintignore 文件在项目根目录下,里面添加要排除的文件或者文件夹名称:

    txt
    dist/*

    更多的排除规则可以在 ESLint 官网的 The .eslintignore File 一文查阅。

    安装 VSCode

    要问现在前端工程师用的最多的代码编辑器是哪个,肯定是 Visual Studio Code 了!

    与其他的编辑器相比,有这些优点:

    • 背靠 Microsoft ,完全免费并且开源,开箱即用
    • 可以通过简单的配置调整来满足之前在其他编辑器上的习惯( e.g. Sublime Text )
    • 轻量级但功能强大,内置了对 JavaScript、TypeScript 和 Node.js 的支持,
    • 丰富的插件生态,可以根据的需要,安装提高编码效率的功能支持,以及其他的语言扩展
    • 智能的代码补全、类型推导、代码检查提示、批量编辑、引用跳转、比对文件等功能支持
    • 登录的 GitHub 账号即可实现配置自动同步,在其他电脑上直接使用的最习惯配置和插件

    当然,还有非常多优点可自行体验!

    点击下载:Visual Studio Code

    一般情况下开箱即用,无门槛,也可以阅读官方文档了解一些个性化的配置。

    点击查看:VSCode 操作文档

    添加 VSCode 插件

    VSCode 本身是轻量级的,也就是只提供最基础的功能,更优秀的体验或者个性化体验,是需要通过插件来启用的。

    这里推荐几个非常舒服的 VSCode 插件,可以通过插件中心安装,也可以通过官方应用市场下载。

    Chinese (Simplified)

    VSCode 安装后默认是英文本,需要自己进行汉化配置, VSCode 的特色就是插件化处理各种功能,语言方面也一样。

    安装该插件并启用,即可让 VSCode 显示为简体中文。

    点击下载:Chinese (Simplified)

    Volar

    Vue 官方推荐的 VSCode 扩展,用以代替 Vue 2 时代的 Vetur ,提供了 Vue 3 的语言支持、 TypeScript 支持、基于 vue-tsc 的类型检查等功能。

    点击下载:Volar

    TIP

    Volar 取代了 Vetur 作为 Vue 3 的官方扩展,如果之前已经安装了 Vetur ,请确保在 Vue 3 的项目中禁用它。

    Vue VSCode Snippets

    从实际使用 Vue 的角度提供 Vue 代码片段的生成,可以通过简单的命令,在 .vue 文件里实现大篇幅的代码片段生成,例如:

    1. 输入 ts 可以快速创建一个包含了 template + script + style 的 Vue 组件模板(可选 2.x 、3.x 以及 class 风格的模板)

    2. 也可以通过输入带有 v3 开头的指令来快速生成 Vue 3 的 API 。

    下面是输入了 ts 两个字母之后,用箭头选择 vbase-3-ts 自动生成的一个模板片段,在开发过程中非常省事:

    vue
    <template>
    +  <div></div>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    return {}
    +  },
    +})
    +</script>
    +
    +<style scoped></style>

    点击下载:Vue VSCode Snippets

    Auto Close Tag

    可以快速完成 HTML 标签的闭合,除非通过 .jsx / .tsx 文件编写 Vue 组件,否则在 .vue 文件里写 template 的时候肯定用得上。

    点击下载:Auto Close Tag

    Auto Rename Tag

    假如要把 div 修改为 section,不需要再把 <div> 然后找到代码尾部的 </div> 才能修改,只需要选中前面或后面的半个标签直接修改,插件会自动把闭合部分也同步修改,对于篇幅比较长的代码调整非常有帮助。

    点击下载:Auto Rename Tag

    EditorConfig for VSCode

    一个可以让编辑器遵守协作规范的插件,详见 添加协作规范

    点击下载:EditorConfig for VSCode

    Prettier for VSCode

    这是 Prettier 在 VSCode 的一个扩展,不论项目有没有安装 Pretter 依赖,安装该扩展之后,单纯在 VSCode 也可以使用 Pretter 进行代码格式化。

    点击下载:Prettier - Code formatter

    点击访问:Prettier 官网 了解更多配置。

    ESLint for VSCode

    这是 ESLint 在 VSCode 的一个扩展, TypeScript 项目基本都开了 ESLint ,编辑器也建议安装该扩展支持以便获得更好的代码提示。

    点击下载:VSCode ESLint

    点击访问:ESLint 官网 了解更多配置。

    其他插件

    其他的比如预处理器相关的,Git 相关的,可以根据自己的需求在 VSCode 的插件市场 里搜索安装。

    项目初始化

    至此,通过脚手架已经搭好了一个可直接运行的基础项目,已经可以正常的 npm run devnpm run build 了(具体命令取决于的项目 脚本命令的配置 ),项目配置和编辑器也都弄好了,是不是可以开始写代码了呢?

    请不要着急,还需要了解一点东西,就是如何初始化一个 Vue 3 项目。

    因为在实际开发过程中,还会用到各种 npm 包,像很多 UI 框架、功能插件的引入都是需要在 Vue 初始化阶段处理。

    甚至有时候还要脱离脚手架,采用 CDN 引入的方式来开发,所以开始写组件之前,还需要了解一下在 Vue 3 项目中,初始化阶段对比 Vue 2 的一些变化。

    入口文件

    项目的初始化都是在入口文件集中处理,Vue 3 的目录结构对比 Vue 2 没有变化,入口文件依然还是 main.ts 这个文件。

    但是 Vue 3 在初始化的时候,做了不少的调整,代码写法和 Vue 2 是完全不同,但是对于这次大改动,笔者认为是好的,因为统一了相关生态的启用方式,不再像 Vue 2 时期那样多方式共存,显得比较杂乱。

    回顾 Vue 2

    Vue 2 在导入各种依赖之后,通过 new Vue() 执行 Vue 的初始化,相关的 Vue 生态和插件,有的是使用 Vue.use() 来进行初始化,有的是作为 new Vue() 的入参:

    ts
    import Vue from 'vue'
    +import App from './App.vue'
    +import router from './router'
    +import store from './store'
    +import pluginA from 'pluginA'
    +import pluginB from 'pluginB'
    +import pluginC from 'pluginC'
    +
    +// 使用了 \`use\` 方法激活
    +Vue.use(pluginA)
    +Vue.use(pluginB)
    +Vue.use(pluginC)
    +
    +Vue.config.productionTip = false
    +
    +// 作为 \`new Vue()\` 的入参激活
    +new Vue({
    +  router,
    +  store,
    +  render: (h) => h(App),
    +}).$mount('#app')

    了解 Vue 3 ~new

    在 Vue 3 ,使用 createApp 执行 Vue 的初始化,另外不管是 Vue 生态里的东西,还是外部插件、 UI 框架,统一都是由 use() 进行激活,非常统一和简洁:

    ts
    import { createApp } from 'vue'
    +import App from './App.vue'
    +import router from './router'
    +import store from './store'
    +import pluginA from 'pluginA'
    +import pluginB from 'pluginB'
    +import pluginC from 'pluginC'
    +
    +createApp(App)
    +  .use(store)
    +  .use(router)
    +  .use(pluginA)
    +  .use(pluginB)
    +  .use(pluginC)
    +  .mount('#app')

    Vue Devtools

    Vue Devtools 是一个浏览器扩展,支持 Chrome 、 Firefox 等浏览器,需要先安装才能使用。

    点击安装:Vue Devtools 的浏览器扩展

    当在 Vue 项目通过 npm run dev 等命令启动开发环境服务后,访问本地页面(如: http://localhost:3000/ ),在页面上按 F12 唤起浏览器的控制台,会发现多了一个名为 vue 的面板。

    面板的顶部有一个菜单可以切换不同的选项卡,菜单数量会根据不同项目有所不同,例如没有安装 Pinia 则不会出现 Pinia 选项卡,这里以其中一部分选项卡作为举例。

    Components 是以结构化的方式显示组件的调试信息,可以查看组件的父子关系,并检查组件的各种内部状态:

    `,191),A=e("p",null,"Routes 可以查看当前所在路由的配置信息:",-1),d=e("p",null,"Timeline 是以时间线的方式追踪不同类型的数据,例如事件:",-1),u=e("p",null,"Pinia 是可以查看当前组件引入的全局状态情况:",-1),h=e("p",null,[o("可以在 "),e("a",{href:"https://devtools.vuejs.org/",target:"_blank",rel:"noreferrer"},"Vue Devtools 官网"),o(" 了解更多的用法。")],-1);function g(m,f,v,b,V,k){const l=p("ImgWrap"),a=p("ClientOnly"),r=p("GitalkComment");return i(),D("div",null,[C,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-versions-on-npmjs.jpg",alt:"Vue 在 npmjs 上的版本列表"})]),_:1}),F,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-devtools-components.jpg",dark:"/assets/img/vue-devtools-components-dark.jpg",alt:"Vue Devtools 的 Components 界面"})]),_:1}),A,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-devtools-routes.jpg",dark:"/assets/img/vue-devtools-routes-dark.jpg",alt:"Vue Devtools 的 Routes 界面"})]),_:1}),d,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-devtools-timeline.jpg",dark:"/assets/img/vue-devtools-timeline-dark.jpg",alt:"Vue Devtools 的 Timeline 界面"})]),_:1}),u,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-devtools-pinia.jpg",dark:"/assets/img/vue-devtools-pinia-dark.jpg",alt:"Vue Devtools 的 Pinia 界面"})]),_:1}),h,s(a,null,{default:n(()=>[s(r,{issueId:45})]),_:1})])}const S=c(y,[["render",g]]);export{q as __pageData,S as default}; diff --git a/assets/upgrade.md.25cf659f.lean.js b/assets/upgrade.md.25cf659f.lean.js new file mode 100644 index 00000000..5d8981ad --- /dev/null +++ b/assets/upgrade.md.25cf659f.lean.js @@ -0,0 +1,190 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as c,v as i,b as D,t as s,O as n,R as t,F as e,L as o,M as p}from"./chunks/framework.0d8bea05.js";const q=JSON.parse('{"title":"脚手架的升级与配置","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"upgrade.md","filePath":"upgrade.md"}'),y={name:"upgrade.md"},C=t('

    脚手架的升级与配置

    相信在 “了解前端工程化” 一章里阅读过 Vue.js 与工程化 一节内容的开发者,可以轻松猜到本书接下来关于 Vue 3 的学习都将基于前端工程化展开,本章将介绍如何配置 Vue 3 的开发环境,并创建基于前端工程化的 Vue 3 项目。

    TIP

    如果还不熟悉 Node.js 、 npm 依赖管理等前端工程化工具链的使用,请先阅读 工程化的前期准备 一章。

    全新的 Vue 版本 ~new

    在 2022 年 2 月 7 日, Vue 3 代替了 Vue 2 成为 Vue 的默认版本,有一些注意事项需要留意:

    使用 Vue 3

    在 npmjs 网站 Vue 主页的版本列表 上面,可以看到当前已使用 3.x.x 这样的版本号作为 latest 这个 Tag 对应的版本,也就是运行 npm i vue 默认会安装 Vue 3 了,无需再和以前一样,需要指定 vue@next 才可以安装到 Vue 3 。

    ',7),F=t(`

    包括 vue-routervuexvue-loader@vue/test-utils 等相关的生态,同样不需要指定 next 版本了,都配合 Vue 3 指定了新的 latest 默认版本。

    同时 Vue 生态的所有官方文档也都默认切换到 Vue 3 版本,可在 官方文档 一节了解最新的官方资源站点。

    使用 Vue 2

    如果还需要使用 Vue 2 ,则在安装的时候需要手动指定 Tag 为 legacy 或者 v2-latest 才能安装到 Vue 2 :

    bash
    # 安装 2.6.x 的最新版本
    +npm i vue@legacy
    +
    +# 安装 2.7.x 的最新版本
    +npm i vue@v2-latest

    注意到 Vue 2 配对了两个不同的 Tag ,分别对应 2.7 系列和 2.6 系列。

    TIP

    Vue 2.7 系列是在 Vue 2 的基础上,对标 Vue 3 的功能支持所作的升级,主要是面向想使用 Vue 3 的新特性、但顾虑于产品对旧浏览器的支持而无法贸然升级的开发者。

    Vue 2.7 与 Vue 2.6 之前的旧版本在使用上略有不同,具体可以查看 Vue 2 的 更新记录 了解具体的差异化。

    对于一些没有打 Tag 的 Vue 2 相关生态(如 vuex 截止到撰写本文时还没有为旧版本打 Tag ),则需要显式的指定版本号才可以安装到配套的程序:

    bash
    # 显式的指定具体版本号安装
    +npm i vuex@3.6.2

    如果之前使用了 latest 标签或 * 从 npm 安装 Vue 或其他官方库,请确保项目下的 package.json 文件能够明确使用兼容 Vue 2 的版本。

    diff
    {
    +  "dependencies": {
    +-   "vue": "latest",
    ++   "vue": "^2.6.14",
    +-   "vue-router": "latest",
    ++   "vue-router": "^3.5.3",
    +-   "vuex": "latest"
    ++   "vuex": "^3.6.2"
    +  },
    +  "devDependencies": {
    +-   "vue-loader": "latest",
    ++   "vue-loader": "^15.9.8",
    +-   "@vue/test-utils": "latest"
    ++   "@vue/test-utils": "^1.3.0"
    +  }
    +}

    TIP

    上方代码块里的 - 号代表移除, + 号代表新增,这是一种 Diff 风格的排版,表明修改前后的变化,后文如有类似的代码风格同理。

    Hello Vue3

    如果想早点开始 Vue 3 的世界,可以通过以下命令直接创建一个启动项目:

    bash
    # 全局安装脚手架
    +npm install -g create-preset
    +
    +# 使用 \`vue3-ts-vite\` 模板创建一个名为 \`hello-vue3\` 的项目
    +preset init hello-vue3 --template vue3-ts-vite

    这是一个基于 Vite + TypeScript + Vue 3 + Pinia 的项目启动模板,可以使用这个项目来练习后面的案例代码,创建完毕后可以直接跳到 安装 VSCode添加 VSCode 插件 继续学习。

    当然有时间还是希望继续阅读 使用 Vite 创建项目使用 @vue/cli 创建项目 这两部分内容,了解 Vue 3 更主流的项目创建方案。

    TIP

    如果网络问题下载失败,可以先执行 preset proxy on 开启加速镜像代理下载。

    使用 Vite 创建项目 ~new

    Vite 是由 Vue 作者尤雨溪先生带领团队开发的一个构建工具,它利用浏览器原生支持 ES 模块的特点,极大提升了开发体验,自 2021 年 1 月份发布 2.0 版本以来,发展非常快,笔者也在第一时间参与贡献了一些文档和插件,并且在 2021 年期间,个人项目已经全面切换到 Vite ,公司业务也在 2021 年底开始使用 Vite 创建新项目,整体情况非常稳定,前景非常乐观。

    关于是否使用 Vite 和安利团队使用 Vue 3 ,可以看笔者在 2022 年春节前写的 Markdown 工程师的一周 一文,记录了一次关于团队技术栈升级的总结,笔者是非常推荐升级技术栈的!

    在这里推荐以下这几种创建 Vite 项目的方式:Create ViteCreate VueCreate Preset

    Create Vite

    create-vite 是 Vite 官方推荐的一个脚手架工具,可以创建基于 Vite 的不同技术栈基础模板。

    运行以下命令创建模板项目,再按照命令行的提示操作(选择 vue 技术栈进入),即可创建一个基于 Vite 的基础空项目。

    bash
    npm create vite

    不过这个方式创建的项目非常基础,如果需要用到 Router 、 Vuex 、 ESLint 等程序,都需要再单独安装和配置,所以推荐使用 Create Preset

    Create Vue

    create-vue 是 Vue 官方推出的一个新脚手架,用以代替基于 Webpack 的 Vue CLI ,它可以创建基于 Vite 的 Vue 基础模板。

    运行以下命令创建模板项目,然后根据命令行的提示操作即可。

    bash
    npm init vue@3

    Create Preset

    create-preset 是 Awesome Starter 的 CLI 脚手架,提供快速创建预设项目的能力,可以创建一些有趣实用的项目启动模板,也可以用来管理的常用项目配置。

    简单使用

    可以通过包管理器直接创建配置,然后按照命令行的提示操作,即可创建开箱即用的模板项目。

    bash
    npm create preset

    在这里选择 vue 技术栈进入,选择 vue3-ts-vite 创建一个基于 Vite + Vue 3 + TypeScript 的项目启动模板。

    TIP

    如果下载失败,可以通过 npm create preset proxy on 开启加速镜像代理下载。

    点击查看:代理选项 - Create Preset

    全局安装

    也可以像使用 @vue/cli 一样,全局安装到本地,通过 preset init 命令来创建项目。

    推荐全局安装它,用起来更方便,请先全局安装:

    bash
    npm install -g create-preset

    可以通过下面这个命令来检查安装是否成功,如果成功,将会得到一个版本号:

    bash
    preset -v

    然后可以通过 --template 选项直接指定一个模板创建项目,在这里使用 vue3-ts-vite 模板创建一个名为 hello-vue3 的项目:

    bash
    preset init hello-vue3 --template vue3-ts-vite

    常用的项目模板也可以绑定为本地配置,点击 Create Preset 官方文档 查看完整使用教程。

    管理项目配置

    不论使用上方哪种方式创建项目,在项目的根目录下都会有一个名为 vite.config.jsvite.config.ts 的项目配置文件(其扩展名由项目使用 JavaScript 还是 TypeScript 决定)。

    里面会有一些预设好的配置,可以在 Vite 官网的配置文档 查阅更多的可配置选项。

    使用 @vue/cli 创建项目

    如果不习惯 Vite ,依然可以使用 Vue CLI 作为开发脚手架。

    和 Vite 的区别

    Vue CLI 使用的构建工具是基于 Webpack ,可以在 了解构建工具 一节了解 Webpack 和 Vite 这两个构建工具的区别。

    更新 CLI 脚手架

    请先全局安装,把脚手架更新到最新版本(最低版本要求在 4.5.6 以上才能支持 Vue 3 项目的创建)。

    js
    npm install -g @vue/cli

    使用 CLI 创建 3.x 项目 ~new

    Vue CLI 全局安装后,可以在命令行输入 vue 进行操作,创建项目使用的是 create 命令:

    js
    vue create hello-vue3

    由于要使用 TypeScript ,所以需要选择最后一个选项来进行自定义搭配,通过键盘的上下箭头进行切换选择:

    js
    Vue CLI v5.0.4
    +? Please pick a preset:
    +  Default ([Vue 3] babel, eslint)
    +  Default ([Vue 2] babel, eslint)
    +> Manually select features

    多选菜单可以按空格选中需要的依赖,总共选择了下面这些选项:

    js
    Vue CLI v5.0.4
    +? Please pick a preset: Manually select features
    +? Check the features needed for your project: (Press <space> to select,
    +<a> to toggle all, <i> to invert selection, and <enter> to proceed)
    + (*) Babel
    + (*) TypeScript
    + ( ) Progressive Web App (PWA) Support
    + (*) Router
    + (*) Vuex
    + (*) CSS Pre-processors
    +>(*) Linter / Formatter
    + ( ) Unit Testing
    + ( ) E2E Testing

    选择 Vue 版本,要用 Vue 3 所以需要选择 3.x :

    js
    ? Choose a version of Vue.js that you want to start the project with
    +  (Use arrow keys)
    +> 3.x
    +  2.x

    是否选择 Class 语法的模板,在 Vue 2 版本为了更好的支持 TypeScript ,通常需要使用 Class 语法,由于 Vue 3 有了对 TypeScript 支持度更高的 Composition API ,因此选择 n ,也就是 “否” :

    js
    ? Use class-style component syntax? (y/N) n

    Babel 可以把新版本的 JavaScript 语句转换为兼容性更好的低版本 Polyfill 写法,所以选 y 确认使用:

    js
    ? Use Babel alongside TypeScript
    +  (required for modern mode, auto-detected polyfills, transpiling JSX)?
    +  (Y/n) y

    接下来是选择路由模式,选 y 启用 History 模式,选 n 使用 Hash 模式,可根据项目情况选择。

    建议先选 y 确认,如果遇到部署的问题可以在 “路由” 一章的 部署问题与服务端配置 小节查看如何处理。

    js
    ? Use history mode for router?
    +  (Requires proper server setup for index fallback in production)
    +  (Y/n) y

    选择一个 CSS 预处理器,可以根据自己的喜好选择,不过鉴于目前开源社区组件常用的都是 Less ,所以也建议选择 Less 作为入门的预处理器工具。

    js
    ? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported
    + by default):
    +  Sass/SCSS (with dart-sass)
    +> Less
    +  Stylus

    Lint 规则,用来代码检查,写 TypeScript 离不开 Lint ,可以根据自己喜好选择,也可以先选择默认,后面在 添加协作规范 一节也有说明如何配置规则,这里先默认第一个:

    js
    ? Pick a linter / formatter config: (Use arrow keys)
    +> ESLint with error prevention only
    +  ESLint + Airbnb config
    +  ESLint + Standard config
    +  ESLint + Prettier

    Lint 的校验时机,一个是在保存时校验,一个是在提交 commit 的时候才校验,这里也选默认:

    js
    ? Pick additional lint features: (Press <space> to select,
    + <a> to toggle all, <i> to invert selection, and <enter> to proceed)
    +>(*) Lint on save
    + ( ) Lint and fix on commit

    项目配置文件,笔者更习惯保存为独立文件:

    js
    ? Where do you prefer placing config for Babel, ESLint, etc.?
    +  (Use arrow keys)
    +> In dedicated config files
    +  In package.json

    是否保存为未来的项目配置,存起来方便以后快速创建:

    js
    ? Save this as a preset for future projects? Yes
    +? Save preset as: vue-3-ts-config

    至此,项目创建完成!可以通过 npm run serve 开启热更进行开发调试,通过 npm run build 构建打包上线。

    管理项目配置

    Vue CLI 的配置文件是 vue.config.js ,可以参考官网的说明文档调整各个选项配置:配置参考 - Vue CLI

    调整 TS Config

    如果在 Vite 的配置文件 vite.config.ts ,或者是在 Vue CLI 的配置文件 vue.config.js 里设置了 alias 的话,因为 TypeScript 不认识里面配置的 alias 别名,所以需要再对 tsconfig.json 做一点调整,增加对应的 paths ,否则在 VSCode 里可能会路径报红,提示找不到模块或其相应的类型声明。

    比如在 Vue 组件里引入路径为 @cp/HelloWorld.vue 的时候,可以避免写出 ../../../../components/HelloWorld.vue 这样的非常多层级的相对路径,但是默认情况下 TypeScript 并不知道这个 alias 等价于 src/components/HelloWorld.vue 这个文件路径,从而会报错找不到该模块并导致无法正确编译。

    假设在 vite.config.ts 里配置了这些 alias :

    ts
    export default defineConfig({
    +  // ...
    +  resolve: {
    +    alias: {
    +      '@': resolve('src'), // 源码根目录
    +      '@img': resolve('src/assets/img'), // 图片
    +      '@less': resolve('src/assets/less'), // 预处理器
    +      '@libs': resolve('src/libs'), // 本地库
    +      '@plugins': resolve('src/plugins'), // 本地插件
    +      '@cp': resolve('src/components'), // 公共组件
    +      '@views': resolve('src/views'), // 路由组件
    +    },
    +  },
    +  // ...
    +})

    那么在该项目的 tsconfig.json 文件里就需要相应的加上这些 paths :

    json
    {
    +  "compilerOptions": {
    +    // ...
    +    "paths": {
    +      "@/*": ["src/*"],
    +      "@img/*": ["src/assets/img/*"],
    +      "@less/*": ["src/assets/less/*"],
    +      "@libs/*": ["src/libs/*"],
    +      "@plugins/*": ["src/plugins/*"],
    +      "@cp/*": ["src/components/*"],
    +      "@views/*": ["src/views/*"]
    +    },
    +    // ...
    +  },
    +  // ...
    +}

    TIP

    注意 paths 的配置全部要以 /* 结尾,代表该目录下的文件都可以被匹配,而不是指向某一个文件。

    添加协作规范

    考虑到后续可能会有团队协作,最好是能够统一编码风格。

    Editor Config

    在项目根目录下再增加一个名为 .editorconfig 的文件。

    这个文件的作用是强制编辑器以该配置来进行编码,比如缩进统一为空格而不是 Tab ,每次缩进都是 2 个空格而不是 4 个等等。

    文件内容如下:

    js
    # http://editorconfig.org
    +root = true
    +
    +[*]
    +charset = utf-8
    +end_of_line = lf
    +indent_size = 2
    +indent_style = space
    +insert_final_newline = true
    +max_line_length = 80
    +trim_trailing_whitespace = true
    +
    +[*.md]
    +max_line_length = 0
    +trim_trailing_whitespace = false

    具体的参数说明可参考:项目代码风格统一神器 editorconfig 的作用与配置说明

    TIP

    部分编辑器可能需要安装对应的插件才可以支持该配置。

    例如 VSCode 需要安装 EditorConfig for VSCode 扩展

    Prettier

    Prettier 是目前最流行的代码格式化工具,可以约束的代码风格不会乱七八糟,目前所知道的知名项目(如 Vue 、 Vite 、 React 等)和大厂团队(谷歌、微软、阿里、腾讯等)都在使用 Prettier 格式化代码。

    通过脚手架创建的项目很多都内置了 Prettier 功能集成(例如 Create Preset ,参考了主流的格式化规范,比如 2 个空格的缩进、无需写分号结尾、数组 / 对象每一项都带有尾逗号等等)。

    如果需要手动增加功能支持,请在项目根目录下创建一个名为 .prettierrc 的文件,写入以下内容:

    json
    {
    +  "semi": false,
    +  "singleQuote": true
    +}

    这代表 JavaScript / TypeScript 代码一般情况下不需要加 ; 分号结尾,然后使用 '' 单引号来定义字符串等变量。

    这里只需要写入与默认配置不同的选项即可,如果和默认配置一致,可以省略,完整的配置选项以及默认值可以在 Prettier 官网的 Options Docs 查看。

    配合 VSCode 的 VSCode Prettier 扩展,可以在编辑器里使用该规则格式化文件(此时无需在项目下安装 Prettier 依赖)。

    如果开启了 ESLint ,配合 ESLint 的代码提示,可以更方便的体验格式化排版,详见 ESLint 一节的说明。

    TIP

    配合 VSCode Prettier 扩展 ,这份配置直接在 VSCode 里生效,如果配合 ESLint 使用,需要安装 Prettier 依赖。

    ESLint

    ESLint 是一个查找 JavaScript / TypeScript 代码问题并提供修复建议的工具,换句话说就是可以约束的代码不会写出一堆 BUG ,它是代码健壮性的重要保障。

    虽然大部分前端开发者都不愿意接受这些约束(当年笔者入坑的时候也是),但说实话,经过 ESLint 检查过的代码质量真的高了很多,如果不愿意总是做一个游兵散勇,建议努力让自己习惯被 ESLint 检查,大厂和大项目都是有 ESLint 检查的。

    特别是写 TypeScript ,配合 ESLint 的检查实在太爽了(字面意思,真的很舒服)。

    通过脚手架创建的项目通常都会帮配置好 ESLint 规则,如果有一些项目是一开始没有,后面想增加 ESLint 检查,也可以手动配置具体规则。

    这里以一个 Vite + TypeScript + Prettier 的 Vue 3 项目为例,在项目根目录下创建一个名为 .eslintrc.js 文件,写入以下内容:

    js
    module.exports = {
    +  root: true,
    +  env: {
    +    node: true,
    +    browser: true,
    +  },
    +  extends: ['plugin:vue/vue3-essential', 'eslint:recommended', 'prettier'],
    +  parser: 'vue-eslint-parser',
    +  parserOptions: {
    +    parser: '@typescript-eslint/parser',
    +    ecmaVersion: 2020,
    +    sourceType: 'module',
    +  },
    +  plugins: ['@typescript-eslint', 'prettier'],
    +  rules: {
    +    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    +    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    +    'prettier/prettier': 'warn',
    +    'vue/multi-word-component-names': 'off',
    +  },
    +  globals: {
    +    defineProps: 'readonly',
    +    defineEmits: 'readonly',
    +    defineExpose: 'readonly',
    +    withDefaults: 'readonly',
    +  },
    +}

    然后安装对应的依赖(记得添加 -D 参数添加到 devDependencies ,因为都是开发环境下使用的):

    这样就可以在项目中生效了(如果 VSCode 未能立即生效,重启编辑器即可),一旦代码有问题, ESLint 就会帮检查出来并反馈具体的报错原因,久而久之的代码就会越写越规范。

    更多的选项可以在 ESLint 官网的 Configuring ESLint 查阅。

    如果有一些文件需要排除检查,可以再创建一个 .eslintignore 文件在项目根目录下,里面添加要排除的文件或者文件夹名称:

    txt
    dist/*

    更多的排除规则可以在 ESLint 官网的 The .eslintignore File 一文查阅。

    安装 VSCode

    要问现在前端工程师用的最多的代码编辑器是哪个,肯定是 Visual Studio Code 了!

    与其他的编辑器相比,有这些优点:

    • 背靠 Microsoft ,完全免费并且开源,开箱即用
    • 可以通过简单的配置调整来满足之前在其他编辑器上的习惯( e.g. Sublime Text )
    • 轻量级但功能强大,内置了对 JavaScript、TypeScript 和 Node.js 的支持,
    • 丰富的插件生态,可以根据的需要,安装提高编码效率的功能支持,以及其他的语言扩展
    • 智能的代码补全、类型推导、代码检查提示、批量编辑、引用跳转、比对文件等功能支持
    • 登录的 GitHub 账号即可实现配置自动同步,在其他电脑上直接使用的最习惯配置和插件

    当然,还有非常多优点可自行体验!

    点击下载:Visual Studio Code

    一般情况下开箱即用,无门槛,也可以阅读官方文档了解一些个性化的配置。

    点击查看:VSCode 操作文档

    添加 VSCode 插件

    VSCode 本身是轻量级的,也就是只提供最基础的功能,更优秀的体验或者个性化体验,是需要通过插件来启用的。

    这里推荐几个非常舒服的 VSCode 插件,可以通过插件中心安装,也可以通过官方应用市场下载。

    Chinese (Simplified)

    VSCode 安装后默认是英文本,需要自己进行汉化配置, VSCode 的特色就是插件化处理各种功能,语言方面也一样。

    安装该插件并启用,即可让 VSCode 显示为简体中文。

    点击下载:Chinese (Simplified)

    Volar

    Vue 官方推荐的 VSCode 扩展,用以代替 Vue 2 时代的 Vetur ,提供了 Vue 3 的语言支持、 TypeScript 支持、基于 vue-tsc 的类型检查等功能。

    点击下载:Volar

    TIP

    Volar 取代了 Vetur 作为 Vue 3 的官方扩展,如果之前已经安装了 Vetur ,请确保在 Vue 3 的项目中禁用它。

    Vue VSCode Snippets

    从实际使用 Vue 的角度提供 Vue 代码片段的生成,可以通过简单的命令,在 .vue 文件里实现大篇幅的代码片段生成,例如:

    1. 输入 ts 可以快速创建一个包含了 template + script + style 的 Vue 组件模板(可选 2.x 、3.x 以及 class 风格的模板)

    2. 也可以通过输入带有 v3 开头的指令来快速生成 Vue 3 的 API 。

    下面是输入了 ts 两个字母之后,用箭头选择 vbase-3-ts 自动生成的一个模板片段,在开发过程中非常省事:

    vue
    <template>
    +  <div></div>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    return {}
    +  },
    +})
    +</script>
    +
    +<style scoped></style>

    点击下载:Vue VSCode Snippets

    Auto Close Tag

    可以快速完成 HTML 标签的闭合,除非通过 .jsx / .tsx 文件编写 Vue 组件,否则在 .vue 文件里写 template 的时候肯定用得上。

    点击下载:Auto Close Tag

    Auto Rename Tag

    假如要把 div 修改为 section,不需要再把 <div> 然后找到代码尾部的 </div> 才能修改,只需要选中前面或后面的半个标签直接修改,插件会自动把闭合部分也同步修改,对于篇幅比较长的代码调整非常有帮助。

    点击下载:Auto Rename Tag

    EditorConfig for VSCode

    一个可以让编辑器遵守协作规范的插件,详见 添加协作规范

    点击下载:EditorConfig for VSCode

    Prettier for VSCode

    这是 Prettier 在 VSCode 的一个扩展,不论项目有没有安装 Pretter 依赖,安装该扩展之后,单纯在 VSCode 也可以使用 Pretter 进行代码格式化。

    点击下载:Prettier - Code formatter

    点击访问:Prettier 官网 了解更多配置。

    ESLint for VSCode

    这是 ESLint 在 VSCode 的一个扩展, TypeScript 项目基本都开了 ESLint ,编辑器也建议安装该扩展支持以便获得更好的代码提示。

    点击下载:VSCode ESLint

    点击访问:ESLint 官网 了解更多配置。

    其他插件

    其他的比如预处理器相关的,Git 相关的,可以根据自己的需求在 VSCode 的插件市场 里搜索安装。

    项目初始化

    至此,通过脚手架已经搭好了一个可直接运行的基础项目,已经可以正常的 npm run devnpm run build 了(具体命令取决于的项目 脚本命令的配置 ),项目配置和编辑器也都弄好了,是不是可以开始写代码了呢?

    请不要着急,还需要了解一点东西,就是如何初始化一个 Vue 3 项目。

    因为在实际开发过程中,还会用到各种 npm 包,像很多 UI 框架、功能插件的引入都是需要在 Vue 初始化阶段处理。

    甚至有时候还要脱离脚手架,采用 CDN 引入的方式来开发,所以开始写组件之前,还需要了解一下在 Vue 3 项目中,初始化阶段对比 Vue 2 的一些变化。

    入口文件

    项目的初始化都是在入口文件集中处理,Vue 3 的目录结构对比 Vue 2 没有变化,入口文件依然还是 main.ts 这个文件。

    但是 Vue 3 在初始化的时候,做了不少的调整,代码写法和 Vue 2 是完全不同,但是对于这次大改动,笔者认为是好的,因为统一了相关生态的启用方式,不再像 Vue 2 时期那样多方式共存,显得比较杂乱。

    回顾 Vue 2

    Vue 2 在导入各种依赖之后,通过 new Vue() 执行 Vue 的初始化,相关的 Vue 生态和插件,有的是使用 Vue.use() 来进行初始化,有的是作为 new Vue() 的入参:

    ts
    import Vue from 'vue'
    +import App from './App.vue'
    +import router from './router'
    +import store from './store'
    +import pluginA from 'pluginA'
    +import pluginB from 'pluginB'
    +import pluginC from 'pluginC'
    +
    +// 使用了 \`use\` 方法激活
    +Vue.use(pluginA)
    +Vue.use(pluginB)
    +Vue.use(pluginC)
    +
    +Vue.config.productionTip = false
    +
    +// 作为 \`new Vue()\` 的入参激活
    +new Vue({
    +  router,
    +  store,
    +  render: (h) => h(App),
    +}).$mount('#app')

    了解 Vue 3 ~new

    在 Vue 3 ,使用 createApp 执行 Vue 的初始化,另外不管是 Vue 生态里的东西,还是外部插件、 UI 框架,统一都是由 use() 进行激活,非常统一和简洁:

    ts
    import { createApp } from 'vue'
    +import App from './App.vue'
    +import router from './router'
    +import store from './store'
    +import pluginA from 'pluginA'
    +import pluginB from 'pluginB'
    +import pluginC from 'pluginC'
    +
    +createApp(App)
    +  .use(store)
    +  .use(router)
    +  .use(pluginA)
    +  .use(pluginB)
    +  .use(pluginC)
    +  .mount('#app')

    Vue Devtools

    Vue Devtools 是一个浏览器扩展,支持 Chrome 、 Firefox 等浏览器,需要先安装才能使用。

    点击安装:Vue Devtools 的浏览器扩展

    当在 Vue 项目通过 npm run dev 等命令启动开发环境服务后,访问本地页面(如: http://localhost:3000/ ),在页面上按 F12 唤起浏览器的控制台,会发现多了一个名为 vue 的面板。

    面板的顶部有一个菜单可以切换不同的选项卡,菜单数量会根据不同项目有所不同,例如没有安装 Pinia 则不会出现 Pinia 选项卡,这里以其中一部分选项卡作为举例。

    Components 是以结构化的方式显示组件的调试信息,可以查看组件的父子关系,并检查组件的各种内部状态:

    `,191),A=e("p",null,"Routes 可以查看当前所在路由的配置信息:",-1),d=e("p",null,"Timeline 是以时间线的方式追踪不同类型的数据,例如事件:",-1),u=e("p",null,"Pinia 是可以查看当前组件引入的全局状态情况:",-1),h=e("p",null,[o("可以在 "),e("a",{href:"https://devtools.vuejs.org/",target:"_blank",rel:"noreferrer"},"Vue Devtools 官网"),o(" 了解更多的用法。")],-1);function g(m,f,v,b,V,k){const l=p("ImgWrap"),a=p("ClientOnly"),r=p("GitalkComment");return i(),D("div",null,[C,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-versions-on-npmjs.jpg",alt:"Vue 在 npmjs 上的版本列表"})]),_:1}),F,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-devtools-components.jpg",dark:"/assets/img/vue-devtools-components-dark.jpg",alt:"Vue Devtools 的 Components 界面"})]),_:1}),A,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-devtools-routes.jpg",dark:"/assets/img/vue-devtools-routes-dark.jpg",alt:"Vue Devtools 的 Routes 界面"})]),_:1}),d,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-devtools-timeline.jpg",dark:"/assets/img/vue-devtools-timeline-dark.jpg",alt:"Vue Devtools 的 Timeline 界面"})]),_:1}),u,s(a,null,{default:n(()=>[s(l,{src:"/assets/img/vue-devtools-pinia.jpg",dark:"/assets/img/vue-devtools-pinia-dark.jpg",alt:"Vue Devtools 的 Pinia 界面"})]),_:1}),h,s(a,null,{default:n(()=>[s(r,{issueId:45})]),_:1})])}const S=c(y,[["render",g]]);export{q as __pageData,S as default}; diff --git a/changelog.html b/changelog.html new file mode 100644 index 00000000..7011a0d8 --- /dev/null +++ b/changelog.html @@ -0,0 +1,28 @@ + + + + + + 更新记录 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
    Skip to content
    目录

    更新记录

    由于平时也比较忙,都是利用碎片时间整理的文档,习惯勤备份,因此 commit 记录比较多,而且有些提交记录跟内容也无关,比如文档程序的调整和优化等代码提交是和内容无关的。

    考虑到后面还会不定期更新内容,所以翻了一下之前跟朋友的微信聊天记录整理了前期的更新记录,之后当文档有再次更新的时候也会继续整理更新记录,方便读者们查阅。

    2024-02-20

    单组件的编写路由的使用插件的开发和使用组件之间的通信全局状态管理 这几张内容的最前面,补充了一个阅读提示,解答近期收到的读者反馈的一些疑惑。

    2024-01-16

    插件部分增加一个 path/to 的典故 扩展阅读。

    2023-05-07

    感谢各位读者长期以来的支持,经过长达一年时间的打磨和优化,本书已于 2023 年 5 月份正式出版上市,纸质版书籍的正式名称为《前端工程化:基于 Vue.js 3.0 的设计与实践》。

    如果您对笔者的作品认可,建议购买纸质版,纸质书在电子书的基础上,经过机械工业出版社的编辑老师们的内容优化、校对勘误、排版美化,更成体系!

    各位读者可以在各大电商平台购买纸质版书籍:

    ☞ 访问 京东商城 购买

    ☞ 访问 天猫商城 购买

    可点击 出版说明 了解更多信息。

    2023-03-01

    在 “单组件的编写” 的 DOM 元素与子组件 一节里,添加了 InstanceType<T> 帮助类型的使用说明,感谢 @rayadaschn#62 (comment) 的反馈。

    2022-11-20

    在 “高效开发” 新增了 命名技巧 一节,希望能够帮助有命名困扰的开发者解决选择困难的问题。

    2022-11-17

    更新了 “用 ES Module 设计模块” 中关于 命名导出和导入 的讲解,减少在理解上的歧义,感谢 @Yeshan-Taoist#163 (commont) 的反馈。

    2022-11-12

    优化了 “高效开发” 一章,考虑到现在的 Vue 3 项目基本都是最新版本的 Vue ,因此移除了过渡时期的一些过时的使用提示信息,同时优化了演示代码使其更容易理解。

    2022-11-11

    优化了 “组件之间的通信” 一章:

    • 把一些原来没有特地注明是父组件的代码还是子组件的代码,进行了明确的标明,并优化了一部分示范代码
    • 修正了之前一部分示范代码的 TypeScript 类型(之前有一些地方用了 any ,现在更新为明确的类型)
    • 优化了 provide / inject 的相关内容,大幅度缩短了篇幅,但通过新的例子使其更容易看懂
    • 增加了 Reactive State 创建一个小型的状态中心案例
    • Vuex 添加了一些使用提示,建议使用 Pinia 代替 Vuex 作为状态管理库使用

    2022-11-06

    优化了 “路由的使用” 一章:

    • 涉及 Webpack 的环境变量和配置,统一调整为 Vite 的配置,并标注了这些配置在使用时需要留意当前所使用的构建工具是否匹配
    • 将原本指向 Vue Router 英文官网的参考内容地址修改为指向其中文官网(因为当时编写的时候还没有中文官网)
    • 优化了里面的一些举例,使其更容易理解

    优化了 “插件的开发和使用” 一章:

    • 简化了一些例子

    2022-11-04

    比较大幅度的优化了 “单组件的编写” 一章的 响应式 API 之 toRef 与 toRefs 的内容,使其更容易理解。

    2022-11-02

    优化了 “单组件的编写” 一章的 “响应式 API 之 ref ” 一节,对其 类型声明 作了一个更容易理解和更详细的讲解。

    2022-10-25

    • 把 hello-node 和 hello-lib 这两个演示仓库同步到了 Gitee ,如果访问 GitHub 失败,也可以从 Gitee 拉取。
    • 在 “脚手架的升级与配置” 一章更新了 Vue Devtools 的介绍,因为插件更新后变化较大,重新截图进行了说明,并且对图片适配了文档的 Light / Dark 皮肤切换

    2022-10-23

    在 “工程化的前期准备” 一章的 “用 ES Module 设计模块” 一节,增加了 在浏览器里访问 ESM 小节,讲解了浏览器对原生 ESM 的访问支持和限制,以及在 HTML 页面里使用 ESM 的代码演示。

    另外贯穿 “前端工程化入门” 所演示的 hello-node 项目已托管至 learning-vue3/hello-node 仓库,可使用 Git 克隆命令拉取至本地:

    bash
    git clone https://github.com/learning-vue3/hello-node.git

    成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 node 开发的体验,可以更有效的提升学习效果。

    2022-10-13

    1. 本书目前已不再仅限于 Vue 3 的学习,因此重写了 前言 的内容
    2. 不同时期写的内容存在一定程度的上下文不统一(例如早期使用了 @vue/cli 创建的项目做演示,后期因为 Vite 的出现并且被 Vue 官方作为其主推的构建工具,因此新内容使用的是 Vite 项目),因此对内容进行了检查和统一修正
    3. 减少了全文的人称代词,剩下不可删除的则进行了上下文统一,减少前后不一致可能会引起一些理解困惑
    4. 优化了不同时期的内容之间的章节衔接

    其中第 2 、 3 、 4 点可能还有遗漏,近期持续检查修正。

    2022-10-11

    在 “开发 npm 包” 部分 常用的构建工具 一节增加 Node 版本检查的提示,在开发之前请确保当前的 Node 版本是否在构建工具的支持范围内,感谢 @rayadaschn#204 的建议。

    2022-10-10

    发布 npm 包 小节增加一个取消镜像源的提示,否则可能引起发布失败。

    2022-10-09

    在 “开发 npm 包” 部分所演示的 hello-lib 项目已托管至 learning-vue3/hello-lib 仓库,可使用 Git 克隆命令拉取至本地:

    bash
    git clone https://github.com/learning-vue3/hello-lib.git

    成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 npm 包的开发流程,可以更有效的提升学习效果。

    2022-10-08

    在 “开发 npm 包” 的相关内容处增加了 添加版权注释 的构建说明,它的作用除了声明版权归属之外,还会告知使用者关于项目的主页地址、版本号、发布日期、 BUG 反馈渠道等信息,例如 jQuery / Lodash / Swiper 等库都有这样的版权注释,因此补充了这部分的内容,供有需要的开发者了解和使用。

    2022-10-07

    1. 文档程序从 VuePress 2.x 迁移到 VitePress 1.x ,并做了简单的主题适配
    2. 原来的 “脚手架的升级与配置” 一章的访问地址从 update 调整为 upgrade ,访问地址已配置重定向
    3. 由于原来的 “起步准备” 一章内容有点太长,这一次续写拆分了一下内容,重新划分为单独的三章,分别是:
      • 独立出来了 了解前端工程化 一章,用于科普现代前端开发所要求的工程化概念,属于讲故事性质的一章内容
      • 工程化的前期准备 是原来 “起步准备” 的核心内容部分,主要是科普前端工程化的入门实践,属于动手实操章节
      • 另外考虑到本书是直接使用 TypeScript 来入门 Vue 3 ,语言部分也是内容的重点之一,所以把 TypeScript 部分也独立成了 快速上手 TypeScript 一章
    4. 在 “了解前端工程化” 一章里,增加以下内容:
    5. 在 “工程化的前期准备” 一章里,增加以下内容:
    6. 在 “插件的开发和使用” 一章里,增加了以下内容:

    2022-09-01

    更新了引用到的官方文档链接,同时修复了部分官方文档未做好重定向的无效链接,感谢 @alleluya-young#191 的反馈!

    2022-07-03

    补充了关于 Node.js 版本之间的区别 的一些说明。

    2022-06-23

    根据 #163 (comment) 的反馈,对一些 ES6+ 可能容易混淆的新语法进行了一些 Tips 补充,减少学习过程中的理解成本。

    2022-05-03

    更新了 “升级与配置” 一章的部分内容:

    1. 更新了使用 Create Preset 创建项目的说明,现在可以通过 --template 选项来指定模板创建,例如:
    bash
    # 全局安装
    +npm install -g create-preset
    +
    +# 将使用 `vue3-ts-vite` 模板创建一个名为 `hello-vue3` 的项目
    +preset init hello-vue3 --template vue3-ts-vite
    1. 配合 1 的更新,相应的增加了 Hello Vue3 一节
    2. 配合 @vue/cli 5.x 版本的命令行交互,更新了 使用 @vue/cli 创建项目 的内容
    3. 更新了 调整 TS Config 部分的内容,由于现在通过各类脚手架创建的 TypeScript 项目都自带了该文件,所以这部分内容移除了之前的配置参考,仅保留 paths 的配置提醒

    2022-04-30

    最近有时间,所以对内容做了一大波更新,主要是补充了在开始开发 Vue 项目之前的一些基础知识点,当然 Vue 相关的内容也做了一些新增或者完善。

    1. 增加了全新的一章 “起步准备” ,面向对前端工程化开发不太熟悉的开发者,包含了以下内容:

    2. 在 “升级与配置” 一章里,增加了以下内容:

    3. 在 “单组件的编写” 一章里,增加了以下内容:

      • 响应式数据 设计上的变化
      • 增加了 指令 一节的内容,主要讲解如何在 Vue 3 开发自定义指令
      • 增加了 插槽 一节的内容
    4. 在 “路由的使用” 一章里,增加了以下内容,整理了一些常见的部署问题原因以及解决方案:

    5. 在 “插件的使用” 一章里,对 “本地插件” 作了进一步的细化讲解:

    2022-04-20

    更正了 watch API 在 侦听选项之 deep 部分内容的错误,并增加了如何检测特例的用法,感谢 @zcc0329 的反馈!

    2022-04-10

    重写了单组件关于 数据的侦听 这一节的内容,因为在写 Pinia 的订阅功能的时候,有很多跟 watch 相关联的知识点,发现之前这部分内容写的比较简单,所以完善了一下。

    2022-04-07

    补充了昨天新增的关于 Pinia 订阅 state 部分的一些内容。

    2022-04-06

    1. 创建基于 Vite 的 Vue 3 项目增加了一些内容:

      • 增加了使用 Create Vue 创建 Vite 项目的说明
      • 使用 Create Preset 创建的 vue3-ts-vite 预设项目,使用 Pinia 代替 Vuex
    2. 补充了 Pinia 的部分内容:

    2022-04-04

    先跟大家说声抱歉,在 2022-02-09 的更新里说要写这部分内容,结果因为现实里的一些事情还有工作比较忙,现在借着假期才得以继续更新。

    增加了 全局状态的管理 一章,主要是面向 Vue 3 全新的状态管理工具 Pinia 展开,里面的大部分内容也加入了和 Vuex 的对比。

    虽然可以归入 组件之间的通信 里,但 Pinia 作为被官方推荐在 Vue 3 项目里作为全局状态管理的新工具,写着写着我觉得还是单独开一章来写会更方便阅读和理解。

    2022-03-04

    把 Algolia 的搜素功能申请下来了,看看文档的搜索体验会不会比较好(搜索框在页面的右上角)。

    2022-02-28

    升级了文档的程序版本,加入了 Dark Mode 暗黑模式的支持,默认跟随系统模式进行适配,可以在右上角的 “主题切换” 按钮手动切换主题。

    2022-02-09

    1. 优化了 升级与配置 一章,配合 2022-02-07 Vue 3 成为默认版本带来的调整变化,主要改动如下:

    2. 高效开发 一章开头的 WARNING 改成了 TIP ,里面提到的功能在最新版的 Vue 下发挥稳定,后续如果有实验性的 API 再单独标记。

    3. 把原先演示命令里的 @next 版本都改成了 @latest ,现在不需要指定 next 就能使用 Vue 3 了。

    4. 更新了 官方文档 里面的链接说明,因为各个官网在 2022-02-07 都上线了新版本,更换了新地址。

    5. 组件之间的通信 里加入了 Pinia 的介绍,不过暂时没有写实践记录(还没有时间哈哈哈),欢迎先自行体验,这是一个官方推荐的适合 Vue 3 的状态管理工具,因为它更加面向 Composition API 的编程方式(至少在 Vuex 5 推出之前,建议用来代替 Vuex 4)。

    6. 改了一下文档名称:《Vue3.0 学习教程与实战案例》 --> 《Vue 3 入门指南与实战案例》,其他原先使用 Vue 3.0 叫法的地方,后面也会陆续改成 Vue 3 了。

    2022-01-20

    1. 更新了 cnpm 的用法,原因是旧的 cnpm 源即将下线,需要使用新的域名啦!(感谢 @alleluya-young#135 的反馈!)

    2. 添加了 pnpm 的用法说明,目前开源社区越来越流行使用 pnpm ,对大型项目管理也有好处,值得了解和体验。

    2021-12-05

    由于离第一次执笔到现在有了差不多一年的时间,当时的前言信息有些陈旧,重新写了一下 前言

    另外经过 2021 年的开发实践,很多地方我又有了新的认知,打算在接下来的时间里,我会再继续抽空把各部分的内容再精细化一下,把以前可能写的比较简单的部分,或者没有写进来的一些功能点,都再做一次完善。

    2021-11-16

    重写了 数据的计算 一节,之前对于计算数据的介绍,描述上确实有点难以理解,而且有点简单带过,所以重新写了这部分内容,感谢读者 @superficial 的反馈!

    2021-10-07

    补充了 全局编译器宏 的配置说明,本来很久前就想写的,一直偷懒,国庆结束前补充进来啦!

    2021-08-17

    更新了 3.2.0 版本新增的一些知识点:

    1. 增加了 使用 v-bind 动态修改 style 功能说明,同时结合上下文知识点补充了 动态绑定 CSS 一节

    2. 增加了 CSS Modules 一节的内容

    3. 增加了 useCssModule 一节的内容

    2021-08-16

    1. 更新了 深度操作符 的内容,原有的 API 已被废弃,请注意使用新写法

    2. 补充了几个拓展阅读链接到 教程工具

    2021-07-28

    迎接 Vue 3.2.0 的新版本内容,对 script-setup 做了较多的调整。

    目前 3.2 还处于 Beta 阶段,不过从这个版本开始,script-setup 脱离实验性阶段,正式进入 Vue 3.0 的队伍,本次的更新内容较多,很多测试阶段的 API 被移除或者修改,如果之前有用过 script-setup ,建议先简单看我之前的博客,了解本次的一些变更:

    Vue3.0 最新动态:script-setup 定稿 部分实验性 API 将弃用

    2021-03-31

    1. 调整了 使用全局 API 一节的内容

    原因是原来推荐的 const { proxy } = getCurrentInstance() 的方案,在 TS 新版本校验下,使用成本非常高,原来的代码不做多层判断的情况下已经无法正常运行,所以按照目前的 “最佳实践” 重新更新了这一节。

    1. 新增了一节 全局 API 的替代方案

    由于 Vue 3.0 的有意为之,这个 “最佳实践” 实际上用起来也挺繁琐(在官网和 GitHub 对此都有说明,不推荐使用),所以补充了这一节内容。

    2021-03-23

    DOM 元素与子组件 一节增加了 TS 类型的定义说明,以及编译失败的原因说明及解决方案补充,非常感谢 @aierong 的反馈和支持。

    2021-03-21

    增加了 高效开发 一章,将记录一些提高 Vue 3.0 开发效率的内容,面像对 Vue 3.0 已上手,想提高开发效率的开发者。

    本次更新了 script-setup 一节的内容。

    2021-01-21

    增加了 组件之间的通信 一章的内容。

    2020-12-18

    本文档的第一个版本上线,完成了 升级与配置单组件的编写路由的使用插件的使用 等章节的编写。

    2020-10-01

    国庆期间开始开荒 Vue 3.0,陆陆续续打了不少笔记,业余时间着手整理成文档。

    Released under the MIT License.

    + + + + \ No newline at end of file diff --git a/communication.html b/communication.html new file mode 100644 index 00000000..f1c4b866 --- /dev/null +++ b/communication.html @@ -0,0 +1,688 @@ + + + + + + 组件之间的通信 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
    Skip to content
    目录

    组件之间的通信

    经过前面几章的阅读,相信开发者已经可以搭建一个基础的 Vue 3 项目了!

    但实际业务开发过程中,还会遇到一些组件之间的通信问题,父子组件通信、兄弟组件通信、爷孙组件通信,还有一些全局通信的场景。

    TIP

    这一章节的内容,Vue 3 对比 Vue 2 的变化都比较大!

    这一章就按使用场景来划分对应的章节吧,在什么场景下遇到问题,也方便快速找到对应的处理办法。

    通信场景快速定位
    父子组件通信点击查看
    爷孙组件通信点击查看
    兄弟组件通信点击查看
    全局组件通信点击查看

    温馨提示

    这是笔者写于 2024.02.20 的补充提示,为读者解答为何前面的章节都未提及 script-setup 组件语法的信息。

    笔者在执笔之初,考虑到降低初学过程中的各种心智负担,以及当时处于 script-setup 组件语法尚未完全稳定的背景下,所以在最后一章 高效开发 之前的章节,都只提供了组件的标准写法的讲解。

    除非遇到框架进行了 Breaking Change (例如从 Vue 2 升级到了 Vue 3 这种大版本更新),否则标准写法是始终有效的,在笔者多年的学习经历和实际收获里,也是比较相信一点:不论学习什么语言或者框架,只要基础打的好,未来总是可以轻松地举一反三去解决遇到的各类问题。

    因此如果读者通过各类脚手架创建的 Vue 3 项目,在组件看到 <script setup> 这种风格的组件,以及诸如 defineXxx 风格的 API ,这是 .vue 组件所支持的一种语法糖,可以随时在 高效开发 一章了解相关的 API 用法。

    另外从 Vue 3.4 版本之后所新增的 API 未在本书的介绍范围内,请读者在阅读的过程中也可以查阅官方的 API 一起学习,不论是本书还是其他计算机书籍,官方文档永远是最好的查询手册。

    TIP

    语法糖(英语:Syntactic sugar)是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

    父子组件通信

    父子组件通信是指,B 组件引入到 A 组件里渲染,此时 A 是 B 的父级;B 组件的一些数据需要从 A 组件拿,B 组件有时也要告知 A 组件一些数据变化情况。

    他们之间的关系如下, Child.vue 是直接挂载在 Father.vue 下面:

    bash
    # 父组件
    +Father.vue
    + # 子组件
    +└─Child.vue

    常用的方法有:

    方案父组件向子组件子组件向父组件对应章节传送门
    props / emitspropsemits点击查看
    v-model / emitsv-modelemits点击查看
    ref / emitsrefemits点击查看
    provide / injectprovideinject点击查看
    EventBusemit / onemit / on点击查看
    Reactive State--点击查看
    Vuex--点击查看
    Pinia--点击查看

    为了方便阅读,下面的父组件统一叫 Father.vue ,子组件统一叫 Child.vue 。

    WARNING

    在 Vue 2 ,有的开发者可能喜欢用 $attrs / $listeners 来进行通信,但该方案在 Vue 3 已经移除了,详见 移除 $listeners

    props / emits

    这是 Vue 跨组件通信最常用,也是基础的一个方案,它的通信过程是:

    1. 父组件 Father.vue 通过 props 向子组件 Child.vue 传值
    2. 子组件 Child.vue 则可以通过 emits 向父组件 Father.vue 发起事件通知

    最常见的场景就是统一在父组件发起 AJAX 请求,拿到数据后,再根据子组件的渲染需要传递不同的 props 给不同的子组件使用。

    下发 props

    注:这一小节的步骤是在 Father.vue 里操作。

    下发的过程是在 Father.vue 里完成的,父组件在向子组件下发 props 之前,需要导入子组件并启用它作为自身的模板,然后在 setup 里处理好数据并 return 给 <template /> 用。

    在 Father.vue 的 <script /> 里:

    ts
    // Father.vue
    +import { defineComponent } from 'vue'
    +import Child from '@cp/Child.vue'
    +
    +interface Member {
    +  id: number
    +  name: string
    +}
    +
    +export default defineComponent({
    +  // 需要启用子组件作为模板
    +  components: {
    +    Child,
    +  },
    +
    +  // 定义一些数据并 `return` 给 `<template />` 用
    +  setup() {
    +    const userInfo: Member = {
    +      id: 1,
    +      name: 'Petter',
    +    }
    +
    +    // 不要忘记 `return` ,否则 `<template />` 拿不到数据
    +    return {
    +      userInfo,
    +    }
    +  },
    +})

    然后在 Father.vue 的 <template /> 这边拿到 return 出来的数据,把要传递的数据通过属性的方式绑定在组件标签上。

    vue
    <!-- Father.vue -->
    +<template>
    +  <Child
    +    title="用户信息"
    +    :index="1"
    +    :uid="userInfo.id"
    +    :user-name="userInfo.name"
    +  />
    +</template>

    这样就完成了 props 数据的下发。

    <template /> 绑定属性这里,如果是普通的字符串,比如上面的 title,则直接给属性名赋值就可以。

    如果是变量名,或者其他类型如 numberboolean 等,比如上面的 index,则需要通过属性动态绑定的方式来添加,使用 v-bind: 或者 : 符号进行绑定。

    另外官方文档推荐对 camelCase 风格(小驼峰)命名的 props ,在绑定时使用和 HTML attribute 一样的 kebab-case 风格(短横线),例如使用 user-name 代替 userName 传递,详见官网的 传递 prop 的细节 一节。

    接收 props

    注:这一小节的步骤是在 Child.vue 里操作。

    接收的过程是在 Child.vue 里完成的,在 <script /> 部分,子组件通过与 setup 同级的 props 来接收数据。

    它可以是一个 string[] 数组,把要接受的变量名放到这个数组里,直接放进来作为数组的 item

    ts
    // Child.vue
    +export default defineComponent({
    +  props: ['title', 'index', 'userName', 'uid'],
    +})

    但这种情况下,使用者不知道这些属性的使用限制,例如是什么类型的值、是否必传等等。

    带有类型限制的 props

    注:这一小节的步骤是在 Child.vue 里操作。

    和 TypeScript 一样,类型限制可以为程序带来更好的健壮性, Vue 的 props 也支持增加类型限制。

    相对于传递一个 string[] 类型的数组,更推荐的方式是把 props 定义为一个对象,以对象形式列出,每个 Property 的名称和值分别是各自的名称和类型,只有合法的类型才允许传入。

    TIP

    注意,和 TS 的类型定义不同, props 这里的类型,首字母需要大写,也就是 JavaScript 的基本类型。

    支持的类型有:

    类型含义
    String字符串
    Number数值
    Boolean布尔值
    Array数组
    Object对象
    Date日期数据,e.g. new Date()
    Function函数,e.g. 普通函数、箭头函数、构造函数
    PromisePromise 类型的函数
    SymbolSymbol 类型的值

    了解了基本的类型限制用法之后,接下来给 props 加上类型限制:

    ts
    // Child.vue
    +export default defineComponent({
    +  props: {
    +    title: String,
    +    index: Number,
    +    userName: String,
    +    uid: Number,
    +  },
    +})

    现在如果传入不正确的类型,程序就会抛出警告信息,告知开发者必须正确传值。

    如果需要对某个 Prop 允许多类型,比如这个 uid 字段,可能是数值,也可能是字符串,那么可以在类型这里,使用一个数组,把允许的类型都加进去。

    ts
    // Child.vue
    +export default defineComponent({
    +  props: {
    +    // 单类型
    +    title: String,
    +    index: Number,
    +    userName: String,
    +
    +    // 这里使用了多种类型
    +    uid: [Number, String],
    +  },
    +})

    可选以及带有默认值的 props

    注:这一小节的步骤是在 Child.vue 里操作。

    所有 props 默认都是可选的,如果不传递具体的值,则默认值都是 undefined ,可能引起程序运行崩溃, Vue 支持对可选的 props 设置默认值,也是通过对象的形式配置 props 的选项。

    其中支持配置的选项有:

    选项类型含义
    typestring类型
    requiredboolean是否必传, true 代表必传, false 代表可选
    defaultanytype 选项的类型相对应的默认值,如果 required 选项是 false ,但这里不设置默认值,则会默认为 undefined
    validatorfunction自定义验证函数,需要 return 一个布尔值, true 代表校验通过, false 代表校验不通过,当校验不通过时,控制台会抛出警告信息

    了解了配置选项后,接下来再对 props 进行改造,将其中部分选项设置为可选,并提供默认值:

    ts
    // Child.vue
    +export default defineComponent({
    +  props: {
    +    // 可选,并提供默认值
    +    title: {
    +      type: String,
    +      required: false,
    +      default: '默认标题',
    +    },
    +
    +    // 默认可选,单类型
    +    index: Number,
    +
    +    // 添加一些自定义校验
    +    userName: {
    +      type: String,
    +
    +      // 在这里校验用户名必须至少 3 个字
    +      validator: (v) => v.length >= 3,
    +    },
    +
    +    // 默认可选,但允许多种类型
    +    uid: [Number, String],
    +  },
    +})

    使用 props ~new

    注:这一小节的步骤是在 Child.vue 里操作。

    <template /> 部分, Vue 3 的使用方法和 Vue 2 是一样的,比如要渲染父组件传入的 props :

    vue
    <!-- Child.vue -->
    +<template>
    +  <p>标题:{{ title }}</p>
    +  <p>索引:{{ index }}</p>
    +  <p>用户id:{{ uid }}</p>
    +  <p>用户名:{{ userName }}</p>
    +</template>

    但是 <script /> 部分,变化非常大!

    在 Vue 2 里,只需要通过 this.uidthis.userName 就可以使用父组件传下来的 Prop ,但是 Vue 3 没有了 this ,所以是通过 setup 的入参进行操作。

    ts
    // Child.vue
    +export default defineComponent({
    +  props: {
    +    title: String,
    +    index: Number,
    +    userName: String,
    +    uid: Number,
    +  },
    +
    +  // 在这里需要添加一个入参
    +  setup(props) {
    +    // 该入参包含了当前组件定义的所有 props
    +    console.log(props)
    +  },
    +})

    关于 Setup 函数的第一个入参 props

    1. 该入参包含了当前组件定义的所有 props (如果父组件 Father.vue 传进来的数据在 Child.vue 里未定义,不仅不会拿到,并且在控制台会有警告信息)。
    2. 该入参可以随意命名,比如可以写成一个下划线 _ ,通过 _.uid 也可以拿到数据,但是语义化命名是一个良好的编程习惯。
    3. 该入参具备响应性,父组件修改了传递下来的值,子组件也会同步得到更新,因此请不要直接解构,可以通过 toRef 或 toRefs API 转换为响应式变量

    传递非 props 的属性

    上一小节最后有一句提示是:

    如果父组件 Father.vue 传进来的数据在 Child.vue 里未定义,不仅不会拿到,并且在控制台会有警告信息。

    这种情况虽然无法从 props 里拿到对应的数据,但也不意味着不能传递任何未定义的属性数据,在父组件,除了可以给子组件绑定 props ,还可以根据实际需要去绑定一些特殊的属性。

    比如给子组件设置 classid,或者 data-xxx 之类的一些自定义属性,如果子组件 Child.vue 的 <template /> 里只有一个根节点,那么这些属性默认会自动继承并渲染在 Node 节点上。

    假设当前在子组件 Child.vue 是如下这样只有一个根节点,并且未接收任何 props :

    TIP

    如果已安装 Vue VSCode Snippets 这个 VSCode 插件,可以在空的 .vue 文件里输入 v3 ,在出现的代码片段菜单里选择 vbase-3-ts 生成一个 Vue 组件的基础代码片段。

    vue
    <!-- Child.vue -->
    +<template>
    +  <div class="child">子组件</div>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    return {}
    +  },
    +})
    +</script>
    +
    +<style scoped>
    +.child {
    +  width: 100%;
    +}
    +</style>

    在 Father.vue 里对 Child.vue 传递了多个属性:

    vue
    <!-- Father.vue -->
    +<template>
    +  <Child
    +    id="child-component"
    +    class="class-name-from-father"
    +    :keys="['foo', 'bar']"
    +    :obj="{ foo: 'bar' }"
    +    data-hash="b10a8db164e0754105b7a99be72e3fe5"
    +  />
    +</template>

    回到浏览器,通过 Chrome 的审查元素可以看到子组件 Child.vue 在渲染后,按照 HTML 属性的渲染规则生成了多个属性:

    html
    <!-- Child.vue 在浏览器里渲染后的 HTML DOM 结构 -->
    +<div
    +  class="child class-name-from-father"
    +  id="child-component"
    +  keys="foo,bar"
    +  obj="[object Object]"
    +  data-hash="b10a8db164e0754105b7a99be72e3fe5"
    +  data-v-2dcc19c8=""
    +  data-v-7eb2bc79=""
    +>
    +  子组件
    +</div>

    TIP

    其中有两个以 data-v- 开头的属性是 <style /> 标签开启了 Style Scoped 功能自动生成的 Hash 值。

    可以在 Child.vue 配置 inheritAttrsfalse 来屏蔽这些非 props 属性的渲染。

    ts
    // Child.vue
    +export default defineComponent({
    +  inheritAttrs: false,
    +  setup() {
    +    // ...
    +  },
    +})

    关闭了 之后,现在的 DOM 结构如下,只保留了两个由 Style Scoped 生成的 Hash 值:

    html
    <!-- Child.vue 在浏览器里渲染后的 HTML DOM 解构 -->
    +<div class="child" data-v-2dcc19c8="" data-v-7eb2bc79="">子组件</div>

    这一类非 props 属性通常称之为 attrs 。

    刚接触 Vue 的开发者可能容易混淆这两者,确实是非常接近,都是由父组件传递,由子组件接收,支持传递的数据类型也一样,但为什么一部分是在 props 获取,一部分在 attrs 获取呢?笔者给出一个比较容易记忆的方式,不一定特别准确,但相信可以帮助开发者加深两者的区别理解。

    根据它们的缩写,其实是可以知道 Prop 是指 Property ,而 Attr 是指 Attribute ,虽然都是 “属性” ,但 Property 更接近于事物本身的属性,因此需要在组件里声明,而 Attribute 更偏向于赋予的属性,因此用于指代父组件传递的其他未被声明为 Property 的属性。

    获取非 props 的属性 ~new

    注:这一小节的步骤是在 Child.vue 里操作。

    在上一小节 传递非 props 的属性 已经在父组件 Father.vue 里向子组件 Child.vue 传递了一些 attrs 自定义属性,在子组件里想要拿到这些属性,使用原生 JavaScript 操作是需要通过 Element.getAttribute() 方法,但 Vue 提供了更简单的操作方式。

    在 Child.vue 里,可以通过 setup 的第二个参数 context 里的 attrs 来获取到这些属性,并且父组件传递了什么类型的值,获取到的也是一样的类型,这一点和使用 Element.getAttribute() 完全不同。

    ts
    // Child.vue
    +export default defineComponent({
    +  setup(props, { attrs }) {
    +    // `attrs` 是个对象,每个 Attribute 都是它的 `key`
    +    console.log(attrs.id) // child-component
    +    console.log(attrs.class) // class-name-from-father
    +
    +    // 传递数组会被保留类型,不会被转换为 `key1,key2` 这样的字符串
    +    // 这一点与 `Element.getAttribute()` 完全不同
    +    console.log(attrs.keys) // ['foo', 'bar']
    +
    +    // 传递对象也可以正常获取
    +    console.log(attrs.obj) // {foo: 'bar'}
    +
    +    // 如果传下来的 Attribute 带有短横线,需要通过这种方式获取
    +    console.log(attrs['data-hash']) // b10a8db164e0754105b7a99be72e3fe5
    +  },
    +})

    TIP

    子组件不论是否设置 inheritAttrs 属性,都可以通过 attrs 拿到父组件传递下来的数据,但是如果要使用 Element.getAttribute() 则只有当 inheritAttrstrue 的时候才可以,因为此时在 DOM 上才会渲染这些属性。

    与 Vue 2 的 <template /> 只能有一个根节点不同, Vue 3 允许多个根节点,多个根节点的情况下,无法直接继承这些 attrs 属性(在 inheritAttrs: true 的情况也下无法默认继承),需要在子组件 Child.vue 里通过 v-bind 绑定到要继承在节点上。

    可以通过 Vue 实例属性 $attrs 或者从 setup 函数里把 attrs return 出来使用。

    vue
    <!-- Child.vue -->
    +<template>
    +  <!-- 默认不会继承属性 -->
    +  <div class="child">不会继承</div>
    +
    +  <!-- 绑定后可继承, `$attrs` 是一个 Vue 提供的实例属性 -->
    +  <div class="child" v-bind="$attrs">使用 $attrs 继承</div>
    +
    +  <!-- 绑定后可继承, `attrs` 是从 `setup` 里 `return` 出来的变量 -->
    +  <div class="child" v-bind="attrs">使用 attrs 继承</div>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup(props, { attrs }) {
    +
    +    return {
    +      attrs,
    +    }
    +  },
    +})
    +</script>

    绑定 emits ~new

    注:这一小节的步骤是在 Father.vue 里操作。

    如果父组件 Father.vue 需要获取子组件 Child.vue 的数据更新情况,可以由子组件通过 emits 进行通知,下面这个更新用户年龄的例子可以学习如何给子组件绑定 emit 事件。

    事件的逻辑是由父组件决定的,因此需要在父组件 Father.vue 的 <script /> 里先声明数据变量和一个更新函数,并且这个更新函数通常会有一个入参作为数据的新值接收。

    在本例子里,父组件声明了一个 updateAge 方法,它接受一个入参 newAge ,代表新的年龄数据,这个入参的值将由子组件 Child.vue 在触发 emits 时传入。

    因为还需要在 <template /> 部分绑定给子组件,所以请记得 return 出来。

    ts
    // Father.vue
    +import { defineComponent, reactive } from 'vue'
    +import Child from '@cp/Child.vue'
    +
    +interface Member {
    +  id: number
    +  name: string
    +  age: number
    +}
    +
    +export default defineComponent({
    +  components: {
    +    Child,
    +  },
    +  setup() {
    +    const userInfo: Member = reactive({
    +      id: 1,
    +      name: 'Petter',
    +      age: 0,
    +    })
    +
    +    /**
    +     * 声明一个更新年龄的方法
    +     * @param newAge - 新的年龄,由子组件触发 emits 时传递
    +     */
    +    function updateAge(newAge: number) {
    +      userInfo.age = newAge
    +    }
    +
    +    return {
    +      userInfo,
    +      updateAge,
    +    }
    +  },
    +})

    再看 Father.vue 的 <template /> 部分,和 Click 事件使用 @click 一样,自定义的 emits 事件也是通过 v-on 或者是 @ 来绑定:

    vue
    <!-- Father.vue -->
    +<template>
    +  <Child @update-age="updateAge" />
    +</template>

    和 props 一样,官方文档也推荐将 camelCase 风格(小驼峰)命名的函数,在绑定时使用 kebab-case 风格(短横线),例如使用 update-age 代替 updateAge 传递。

    接收并调用 emits ~new

    注:这一小节的步骤是在 Child.vue 里操作。

    和 props 一样,可以指定是一个数组,把要接收的 emit 事件名称写进去:

    ts
    // Child.vue
    +export default defineComponent({
    +  emits: ['update-age'],
    +})

    和 props 不同,通常情况下 emits 这样配置就足够使用了。

    接下来如果子组件需要更新数据并通知父组件,可以使用 setup 第二个参数 context 里的 emit 方法触发:

    ts
    // Child.vue
    +export default defineComponent({
    +  emits: ['update-age'],
    +  setup(props, { emit }) {
    +    // 通知父组件将年龄设置为 `2`
    +    emit('update-age', 2)
    +  },
    +})

    emit 方法最少要传递一个参数:事件名称。

    事件名称是指父组件 Father.vue 绑定事件时 @update-age="updateAge" 里的 update-age ,如果改成 @hello="updateAge" ,那么事件名称就需要使用 hello ,一般情况下事件名称和更新函数的名称会保持一致,方便维护。

    对于需要更新数据的情况, emit 还支持传递更多的参数,对应更新函数里的入参,所以可以看到上面例子里的 emit('update-age', 2) 有第二个参数,传递了一个 2 的数值,就是作为父组件 updateAge 的入参 newAge 传递。

    如果需要通信的数据很多,建议第二个入参使用一个对象来管理数据,例如父组件调整为:

    ts
    // Father.vue
    +function updateInfo({ name, age }: Member) {
    +  // 当 `name` 变化时更新 `name` 的值
    +  if (name && name !== userInfo.name) {
    +    userInfo.name = name
    +  }
    +
    +  // 当 `age` 变化并且新值在正确的范围内时,更新 `age` 的值
    +  if (age > 0 && age !== userInfo.age) {
    +    userInfo.age = age
    +  }
    +}

    子组件在传递新数据时,就应该使用对象的形式传递:

    ts
    // Child.vue
    +emit('update-info', {
    +  name: 'Tom',
    +  age: 18,
    +})

    这对于更新表单等数据量较多的场景非常好用。

    接收 emits 时做一些校验

    注:这一小节的步骤是在 Child.vue 里操作。

    和 props 一样,子组件在接收 emits 时也可以对这些事件做一些验证,这个时候就需要将 emits 配置为对象,然后把事件名称作为 keyvalue 则对应为一个用来校验的方法。

    还是用回上文那个更新年龄的方法,如果需要增加一个条件:当达到成年人的年龄时才会更新父组件的数据,那么就可以将 emits 调整为:

    ts
    // Child.vue
    +export default defineComponent({
    +  emits: {
    +    // 需要校验
    +    'update-age': (age: number) => {
    +      // 写一些条件拦截,返回 `false` 表示验证不通过
    +      if (age < 18) {
    +        console.log('未成年人不允许参与')
    +        return false
    +      }
    +
    +      // 通过则返回 `true`
    +      return true
    +    },
    +
    +    // 一些无需校验的,设置为 `null` 即可
    +    'update-name': null,
    +  },
    +})

    接下来如果提交 emit('update-age', 2) ,因为不满足验证条件,浏览器控制台将会出现一段 [Vue warn]: Invalid event arguments: event validation failed for event "update-age". 这样的警告信息。

    v-model / emits

    相对于 props / emits 这一对通信方案,使用 v-model 的方式更为简单:

    1. 在 Father.vue ,通过 v-model 向 Child.vue 传值

    2. Child.vue 通过自身设定的 emits 向 Father.vue 通知数据更新

    v-model 的用法和 props 非常相似,但是很多操作上更为简化,但操作简单带来的 “副作用” ,就是功能上也没有 props 那么多。

    绑定 v-model ~new

    注:这一小节的步骤是在 Father.vue 里操作。

    和下发 props 的方式类似,都是在子组件上绑定 Father.vue 定义好的数据,这是绑定一个数据的例子:

    vue
    <!-- Father.vue -->
    +<template>
    +  <Child v-model:username="userInfo.name" />
    +</template>

    和 Vue 2 不同, Vue 3 可以直接绑定 v-model ,而无需在子组件指定 model 选项 ,并且 Vue 3 的 v-model 需要使用英文冒号 : 指定要绑定的属性名,同时也支持绑定多个 v-model 。

    如果要绑定多个数据,写多个 v-model 即可:

    vue
    <!-- Father.vue -->
    +<template>
    +  <Child
    +    v-model:uid="userInfo.id"
    +    v-model:username="userInfo.name"
    +    v-model:age="userInfo.age"
    +  />
    +</template>

    看到这里应该能明白了,一个 v-model 其实就是一个 prop ,它支持的数据类型和 prop 是一样的,所以子组件在接收数据的时候,完全按照 props 去定义就可以了。

    点击回顾:接收 props ,了解在 Child.vue 如何接收 props,以及相关的 props 类型限制等部分内容。

    配置 emits ~new

    注:这一小节的步骤是在 Child.vue 里操作。

    虽然 v-model 的配置和 props 相似,但是为什么出这么两个相似的东西?自然是为了简化一些开发上的操作。

    使用 props / emits ,如果要更新父组件的数据,还需要在父组件声明一个更新函数并绑定事件给子组件,才能够更新。

    而使用 v-model / emits ,无需在父组件声明更新函数,只需要在子组件 Child.vue 里通过 update: 前缀加上 v-model 的属性名这样的格式,即可直接定义一个更新事件。

    ts
    // Child.vue
    +export default defineComponent({
    +  props: {
    +    uid: Number,
    +    username: String,
    +    age: Number,
    +  },
    +  // 注意这里的 `update:` 前缀
    +  emits: ['update:uid', 'update:username', 'update:age'],
    +})

    这里的 update 后面的属性名,支持驼峰写法,这一部分和 Vue 2 的使用是相同的。

    在配置 emits 时,也可以对数据更新做一些校验,配置方式和讲解 props / emits 时 接收 emits 时做一些校验 这一小节的操作是一样的。

    在 Child.vue 配置好 emits 之后,就可以在 setup 里直接操作数据的更新了:

    ts
    // Child.vue
    +export default defineComponent({
    +  setup(props, { emit }) {
    +    // 2s 后更新用户名
    +    setTimeout(() => {
    +      emit('update:username', 'Tom')
    +    }, 2000)
    +  },
    +})

    子组件通过调用 emit('update:xxx') 即可让父组件更新对应的数据。

    ref / emits

    在学习 响应式 API 之 ref 的时候,已讲解过 ref 是可以用在 DOM 元素与子组件 上面,所以也可以使用 ref 配合 emits 完成父子组件的通信。

    父组件操作子组件 ~new

    注:这一小节的步骤是在 Father.vue 里操作。

    父组件可以给子组件绑定 ref 属性,然后通过 Ref 变量操作子组件的数据或者调用子组件里面的方法。

    先在 <template /> 处给子组件标签绑定 ref 属性:

    vue
    <!-- Father.vue -->
    +<template>
    +  <Child ref="child" />
    +</template>

    然后在 <script /> 部分定义好对应的变量名称 child (记得要 return 出来哦),即可通过该变量操作子组件上的变量或方法:

    ts
    // Father.vue
    +import { defineComponent, onMounted, ref } from 'vue'
    +import Child from '@cp/Child.vue'
    +
    +export default defineComponent({
    +  components: {
    +    Child,
    +  },
    +  setup() {
    +    // 给子组件定义一个 `ref` 变量
    +    const child = ref<InstanceType<typeof Child>>()
    +
    +    // 请保证视图渲染完毕后再执行操作
    +    onMounted(async () => {
    +      // 执行子组件里面的 AJAX 请求函数
    +      await child.value!.queryList()
    +
    +      // 显示子组件里面的弹窗
    +      child.value!.isShowDialog = true
    +    })
    +
    +    // 必须 `return` 出去才可以给到 `<template />` 使用
    +    return {
    +      child,
    +    }
    +  },
    +})

    需要注意的是,在子组件 Child.vue 里,变量和方法也需要在 setup 里 return 出来才可以被父组件调用到。

    子组件通知父组件

    子组件如果想主动向父组件通讯,也需要使用 emits ,详细的配置方法可见:绑定 emits

    爷孙组件通信

    顾名思义,爷孙组件是比 父子组件通信 要更深层次的引用关系(也有称之为 “隔代组件” )。

    C 组件被引入到 B 组件里, B 组件又被引入到 A 组件里渲染,此时 A 是 C 的爷爷级别(可能还有更多层级关系),它们之间的关系可以假设如下:

    Grandfather.vue
    +└─Son.vue
    +  └─Grandson.vue

    可以看到 Grandson.vue 并非直接挂载在 Grandfather.vue 下面,他们之间还隔着至少一个 Son.vue (在实际业务中可能存在更多层级),如果使用 props ,只能一级组件一级组件传递下去,就太繁琐了。

    因此需要更直接的通信方式来解决这种问题,这一 Part 就是讲一讲 C 和 A 之间的数据传递,常用的方法有:

    方案爷组件向孙组件孙组件向爷组件对应章节传送门
    provide / injectprovideinject点击查看
    EventBusemit / onemit / on点击查看
    Reactive State--点击查看
    Vuex--点击查看
    Pinia--点击查看

    因为上下级的关系的一致性,爷孙组件通信的方案也适用于 父子组件通信 ,只需要把爷孙关系换成父子关系即可,为了方便阅读,下面的爷组件统一叫 Grandfather.vue,子组件统一叫 Grandson.vue 。

    provide / inject

    这个通信方式也是有两部分:

    1. Grandfather.vue 通过 provide 向孙组件 Grandson.vue 提供数据和方法
    2. Grandson.vue 通过 inject 注入爷爷组件 Grandfather.vue 的数据和方法

    无论组件层次结构有多深,发起 provide 的组件都可以作为其所有下级组件的依赖提供者。

    Vue 3 的这一部分内容对比 Vue 2 来说变化很大,但使用起来其实也很简单,开发者学到这里不用慌,它们之间也有相同的地方:

    1. 爷组件不需要知道哪些子组件使用它 provide 的数据
    2. 子组件不需要知道 inject 的数据来自哪里

    另外要切记一点就是: provide 和 inject 绑定并不是可响应的,这是刻意为之的,除非传入了一个可侦听的对象。

    发起 provide ~new

    注:这一小节的步骤是在 Grandfather.vue 里操作。

    先来回顾一下 Vue 2 的用法:

    ts
    export default {
    +  // 在 `data` 选项里定义好数据
    +  data() {
    +    return {
    +      tags: ['中餐', '粤菜', '烧腊'],
    +    }
    +  },
    +  // 在 `provide` 选项里添加要提供的数据
    +  provide() {
    +    return {
    +      tags: this.tags,
    +    }
    +  },
    +}

    旧版的 provide 用法和 data 类似,都是配置为一个返回对象的函数,而 Vue 3 的新版 provide ,和 Vue 2 的用法区别比较大。

    在 Vue 3 , provide 需要导入并在 setup 里启用,并且现在是一个全新的方法,每次要 provide 一个数据的时候,就要单独调用一次。

    provide 的 TS 类型如下:

    ts
    // `provide` API 本身的类型
    +function provide<T>(key: InjectionKey<T> | string, value: T): void
    +
    +// 入参 `key` 的其中一种类型
    +interface InjectionKey<T> extends Symbol {}

    每次调用 provide 的时候都需要传入两个参数:

    参数说明
    key数据的名称
    value数据的值

    其中 key 一般使用 string 类型就可以满足大部分业务场景,如果有特殊的需要(例如开发插件时可以避免和用户的业务冲突),可以使用 InjectionKey<T> 类型,这是一个继承自 Symbol 的泛型:

    ts
    import type { InjectionKey } from 'vue'
    +const key = Symbol() as InjectionKey<string>

    还需要注意的是, provide 不是响应式的,如果要使其具备响应性,需要传入响应式数据,详见:响应性数据的传递与接收

    下面来试试在爷组件 Grandfather.vue 里创建数据 provide 下去:

    ts
    // Grandfather.vue
    +import { defineComponent, provide, ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 声明一个响应性变量并 provide 其自身
    +    // 孙组件获取后可以保持响应性
    +    const msg = ref('Hello World!')
    +    provide('msg', msg)
    +
    +    // 只 provide 响应式变量的值
    +    // 孙组件获取后只会得到当前的值
    +    provide('msgValue', msg.value)
    +
    +    // 声明一个方法并 provide
    +    function printMsg() {
    +      console.log(msg.value)
    +    }
    +    provide('printMsg', printMsg)
    +  },
    +})

    接收 inject ~new

    注:这一小节的步骤是在 Grandson.vue 里操作。

    也是先回顾一下在 Vue 2 里的用法,和接收 props 类似:

    ts
    export default {
    +  // 通过 `inject` 选项获取
    +  inject: ['tags'],
    +  mounted() {
    +    console.log(this.tags)
    +  },
    +}

    Vue 3 的新版 inject 和 Vue 2 的用法区别也是比较大,在 Vue 3 , inject 和 provide 一样,也是需要先导入然后在 setup 里启用,也是一个全新的方法,每次要 inject 一个数据的时候,也是要单独调用一次。

    另外还有一个特殊情况需要注意,当 Grandson.vue 的父级、爷级组件都 provide 了相同名字的数据下来,那么在 inject 的时候,会优先选择离它更近的组件的数据。

    根据不同的场景, inject 可以接受不同数量的入参,入参类型也各不相同。

    默认用法

    默认情况下, inject API 的 TS 类型如下:

    ts
    function inject<T>(key: InjectionKey<T> | string): T | undefined

    每次调用时只需要传入一个参数:

    参数类型说明
    keystring与 provide 相对应的数据名称

    接下来看看如何在孙组件里 inject 爷组件 provide 下来的数据:

    ts
    // Grandson.vue
    +import { defineComponent, inject } from 'vue'
    +import type { Ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 获取响应式变量
    +    const msg = inject<Ref<string>>('msg')
    +    console.log(msg!.value)
    +
    +    // 获取普通的字符串
    +    const msgValue = inject<string>('msgValue')
    +    console.log(msgValue)
    +
    +    // 获取函数
    +    const printMsg = inject<() => void>('printMsg')
    +    if (typeof printMsg === 'function') {
    +      printMsg()
    +    }
    +  },
    +})

    可以看到在每个 inject 都使用尖括号 <> 添加了相应的 TS 类型,并且在调用变量的时候都进行了判断,这是因为默认的情况下, inject 除了返回指定类型的数据之外,还默认带上 undefined 作为可能的值。

    如果明确数据不会是 undefined ,也可以在后面添加 as 关键字指定其 TS 类型,这样 TypeScript 就不再因为可能出现 undefined 而提示代码有问题。

    ts
    // Grandson.vue
    +import { defineComponent, inject } from 'vue'
    +import type { Ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 获取响应式变量
    +    const msg = inject('msg') as Ref<string>
    +    console.log(msg.value)
    +
    +    // 获取普通的字符串
    +    const msgValue = inject('msgValue') as string
    +    console.log(msgValue)
    +
    +    // 获取函数
    +    const printMsg = inject('printMsg') as () => void
    +    printMsg()
    +  },
    +})

    设置默认值

    inject API 还支持设置默认值,可以接受更多的参数。

    默认情况下,只需要传入第二个参数指定默认值即可,此时它的 TS 类型如下,

    ts
    function inject<T>(key: InjectionKey<T> | string, defaultValue: T): T

    对于不可控的情况,建议在 inject 时添加一个兜底的默认值,防止程序报错:

    ts
    // Grandson.vue
    +import { defineComponent, inject, ref } from 'vue'
    +import type { Ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 获取响应式变量
    +    const msg = inject<Ref<string>>('msg', ref('Hello'))
    +    console.log(msg.value)
    +
    +    // 获取普通的字符串
    +    const msgValue = inject<string>('msgValue', 'Hello')
    +    console.log(msgValue)
    +
    +    // 获取函数
    +    const printMsg = inject<() => void>('printMsg', () => {
    +      console.log('Hello')
    +    })
    +    printMsg()
    +  },
    +})

    需要注意的是, inject 的什么类型的数据,其默认值也需要保持相同的类型。

    工厂函数选项

    inject API 在第二个 TS 类型的基础上,还有第三个 TS 类型,可以传入第三个参数:

    ts
    function inject<T>(
    +  key: InjectionKey<T> | string,
    +  defaultValue: () => T,
    +  treatDefaultAsFactory?: false
    +): T

    当第二个参数是一个工厂函数,那么可以添加第三个值,将其设置为 true ,此时默认值一定会是其 return 的值。

    在 Grandson.vue 里新增一个 inject ,接收一个不存在的函数名,并提供一个工厂函数作为默认值:

    ts
    // Grandson.vue
    +import { defineComponent, inject } from 'vue'
    +
    +interface Food {
    +  name: string
    +  count: number
    +}
    +
    +export default defineComponent({
    +  setup() {
    +    // 获取工厂函数
    +    const getFood = inject<() => Food>('nonexistentFunction', () => {
    +      return {
    +        name: 'Pizza',
    +        count: 1,
    +      }
    +    })
    +    console.log(typeof getFood) // function
    +
    +    const food = getFood()
    +    console.log(food) // {name: 'Pizza', count: 1}
    +  },
    +})

    此时因为第三个参数默认为 Falsy 值 ,所以可以得到一个函数作为默认值,并可以调用该函数获得一个 Food 对象。

    如果将第三个参数传入为 true ,再运行程序则会在 const food = getFood() 这一行报错:

    ts
    // Grandson.vue
    +import { defineComponent, inject } from 'vue'
    +
    +interface Food {
    +  name: string
    +  count: number
    +}
    +
    +export default defineComponent({
    +  setup() {
    +    // 获取工厂函数
    +    const getFood = inject<() => Food>(
    +      'nonexistentFunction',
    +      () => {
    +        return {
    +          name: 'Pizza',
    +          count: 1,
    +        }
    +      },
    +      true
    +    )
    +    console.log(typeof getFood) // object
    +
    +    // 此时下面的代码无法运行
    +    // 报错 Uncaught (in promise) TypeError: getMsg is not a function
    +    const food = getFood()
    +    console.log(food)
    +  },
    +})

    因为此时第三个入参告知 inject ,默认值是一个工厂函数,因此默认值不再是函数本身,而是函数的返回值,所以 typeof getFood 得到的不再是一个 function 而是一个 object

    这个参数对于需要通过工厂函数返回数据的情况非常有用!

    兄弟组件通信

    兄弟组件是指两个组件都挂载在同一个 Father.vue 下,但两个组件之间并没有什么直接的关联,先看看它们的关系:

    Father.vue
    +├─Brother.vue
    +└─LittleBrother.vue

    这种层级关系下,如果组件之间要进行通信,目前通常有这两类选择:

    1. 【不推荐】先把数据传给 Father.vue ,再使用 父子组件通信 方案处理
    2. 【推荐】借助 全局组件通信 的方案达到目的

    下面的内容将进入全局通信的讲解。

    全局组件通信

    全局组件通信是指项目下两个任意组件,不管是否有直接关联(例如父子关系、爷孙关系)都可以直接进行交流的通信方案。

    举个例子,像下面这种项目结构, B2.vue 可以采用全局通信方案直接向 D2.vue 发起交流,而无需经过它们各自的父组件。

    bash
    A.vue
    +├─B1.vue
    +├───C1.vue
    +├─────D1.vue
    +├─────D2.vue
    +├───C2.vue
    +├─────D3.vue
    +└─B2.vue

    常用的方法有:

    方案发起方接收方对应章节传送门
    EventBusemiton点击查看
    Reactive State--点击查看
    Vuex--点击查看
    Pinia--点击查看

    EventBus ~new

    EventBus 通常被称之为 “全局事件总线” ,是用在全局范围内通信的一个常用方案,在 Vue 2 时期该方案非常流行,其特点就是 “简单” 、 “灵活” 、 “轻量级” 。

    回顾 Vue 2

    在 Vue 2 ,使用 EventBus 无需导入第三方插件,可以在项目下的 libs 文件夹里,创建一个名为 eventBus.ts 的文件,导出一个新的 Vue 实例即可。

    ts
    // src/libs/eventBus.ts
    +import Vue from 'vue'
    +export default new Vue()

    上面短短两句代码已完成了一个 EventBus 的创建,接下来就可以开始进行通信。

    先在负责接收事件的组件里,利用 Vue 的生命周期,通过 eventBus.$on 添加事件侦听,通过 eventBus.$off 移除事件侦听。

    ts
    import eventBus from '@libs/eventBus'
    +
    +export default {
    +  mounted() {
    +    // 在组件创建时,添加一个名为 `hello` 的事件侦听
    +    eventBus.$on('hello', () => {
    +      console.log('Hello World')
    +    })
    +  },
    +  beforeDestroy() {
    +    // 在组件销毁前,通过 `hello` 这个名称移除该事件侦听
    +    eventBus.$off('hello')
    +  },
    +}

    然后在另外一个组件里通过 eventBus.$emit 触发事件侦听。

    ts
    import eventBus from './eventBus'
    +
    +export default {
    +  methods: {
    +    sayHello() {
    +      // 触发名为 `hello` 的事件
    +      eventBus.$emit('hello')
    +    },
    +  },
    +}

    这样一个简单的全局方案就完成了。

    了解 Vue 3 ~new

    Vue 3 应用实例不再实现事件触发接口,因此移除了 $on$off$once 这几个事件 API ,无法像 Vue 2 一样利用 Vue 实例创建 EventBus 。

    根据官方文档在 事件 API 迁移策略 的推荐,可以使用 mitt 或者 tiny-emitter 等第三方插件实现 EventBus 。

    创建 Vue 3 的 EventBus ~new

    这里以 mitt 为例,示范如何创建一个 Vue 3 的 EventBus ,首先需要安装它。

    npm i mitt

    然后在 src/libs 文件夹下,创建一个名为 eventBus.ts 的文件,文件内容和 Vue 2 的写法其实是一样的,只不过是把 Vue 实例换成了 mitt 实例。

    ts
    // src/libs/eventBus.ts
    +import mitt from 'mitt'
    +export default mitt()

    接下来就可以定义通信的相关事件了,常用的 API 和参数如下:

    方法名称作用
    on注册一个侦听事件,用于接收数据
    emit调用方法发起数据传递
    off用来移除侦听事件

    on 的参数:

    参数类型作用
    typestring | symbol方法名
    handlerfunction接收到数据之后要做什么处理的回调函数

    这里的 handler 建议使用具名函数,因为匿名函数无法销毁。

    emit 的参数:

    参数类型作用
    typestring | symbol与 on 对应的方法名
    dataany与 on 对应的,允许接收的数据

    off 的参数:

    参数类型作用
    typestring | symbol与 on 对应的方法名
    handlerfunction要被删除的,与 on 对应的 handler 函数名

    更多的 API 可以查阅 插件的官方文档 ,在了解了最基本的用法之后,来开始配置一对组件通信。

    创建和移除侦听事件 ~new

    在需要暴露交流事件的组件里,通过 on 配置好接收方法,同时为了避免路由切换过程中造成事件多次被绑定,从而引起多次触发,需要在适当的时机 off 掉:

    ts
    import { defineComponent, onBeforeUnmount } from 'vue'
    +import eventBus from '@libs/eventBus'
    +
    +export default defineComponent({
    +  setup() {
    +    // 声明一个打招呼的方法
    +    function sayHi(msg = 'Hello World!') {
    +      console.log(msg)
    +    }
    +
    +    // 启用侦听
    +    eventBus.on('sayHi', sayHi)
    +
    +    // 在组件卸载之前移除侦听
    +    onBeforeUnmount(() => {
    +      eventBus.off('sayHi', sayHi)
    +    })
    +  },
    +})

    关于销毁的时机,可以参考 组件的生命周期

    调用侦听事件 ~new

    在需要调用交流事件的组件里,通过 emit 进行调用:

    ts
    import { defineComponent } from 'vue'
    +import eventBus from '@libs/eventBus'
    +
    +export default defineComponent({
    +  setup() {
    +    // 调用打招呼事件,传入消息内容
    +    eventBus.emit('sayHi', 'Hello')
    +  },
    +})

    旧项目升级 EventBus

    在 Vue 3 的 EventBus 里,可以看到它的 API 和旧版是非常接近的,只是去掉了 $ 符号。

    如果要对旧的项目进行升级改造,由于原来都是使用了 $on$emit 等旧的 API ,一个一个组件去修改成新的 API 容易遗漏或者全局替换出错。

    因此可以在创建 eventBus.ts 的时候,通过自定义一个 eventBus 对象来挂载 mitt 的 API 。

    在 eventBus.ts 里,改成以下代码:

    ts
    // src/libs/eventBus.ts
    +import mitt from 'mitt'
    +
    +// 初始化一个 mitt 实例
    +const emitter = mitt()
    +
    +// 在导出时使用旧的 API 名称去调用 mitt 的 API
    +export default {
    +  $on: (...args) => emitter.on(...args),
    +  $emit: (...args) => emitter.emit(...args),
    +  $off: (...args) => emitter.off(...args),
    +}

    这样在组件里就可以继续使用 eventBus.$oneventBus.$emit 等旧 API ,不会影响旧项目的升级使用。

    Reactive State ~new

    在 Vue 3 里,使用响应式的 reactive API 也可以实现一个小型的状态共享库,如果运用在一个简单的 H5 活动页面这样小需求里,完全可以满足使用。

    创建状态中心

    首先在 src 目录下创建一个 state 文件夹,并添加一个 index.ts 文件,写入以下代码:

    ts
    // src/state/index.ts
    +import { reactive } from 'vue'
    +
    +// 如果有多个不同业务的内部状态共享
    +// 使用具名导出更容易维护
    +export const state = reactive({
    +  // 设置一个属性并赋予初始值
    +  message: 'Hello World',
    +
    +  // 添加一个更新数据的方法
    +  setMessage(msg: string) {
    +    this.message = msg
    +  },
    +})

    这就完成了一个简单的 Reactive State 响应式状态中心的创建。

    设定状态更新逻辑

    接下来在一个组件 Child.vue 的 <script /> 里添加以下代码,分别进行了以下操作:

    1. 打印初始值
    2. 对 state 里的数据启用侦听器
    3. 使用 state 里的方法更新数据
    4. 直接更新 state 的数据
    ts
    // Child.vue
    +import { defineComponent, watch } from 'vue'
    +import { state } from '@/state'
    +
    +export default defineComponent({
    +  setup() {
    +    console.log(state.message)
    +    // Hello World
    +
    +    // 因为是响应式数据,所以可以侦听数据变化
    +    watch(
    +      () => state.message,
    +      (val) => {
    +        console.log('Message 发生变化:', val)
    +      }
    +    )
    +
    +    setTimeout(() => {
    +      state.setMessage('Hello Hello')
    +      // Message 发生变化: Hello Hello
    +    }, 1000)
    +
    +    setTimeout(() => {
    +      state.message = 'Hi Hi'
    +      // Message 发生变化: Hi Hi
    +    }, 2000)
    +  },
    +})

    观察全局状态变化

    继续在另外一个组件 Father.vue 里写入以下代码,导入 state 并在 <template /> 渲染其中的数据:

    vue
    <!-- Father.vue -->
    +<template>
    +  <div>{{ state.message }}</div>
    +  <Child />
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +import Child from '@cp/Child.vue'
    +import { state } from '@/state'
    +
    +export default defineComponent({
    +  components: {
    +    Child,
    +  },
    +  setup() {
    +    return {
    +      state,
    +    }
    +  },
    +})
    +</script>

    可以观察到当 Child.vue 里的定时器执行时, Father.vue 的视图也会同步得到更新。

    一个无需额外插件即可实现的状态中心就这么完成了!

    Vuex ~new

    Vuex 是 Vue 生态里面非常重要的一个成员,运用于状态管理模式。

    它也是一个全局的通信方案,对比 EventBus,Vuex 的功能更多,更灵活,但对应的学习成本和体积也相对较大,通常大型项目才会用上 Vuex 。

    在了解之前

    摘自 Vuex 仓库 README 文档的一段官方提示:

    Pinia is now the new default
    The official state management library for Vue has changed to Pinia. Pinia has almost the exact same or enhanced API as Vuex 5, described in Vuex 5 RFC. You could simply consider Pinia as Vuex 5 with a different name. Pinia also works with Vue 2.x as well.
    Vuex 3 and 4 will still be maintained. However, it's unlikely to add new functionalities to it. Vuex and Pinia can be installed in the same project. If you're migrating existing Vuex app to Pinia, it might be a suitable option. However, if you're planning to start a new project, we highly recommend using Pinia instead.

    意思是 Pinia 已经成为 Vue 生态最新的官方状态管理库,不仅适用于 Vue 3 ,也支持 Vue 2 ,而 Vuex 将进入维护状态,不再增加新功能, Vue 官方强烈建议在新项目中使用 Pinia 。

    TIP

    笔者建议:如果是全新的项目,建议直接使用 Pinia ,不仅更加适配 Vue 3 组合式 API 的使用,对 TypeScript 的支持也更完善,上手难度和使用舒适度均比 Vuex 更好, Vuex 正在逐渐退出舞台,请根据实际需求决定是否需要启用它。

    Vuex 的目录结构

    在 Vue 3 里使用 Vuex ,需要选择 4.x 版本,也是当前的 @latest 标签对应的版本,请先安装它。

    bash
    npm i vuex

    接下来按照下面的目录结构创建对应的目录与文件:

    bash
    src
    + # Vuex 的目录
    +├─store
    +├───index.ts
    +└─main.ts

    一般情况下一个 index.ts 足矣,它是 Vuex 的入口文件,如果的项目比较庞大,可以在 store 目录下创建一个命名为 modules 的文件夹,使用 Vuex Modules 的方式导入到 index.ts 里去注册。

    回顾 Vue 2

    在 Vue 2 ,需要先分别导入 vuevuex,使用 use 方法启用 Vuex 后,通过 new Vuex.Store(...) 的方式进行初始化。

    ts
    // src/store/index.ts
    +import Vue from 'vue'
    +import Vuex from 'vuex'
    +
    +Vue.use(Vuex)
    +
    +export default new Vuex.Store({
    +  state: {},
    +  mutations: {},
    +  actions: {},
    +  modules: {},
    +})

    之后在组件里就可以通过 this.$store 操作 Vuex 上的方法了。

    ts
    export default {
    +  mounted() {
    +    // 通过 `this.$store` 操作 Vuex
    +    this.$store.commit('increment')
    +    console.log(this.$store.state.count)
    +  },
    +}

    了解 Vue 3 ~new

    Vue 3 需要从 Vuex 里导入 createStore 创建实例:

    ts
    // src/store/index.ts
    +import { createStore } from 'vuex'
    +
    +export default createStore({
    +  state: {},
    +  mutations: {},
    +  actions: {},
    +  modules: {},
    +})

    之后在 src/main.ts 里启用 Vuex :

    ts
    // src/main.ts
    +import { createApp } from 'vue'
    +import App from './App.vue'
    +import store from './store'
    +
    +createApp(App)
    +  .use(store) // 启用 Vuex
    +  .mount('#app')

    Vue 3 在组件里使用 Vuex 的方式和 Vue 2 有所不同,需要像使用路由那样通过一个组合式 API useStore 启用。

    ts
    import { defineComponent } from 'vue'
    +import { useStore } from 'vuex'
    +
    +export default defineComponent({
    +  setup() {
    +    // 需要创建一个 store 变量
    +    const store = useStore()
    +
    +    // 再使用 store 去操作 Vuex 的 API
    +    // ...
    +  },
    +})

    Vuex 的配置

    除了初始化方式有一定的改变, Vuex 在 Vue 3 的其他配置和 Vue 2 是一样的。

    由于现在在 Vue 3 里已经更推荐使用 Pinia , Vuex 已处于维护状态,因此关于 Vuex 的使用将不展开更多的介绍,有需要的开发者可以查看 Vuex 官网的 使用指南 了解更多。

    Pinia ~new

    Pinia 和 Vuex 一样,也是 Vue 生态里面非常重要的一个成员,也都是运用于全局的状态管理。

    但面向 Componsition API 而生的 Pinia ,更受 Vue 3 喜爱,已被钦定为官方推荐的新状态管理工具。

    为了阅读上的方便,对 Pinia 单独开了一章,请在 全局状态的管理 一章阅读。

    Released under the MIT License.

    + + + + \ No newline at end of file diff --git a/component.html b/component.html new file mode 100644 index 00000000..7382973c --- /dev/null +++ b/component.html @@ -0,0 +1,1965 @@ + + + + + + 单组件的编写 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
    Skip to content
    目录

    单组件的编写

    项目搭好了,第一个需要了解的是 Vue 组件的变化,由于这部分篇幅会非常大,所以会分成很多个小节,一部分一部分按照开发顺序来逐步了解。

    因为 Vue 3 对 TypeScript 的支持真的是太完善了,并且 TypeScript 的发展趋势和市场需求度越来越高,所以接下来都将直接使用 TypeScript 进行编程。

    TIP

    对 TypeScript 不太熟悉的开发者,建议先阅读 快速上手 TypeScript 一章,有了一定的语言基础之后,再一边写代码一边加深印象。

    温馨提示

    这是笔者写于 2024.02.20 的补充提示,为读者解答为何前面的章节都未提及 script-setup 组件语法的信息。

    笔者在执笔之初,考虑到降低初学过程中的各种心智负担,以及当时处于 script-setup 组件语法尚未完全稳定的背景下,所以在最后一章 高效开发 之前的章节,都只提供了组件的标准写法的讲解。

    除非遇到框架进行了 Breaking Change (例如从 Vue 2 升级到了 Vue 3 这种大版本更新),否则标准写法是始终有效的,在笔者多年的学习经历和实际收获里,也是比较相信一点:不论学习什么语言或者框架,只要基础打的好,未来总是可以轻松地举一反三去解决遇到的各类问题。

    因此如果读者通过各类脚手架创建的 Vue 3 项目,在组件看到 <script setup> 这种风格的组件,以及诸如 defineXxx 风格的 API ,这是 .vue 组件所支持的一种语法糖,可以随时在 高效开发 一章了解相关的 API 用法。

    另外从 Vue 3.4 版本之后所新增的 API 未在本书的介绍范围内,请读者在阅读的过程中也可以查阅官方的 API 一起学习,不论是本书还是其他计算机书籍,官方文档永远是最好的查询手册。

    TIP

    语法糖(英语:Syntactic sugar)是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

    全新的 setup 函数 ~new

    在开始编写 Vue 组件之前,需要了解两个全新的前置知识点:

    • 全新的 setup 函数,关系到组件的生命周期和渲染等问题
    • 写 TypeScript 组件离不开的 defineComponent API

    setup 的含义

    Vue 3 的 Composition API 系列里,推出了一个全新的 setup 函数,它是一个组件选项,在创建组件之前执行,一旦 props 被解析,并作为组合式 API 的入口点。

    TIP

    说的通俗一点,就是在使用 Vue 3 生命周期的情况下,整个组件相关的业务代码,都可以放在 setup 里执行。

    因为在 setup 之后,其他的生命周期才会被启用(点击了解:组件的生命周期)。

    基本语法:

    ts
    // 这是一个基于 TypeScript 的 Vue 组件
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup(props, context) {
    +    // 在这里声明数据,或者编写函数并在这里执行它
    +
    +    return {
    +      // 需要给 `<template />` 用的数据或函数,在这里 `return` 出去
    +    }
    +  },
    +})

    可以发现在这段代码里还导入了一个 defineComponent API ,也是 Vue 3 带来的新功能,下文的 defineComponent 的作用 将介绍其用法。

    在使用 setup 的情况下,请牢记一点:不能再用 this 来获取 Vue 实例,也就是无法和 Vue 2 一样,通过 this.foothis.bar() 这样来获取实例上的数据,或者执行实例上的方法。

    关于全新的 Vue 3 组件编写,笔者将在下文一步步说明。

    setup 的参数使用

    setup 函数包含了两个入参:

    参数类型含义是否必传
    propsobject由父组件传递下来的数据
    contextobject组件的执行上下文

    第一个参数 props

    它是响应式的,当父组件传入新的数据时,它将被更新。

    TIP

    请不要解构它,这样会让数据失去响应性,一旦父组件发生数据变化,解构后的变量将无法同步更新为最新的值。

    可以使用 Vue 3 全新的响应式 API toRef / toRefs 进行响应式数据转换,下文将会介绍全新的响应式 API 的用法。

    第二个参数 context

    context 只是一个普通的对象,它暴露三个组件的 Property :

    属性类型作用
    attrs非响应式对象未在 Props 里定义的属性都将变成 Attrs
    slots非响应式对象组件插槽,用于接收父组件传递进来的模板内容
    emit方法触发父组件绑定下来的事件

    因为 context 只是一个普通对象,所以可以直接使用 ES6 解构。

    平时使用可以通过直接传入 { emit } ,即可用 emit('xxx') 来代替使用 context.emit('xxx'),另外两个功能也是如此。

    但是 attrsslots 请保持 attrs.xxxslots.xxx 的方式来使用其数据,不要进行解构,虽然这两个属性不是响应式对象,但对应的数据会随组件本身的更新而更新。

    两个参数的具体使用,可查阅 组件之间的通信 一章详细了解。

    defineComponent 的作用

    defineComponent 是 Vue 3 推出的一个全新 API ,可用于对 TypeScript 代码的类型推导,帮助开发者简化掉很多编码过程中的类型声明。

    比如,原本需要这样才可以使用 setup 函数:

    ts
    import { Slots } from 'vue'
    +
    +// 声明 `props` 和 `return` 的数据类型
    +interface Data {
    +  [key: string]: unknown
    +}
    +
    +// 声明 `context` 的类型
    +interface SetupContext {
    +  attrs: Data
    +  slots: Slots
    +  emit: (event: string, ...args: unknown[]) => void
    +}
    +
    +// 使用的时候入参要加上声明, `return` 也要加上声明
    +export default {
    +  setup(props: Data, context: SetupContext): Data {
    +    // ...
    +
    +    return {
    +      // ...
    +    }
    +  },
    +}

    每个组件都这样进行类型声明,会非常繁琐,如果使用了 defineComponent ,就可以省略这些类型声明:

    ts
    import { defineComponent } from 'vue'
    +
    +// 使用 `defineComponent` 包裹组件的内部逻辑
    +export default defineComponent({
    +  setup(props, context) {
    +    // ...
    +
    +    return {
    +      // ...
    +    }
    +  },
    +})

    代码量瞬间大幅度减少,只要是 Vue 本身的 API , defineComponent 都可以自动推导其类型,这样开发者在编写组件的过程中,只需要维护自己定义的数据类型就可以了,可专注于业务。

    组件的生命周期 ~new

    在了解了 Vue 3 组件的两个前置知识点后,不着急写组件,还需要先了解组件的生命周期,这个知识点非常重要,只有理解并记住组件的生命周期,才能够灵活的把控好每一处代码的执行,使程序的运行结果可以达到预期。

    升级变化

    从 Vue 2 升级到 Vue 3 ,在保留对 Vue 2 的生命周期支持的同时,Vue 3 也带来了一定的调整。

    Vue 2 的生命周期写法名称是 Options API (选项式 API ), Vue 3 新的生命周期写法名称是 Composition API (组合式 API )。

    Vue 3 组件默认支持 Options API ,而 Vue 2 可以通过 @vue/composition-api 插件获得 Composition API 的功能支持(其中 Vue 2.7 版本内置了该插件, 2.6 及以下的版本需要单独安装)。

    为了减少理解成本,笔者将从读者的使用习惯上,使用 “ Vue 2 的生命周期” 代指 Options API 写法,用 “ Vue 3 的生命周期” 代指 Composition API 写法。

    关于 Vue 生命周期的变化,可以从下表直观地了解:

    Vue 2 生命周期Vue 3 生命周期执行时间说明
    beforeCreatesetup组件创建前执行
    createdsetup组件创建后执行
    beforeMountonBeforeMount组件挂载到节点上之前执行
    mountedonMounted组件挂载完成后执行
    beforeUpdateonBeforeUpdate组件更新之前执行
    updatedonUpdated组件更新完成之后执行
    beforeDestroyonBeforeUnmount组件卸载之前执行
    destroyedonUnmounted组件卸载完成后执行
    errorCapturedonErrorCaptured当捕获一个来自子孙组件的异常时激活钩子函数

    可以看到 Vue 2 生命周期里的 beforeCreatecreated ,在 Vue 3 里已被 setup 替代。

    熟悉 Vue 2 的开发者应该都知道 Vue 有一个全局组件 <KeepAlive /> ,用于在多个组件间动态切换时缓存被移除的组件实例,当组件被包含在 <KeepAlive /> 组件里时,会多出两个生命周期钩子函数:

    Vue 2 生命周期Vue 3 生命周期执行时间说明
    activatedonActivated被激活时执行
    deactivatedonDeactivated切换组件后,原组件消失前执行

    TIP

    虽然 Vue 3 依然支持 Vue 2 的生命周期,但是不建议混搭使用,前期可以继续使用 Vue 2 的生命周期作为过度阶段慢慢适应,但还是建议尽快熟悉并完全使用 Vue 3 的生命周期编写组件。

    使用 3.x 的生命周期

    在 Vue 3 的 Composition API 写法里,每个生命周期函数都要先导入才可以使用,并且所有生命周期函数统一放在 setup 里运行。

    如果需要达到 Vue 2 的 beforeCreatecreated 生命周期的执行时机,直接在 setup 里执行函数即可。

    以下是几个生命周期的执行顺序对比:

    ts
    import { defineComponent, onBeforeMount, onMounted } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    console.log(1)
    +
    +    onBeforeMount(() => {
    +      console.log(2)
    +    })
    +
    +    onMounted(() => {
    +      console.log(3)
    +    })
    +
    +    console.log(4)
    +  },
    +})

    最终将按照生命周期的顺序输出:

    js
    // 1
    +// 4
    +// 2
    +// 3

    组件的基本写法

    如果想在 Vue 2 里使用 TypeScript 编写组件,需要通过 Options API 的 Vue.extend 语法,或者是另外一种风格 Class Component 的语法声明组件,其中为了更好的进行类型推导, Class Component 语法更受开发者欢迎。

    但是 Class Component 语法和默认的组件语法相差较大,带来了一定的学习成本,对于平时编写 JavaScript 代码很少使用 Class 的开发者,适应时间应该也会比较长。

    因此 Vue 3 在保留对 Class Component 支持的同时,推出了全新的 Function-based Component ,更贴合 JavaScript 的函数式编程风格,这也是接下来要讲解并贯穿全文使用的 Composition API 新写法。

    Composition API 虽然也是一个步伐迈得比较大的改动,但其组件结构并没有特别大的变化,区别比较大的地方在于组件生命周期和响应式 API 的使用,只要掌握了这些核心功能,上手 Vue 3 非常容易!

    看到这里可能有开发者心里在想:

    “这几种组件写法,加上视图部分又有 Template 和 TSX 的写法之分,生命周期方面 Vue 3 对 Vue 2 的写法又保持了兼容,在 Vue 里写 TypeScript 的组合方式一只手数不过来,在入门时选择合适的编程风格就遇到了困难,可怎么办?”

    不用担心!笔者将九种常见的组合方式以表格的形式进行对比, Vue 3 组件最好的写法一目了然!

    回顾 Vue 2

    在 Vue 2 ,常用以下三种写法声明 TypeScript 组件:

    适用版本基本写法视图写法
    Vue 2Vue.extendTemplate
    Vue 2Class ComponentTemplate
    Vue 2Class ComponentTSX

    其中最接近 Options API 的写法是使用 Vue.extend API 声明组件:

    ts
    // 这是一段摘选自 Vue 2 官网的代码演示
    +import Vue from 'vue'
    +
    +// 推荐使用 Vue.extend 声明组件
    +const Component = Vue.extend({
    +  // 类型推断已启用
    +})
    +
    +// 不推荐这种方式声明
    +const Component = {
    +  // 这里不会有类型推断,
    +  // 因为 TypeScript 不能确认这是 Vue 组件的选项
    +}

    而为了更好地获得 TypeScript 类型推导支持,通常使用 Class Component 的写法,这是 Vue 官方推出的一个装饰器插件(需要单独安装):

    ts
    // 这是一段摘选自 Vue 2 官网的代码演示
    +import Vue from 'vue'
    +import Component from 'vue-class-component'
    +
    +// @Component 修饰符注明了此类为一个 Vue 组件
    +@Component({
    +  // 所有的组件选项都可以放在这里
    +  template: '<button @click="onClick">Click!</button>',
    +})
    +
    +// 使用 Class 声明一个组件
    +export default class MyComponent extends Vue {
    +  // 初始数据可以直接声明为实例的 property
    +  message: string = 'Hello!'
    +
    +  // 组件方法也可以直接声明为实例的方法
    +  onClick(): void {
    +    window.alert(this.message)
    +  }
    +}

    可在 Vue 2 官网的 TypeScript 支持 一章了解更多配置说明。

    了解 Vue 3 ~new

    Vue 3 从设计初期就考虑了 TypeScript 的支持,其中 defineComponent 这个 API 就是为了解决 Vue 2 对 TypeScript 类型推导不完善等问题而推出的。

    在 Vue 3 ,至少有以下六种写法可以声明 TypeScript 组件:

    适用版本基本写法视图写法生命周期版本官方是否推荐
    Vue 3Class ComponentTemplateVue 2×
    Vue 3defineComponentTemplateVue 2×
    Vue 3defineComponentTemplateVue 3
    Vue 3Class ComponentTSXVue 2×
    Vue 3defineComponentTSXVue 2×
    Vue 3defineComponentTSXVue 3

    其中 defineComponent + Composition API + Template 的组合是 Vue 官方最为推荐的组件声明方式,本书接下来的内容都会以这种写法作为示范案例,也推荐开发者在学习的过程中,使用该组合进行入门。

    下面看看如何使用 Composition API 编写一个最简单的 Hello World 组件:

    vue
    <!-- Template 代码和 Vue 2 一样 -->
    +<template>
    +  <p class="msg">{{ msg }}</p>
    +</template>
    +
    +<!-- Script 代码需要使用 Vue 3 的新写法-->
    +<script lang="ts">
    +// Vue 3 的 API 需要导入才能使用
    +import { defineComponent } from 'vue'
    +
    +// 使用 `defineComponent` 包裹组件代码
    +// 即可获得完善的 TypeScript 类型推导支持
    +export default defineComponent({
    +  setup() {
    +    // 在 `setup` 方法里声明变量
    +    const msg = 'Hello World!'
    +
    +    // 将需要在 `<template />` 里使用的变量 `return` 出去
    +    return {
    +      msg,
    +    }
    +  },
    +})
    +</script>
    +
    +<!-- CSS 代码和 Vue 2 一样 -->
    +<style scoped>
    +.msg {
    +  font-size: 14px;
    +}
    +</style>

    可以看到 Vue 3 的组件也是 <template /> + <script /> + <style /> 的三段式组合,上手非常简单。

    其中 Template 沿用了 Vue 2 时期类似 HTML 风格的模板写法, Style 则是使用原生 CSS 语法或者 Less 等 CSS 预处理器编写。

    但需要注意的是,在 Vue 3 的 Composition API 写法里,数据或函数如果需要在 <template /> 中使用,就必须在 setup 里将其 return 出去,而仅在 <script /> 里被调用的函数或变量,不需要渲染到模板则无需 return

    响应式数据的变化 ~new

    响应式数据是 MVVM 数据驱动编程的特色, Vue 的设计也是受 MVVM 模型的启发,相信大部分开发者选择 MVVM 框架都是因为数据驱动编程比传统的事件驱动编程要来得方便,而选择 Vue ,则是方便中的方便。

    TIP

    Model-View-ViewModel (简称 MVVM ) 是一种软件架构模式,将视图 UI 和业务逻辑分开,通过对逻辑数据的修改即可驱动视图 UI 的更新,因此常将这种编程方式称为 “数据驱动” ,与之对应的需要操作 DOM 才能完成视图更新的编程方式则称为 “事件驱动” 。

    设计上的变化

    作为最重要的一个亮点, Vue 3 的响应式数据在设计上和 Vue 2 有着很大的不同。

    回顾 Vue 2

    Vue 2 是使用了 Object.defineProperty API 的 getter/setter 来实现数据的响应性,这个方法的具体用法可以参考 MDN 的文档: Object.defineProperty - MDN

    下面使用 Object.defineProperty 实现一个简单的双向绑定 demo ,亲自敲代码试一下可以有更多的理解:

    html
    <!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>DefineProperty Demo</title>
    +  </head>
    +  <body>
    +    <!-- 输入框和按钮 -->
    +    <div>
    +      <input type="text" id="input" />
    +      <button onclick="vm.text = 'Hello World'">设置为 Hello World</button>
    +    </div>
    +    <!-- 输入框和按钮 -->
    +
    +    <!-- 文本展示 -->
    +    <div id="output"></div>
    +    <!-- 文本展示 -->
    +
    +    <script>
    +      // 声明一个响应式数据
    +      const vm = {}
    +      Object.defineProperty(vm, 'text', {
    +        set(value) {
    +          document.querySelector('#input').value = value
    +          document.querySelector('#output').innerText = value
    +        },
    +      })
    +
    +      // 处理输入行为
    +      document.querySelector('#input').oninput = function (e) {
    +        vm.text = e.target.value
    +      }
    +    </script>
    +  </body>
    +</html>

    这个小 demo 实现了这两个功能:

    1. 输入框的输入行为只修改 vm.text 的数据,但会同时更新 output 标签的文本内容
    2. 点击按钮修改 vm.text 的数据,也会触发输入框和 output 文本的更新

    当然 Vue 做了非常多的工作,而非只是简单的调用了 Object.defineProperty ,可以在官网 深入 Vue 2 的响应式原理 一章了解更多 Vue 2 的响应式原理。

    了解 Vue 3

    Vue 3 是使用了 Proxy API 的 getter/setter 来实现数据的响应性,这个方法的具体用法可以参考 MDN 的文档: Proxy - MDN

    同样的,也来实现一个简单的双向绑定 demo ,这次使用 Proxy 来实现:

    html
    <!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>Proxy Demo</title>
    +  </head>
    +  <body>
    +    <!-- 输入框和按钮 -->
    +    <div>
    +      <input type="text" id="input" />
    +      <button onclick="vm.text = 'Hello World'">设置为 Hello World</button>
    +    </div>
    +    <!-- 输入框和按钮 -->
    +
    +    <!-- 文本展示 -->
    +    <div id="output"></div>
    +    <!-- 文本展示 -->
    +
    +    <script>
    +      // 声明一个响应式数据
    +      const vm = new Proxy(
    +        {},
    +        {
    +          set(obj, key, value) {
    +            document.querySelector('#input').value = value
    +            document.querySelector('#output').innerText = value
    +          },
    +        }
    +      )
    +
    +      // 处理输入行为
    +      document.querySelector('#input').oninput = function (e) {
    +        vm.text = e.target.value
    +      }
    +    </script>
    +  </body>
    +</html>

    这个 demo 实现的功能和使用 Object.defineProperty 的 demo 是完全一样的,也都是基于 setter 的行为完成数据更新的实现,那么为什么 Vue 3 要舍弃 Object.defineProperty ,换成 Proxy 呢?

    主要原因在于 Object.defineProperty 有以下的不足:

    1. 无法侦听数组下标的变化,通过 arr[i] = newValue 这样的操作无法实时响应
    2. 无法侦听数组长度的变化,例如通过 arr.length = 10 去修改数组长度,无法响应
    3. 只能侦听对象的属性,对于整个对象需要遍历,特别是多级对象更是要通过嵌套来深度侦听
    4. 使用 Object.assign() 等方法给对象添加新属性时,也不会触发更新
    5. 更多细节上的问题 …

    这也是为什么 Vue 2 要提供一个 Vue.set API 的原因,可以在官网 Vue 2 中检测变化的注意事项 一章了解更多说明。

    而这些问题在 Proxy 都可以得到解决,可以在官网 深入 Vue 3 的响应式原理 一章了解更多这部分的内容。

    用法上的变化

    本书只使用 Composition API 编写组件,这是使用 Vue 3 的最大优势。

    TIP

    虽然官方文档在各个 API 的使用上都做了一定的举例,但在实际使用过程中可能会遇到一些问题,常见的情况就是有些数据用着用着就失去了响应,或者是在 TypeScript 里出现类型不匹配的报错等等。

    当然,一般遇到这种情况并不一定是框架的 BUG ,而可能是使用方式不对,本章节将结合笔者最初入门 Vue 3 时遇到的问题和解决问题的心得,复盘这些响应式 API 的使用。

    相对于 Vue 2 在 data 里声明后即可通过 this.xxx 调用响应式数据,在 Vue 3 的生命周期里没有了 Vue 实例的 this 指向,需要导入 refreactive 等响应式 API 才能声明并使用响应式数据。

    ts
    // 这里导入的 `ref` 是一个响应式 API
    +import { defineComponent, ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 通过响应式 API 创建的变量具备了响应性
    +    const msg = ref<string>('Hello World!')
    +  },
    +})

    由于 Vue 3 新的 API 非常多,但有些 API 的使用场景却不多,因此本书当前只对常用的部分 API 的使用和常见问题进行说明,更多的 API 可以在官方文档的 响应性 API 一章查阅。

    响应式 API 之 ref ~new

    ref 是最常用的一个响应式 API,它可以用来定义所有类型的数据,包括 Node 节点和组件。

    没错,在 Vue 2 常用的 this.$refs.xxx 来取代 document.querySelector('.xxx') 获取 Node 节点的方式,也是使用这个 API 来取代。

    类型声明

    在开始使用 API 之前,需要先了解在 TypeScript 中如何声明 Ref 变量的类型。

    API 本身的类型

    先看 API 本身, ref API 是一个函数,通过接受一个泛型入参,返回一个响应式对象,所有的值都通过 .value 属性获取,这是 API 本身的 TS 类型:

    ts
    // `ref` API 的 TS 类型
    +function ref<T>(value: T): Ref<UnwrapRef<T>>
    +
    +// `ref` API 的返回值的 TS 类型
    +interface Ref<T> {
    +  value: T
    +}

    因此在声明变量时,是使用尖括号 <> 包裹其 TS 类型,紧跟在 ref API 之后:

    ts
    // 显式指定 `msg.value` 是 `string` 类型
    +const msg = ref<string>('Hello World!')

    再回看该 API 本身的类型,其中使用了 T 泛型,这表示在传入函数的入参时,可以不需要手动指定其 TS 类型, TypeScript 会根据这个 API 所返回的响应式对象的 .value 属性的类型,确定当前变量的类型。

    因此也可以省略显式的类型指定,像下面这样声明变量,其类型交给 TypeScript 去自动推导:

    ts
    // TypeScript 会推导 `msg.value` 是 `string` 类型
    +const msg = ref('Hello World')

    对于声明时会赋予初始值,并且在使用过程中不会改变其类型的变量,是可以省略类型的显式指定的。

    而如果有显式的指定的类型,那么在一些特殊情况下,初始化时可以不必赋值,这样 TypeScript 会自动添加 undefined 类型:

    ts
    const msg = ref<string>()
    +console.log(msg.value) // undefined
    +
    +msg.value = 'Hello World!'
    +console.log(msg.value) // Hello World!

    因为入参留空时,虽然指定了 string 类型,但实际上此时的值是 undefined ,因此实际上这个时候的 msg.value 是一个 string | undefined 的联合类型。

    对于声明时不知道是什么值,在某种条件下才进行初始化的情况,就可以省略其初始值,但是切记在调用该变量的时候对 .value 值进行有效性判断。

    而如果既不显式指定类型,也不赋予初始值,那么会被默认为 any 类型,除非真的无法确认类型,否则不建议这么做。

    API 返回值的类型

    细心的开发者还会留意到 ref API 类型里面还标注了一个返回值的 TS 类型:

    ts
    interface Ref<T> {
    +  value: T
    +}

    它是代表整个 Ref 变量的完整类型:

    • 上文声明 Ref 变量时,提到的 string 类型都是指 msg.value 这个 .value 属性的类型
    • msg 这个响应式变量,其本身是 Ref<string> 类型

    如果在开发过程中需要在函数里返回一个 Ref 变量,那么其 TypeScript 类型就可以这样写(请留意 Calculator 里的 num 变量的类型):

    ts
    // 导入 `ref` API
    +import { ref } from 'vue'
    +// 导入 `ref` API 的返回值类型
    +import type { Ref } from 'vue'
    +
    +// 声明 `useCalculator` 函数的返回值类型
    +interface Calculator {
    +  // 这里包含了一个 Ref 变量
    +  num: Ref<number>
    +  add: () => void
    +}
    +
    +// 声明一个 “使用计算器” 的函数
    +function useCalculator(): Calculator {
    +  const num = ref<number>(0)
    +
    +  function add() {
    +    num.value++
    +  }
    +
    +  return {
    +    num,
    +    add,
    +  }
    +}
    +
    +// 在执行使用计算器函数时,可以获取到一个 Ref 变量和其他方法
    +const { num, add } = useCalculator()
    +add()
    +console.log(num.value) // 1

    上面这个简单的例子演示了如何手动指定 Ref 变量的类型,对于逻辑复用时的函数代码抽离、插件开发等场景非常有用!当然大部分情况下可以交给 TypeScript 自动推导,但掌握其用法,在必要的时候就派得上用场了!

    变量的定义

    在了解了如何对 Ref 变量进行类型声明之后,面对不同的数据类型,相信都得心应手了!但不同类型的值之间还是有少许差异和注意事项,例如上文提及到该 API 可以用来定义所有类型的数据,包括 Node 节点和组件,具体可以参考下文的示例。

    基本类型

    对字符串、布尔值等基本类型的定义方式,比较简单:

    ts
    // 字符串
    +const msg = ref<string>('Hello World!')
    +
    +// 数值
    +const count = ref<number>(1)
    +
    +// 布尔值
    +const isVip = ref<boolean>(false)

    引用类型

    对于对象、数组等引用类型也适用,比如要定义一个对象:

    ts
    // 先声明对象的格式
    +interface Member {
    +  id: number
    +  name: string
    +}
    +
    +// 在定义对象时指定该类型
    +const userInfo = ref<Member>({
    +  id: 1,
    +  name: 'Tom',
    +})

    定义一个普通数组:

    ts
    // 数值数组
    +const uids = ref<number[]>([1, 2, 3])
    +
    +// 字符串数组
    +const names = ref<string[]>(['Tom', 'Petter', 'Andy'])

    定义一个对象数组:

    ts
    // 声明对象的格式
    +interface Member {
    +  id: number
    +  name: string
    +}
    +
    +// 定义一个对象数组
    +const memberList = ref<Member[]>([
    +  {
    +    id: 1,
    +    name: 'Tom',
    +  },
    +  {
    +    id: 2,
    +    name: 'Petter',
    +  },
    +])

    DOM 元素与子组件

    除了可以定义数据,ref 也有熟悉的用途,就是用来挂载节点,也可以挂在子组件上,也就是对应在 Vue 2 时常用的 this.$refs.xxx 获取 DOM 元素信息的作用。

    模板部分依然是熟悉的用法,在要引用的 DOM 上添加一个 ref 属性:

    vue
    <template>
    +  <!-- 给 DOM 元素添加 `ref` 属性 -->
    +  <p ref="msg">请留意该节点,有一个 ref 属性</p>
    +
    +  <!-- 子组件也是同样的方式添加 -->
    +  <Child ref="child" />
    +</template>

    <script /> 部分有三个最基本的注意事项:

    1. <template /> 代码里添加的 ref 属性的值,是对应 <script /> 里使用 ref API 声明的变量的名称;

    2. 请保证视图渲染完毕后再执行 DOM 或组件的相关操作(需要放到生命周期的 onMounted 或者 nextTick 函数里,这一点在 Vue 2 也是一样);

    3. 该 Ref 变量必须 return 出去才可以给到 <template /> 使用,这一点是 Vue 3 生命周期的硬性要求,子组件的数据和方法如果要给父组件操作,也要 return 出来才可以。

    配合上面的 <template /> ,来看看 <script /> 部分的具体例子:

    ts
    import { defineComponent, onMounted, ref } from 'vue'
    +import Child from '@cp/Child.vue'
    +
    +export default defineComponent({
    +  components: {
    +    Child,
    +  },
    +  setup() {
    +    // 定义挂载节点,声明的类型详见下方附表
    +    const msg = ref<HTMLElement>()
    +    const child = ref<InstanceType<typeof Child>>()
    +
    +    // 请保证视图渲染完毕后再执行节点操作 e.g. `onMounted` / `nextTick`
    +    onMounted(() => {
    +      // 比如获取 DOM 的文本
    +      console.log(msg.value.innerText)
    +
    +      // 或者操作子组件里的数据
    +      child.value.isShowDialog = true
    +    })
    +
    +    // 必须 `return` 出去才可以给到 `<template />` 使用
    +    return {
    +      msg,
    +      child,
    +    }
    +  },
    +})

    关于 DOM 和子组件的 TS 类型声明,可参考以下规则:

    节点类型声明类型参考文档
    DOM 元素使用 HTML 元素接口HTML 元素接口
    子组件使用 InstanceType 配合 typeof 获取子组件的类型typeof 操作符

    TIP

    单纯使用 typeof Child 虽然可以获得 Child.vue 组件的 Props 和方法等提示,但在 VSCode 的类型推导还不够智能,缺乏更有效的代码补全支持。

    上文使用的 InstanceType<T> 是 TypeScript 提供的一个工具类型,可以获取构造函数类型的实例类型,因此将组件的类型声明为 InstanceType<typeof Child> ,不仅可以得到更完善的类型提示,在编程过程中还可以让编辑器提供更完善的代码补全功能。

    另外,关于这一小节,有一个可能会引起 TS 编译报错的情况是,一些脚手架创建出来的项目会默认启用 --strictNullChecks 选项,会导致案例中的代码无法正常编译,出现如下报错:

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +src/views/home.vue:27:7 - error TS2532: Object is possibly 'undefined'.
    +
    +27       child.value.isShowDialog = true
    +         ~~~~~~~~~~~
    +
    +
    +Found 1 error in src/views/home.vue:27

    这是因为在默认情况下 nullundefined 是所有类型的子类型,但开启了 strictNullChecks 选项之后,会使 nullundefined 只能赋值给 void 和它们各自,这是一个更为严谨的选项,可以保障程序代码的健壮性,但对于刚接触 TypeScript 不久的开发者可能不太友好。

    有以下几种解决方案可以参考:

    1. 在涉及到相关操作的时候,对节点变量增加一个判断:
    ts
    // 添加 `if` 分支,判断 `.value` 存在时才执行相关代码
    +if (child.value) {
    +  // 读取子组件的数据
    +  console.log(child.value.num)
    +
    +  // 执行子组件的方法
    +  child.value.sayHi('Use `if` in `onMounted` API.')
    +}
    1. 通过 TS 的可选符 ? 将目标设置为可选,避免出现错误(这个方式不能直接修改子组件数据的值):
    ts
    // 读取子组件的数据(留意 `.num` 前面有一个 `?` 问号)
    +console.log(child.value?.num)
    +
    +// 执行子组件的方法(留意 `.sayHi` 前面有一个 `?` 问号)
    +child.value?.sayHi('use ? in onMounted')
    1. 在项目根目录下的 tsconfig.json 文件里,显式的关闭 strictNullChecks 选项,关闭后,需要开发者在写代码的时候,自行把控好是否需要对 nullundefined 进行判断:
    json
    {
    +  "compilerOptions": {
    +    // ...
    +    "strictNullChecks": false
    +  }
    +  // ...
    +}
    1. 使用 any 类型代替,但是写 TypeScript 还是尽量不要使用 any ,满屏的 AnyScript 不如直接使用 JavaScript

    变量的读取与赋值

    前面在介绍 API 类型的时候已经了解,通过 ref 声明的变量会全部变成对象,不管定义的是什么类型的值,都会转化为一个 Ref 对象,其中 Ref 对象具有指向内部值的单个 Property .value

    也就是说,任何 Ref 对象的值都必须通过 xxx.value 才可以正确获取。

    请牢记上面这句话,初拥 Vue 3 的开发者很多 BUG 都是由于这个问题引起的(包括笔者刚开始使用 Vue 3 的那段时间,嘿嘿)。

    读取变量

    平时对于普通变量的值,读取的时候都是直接调用其变量名即可:

    ts
    // 读取一个字符串
    +const msg: string = 'Hello World!'
    +console.log(msg)
    +
    +// 读取一个数组
    +const uids: number[] = [1, 2, 3]
    +console.log(uids[1])

    而 Ref 对象的值的读取,切记!必须通过 .value

    ts
    // 读取一个字符串
    +const msg = ref<string>('Hello World!')
    +console.log(msg.value)
    +
    +// 读取一个数组
    +const uids = ref<number[]>([1, 2, 3])
    +console.log(uids.value[1])

    为变量赋值

    普通变量需要使用 let 声明才可以修改其值,由于 Ref 对象是个引用类型,所以可以使用 const 声明,直接通过 .value 修改。

    ts
    // 声明一个字符串变量
    +const msg = ref<string>('Hi!')
    +
    +// 等待 1s 后修改它的值
    +setTimeout(() => {
    +  msg.value = 'Hello!'
    +}, 1000)

    因此日常业务中,像在对接服务端 API 的接口数据时,可以自由的使用 forEachmapfilter 等方法操作 Ref 数组,或者直接重置它,而不必担心数据失去响应性。

    ts
    const data = ref<string[]>([])
    +
    +// 提取接口的数据
    +data.value = api.data.map((item: any) => item.text)
    +
    +// 重置数组
    +data.value = []

    为什么突然要说这个呢?因为涉及到下一部分的知识,关于 reactive API 在使用上的注意事项。

    响应式 API 之 reactive ~new

    reactive 是继 ref 之后最常用的一个响应式 API 了,相对于 ref ,它的局限性在于只适合对象、数组。

    TIP

    使用 reactive 的好处就是写法跟平时的对象、数组几乎一模一样,但它也带来了一些特殊注意点,请留意赋值部分的特殊说明。

    类型声明与定义

    reactive 变量的声明方式没有 ref 的变化那么大,基本上和普通变量一样,它的 TS 类型如下:

    ts
    function reactive<T extends object>(target: T): UnwrapNestedRefs<T>

    可以看到其用法还是比较简单的,下面是一个 Reactive 对象的声明方式:

    ts
    // 声明对象的类型
    +interface Member {
    +  id: number
    +  name: string
    +}
    +
    +// 定义一个对象
    +const userInfo: Member = reactive({
    +  id: 1,
    +  name: 'Tom',
    +})

    下面是 Reactive 数组的声明方式:

    ts
    const uids: number[] = reactive([1, 2, 3])

    还可以声明一个 Reactive 对象数组:

    ts
    // 对象数组也是先声明其中的对象类型
    +interface Member {
    +  id: number
    +  name: string
    +}
    +
    +// 再定义一个为对象数组
    +const userList: Member[] = reactive([
    +  {
    +    id: 1,
    +    name: 'Tom',
    +  },
    +  {
    +    id: 2,
    +    name: 'Petter',
    +  },
    +  {
    +    id: 3,
    +    name: 'Andy',
    +  },
    +])

    变量的读取与赋值

    虽然 reactive API 在使用上没有像 ref API 一样有 .value 的心智负担,但也有一些注意事项要留意。

    处理对象

    Reactive 对象在读取字段的值,或者修改值的时候,与普通对象是一样的,这部分没有太多问题。

    ts
    // 声明对象的类型
    +interface Member {
    +  id: number
    +  name: string
    +}
    +
    +// 定义一个对象
    +const userInfo: Member = reactive({
    +  id: 1,
    +  name: 'Tom',
    +})
    +
    +// 读取用户名
    +console.log(userInfo.name)
    +
    +// 修改用户名
    +userInfo.name = 'Petter'

    处理数组

    但是对于 Reactive 数组,和普通数组会有一些区别。

    普通数组在 “重置” 或者 “修改值” 时都是可以直接操作:

    ts
    // 定义一个普通数组
    +let uids: number[] = [1, 2, 3]
    +
    +// 从另外一个对象数组里提取数据过来
    +uids = api.data.map((item: any) => item.id)
    +
    +// 合并另外一个数组
    +let newUids: number[] = [4, 5, 6]
    +uids = [...uids, ...newUids]
    +
    +// 重置数组
    +uids = []

    Vue 2 在操作数组的时候,也可以和普通数组这样处理数据的变化,依然能够保持响应性,但在 Vue 3 ,如果使用 reactive 定义数组,则不能这么处理,必须只使用那些不会改变引用地址的操作。

    笔者刚开始接触时,按照原来的思维去处理 reactive 数组,于是遇到了 “数据变了,但模板不会更新的问题” ,如果开发者在学习的过程中也遇到了类似的情况,可以从这里去入手排查问题所在。

    举个例子,比如要从服务端 API 接口获取翻页数据时,通常要先重置数组,再异步添加数据,如果使用常规的重置,会导致这个变量失去响应性:

    ts
    let uids: number[] = reactive([1, 2, 3])
    +
    +/**
    + * 不推荐使用这种方式,会丢失响应性
    + * 异步添加数据后,模板不会响应更新
    + */
    +uids = []
    +
    +// 异步获取数据后,模板依然是空数组
    +setTimeout(() => {
    +  uids.push(1)
    +}, 1000)

    要让数据依然保持响应性,则必须在关键操作时,不破坏响应性 API ,以下是推荐的操作方式,通过重置数组的 length 长度来实现数据的重置:

    ts
    const uids: number[] = reactive([1, 2, 3])
    +
    +/**
    + * 推荐使用这种方式,不会破坏响应性
    + */
    +uids.length = 0
    +
    +// 异步获取数据后,模板可以正确的展示
    +setTimeout(() => {
    +  uids.push(1)
    +}, 1000)

    特别注意

    不要对 Reactive 数据进行 ES6 的解构 操作,因为解构后得到的变量会失去响应性。

    比如这些情况,在 2s 后都得不到新的 name 信息:

    ts
    import { defineComponent, reactive } from 'vue'
    +
    +interface Member {
    +  id: number
    +  name: string
    +}
    +
    +export default defineComponent({
    +  setup() {
    +    // 定义一个带有响应性的对象
    +    const userInfo: Member = reactive({
    +      id: 1,
    +      name: 'Petter',
    +    })
    +
    +    // 在 2s 后更新 `userInfo`
    +    setTimeout(() => {
    +      userInfo.name = 'Tom'
    +    }, 2000)
    +
    +    // 这个变量在 2s 后不会同步更新
    +    const newUserInfo: Member = { ...userInfo }
    +
    +    // 这个变量在 2s 后不会再同步更新
    +    const { name } = userInfo
    +
    +    // 这样 `return` 出去给模板用,在 2s 后也不会同步更新
    +    return {
    +      ...userInfo,
    +    }
    +  },
    +})

    响应式 API 之 toRef 与 toRefs ~new

    相信各位开发者看到这里时,应该已经对 refreactive API 都有所了解了,为了方便开发者使用, Vue 3 还推出了两个与之相关的 API : toReftoRefs ,都是用于 reactiveref 转换。

    各自的作用

    这两个 API 在拼写上非常接近,顾名思义,一个是只转换一个字段,一个是转换所有字段,转换后将得到新的变量,并且新变量和原来的变量可以保持同步更新。

    API作用
    toRef创建一个新的 Ref 变量,转换 Reactive 对象的某个字段为 Ref 变量
    toRefs创建一个新的对象,它的每个字段都是 Reactive 对象各个字段的 Ref 变量

    光看概念可能不容易理解,来看下面的例子,先声明一个 reactive 变量:

    ts
    interface Member {
    +  id: number
    +  name: string
    +}
    +
    +const userInfo: Member = reactive({
    +  id: 1,
    +  name: 'Petter',
    +})

    然后分别看看这两个 API 应该怎么使用。

    使用 toRef

    先看这个转换单个字段的 toRef API ,了解了它的用法之后,再去看 toRefs 就很容易理解了。

    API 类型和基本用法

    toRef API 的 TS 类型如下:

    ts
    // `toRef` API 的 TS 类型
    +function toRef<T extends object, K extends keyof T>(
    +  object: T,
    +  key: K,
    +  defaultValue?: T[K]
    +): ToRef<T[K]>
    +
    +// `toRef` API 的返回值的 TS 类型
    +type ToRef<T> = T extends Ref ? T : Ref<T>

    通过接收两个必传的参数(第一个是 reactive 对象, 第二个是要转换的 key ),返回一个 Ref 变量,在适当的时候也可以传递第三个参数,为该变量设置默认值。

    以上文声明好的 userInfo 为例,如果想转换 name 这个字段为 Ref 变量,只需要这样操作:

    ts
    const name = toRef(userInfo, 'name')
    +console.log(name.value) // Petter

    等号左侧的 name 变量此时是一个 Ref 变量,这里因为 TypeScript 可以对其自动推导,因此声明时可以省略 TS 类型的显式指定,实际上该变量的类型是 Ref<string>

    所以之后在读取和赋值时,就需要使用 name.value 来操作,在重新赋值时会同时更新 nameuserInfo.name 的值:

    ts
    // 修改前先查看初始值
    +const name = toRef(userInfo, 'name')
    +console.log(name.value) // Petter
    +console.log(userInfo.name) // Petter
    +
    +// 修改 Ref 变量的值,两者同步更新
    +name.value = 'Tom'
    +console.log(name.value) // Tom
    +console.log(userInfo.name) // Tom
    +
    +// 修改 Reactive 对象上该属性的值,两者也是同步更新
    +userInfo.name = 'Jerry'
    +console.log(name.value) // Jerry
    +console.log(userInfo.name) // Jerry

    这个 API 也可以接收一个 Reactive 数组,此时第二个参数应该传入数组的下标:

    ts
    // 这一次声明的是数组
    +const words = reactive(['a', 'b', 'c'])
    +
    +// 通过下标 `0` 转换第一个 item
    +const a = toRef(words, 0)
    +console.log(a.value) // a
    +console.log(words[0]) // a
    +
    +// 通过下标 `2` 转换第三个 item
    +const c = toRef(words, 2)
    +console.log(c.value) // c
    +console.log(words[2]) // c

    设置默认值

    如果 Reactive 对象上有一个属性本身没有初始值,也可以传递第三个参数进行设置(默认值仅对 Ref 变量有效):

    ts
    interface Member {
    +  id: number
    +  name: string
    +  // 类型上新增一个属性,因为是可选的,因此默认值会是 `undefined`
    +  age?: number
    +}
    +
    +// 声明变量时省略 `age` 属性
    +const userInfo: Member = reactive({
    +  id: 1,
    +  name: 'Petter',
    +})
    +
    +// 此时为了避免程序运行错误,可以指定一个初始值
    +// 但初始值仅对 Ref 变量有效,不会影响 Reactive 字段的值
    +const age = toRef(userInfo, 'age', 18)
    +console.log(age.value)  // 18
    +console.log(userInfo.age) // undefined
    +
    +// 除非重新赋值,才会使两者同时更新
    +age.value = 25
    +console.log(age.value)  // 25
    +console.log(userInfo.age) // 25

    数组也是同理,对于可能不存在的下标,可以传入默认值避免项目的逻辑代码出现问题:

    ts
    const words = reactive(['a', 'b', 'c'])
    +
    +// 当下标对应的值不存在时,也是返回 `undefined`
    +const d = toRef(words, 3)
    +console.log(d.value) // undefined
    +console.log(words[3]) // undefined
    +
    +// 设置了默认值之后,就会对 Ref 变量使用默认值, Reactive 数组此时不影响
    +const e = toRef(words, 4, 'e')
    +console.log(e.value) // e
    +console.log(words[4]) // undefined

    其他用法

    这个 API 还有一个特殊用法,但不建议在 TypeScript 里使用。

    toRef 的过程中,如果使用了原对象上面不存在的 key ,那么定义出来的 Ref 变量的 .value 值将会是 undefined

    ts
    // 众所周知, Petter 是没有女朋友的
    +const girlfriend = toRef(userInfo, 'girlfriend')
    +console.log(girlfriend.value) // undefined
    +console.log(userInfo.girlfriend) // undefined
    +
    +// 此时 Reactive 对象上只有两个 Key
    +console.log(Object.keys(userInfo)) // ['id', 'name']

    如果对这个不存在的 key 的 Ref 变量进行赋值,那么原来的 Reactive 对象也会同步增加这个 key,其值也会同步更新。

    ts
    // 赋值后,不仅 Ref 变量得到了 `Marry` , Reactive 对象也得到了 `Marry`
    +girlfriend.value = 'Marry'
    +console.log(girlfriend.value) // 'Marry'
    +console.log(userInfo.girlfriend) // 'Marry'
    +
    +// 此时 Reactive 对象上有了三个 Key
    +console.log(Object.keys(userInfo)) // ['id', 'name', 'girlfriend']

    为什么强调不要在 TypeScript 里使用呢?因为在编译时,无法通过 TypeScript 的类型检查:

    bash
     npm run build
    +
    +> hello-vue3@0.0.0 build
    +> vue-tsc --noEmit && vite build
    +
    +src/views/home.vue:37:40 - error TS2345: Argument of type '"girlfriend"'
    +is not assignable to parameter of type 'keyof Member'.
    +
    +37     const girlfriend = toRef(userInfo, 'girlfriend')
    +                                          ~~~~~~~~~~~~
    +
    +src/views/home.vue:39:26 - error TS2339: Property 'girlfriend' does not exist
    +on type 'Member'.
    +
    +39     console.log(userInfo.girlfriend) // undefined
    +                            ~~~~~~~~~~
    +
    +src/views/home.vue:45:26 - error TS2339: Property 'girlfriend' does not exist
    +on type 'Member'.
    +
    +45     console.log(userInfo.girlfriend) // 'Marry'
    +                            ~~~~~~~~~~
    +
    +
    +Found 3 errors in the same file, starting at: src/views/home.vue:37

    如果不得不使用这种情况,可以考虑使用 any 类型:

    ts
    // 将该类型直接指定为 `any`
    +type Member = any
    +// 当然一般都是 `const userInfo: any`
    +
    +// 或者保持接口类型的情况下,允许任意键值
    +interface Member {
    +  [key: string]: any
    +}
    +
    +// 使用 `Record` 也是同理
    +type Member = Record<string, any>

    但笔者还是更推荐保持良好的类型声明习惯,尽量避免这种用法。

    使用 toRefs

    在了解了 toRef API 之后,来看看 toRefs 的用法。

    API 类型和基本用法

    先看看它的 TS 类型:

    ts
    function toRefs<T extends object>(
    +  object: T
    +): {
    +  [K in keyof T]: ToRef<T[K]>
    +}
    +
    +type ToRef = T extends Ref ? T : Ref<T>

    toRef 不同, toRefs 只接收了一个参数,是一个 reactive 变量。

    ts
    interface Member {
    +  id: number
    +  name: string
    +}
    +
    +// 声明一个 Reactive 变量
    +const userInfo: Member = reactive({
    +  id: 1,
    +  name: 'Petter',
    +})
    +
    +// 传给 `toRefs` 作为入参
    +const userInfoRefs = toRefs(userInfo)

    此时这个新的 userInfoRefs 变量,它的 TS 类型就不再是 Member 了,而应该是:

    ts
    // 导入 `toRefs` API 的类型
    +import type { ToRefs } from 'vue'
    +
    +// 上下文代码省略...
    +
    +// 将原来的类型传给 API 的类型
    +const userInfoRefs: ToRefs<Member> = toRefs(userInfo)

    也可以重新编写一个新的类型来指定它,因为每个字段都是与原来关联的 Ref 变量,所以也可以这样声明:

    ts
    // 导入 `ref` API 的类型
    +import type { Ref } from 'vue'
    +
    +// 上下文代码省略...
    +
    +// 新声明的类型每个字段都是一个 Ref 变量的类型
    +interface MemberRefs {
    +  id: Ref<number>
    +  name: Ref<string>
    +}
    +
    +// 使用新的类型进行声明
    +const userInfoRefs: MemberRefs = toRefs(userInfo)

    当然实际上日常使用时并不需要手动指定其类型, TypeScript 会自动推导,可以节约非常多的开发工作量。

    toRef API 一样,这个 API 也是可以对数组进行转换:

    ts
    const words = reactive(['a', 'b', 'c'])
    +const wordsRefs = toRefs(words)

    此时新数组的类型是 Ref<string>[] ,不再是原来的 string[] 类型。

    解构与赋值

    转换后的 Reactive 对象或数组支持 ES6 的解构,并且不会失去响应性,因为解构后的每一个变量都具备响应性。

    ts
    // 为了提高开发效率,可以直接将 Ref 变量直接解构出来使用
    +const { name } = toRefs(userInfo)
    +console.log(name.value) // Petter
    +
    +// 此时对解构出来的变量重新赋值,原来的变量也可以同步更新
    +name.value = 'Tom'
    +console.log(name.value) // Tom
    +console.log(userInfo.name) // Tom

    这一点和直接解构 Reactive 变量有非常大的不同,直接解构 Reactive 变量,得到的是一个普通的变量,不再具备响应性。

    这个功能在使用 Hooks 函数非常好用(在 Vue 3 里也叫可组合函数, Composable Functions ),还是以一个计算器函数为例,这一次将其修改为内部有一个 Reactive 的数据状态中心,在函数返回时解构为多个 Ref 变量:

    ts
    import { reactive, toRefs } from 'vue'
    +
    +// 声明 `useCalculator` 数据状态类型
    +interface CalculatorState {
    +  // 这是要用来计算操作的数据
    +  num: number
    +  // 这是每次计算时要增加的幅度
    +  step: number
    +}
    +
    +// 声明一个 “使用计算器” 的函数
    +function useCalculator() {
    +  // 通过数据状态中心的形式,集中管理内部变量
    +  const state: CalculatorState = reactive({
    +    num: 0,
    +    step: 10,
    +  })
    +
    +  // 功能函数也是通过数据中心变量去调用
    +  function add() {
    +    state.num += state.step
    +  }
    +
    +  return {
    +    ...toRefs(state),
    +    add,
    +  }
    +}

    这样在调用 useCalculator 函数时,可以通过解构直接获取到 Ref 变量,不需要再进行额外的转换工作。

    ts
    // 解构出来的 `num` 和 `step` 都是 Ref 变量
    +const { num, step, add } = useCalculator()
    +console.log(num.value) // 0
    +console.log(step.value) // 10
    +
    +// 调用计算器的方法,数据也是会得到响应式更新
    +add()
    +console.log(num.value) // 10

    为什么要进行转换

    关于为什么要出这么两个 API ,官方文档没有特别说明,不过经过笔者在业务中的一些实际使用感受,以及在写上一节 reactive特别注意,可能知道一些使用理由。

    关于 refreactive 这两个 API 的好处就不重复了,但是在使用的过程中,各自都有不方便的地方:

    ref API 虽然在 <template /> 里使用起来方便,但是在 <script /> 里进行读取 / 赋值的时候,要一直记得加上 .value ,否则 BUG 就来了。

    reactive API 虽然在使用的时候,因为知道它本身是一个对象,所以不会忘记通过 foo.bar 这样的格式去操作,但是在 <template /> 渲染的时候,又因此不得不每次都使用 foo.bar 的格式去渲染。

    那么有没有办法,既可以在编写 <script /> 的时候不容易出错,在写 <template /> 的时候又比较简单呢?

    于是, toReftoRefs 因此诞生。

    什么场景下比较适合使用它们

    从便利性和可维护性来说,最好只在功能单一、代码量少的组件里使用,比如一个表单组件,通常表单的数据都放在一个对象里。

    当然也可以把所有的数据都定义到一个 data 里,再去 data 里面取值,但是没有必要为了转换而转换,否则不如使用 Options API 风格。

    在业务中的具体运用

    继续使用上文一直在使用的 userInfo 来当案例,以一个用户信息表的小 demo 做个演示。

    <script /> 部分:

    1. 先用 reactive 定义一个源数据,所有的数据更新,都是修改这个对象对应的值,按照对象的写法维护数据

    2. 再通过 toRefs 定义一个给 <template /> 使用的对象,这样可以得到一个每个字段都是 Ref 变量的新对象

    3. return 的时候,对步骤 2 里的 toRefs 对象进行解构,这样导出去就是各个字段对应的 Ref 变量,而不是一整个对象

    ts
    import { defineComponent, reactive, toRefs } from 'vue'
    +
    +interface Member {
    +  id: number
    +  name: string
    +  age: number
    +  gender: string
    +}
    +
    +export default defineComponent({
    +  setup() {
    +    // 定义一个 reactive 对象
    +    const userInfo = reactive({
    +      id: 1,
    +      name: 'Petter',
    +      age: 18,
    +      gender: 'male',
    +    })
    +
    +    // 定义一个新的对象,它本身不具备响应性,但是它的字段全部是 Ref 变量
    +    const userInfoRefs = toRefs(userInfo)
    +
    +    // 在 2s 后更新 `userInfo`
    +    setTimeout(() => {
    +      userInfo.id = 2
    +      userInfo.name = 'Tom'
    +      userInfo.age = 20
    +    }, 2000)
    +
    +    // 在这里解构 `toRefs` 对象才能继续保持响应性
    +    return {
    +      ...userInfoRefs,
    +    }
    +  },
    +})

    <template /> 部分:

    由于 return 出来的都是 Ref 变量,所以在模板里可以直接使用 userInfo 各个字段的 key ,不再需要写很长的 userInfo.name 了。

    vue
    <template>
    +  <ul class="user-info">
    +    <li class="item">
    +      <span class="key">ID:</span>
    +      <span class="value">{{ id }}</span>
    +    </li>
    +
    +    <li class="item">
    +      <span class="key">name:</span>
    +      <span class="value">{{ name }}</span>
    +    </li>
    +
    +    <li class="item">
    +      <span class="key">age:</span>
    +      <span class="value">{{ age }}</span>
    +    </li>
    +
    +    <li class="item">
    +      <span class="key">gender:</span>
    +      <span class="value">{{ gender }}</span>
    +    </li>
    +  </ul>
    +</template>

    需要注意的问题

    请注意是否有相同命名的变量存在,比如上面在 return<template /> 使用时,在解构 userInfoRefs 的时候已经包含了一个 name 字段,此时如果还有一个单独的变量也叫 name ,就会出现渲染上的数据显示问题。

    此时它们在 <template /> 里哪个会生效,取决于谁排在后面,因为 return 出去的其实是一个对象,在对象里,如果存在相同的 key ,则后面的会覆盖前面的。

    下面这种情况,会以单独的 name 为渲染数据:

    ts
    return {
    +  ...userInfoRefs,
    +  name,
    +}

    而下面这种情况,则是以 userInfoRefs 里的 name 为渲染数据:

    ts
    return {
    +  name,
    +  ...userInfoRefs,
    +}

    所以当决定使用 toReftoRefs API 的时候,请注意这个特殊情况!

    函数的声明和使用 ~new

    在了解了响应式数据如何使用之后,接下来就要开始了解函数了。

    在 Vue 2 ,函数通常是作为当前组件实例上的方法在 methods 里声明,然后再在 mounted 等生命周期里调用,或者是在模板里通过 Click 等行为触发,由于组件内部经常需要使用 this 获取组件实例,因此不能使用箭头函数。

    js
    export default {
    +  data: () => {
    +    return {
    +      num: 0,
    +    }
    +  },
    +  mounted: function () {
    +    this.add()
    +  },
    +  methods: {
    +    // 不可以使用 `add: () => this.num++`
    +    add: function () {
    +      this.num++
    +    },
    +  },
    +}

    在 Vue 3 则灵活了很多,可以使用普通函数、 Class 类、箭头函数、匿名函数等等进行声明,可以将其写在 setup 里直接使用,也可以抽离在独立的 .js / .ts 文件里再导入使用。

    需要在组件创建时自动执行的函数,其执行时机需要遵循 Vue 3 的生命周期,需要在模板里通过 @click@change 等行为触发,和变量一样,需要把函数名在 setup 里进行 return 出去。

    下面是一个简单的例子,方便开发者更直观地了解:

    vue
    <template>
    +  <p>{{ msg }}</p>
    +
    +  <!-- 在这里点击执行 `return` 出来的方法 -->
    +  <button @click="updateMsg">修改MSG</button>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, onMounted, ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const msg = ref<string>('Hello World!')
    +
    +    // 这个要暴露给模板使用,必须 `return` 才可以使用
    +    function updateMsg() {
    +      msg.value = 'Hi World!'
    +    }
    +
    +    // 这个要在页面载入时执行,无需 `return` 出去
    +    const init = () => {
    +      console.log('init')
    +    }
    +
    +    onMounted(() => {
    +      init()
    +    })
    +
    +    return {
    +      msg,
    +      updateMsg,
    +    }
    +  },
    +})
    +</script>

    数据的侦听 ~new

    侦听数据变化也是组件里的一项重要工作,比如侦听路由变化、侦听参数变化等等。

    Vue 3 在保留原来的 watch 功能之外,还新增了一个 watchEffect 帮助更简单的进行侦听。

    watch

    在 Vue 3 ,新版的 watch 和 Vue 2 的旧版写法对比,在使用方式上变化非常大!

    回顾 Vue 2

    在 Vue 2 是这样用的,和 datamethods 都在同级配置:

    ts
    export default {
    +  data() {
    +    return {
    +      // ...
    +    }
    +  },
    +  // 注意这里,放在 `data` 、 `methods` 同个级别
    +  watch: {
    +    // ...
    +  },
    +  methods: {
    +    // ...
    +  },
    +}

    并且类型繁多,选项式 API 的类型如下:

    ts
    watch: { [key: string]: string | Function | Object | Array}

    联合类型过多,意味着用法复杂,下面是个很好的例子,虽然出自 官网 的用法介绍,但过于繁多的用法也反映出来对初学者不太友好,初次接触可能会觉得一头雾水:

    ts
    export default {
    +  data() {
    +    return {
    +      a: 1,
    +      b: 2,
    +      c: {
    +        d: 4,
    +      },
    +      e: 5,
    +      f: 6,
    +    }
    +  },
    +  watch: {
    +    // 侦听顶级 Property
    +    a(val, oldVal) {
    +      console.log(`new: ${val}, old: ${oldVal}`)
    +    },
    +    // 字符串方法名
    +    b: 'someMethod',
    +    // 该回调会在任何被侦听的对象的 Property 改变时被调用,不论其被嵌套多深
    +    c: {
    +      handler(val, oldVal) {
    +        console.log('c changed')
    +      },
    +      deep: true,
    +    },
    +    // 侦听单个嵌套 Property
    +    'c.d': function (val, oldVal) {
    +      // do something
    +    },
    +    // 该回调将会在侦听开始之后被立即调用
    +    e: {
    +      handler(val, oldVal) {
    +        console.log('e changed')
    +      },
    +      immediate: true,
    +    },
    +    // 可以传入回调数组,它们会被逐一调用
    +    f: [
    +      'handle1',
    +      function handle2(val, oldVal) {
    +        console.log('handle2 triggered')
    +      },
    +      {
    +        handler: function handle3(val, oldVal) {
    +          console.log('handle3 triggered')
    +        },
    +        /* ... */
    +      },
    +    ],
    +  },
    +  methods: {
    +    someMethod() {
    +      console.log('b changed')
    +    },
    +    handle1() {
    +      console.log('handle 1 triggered')
    +    },
    +  },
    +}

    当然肯定也会有开发者会觉得这样选择多是个好事,选择适合自己的就好,但笔者还是认为这种写法对于初学者来说不是那么友好,有些过于复杂化,如果一个用法可以适应各种各样的场景,岂不是更妙?

    TIP

    另外需要注意的是,不能使用箭头函数来定义 Watcher 函数 (例如 searchQuery: newValue => this.updateAutocomplete(newValue) )。

    因为箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向组件实例, this.updateAutocomplete 将是 undefined

    Vue 2 也可以通过 this.$watch() 这个 API 的用法来实现对某个数据的侦听,它接受三个参数: sourcecallbackoptions

    ts
    export default {
    +  data() {
    +    return {
    +      a: 1,
    +    }
    +  },
    +  // 生命周期钩子
    +  mounted() {
    +    this.$watch('a', (newVal, oldVal) => {
    +      // ...
    +    })
    +  },
    +}

    由于 this.$watch 的用法和 Vue 3 比较接近,所以这里不做过多的回顾,请直接看 了解 Vue 3 部分。

    了解 Vue 3

    在 Vue 3 的组合式 API 写法, watch 是一个可以接受 3 个参数的函数(保留了 Vue 2 的 this.$watch 这种用法),在使用层面上简单了很多。

    ts
    import { watch } from 'vue'
    +
    +// 一个用法走天下
    +watch(
    +  source, // 必传,要侦听的数据源
    +  callback // 必传,侦听到变化后要执行的回调函数
    +  // options // 可选,一些侦听选项
    +)

    下面的内容都基于 Vue 3 的组合式 API 用法展开讲解。

    API 的 TS 类型

    在了解用法之前,先对它的 TS 类型声明做一个简单的了解, watch 作为组合式 API ,根据使用方式有两种类型声明:

    1. 基础用法的 TS 类型,详见 基础用法 部分
    ts
    // watch 部分的 TS 类型
    +// ...
    +export declare function watch<T, Immediate extends Readonly<boolean> = false>(
    +  source: WatchSource<T>,
    +  cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
    +  options?: WatchOptions<Immediate>
    +): WatchStopHandle
    +// ...
    1. 批量侦听的 TS 类型,详见 批量侦听 部分
    ts
    // watch 部分的 TS 类型
    +// ...
    +export declare function watch<
    +  T extends MultiWatchSources,
    +  Immediate extends Readonly<boolean> = false
    +>(
    +  sources: [...T],
    +  cb: WatchCallback<MapSources<T, false>, MapSources<T, Immediate>>,
    +  options?: WatchOptions<Immediate>
    +): WatchStopHandle
    +
    +// MultiWatchSources 是一个数组
    +declare type MultiWatchSources = (WatchSource<unknown> | object)[]
    +// ...

    但是不管是基础用法还是批量侦听,可以看到这个 API 都是接受三个入参:

    参数是否可选含义
    source必传数据源(详见:要侦听的数据源
    callback必传侦听到变化后要执行的回调函数(详见:侦听后的回调函数
    options可选一些侦听选项(详见:侦听的选项

    并返回一个可以用来停止侦听的函数(详见:停止侦听)。

    要侦听的数据源

    在上面 API 的 TS 类型 已经对 watch API 的组成有一定的了解了,这里先对数据源的类型和使用限制做下说明。

    TIP

    如果不提前了解,在使用的过程中可能会遇到 “侦听了但没有反应” 的情况出现。

    另外,这部分内容会先围绕基础用法展开说明,批量侦听会在 批量侦听 部分单独说明。

    watch API 的第 1 个参数 source 是要侦听的数据源,它的 TS 类型如下:

    ts
    // watch 第 1 个入参的 TS 类型
    +// ...
    +export declare type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T)
    +// ...

    可以看到能够用于侦听的数据,是通过 响应式 API 定义的变量( Ref<T> ),或者是一个 计算数据ComputedRef<T> ),或者是一个 getter 函数() => T )。

    所以要想定义的 watch 能够做出预期的行为,数据源必须具备响应性或者是一个 getter ,如果只是通过 let 定义一个普通变量,然后去改变这个变量的值,这样是无法侦听的。

    TIP

    如果要侦听响应式对象里面的某个值(这种情况下对象本身是响应式,但它的 property 不是),需要写成 getter 函数,简单的说就是需要写成有返回值的函数,这个函数 return 要侦听的数据, e.g. () => foo.bar ,可以结合下方 基础用法 的例子一起理解。

    侦听后的回调函数

    在上面 API 的 TS 类型 介绍了 watch API 的组成,和数据源一样,先了解一下回调函数的定义。

    TIP

    和数据源部分一样,回调函数的内容也是会先围绕基础用法展开说明,批量侦听会在 批量侦听 部分单独说明。

    watch API 的第 2 个参数 callback 是侦听到数据变化时要做出的行为,它的 TS 类型如下:

    ts
    // watch 第 2 个入参的 TS 类型
    +// ...
    +export declare type WatchCallback<V = any, OV = any> = (
    +  value: V,
    +  oldValue: OV,
    +  onCleanup: OnCleanup
    +) => any
    +// ...

    乍一看它有三个参数,但实际上这些参数不是自己定义的,而是 watch API 传给的,所以不管用或者不用,它们都在那里:

    参数作用
    value变化后的新值,类型和数据源保持一致
    oldValue变化前的旧值,类型和数据源保持一致
    onCleanup注册一个清理函数,详见 侦听效果清理 部分

    注意:第一个参数是新值,第二个才是原来的旧值!

    如同其他 JS 函数,在使用 watch 的回调函数时,可以对这三个参数任意命名,比如把 value 命名为觉得更容易理解的 newValue

    TIP

    如果侦听的数据源是一个 引用类型 时( e.g. ObjectArrayDate … ), valueoldValue 是完全相同的,因为指向同一个对象。

    另外,默认情况下,watch 是惰性的,也就是只有当被侦听的数据源发生变化时才执行回调。

    基础用法

    来到这里,对 2 个必传的参数都有一定的了解了,先看看基础的用法,也就是日常最常编写的方案,只需要先关注前 2 个必传的参数。

    ts
    // 不要忘了导入要用的 API
    +import { defineComponent, reactive, watch } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 定义一个响应式数据
    +    const userInfo = reactive({
    +      name: 'Petter',
    +      age: 18,
    +    })
    +
    +    // 2s后改变数据
    +    setTimeout(() => {
    +      userInfo.name = 'Tom'
    +    }, 2000)
    +
    +    /**
    +     * 可以直接侦听这个响应式对象
    +     * callback 的参数如果不用可以不写
    +     */
    +    watch(userInfo, () => {
    +      console.log('侦听整个 userInfo ', userInfo.name)
    +    })
    +
    +    /**
    +     * 也可以侦听对象里面的某个值
    +     * 此时数据源需要写成 getter 函数
    +     */
    +    watch(
    +      // 数据源,getter 形式
    +      () => userInfo.name,
    +      // 回调函数 callback
    +      (newValue, oldValue) => {
    +        console.log('只侦听 name 的变化 ', userInfo.name)
    +        console.log('打印变化前后的值', { oldValue, newValue })
    +      }
    +    )
    +  },
    +})

    一般的业务场景,基础用法足以面对。

    如果有多个数据源要侦听,并且侦听到变化后要执行的行为一样,那么可以使用 批量侦听

    特殊的情况下,可以搭配 侦听的选项 做一些特殊的用法,详见下面部分的内容。

    批量侦听

    如果有多个数据源要侦听,并且侦听到变化后要执行的行为一样,第一反应可能是这样来写:

    1. 抽离相同的处理行为为公共函数
    2. 然后定义多个侦听操作,传入这个公共函数
    ts
    import { defineComponent, ref, watch } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const message = ref<string>('')
    +    const index = ref<number>(0)
    +
    +    // 2s后改变数据
    +    setTimeout(() => {
    +      // 来到这里才会触发 watch 的回调
    +      message.value = 'Hello World!'
    +      index.value++
    +    }, 2000)
    +
    +    // 抽离相同的处理行为为公共函数
    +    const handleWatch = (
    +      newValue: string | number,
    +      oldValue: string | number
    +    ): void => {
    +      console.log({ newValue, oldValue })
    +    }
    +
    +    // 然后定义多个侦听操作,传入这个公共函数
    +    watch(message, handleWatch)
    +    watch(index, handleWatch)
    +  },
    +})

    这样写其实没什么问题,不过除了抽离公共代码的写法之外, watch API 还提供了一个批量侦听的用法,和 基础用法 的区别在于,数据源和回调参数都变成了数组的形式。

    数据源:以数组的形式传入,里面每一项都是一个响应式数据。

    回调参数:原来的 valuenewValue 也都变成了数组,每个数组里面的顺序和数据源数组排序一致。

    可以看下面的这个例子更为直观:

    ts
    import { defineComponent, ref, watch } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 定义多个数据源
    +    const message = ref<string>('')
    +    const index = ref<number>(0)
    +
    +    // 2s后改变数据
    +    setTimeout(() => {
    +      message.value = 'Hello World!'
    +      index.value++
    +    }, 2000)
    +
    +    watch(
    +      // 数据源改成了数组
    +      [message, index],
    +      // 回调的入参也变成了数组,每个数组里面的顺序和数据源数组排序一致
    +      ([newMessage, newIndex], [oldMessage, oldIndex]) => {
    +        console.log('message 的变化', { newMessage, oldMessage })
    +        console.log('index 的变化', { newIndex, oldIndex })
    +      }
    +    )
    +  },
    +})

    什么情况下可能会用到批量侦听呢?比如一个子组件有多个 props ,当有任意一个 prop 发生变化时,都需要执行初始化函数重置组件的状态,那么这个时候就可以用上这个功能啦!

    TIP

    在适当的业务场景,也可以使用 watchEffect 来完成批量侦听,但请留意 功能区别 部分的说明。

    侦听的选项

    API 的 TS 类型 里提到, watch API 还接受第 3 个参数 options ,可选的一些侦听选项。

    它的 TS 类型如下:

    ts
    // watch 第 3 个入参的 TS 类型
    +// ...
    +export declare interface WatchOptions<Immediate = boolean>
    +  extends WatchOptionsBase {
    +  immediate?: Immediate
    +  deep?: boolean
    +}
    +// ...
    +
    +// 继承的 base 类型
    +export declare interface WatchOptionsBase extends DebuggerOptions {
    +  flush?: 'pre' | 'post' | 'sync'
    +}
    +// ...
    +
    +// 继承的 debugger 选项类型
    +export declare interface DebuggerOptions {
    +  onTrack?: (event: DebuggerEvent) => void
    +  onTrigger?: (event: DebuggerEvent) => void
    +}
    +// ...

    options 是一个对象的形式传入,有以下几个选项:

    选项类型默认值可选值作用
    deepbooleanfalsetrue | false是否进行深度侦听
    immediatebooleanfalsetrue | false是否立即执行侦听回调
    flushstring'pre''pre' | 'post' | 'sync'控制侦听回调的调用时机
    onTrack(e) => void在数据源被追踪时调用
    onTrigger(e) => void在侦听回调被触发时调用

    其中 onTrackonTriggere 是 debugger 事件,建议在回调内放置一个 debugger 语句 以调试依赖,这两个选项仅在开发模式下生效。

    TIP

    deep 默认是 false ,但是在侦听 reactive 对象或数组时,会默认为 true ,详见 侦听选项之 deep

    侦听选项之 deep

    deep 选项接受一个布尔值,可以设置为 true 开启深度侦听,或者是 false 关闭深度侦听,默认情况下这个选项是 false 关闭深度侦听的,但也存在特例。

    设置为 false 的情况下,如果直接侦听一个响应式的 引用类型 数据(e.g. ObjectArray … ),虽然它的属性的值有变化,但对其本身来说是不变的,所以不会触发 watch 的 callback 。

    下面是一个关闭了深度侦听的例子:

    ts
    import { defineComponent, ref, watch } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 定义一个响应式数据,注意用的是 ref 来定义
    +    const nums = ref<number[]>([])
    +
    +    // 2s后给这个数组添加项目
    +    setTimeout(() => {
    +      nums.value.push(1)
    +
    +      // 可以打印一下,确保数据确实变化了
    +      console.log('修改后', nums.value)
    +    }, 2000)
    +
    +    // 但是这个 watch 不会按预期执行
    +    watch(
    +      nums,
    +      // 这里的 callback 不会被触发
    +      () => {
    +        console.log('触发侦听', nums.value)
    +      },
    +      // 因为关闭了 deep
    +      {
    +        deep: false,
    +      }
    +    )
    +  },
    +})

    类似这种情况,需要把 deep 设置为 true 才可以触发侦听。

    可以看到上面的例子特地用了 ref API ,这是因为通过 reactive API 定义的对象无法将 deep 成功设置为 false (这一点在目前的官网文档未找到说明,最终是在 watch API 的源码 上找到了答案)。

    ts
    // ...
    +if (isReactive(source)) {
    +  getter = () => source
    +  deep = true // 被强制开启了
    +}
    +// ...

    这个情况就是上面所说的 “特例” ,可以通过 isReactive API 来判断是否需要手动开启深度侦听。

    ts
    // 导入 isReactive API
    +import { defineComponent, isReactive, reactive, ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 侦听这个数据时,会默认开启深度侦听
    +    const foo = reactive({
    +      name: 'Petter',
    +      age: 18,
    +    })
    +    console.log(isReactive(foo)) // true
    +
    +    // 侦听这个数据时,不会默认开启深度侦听
    +    const bar = ref({
    +      name: 'Petter',
    +      age: 18,
    +    })
    +    console.log(isReactive(bar)) // false
    +  },
    +})

    侦听选项之 immediate

    侦听后的回调函数 部分有了解过, watch 默认是惰性的,也就是只有当被侦听的数据源发生变化时才执行回调。

    这句话是什么意思呢?来看一下这段代码,为了减少 deep 选项的干扰,换一个类型,换成 string 数据来演示,请留意注释:

    ts
    import { defineComponent, ref, watch } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 这个时候不会触发 watch 的回调
    +    const message = ref<string>('')
    +
    +    // 2s后改变数据
    +    setTimeout(() => {
    +      // 来到这里才会触发 watch 的回调
    +      message.value = 'Hello World!'
    +    }, 2000)
    +
    +    watch(message, () => {
    +      console.log('触发侦听', message.value)
    +    })
    +  },
    +})

    可以看到,数据在初始化的时候并不会触发侦听回调,如果有需要的话,通过 immediate 选项来让它直接触发。

    immediate 选项接受一个布尔值,默认是 false ,可以设置为 true 让回调立即执行。

    改成这样,请留意高亮的代码部分和新的注释:

    ts
    import { defineComponent, ref, watch } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 这一次在这里可以会触发 watch 的回调了
    +    const message = ref<string>('')
    +
    +    // 2s后改变数据
    +    setTimeout(() => {
    +      // 这一次,这里是第二次触发 watch 的回调,不再是第一次
    +      message.value = 'Hello World!'
    +    }, 2000)
    +
    +    watch(
    +      message,
    +      () => {
    +        console.log('触发侦听', message.value)
    +      },
    +      // 设置 immediate 选项
    +      {
    +        immediate: true,
    +      }
    +    )
    +  },
    +})

    注意,在带有 immediate 选项时,不能在第一次回调时取消该数据源的侦听,详见 停止侦听 部分。

    侦听选项之 flush

    flush 选项是用来控制 侦听回调 的调用时机,接受指定的字符串,可选值如下,默认是 'pre'

    可选值回调的调用时机使用场景
    'pre'将在渲染前被调用允许回调在模板运行前更新了其他值
    'sync'在渲染时被同步调用目前来说没什么好处,可以了解但不建议用…
    'post'被推迟到渲染之后调用如果要通过 ref 操作 DOM 元素与子组件 ,需要使用这个值来启用该选项,以达到预期的执行效果

    对于 'pre''post' ,回调使用队列进行缓冲。回调只被添加到队列中一次。

    即使观察值变化了多次,值的中间变化将被跳过,不会传递给回调,这样做不仅可以提高性能,还有助于保证数据的一致性。

    更多关于 flush 的信息,请参阅 回调的触发时机

    停止侦听

    如果在 setup 或者 script-setup 里使用 watch 的话, 组件被卸载 的时候也会一起被停止,一般情况下不太需要关心如何停止侦听。

    不过有时候可能想要手动取消, Vue 3 也提供了方法。

    TIP

    随着组件被卸载一起停止的前提是,侦听器必须是 同步语句 创建的,这种情况下侦听器会绑定在当前组件上。

    如果放在 setTimeout异步函数 里面创建,则不会绑定到当前组件,因此组件卸载的时候不会一起停止该侦听器,这种时候就需要手动停止侦听。

    API 的 TS 类型 有提到,当在定义一个 watch 行为的时候,它会返回一个用来停止侦听的函数。

    这个函数的 TS 类型如下:

    ts
    export declare type WatchStopHandle = () => void

    用法很简单,做一下简单了解即可:

    ts
    // 定义一个取消观察的变量,它是一个函数
    +const unwatch = watch(message, () => {
    +  // ...
    +})
    +
    +// 在合适的时期调用它,可以取消这个侦听
    +unwatch()

    但是也有一点需要注意的是,如果启用了 immediate 选项 ,不能在第一次触发侦听回调时执行它。

    ts
    // 注意:这是一段错误的代码,运行会报错
    +const unwatch = watch(
    +  message,
    +  // 侦听的回调
    +  () => {
    +    // ...
    +    // 在这里调用会有问题 ❌
    +    unwatch()
    +  },
    +  // 启用 immediate 选项
    +  {
    +    immediate: true,
    +  }
    +)

    会收获一段报错,告诉 unwatch 这个变量在初始化前无法被访问:

    bash
    Uncaught ReferenceError: Cannot access 'unwatch' before initialization

    目前有两种方案可以让实现这个操作:

    方案一:使用 var 并判断变量类型,利用 var 的变量提升 来实现目的。

    ts
    // 这里改成 var ,不要用 const 或 let
    +var unwatch = watch(
    +  message,
    +  // 侦听回调
    +  () => {
    +    // 这里加一个判断,是函数才执行它
    +    if (typeof unwatch === 'function') {
    +      unwatch()
    +    }
    +  },
    +  // 侦听选项
    +  {
    +    immediate: true,
    +  }
    +)

    不过 var 已经属于过时的语句了,建议用方案二的 let

    方案二:使用 let 并判断变量类型。

    ts
    // 如果不想用 any ,可以导入 TS 类型
    +import type { WatchStopHandle } from 'vue'
    +
    +// 这里改成 let ,但是要另起一行,先定义,再赋值
    +let unwatch: WatchStopHandle
    +unwatch = watch(
    +  message,
    +  // 侦听回调
    +  () => {
    +    // 这里加一个判断,是函数才执行它
    +    if (typeof unwatch === 'function') {
    +      unwatch()
    +    }
    +  },
    +  // 侦听选项
    +  {
    +    immediate: true,
    +  }
    +)

    侦听效果清理

    侦听后的回调函数 部分提及到一个参数 onCleanup ,它可以帮注册一个清理函数。

    有时 watch 的回调会执行异步操作,当 watch 到数据变更的时候,需要取消这些操作,这个函数的作用就用于此,会在以下情况调用这个清理函数:

    • watcher 即将重新运行的时候
    • watcher 被停止(组件被卸载或者被手动 停止侦听

    TS 类型:

    ts
    declare type OnCleanup = (cleanupFn: () => void) => void

    用法方面比较简单,传入一个回调函数运行即可,不过需要注意的是,需要在停止侦听之前注册好清理行为,否则不会生效。

    停止侦听 里的最后一个 immediate 例子的基础上继续添加代码,请注意注册的时机:

    ts
    let unwatch: WatchStopHandle
    +unwatch = watch(
    +  message,
    +  (newValue, oldValue, onCleanup) => {
    +    // 需要在停止侦听之前注册好清理行为
    +    onCleanup(() => {
    +      console.log('侦听清理ing')
    +      // 根据实际的业务情况定义一些清理操作 ...
    +    })
    +    // 然后再停止侦听
    +    if (typeof unwatch === 'function') {
    +      unwatch()
    +    }
    +  },
    +  {
    +    immediate: true,
    +  }
    +)

    watchEffect

    如果一个函数里包含了多个需要侦听的数据,一个一个数据去侦听太麻烦了,在 Vue 3 ,可以直接使用 watchEffect API 来简化的操作。

    API 的 TS 类型

    这个 API 的类型如下,使用的时候需要传入一个副作用函数(相当于 watch 的 侦听后的回调函数 ),也可以根据的实际情况传入一些可选的 侦听选项

    和 watch API 一样,它也会返回一个用于 停止侦听 的函数。

    ts
    // watchEffect 部分的 TS 类型
    +// ...
    +export declare type WatchEffect = (onCleanup: OnCleanup) => void
    +
    +export declare function watchEffect(
    +  effect: WatchEffect,
    +  options?: WatchOptionsBase
    +): WatchStopHandle
    +// ...

    副作用函数也会传入一个清理回调作为参数,和 watch 的 侦听效果清理 一样的用法。

    可以理解为它是一个简化版的 watch ,具体简化在哪里呢?请看下面的用法示例。

    用法示例

    它立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数。

    ts
    import { defineComponent, ref, watchEffect } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 单独定义两个数据,后面用来分开改变数值
    +    const name = ref<string>('Petter')
    +    const age = ref<number>(18)
    +
    +    // 定义一个调用这两个数据的函数
    +    const getUserInfo = (): void => {
    +      console.log({
    +        name: name.value,
    +        age: age.value,
    +      })
    +    }
    +
    +    // 2s后改变第一个数据
    +    setTimeout(() => {
    +      name.value = 'Tom'
    +    }, 2000)
    +
    +    // 4s后改变第二个数据
    +    setTimeout(() => {
    +      age.value = 20
    +    }, 4000)
    +
    +    // 直接侦听调用函数,在每个数据产生变化的时候,它都会自动执行
    +    watchEffect(getUserInfo)
    +  },
    +})

    和 watch 的区别

    虽然理论上 watchEffectwatch 的一个简化操作,可以用来代替 批量侦听 ,但它们也有一定的区别:

    1. watch 可以访问侦听状态变化前后的值,而 watchEffect 没有。

    2. watch 是在属性改变的时候才执行,而 watchEffect 则默认会执行一次,然后在属性改变的时候也会执行。

    第二点的意思,看下面这段代码可以有更直观的理解:

    使用 watch :

    ts
    export default defineComponent({
    +  setup() {
    +    const foo = ref<string>('')
    +
    +    setTimeout(() => {
    +      foo.value = 'Hello World!'
    +    }, 2000)
    +
    +    function bar() {
    +      console.log(foo.value)
    +    }
    +
    +    // 使用 watch 需要先手动执行一次
    +    bar()
    +
    +    // 然后当 foo 有变动时,才会通过 watch 来执行 bar()
    +    watch(foo, bar)
    +  },
    +})

    使用 watchEffect :

    ts
    export default defineComponent({
    +  setup() {
    +    const foo = ref<string>('')
    +
    +    setTimeout(() => {
    +      foo.value = 'Hello World!'
    +    }, 2000)
    +
    +    function bar() {
    +      console.log(foo.value)
    +    }
    +
    +    // 可以通过 watchEffect 实现 bar() + watch(foo, bar) 的效果
    +    watchEffect(bar)
    +  },
    +})

    可用的侦听选项

    虽然用法和 watch 类似,但也简化了一些选项,它的侦听选项 TS 类型如下:

    ts
    // 只支持 base 类型
    +export declare interface WatchOptionsBase extends DebuggerOptions {
    +  flush?: 'pre' | 'post' | 'sync'
    +}
    +// ...
    +
    +// 继承的 debugger 选项类型
    +export declare interface DebuggerOptions {
    +  onTrack?: (event: DebuggerEvent) => void
    +  onTrigger?: (event: DebuggerEvent) => void
    +}
    +// ...

    对比 watch API ,它不支持 deepimmediate ,请记住这一点,其他的用法是一样的。

    flush 选项的使用详见 侦听选项之 flushonTrackonTrigger 详见 侦听的选项 部分内容。

    watchPostEffect

    watchEffect API 使用 flush: 'post' 选项时的别名,具体区别详见 侦听选项之 flush 部分。

    TIP

    Vue v3.2.0 及以上版本才支持该 API 。

    watchSyncEffect

    watchEffect API 使用 flush: 'sync' 选项时的别名,具体区别详见 侦听选项之 flush 部分。

    TIP

    Vue v3.2.0 及以上版本才支持该 API 。

    数据的计算 ~new

    和 Vue 2.0 一样,数据的计算也是使用 computed API ,它可以通过现有的响应式数据,去通过计算得到新的响应式变量,用过 Vue 2.0 的开发者应该不会太陌生,但是在 Vue 3.0 ,在使用方式上也是变化非常大!

    TIP

    这里的响应式数据,可以简单理解为通过 ref API 、 reactive API 定义出来的数据,当然 Vuex 、Vue Router 等 Vue 数据也都具备响应式,可以在 响应式数据的变化 了解。

    用法变化

    先从一个简单的用例来看看在 Vue 新旧版本的用法区别:

    假设定义了两个分开的数据 firstName 名字和 lastName 姓氏,但是在 template 展示时,需要展示完整的姓名,那么就可以通过 computed 来计算一个新的数据:

    回顾 Vue 2

    在 Vue 2.0 ,computeddata 在同级配置,并且不可以和 data 里的数据同名重复定义:

    ts
    // 在 Vue 2 的写法:
    +export default {
    +  data() {
    +    return {
    +      firstName: 'Bill',
    +      lastName: 'Gates',
    +    }
    +  },
    +  // 注意这里定义的变量,都要通过函数的形式来返回它的值
    +  computed: {
    +    // 普通函数可以直接通过熟悉的 this 来拿到 data 里的数据
    +    fullName() {
    +      return `${this.firstName} ${this.lastName}`
    +    },
    +    // 箭头函数则需要通过参数来拿到实例上的数据
    +    fullName2: (vm) => `${vm.firstName} ${vm.lastName}`,
    +  },
    +}

    这样在需要用到全名的地方,只需要通过 this.fullName 就可以得到 Bill Gates

    了解 Vue 3

    在 Vue 3.0 ,跟其他 API 的用法一样,需要先导入 computed 才能使用:

    ts
    // 在 Vue 3 的写法:
    +import { defineComponent, ref, computed } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 定义基本的数据
    +    const firstName = ref<string>('Bill')
    +    const lastName = ref<string>('Gates')
    +
    +    // 定义需要计算拼接结果的数据
    +    const fullName = computed(() => `${firstName.value} ${lastName.value}`)
    +
    +    // 2s 后改变某个数据的值
    +    setTimeout(() => {
    +      firstName.value = 'Petter'
    +    }, 2000)
    +
    +    // template 那边在 2s 后也会显示为 Petter Gates
    +    return {
    +      fullName,
    +    }
    +  },
    +})

    可以把这个用法简单的理解为,传入一个回调函数,并 return 一个值,对,它需要有明确的返回值。

    TIP

    需要注意的是:

    1. 定义出来的 computed 变量,和 Ref 变量的用法一样,也是需要通过 .value 才能拿到它的值

    2. 但是区别在于,默认情况下 computedvalue 是只读的

    原因详见下方的 类型声明

    类型声明

    之前说过,在 defineComponent 里,会自动帮推导 Vue API 的类型,所以一般情况下,是不需要显式的去定义 computed 出来的变量类型的。

    在确实需要手动指定的情况下,也可以导入它的类型然后定义:

    ts
    import { computed } from 'vue'
    +import type { ComputedRef } from 'vue'
    +
    +// 注意这里添加了类型声明
    +const fullName: ComputedRef<string> = computed(
    +  () => `${firstName.value} ${lastName.value}`
    +)

    要返回一个字符串,就写 ComputedRef<string> ;返回布尔值,就写 ComputedRef<boolean> ;返回一些复杂对象信息,可以先定义好的类型,再诸如 ComputedRef<UserInfo> 去写。

    ts
    // 这是 ComputedRef 的类型声明:
    +export declare interface ComputedRef<T = any> extends WritableComputedRef<T> {
    +  readonly value: T
    +  [ComoutedRefSymbol]: true
    +}

    优势对比和注意事项

    在继续往下看之前,先来了解一下这个 API 的一些优势和注意事项(如果在 Vue 2 已经有接触过的话,可以跳过这一段,因为优势和需要注意的东西比较一致)。

    优势对比

    看到这里,相信刚接触的开发者可能会有疑问,既然 computed 也是通过一个函数来返回值,那么和普通的 function 有什么区别,或者说优势?

    1. 性能优势

    这一点在 官网文档 其实是有提到的:

    数据的计算是基于它们的响应依赖关系缓存的,只在相关响应式依赖发生改变时它们才会重新求值。

    也就是说,只要原始数据没有发生改变,多次访问 computed ,都是会立即返回之前的计算结果,而不是再次执行函数;而普通的 function 调用多少次就执行多少次,每调用一次就计算一次。

    至于为何要如此设计,官网文档也给出了原因:

    为什么需要缓存?假设有一个性能开销比较大的计算数据 list,它需要遍历一个巨大的数组并做大量的计算。然后可能有其他的计算数据依赖于 list。如果没有缓存,将不可避免的多次执行 list 的 getter!如果不希望有缓存,请用 function 来替代。

    TIP

    在这部分内容里,将官方文档的一些用词做了更换,比如把 method 都替换成了 function ,也把 “计算属性” 都换成了 “计算数据”,原因在于官网很多地方是基于 Options API 的写法去描述,而本文档是基于 Composition API 。

    点击了解: 如何理解 JavaScript 中方法(method)和函数(function)的区别?

    1. 书写统一

    假定 foo1 是 Ref 变量, foo2 是 computed 变量, foo3 是普通函数返回值

    看到这里的开发者应该都已经清楚 Vue 3 的 Ref 变量是通过 foo1.value 来拿到值的,而 computed 也是通过 foo2.value ,并且在 template 里都可以省略 .value ,在读取方面,他们是有一致的风格和简洁性。

    而 foo3 不管是在 script 还是 template ,都需要通过 foo3() 才能拿到结果,相对来说会有那么一丢丢别扭。

    当然,关于这一点,如果涉及到的数据不是响应式数据,那么还是老老实实的用函数返回值吧,原因请见下面的 注意事项

    注意事项

    有优势当然也就有一定的 “劣势” ,当然这也是 Vue 框架的有意为之,所以在使用上也需要注意一些问题:

    1. 只会更新响应式数据的计算

    假设要获取当前的时间信息,因为不是响应式数据,所以这种情况下就需要用普通的函数去获取返回值,才能拿到最新的时间。

    ts
    const nowTime = computed(() => new Date())
    +console.log(nowTime.value)
    +// 输出 Sun Nov 14 2021 21:07:00 GMT+0800 (GMT+08:00)
    +
    +// 2s 后依然是跟上面一样的结果
    +setTimeout(() => {
    +  console.log(nowTime.value)
    +  // 还是输出 Sun Nov 14 2021 21:07:00 GMT+0800 (GMT+08:00)
    +}, 2000)
    1. 数据是只读的

    通过 computed 定义的数据,它是只读的,这一点在 类型声明 已经有所了解。

    如果直接赋值,不仅无法变更数据,而且会收获一个报错。

    bash
    TS2540: Cannot assign to 'value' because it is a read-only property.

    虽然无法直接赋值,但是在必要的情况下,依然可以通过 computedsetter 来更新数据。

    点击了解:computed 的 setter 用法

    setter 的使用

    通过 computed 定义的变量默认都是只读的形式(只有一个 getter ),但是在必要的情况下,也可以使用其 setter 属性来更新数据。

    基本格式

    当需要用到 setter 的时候, computed 就不再是一个传入 callback 的形式了,而是传入一个带有 2 个方法的对象。

    ts
    // 注意这里computed接收的入参已经不再是函数
    +const foo = computed({
    +  // 这里需要明确的返回一个值
    +  get() {
    +    // ...
    +  },
    +  // 这里接收一个参数,代表修改 foo 时,赋值下来的新值
    +  set(newValue) {
    +    // ...
    +  },
    +})

    这里的 get 就是 computed 的 getter ,跟原来传入 callback 的形式一样,是用于 foo.value 的读取,所以这里必须有明确的返回值。

    这里的 set 就是 computed 的 setter ,它会接收一个参数,代表新的值,当通过 foo.value = xxx 赋值的时候,赋入的这个值,就会通过这个入参来传递进来,可以根据的业务需要,把这个值,赋给相关的数据源。

    TIP

    请注意,必须使用 getset 这 2 个方法名,也只接受这 2 个方法。

    在了解了基本格式后,可以查看下面的例子来了解具体的用法。

    使用示范

    官网的 例子 是一个 Options API 的案例,这里改成 Composition API 的写法来演示:

    ts
    // 还是这2个数据源
    +const firstName = ref<string>('Bill')
    +const lastName = ref<string>('Gates')
    +
    +// 这里配合setter的需要,改成了另外一种写法
    +const fullName = computed({
    +  // getter还是返回一个拼接起来的全名
    +  get() {
    +    return `${firstName.value} ${lastName.value}`
    +  },
    +  // setter这里改成只更新firstName,注意参数也定义TS类型
    +  set(newFirstName: string) {
    +    firstName.value = newFirstName
    +  },
    +})
    +console.log(fullName.value) // 输出 Bill Gates
    +
    +// 2s后更新一下数据
    +setTimeout(() => {
    +  // 对fullName的赋值,其实更新的是firstName
    +  fullName.value = 'Petter'
    +
    +  // 此时firstName已经得到了更新
    +  console.log(firstName.value) // 会输出 Petter
    +
    +  // 当然,由于firstName变化了,所以fullName的getter也会得到更新
    +  console.log(fullName.value) // 会输出 Petter Gates
    +}, 2000)

    应用场景

    计算 API 的作用,官网文档只举了一个非常简单的例子,那么在实际项目中,什么情况下用它会让更方便呢?

    简单举几个比较常见的例子吧,加深一下对 computed 的理解。

    数据的拼接和计算

    如上面的案例,与其每个用到的地方都要用到 firstName + ' ' + lastName 这样的多变量拼接,不如用一个 fullName 来的简单。

    当然,不止是字符串拼接,数据的求和等操作更是合适,比如说做一个购物车,购物车里有商品列表,同时还要显示购物车内的商品总金额,这种情况就非常适合用计算数据。

    复用组件的动态数据

    在一个项目里,很多时候组件会涉及到复用,比如说:“首页的文章列表 vs 列表页的文章列表 vs 作者详情页的文章列表” ,特别常见于新闻网站等内容资讯站点,这种情况下,往往并不需要每次都重新写 UI 、数据渲染等代码,仅仅是接口 URL 的区别。

    这种情况就可以通过路由名称来动态获取要调用哪个列表接口:

    ts
    const route = useRoute()
    +
    +// 定义一个根据路由名称来获取接口URL的计算数据
    +const apiUrl = computed(() => {
    +  switch (route.name) {
    +    // 首页
    +    case 'home':
    +      return '/api/list1'
    +    // 列表页
    +    case 'list':
    +      return '/api/list2'
    +    // 作者页
    +    case 'author':
    +      return '/api/list3'
    +    // 默认是随机列表
    +    default:
    +      return '/api/random'
    +  }
    +})
    +
    +// 请求列表
    +const getArticleList = async (): Promise<void> => {
    +  // ...
    +  articleList.value = await axios({
    +    method: 'get',
    +    url: apiUrl.value,
    +    // ...
    +  })
    +  // ...
    +}

    当然,这种情况也可以在父组件通过 props 传递接口 URL ,如果已经学到了 组件通讯 一章的话。

    获取多级对象的值

    应该很经常的遇到要在 template 显示一些多级对象的字段,但是有时候又可能存在某些字段不一定有,需要做一些判断的情况,虽然有 v-if ,但是嵌套层级一多,模板代码会难以维护。

    如果把这些工作量转移给计算数据,结合 try / catch ,这样就无需在 template 里处理很多判断了。

    ts
    // 例子比较极端,但在 Vuex 这种大型数据树上,也不是完全不可能存在
    +const foo = computed(() => {
    +  // 正常情况下返回需要的数据
    +  try {
    +    return store.state.foo3.foo2.foo1.foo
    +  } catch (e) {
    +    // 处理失败则返回一个默认值
    +    return ''
    +  }
    +})

    这样在 template 里要拿到 foo 的值,完全不需要关心中间一级又一级的字段是否存在,只需要区分是不是默认值。

    不同类型的数据转换

    有时候会遇到一些需求类似于,让用户在输入框里,按一定的格式填写文本,比如用英文逗号 , 隔开每个词,然后保存的时候,是用数组的格式提交给接口。

    这个时候 computed 的 setter 就可以妙用了,只需要一个简单的 computed ,就可以代替 inputchange 事件或者 watch 侦听,可以减少很多业务代码的编写。

    vue
    <template>
    +  <input
    +    type="text"
    +    v-model="tagsStr"
    +    placeholder="请输入标签,多个标签用英文逗号隔开"
    +  />
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, computed, ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 这个是最终要用到的数组
    +    const tags = ref<string[]>([])
    +
    +    // 因为input必须绑定一个字符串
    +    const tagsStr = computed({
    +      // 所以通过getter来转成字符串
    +      get() {
    +        return tags.value.join(',')
    +      },
    +      // 然后在用户输入的时候,切割字符串转换回数组
    +      set(newValue: string) {
    +        tags.value = newValue.split(',')
    +      },
    +    })
    +
    +    return {
    +      tagsStr,
    +    }
    +  },
    +})
    +</script>

    所以在实际业务开发中,开发者可以多考虑一下是否可以使用 computed 代替 watch ,避免过多的数组侦听带来项目性能的下降。

    指令

    指令是 Vue 模板语法里的特殊标记,在使用上和 HTML 的 data-* 属性十分相似,统一以 v- 开头( e.g. v-html )。

    它以简单的方式实现了常用的 JavaScript 表达式功能,当表达式的值改变的时候,响应式地作用到 DOM 上。

    内置指令

    Vue 提供了一些内置指令可以直接使用,例如:

    vue
    <template>
    +  <!-- 渲染一段文本 -->
    +  <span v-text="msg"></span>
    +
    +  <!-- 渲染一段 HTML -->
    +  <div v-html="html"></div>
    +
    +  <!-- 循环创建一个列表 -->
    +  <ul v-if="items.length">
    +    <li v-for="(item, index) in items" :key="index">
    +      <span>{{ item }}</span>
    +    </li>
    +  </ul>
    +
    +  <!-- 一些事件( `@` 等价于 `v-on` ) -->
    +  <button @click="hello">Hello</button>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const msg = ref<string>('Hello World!')
    +    const html = ref<string>('<p>Hello World!</p>')
    +    const items = ref<string[]>(['a', 'b', 'c', 'd'])
    +
    +    function hello() {
    +      console.log(msg.value)
    +    }
    +
    +    return {
    +      msg,
    +      html,
    +      items,
    +      hello,
    +    }
    +  },
    +})
    +</script>

    内置指令在使用上都非常的简单,可以在官方文档的 内置指令 一章查询完整的指令列表和用法,在模板上使用时,请了解 指令的模板语法

    TIP

    有两个指令可以使用别名:

    • v-on 的别名是 @ ,使用 @click 等价于 v-on:click
    • v-bind 的别名是 : ,使用 :src 等价于 v-bind:src

    自定义指令 ~new

    如果 Vue 的内置指令不能满足业务需求,还可以开发自定义指令。

    相关的 TS 类型

    在开始编写代码之前,先了解一下自定义指令相关的 TypeScript 类型。

    自定义指令有两种实现形式,一种是作为一个对象,其中的写法比较接近于 Vue 组件,除了 getSSRPropsdeep 选项 外,其他的每一个属性都是一个 钩子函数 ,下一小节会介绍钩子函数的内容。

    ts
    // 对象式写法的 TS 类型
    +// ...
    +export declare interface ObjectDirective<T = any, V = any> {
    +  created?: DirectiveHook<T, null, V>
    +  beforeMount?: DirectiveHook<T, null, V>
    +  mounted?: DirectiveHook<T, null, V>
    +  beforeUpdate?: DirectiveHook<T, VNode<any, T>, V>
    +  updated?: DirectiveHook<T, VNode<any, T>, V>
    +  beforeUnmount?: DirectiveHook<T, null, V>
    +  unmounted?: DirectiveHook<T, null, V>
    +  getSSRProps?: SSRDirectiveHook
    +  deep?: boolean
    +}
    +// ...

    另外一种是函数式写法,只需要定义成一个函数,但这种写法只在 mountedupdated 这两个钩子生效,并且触发一样的行为。

    ts
    // 函数式写法的 TS 类型
    +// ...
    +export declare type FunctionDirective<T = any, V = any> = DirectiveHook<
    +  T,
    +  any,
    +  V
    +>
    +// ...

    这是每个钩子函数对应的类型,它有 4 个入参:

    ts
    // 钩子函数的 TS 类型
    +// ...
    +export declare type DirectiveHook<
    +  T = any,
    +  Prev = VNode<any, T> | null,
    +  V = any
    +> = (
    +  el: T,
    +  binding: DirectiveBinding<V>,
    +  vnode: VNode<any, T>,
    +  prevVNode: Prev
    +) => void
    +// ...

    钩子函数第二个参数的类型:

    ts
    // 钩子函数第二个参数的 TS 类型
    +// ...
    +export declare interface DirectiveBinding<V = any> {
    +  instance: ComponentPublicInstance | null
    +  value: V
    +  oldValue: V | null
    +  arg?: string
    +  modifiers: DirectiveModifiers
    +  dir: ObjectDirective<any, V>
    +}
    +// ...

    可以看到自定义指令最核心的就是 “钩子函数” 了,接下来来了解这部分的知识点。

    钩子函数

    组件的生命周期 类似,自定义指令里的逻辑代码也有一些特殊的调用时机,在这里称之为钩子函数:

    钩子函数调用时机
    created在绑定元素的 attribute 或事件侦听器被应用之前调用
    beforeMount当指令第一次绑定到元素并且在挂载父组件之前调用
    mounted在绑定元素的父组件被挂载后调用
    beforeUpdate在更新包含组件的 VNode 之前调用
    updated在包含组件的 VNode 及其子组件的 VNode 更新后调用
    beforeUnmount在卸载绑定元素的父组件之前调用
    unmounted当指令与元素解除绑定且父组件已卸载时,只调用一次

    TIP

    因为自定义指令的默认写法是一个对象,所以在代码风格上是遵循 Options API 的生命周期命名,而非 Vue 3 的 Composition API 风格。

    钩子函数在用法上就是这样子:

    ts
    const myDirective = {
    +  created(el, binding, vnode, prevVnode) {
    +    // ...
    +  },
    +  mounted(el, binding, vnode, prevVnode) {
    +    // ...
    +  },
    +  // 其他钩子...
    +}

    相关的 TS 类型 已了解,每个钩子函数都有 4 个入参:

    参数作用
    el指令绑定的 DOM 元素,可以直接操作它
    binding一个对象数据,见下方的单独说明
    vnodeel 对应在 Vue 里的虚拟节点信息
    prevVNodeUpdate 时的上一个虚拟节点信息,仅在 beforeUpdateupdated 可用

    其中用的最多是 elbinding 了。

    • el 的值就是通过 document.querySelector 拿到的那个 DOM 元素。

    • binding 是一个对象,里面包含了以下属性:

    属性作用
    value传递给指令的值,例如 v-foo="bar" 里的 bar ,支持任意有效的 JS 表达式
    oldValue指令的上一个值,仅对 beforeUpdateupdated 可用
    arg传给指令的参数,例如 v-foo:bar 里的 bar
    modifiers传给指令的修饰符,例如 v-foo.bar 里的 bar
    instance使用指令的组件实例
    dir指令定义的对象(就是上面的 const myDirective = { /* ... */ } 这个对象)

    在了解了指令的写法和参数作用之后,来看看如何注册一个自定义指令。

    局部注册

    自定义指令可以在单个组件内定义并使用,通过和 setup 函数 同级别的 directives 选项进行定义,可以参考下面的例子和注释:

    vue
    <template>
    +  <!-- 这个使用默认值 `unset` -->
    +  <div v-highlight>{{ msg }}</div>
    +
    +  <!-- 这个使用传进去的黄色 -->
    +  <div v-highlight="`yellow`">{{ msg }}</div>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, ref } from 'vue'
    +
    +export default defineComponent({
    +  // 自定义指令在这里编写,和 `setup` 同级别
    +  directives: {
    +    // `directives` 下的每个字段名就是指令名称
    +    highlight: {
    +      // 钩子函数
    +      mounted(el, binding) {
    +        el.style.backgroundColor =
    +          typeof binding.value === 'string' ? binding.value : 'unset'
    +      },
    +    },
    +  },
    +  setup() {
    +    const msg = ref<string>('Hello World!')
    +
    +    return {
    +      msg,
    +    }
    +  },
    +})
    +</script>

    上面是对象式的写法,也可以写成函数式:

    ts
    export default defineComponent({
    +  directives: {
    +    highlight(el, binding) {
    +      el.style.backgroundColor =
    +        typeof binding.value === 'string' ? binding.value : 'unset'
    +    },
    +  },
    +})

    TIP

    局部注册的自定义指令,默认在子组件内生效,子组件内无需重新注册即可使用父组件的自定义指令。

    全局注册

    自定义指令也可以注册成全局,这样就无需在每个组件里定义了,只要在入口文件 main.ts 里启用它,任意组件里都可以使用自定义指令。

    请查看 开发本地 Vue 专属插件 一节的内容了解如何注册一个全局的自定义指令插件。

    deep 选项

    除了 钩子函数 ,在 相关的 TS 类型 里还可以看到有一个 deep 选项,它是一个布尔值,作用是:

    如果自定义指令用于一个有嵌套属性的对象,并且需要在嵌套属性更新的时候触发 beforeUpdateupdated 钩子,那么需要将这个选项设置为 true 才能够生效。

    vue
    <template>
    +  <div v-foo="foo"></div>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, reactive } from 'vue'
    +
    +export default defineComponent({
    +  directives: {
    +    foo: {
    +      beforeUpdate(el, binding) {
    +        console.log('beforeUpdate', binding)
    +      },
    +      updated(el, binding) {
    +        console.log('updated', binding)
    +      },
    +      mounted(el, binding) {
    +        console.log('mounted', binding)
    +      },
    +      // 需要设置为 `true` ,如果是 `false` 则不会触发
    +      deep: true,
    +    },
    +  },
    +  setup() {
    +    // 定义一个有嵌套属性的对象
    +    const foo = reactive({
    +      bar: {
    +        baz: 1,
    +      },
    +    })
    +
    +    // 2s 后修改其中一个值,会触发 `beforeUpdate` 和 `updated`
    +    setTimeout(() => {
    +      foo.bar.baz = 2
    +      console.log(foo)
    +    }, 2000)
    +
    +    return {
    +      foo,
    +    }
    +  },
    +})
    +</script>

    插槽

    Vue 在使用子组件的时候,子组件在 template 里类似一个 HTML 标签,可以在这个子组件标签里传入任意模板代码以及 HTML 代码,这个功能就叫做 “插槽” 。

    默认插槽

    默认情况下,子组件使用 <slot /> 标签即可渲染父组件传下来的插槽内容,例如:

    在父组件这边:

    vue
    <template>
    +  <Child>
    +    <!-- 注意这里,子组件标签里面传入了 HTML 代码 -->
    +    <p>这是插槽内容</p>
    +  </Child>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +import Child from '@cp/Child.vue'
    +
    +export default defineComponent({
    +  components: {
    +    Child,
    +  },
    +})
    +</script>

    在子组件这边:

    vue
    <template>
    +  <slot />
    +</template>

    默认插槽非常简单,一个 <slot /> 就可以了。

    具名插槽

    有时候可能需要指定多个插槽,例如一个子组件里有 “标题” 、 “作者”、 “内容” 等预留区域可以显示对应的内容,这时候就需要用到具名插槽来指定不同的插槽位。

    子组件通过 name 属性来指定插槽名称:

    vue
    <template>
    +  <!-- 显示标题的插槽内容 -->
    +  <div class="title">
    +    <slot name="title" />
    +  </div>
    +
    +  <!-- 显示作者的插槽内容 -->
    +  <div class="author">
    +    <slot name="author" />
    +  </div>
    +
    +  <!-- 其他插槽内容放到这里 -->
    +  <div class="content">
    +    <slot />
    +  </div>
    +</template>

    父组件通过 template 标签绑定 v-slot:name 格式的属性,来指定传入哪个插槽里:

    vue
    <template>
    +  <Child>
    +    <!-- 传给标题插槽 -->
    +    <template v-slot:title>
    +      <h1>这是标题</h1>
    +    </template>
    +
    +    <!-- 传给作者插槽 -->
    +    <template v-slot:author>
    +      <h1>这是作者信息</h1>
    +    </template>
    +
    +    <!-- 传给默认插槽 -->
    +    <p>这是插槽内容</p>
    +  </Child>
    +</template>

    v-slot:name 有一个别名 #name 语法,上面父组件的代码也相当于:

    vue
    <template>
    +  <Child>
    +    <!-- 传给标题插槽 -->
    +    <template #title>
    +      <h1>这是标题</h1>
    +    </template>
    +
    +    <!-- 传给作者插槽 -->
    +    <template #author>
    +      <h1>这是作者信息</h1>
    +    </template>
    +
    +    <!-- 传给默认插槽 -->
    +    <p>这是插槽内容</p>
    +  </Child>
    +</template>

    TIP

    在使用具名插槽的时候,子组件如果不指定默认插槽,那么在具名插槽之外的内容将不会被渲染。

    默认内容

    可以给 slot 标签添加内容,例如 <slot>默认内容</slot> ,当父组件没有传入插槽内容时,会使用默认内容来显示,默认插槽和具名插槽均支持该功能。

    注意事项

    有一条规则需要记住:

    • 父组件里的所有内容都是在父级作用域中编译的
    • 子组件里的所有内容都是在子作用域中编译的

    CSS 样式与预处理器

    Vue 组件的 CSS 样式部分,Vue 3 保留着和 Vue 2 完全一样的写法。

    编写组件样式表

    最基础的写法,就是在 .vue 文件里添加一个 <style /> 标签,即可在里面写 CSS 代码了。

    vue
    <template>
    +  <div>
    +    <!-- HTML 代码 -->
    +  </div>
    +</template>
    +
    +<script lang="ts">
    +  // TypeScript 代码
    +</script>
    +
    +<style>
    +/* CSS 代码 */
    +.msg {
    +  width: 100%;
    +}
    +.msg p {
    +  color: #333;
    +  font-size: 14px;
    +}
    +</style>

    动态绑定 CSS

    动态绑定 CSS ,在 Vue 2 就已经存在了,在此之前常用的是 :class:style ,现在在 Vue 3 ,还可以通过 v-bind 来动态修改了。

    使用 :class 动态修改样式名

    它是绑定在 DOM 元素上面的一个属性,跟 class="class-name" 这样的属性同级别,它非常灵活!

    TIP

    使用 :class 是用来动态修改样式名,也就意味着必须提前把样式名对应的样式表先写好!

    假设已经提前定义好了这几个变量:

    vue
    <script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const activeClass = 'active-class'
    +    const activeClass1 = 'active-class1'
    +    const activeClass2 = 'active-class2'
    +    const isActive = true
    +
    +    return {
    +      activeClass,
    +      activeClass1,
    +      activeClass2,
    +      isActive,
    +    }
    +  },
    +})
    +</script>

    如果只想绑定一个单独的动态样式,可以传入一个字符串:

    vue
    <template>
    +  <p :class="activeClass">Hello World!</p>
    +</template>

    如果有多个动态样式,也可以传入一个数组:

    vue
    <template>
    +  <p :class="[activeClass1, activeClass2]">Hello World!</p>
    +</template>

    还可以对动态样式做一些判断,这个时候传入一个对象:

    vue
    <template>
    +  <p :class="{ 'active-class': isActive }">Hello World!</p>
    +</template>

    多个判断的情况下,记得也用数组套起来:

    vue
    <template>
    +  <p :class="[{ activeClass1: isActive }, { activeClass2: !isActive }]">
    +    Hello World!
    +  </p>
    +</template>

    那么什么情况下会用到 :class 呢?

    最常见的场景,应该就是导航、选项卡了,比如要给一个当前选中的选项卡做一个突出高亮的状态,那么就可以使用 :class 来动态绑定一个样式。

    vue
    <template>
    +  <ul class="list">
    +    <li
    +      class="item"
    +      :class="{ cur: index === curIndex }"
    +      v-for="(item, index) in 5"
    +      :key="index"
    +      @click="curIndex = index"
    +    >
    +      {{ item }}
    +    </li>
    +  </ul>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const curIndex = ref<number>(0)
    +
    +    return {
    +      curIndex,
    +    }
    +  },
    +})
    +</script>
    +
    +<style scoped>
    +.cur {
    +  color: red;
    +}
    +</style>

    这样就简单实现了一个点击切换选项卡高亮的功能。

    使用 :style 动态修改内联样式

    如果觉得使用 :class 需要提前先写样式,再去绑定样式名有点繁琐,有时候只想简简单单的修改几个样式,那么可以通过 :style 来处理。

    默认的情况下,都是传入一个对象去绑定:

    • key 是符合 CSS 属性名的 “小驼峰式” 写法,或者套上引号的短横线分隔写法(原写法),例如在 CSS 里,定义字号是 font-size ,那么需要写成 fontSize 或者 'font-size' 作为它的键。

    • value 是 CSS 属性对应的 “合法值”,比如要修改字号大小,可以传入 13px0.4rem 这种带合法单位字符串值,但不可以是 13 这样的缺少单位的值,无效的 CSS 值会被过滤不渲染。

    vue
    <template>
    +  <p
    +    :style="{
    +      fontSize: '13px',
    +      'line-height': 2,
    +      color: '#ff0000',
    +      textAlign: 'center',
    +    }"
    +  >
    +    Hello World!
    +  </p>
    +</template>

    如果有些特殊场景需要绑定多套 style,需要在 script 先定义好各自的样式变量(也是符合上面说到的那几个要求的对象),然后通过数组来传入:

    vue
    <template>
    +  <p :style="[style1, style2]">Hello World!</p>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const style1 = {
    +      fontSize: '13px',
    +      'line-height': 2,
    +    }
    +    const style2 = {
    +      color: '#ff0000',
    +      textAlign: 'center',
    +    }
    +
    +    return {
    +      style1,
    +      style2,
    +    }
    +  },
    +})
    +</script>

    使用 v-bind 动态修改 style ~new

    当然,以上两种形式都是关于 <script /><template /> 部分的操作,如果觉得会给模板带来一定的维护成本的话,不妨考虑这个新方案,将变量绑定到 <style /> 部分去。

    TIP

    请注意这是一个在 3.2.0 版本之后才被归入正式队列的新功能!如果需要使用它,请确保的 vue 的版本号在 3.2.0 以上,最好是保持最新版本。

    先来看看基本的用法:

    vue
    <template>
    +  <p class="msg">Hello World!</p>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, ref } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const fontColor = ref<string>('#ff0000')
    +
    +    return {
    +      fontColor,
    +    }
    +  },
    +})
    +</script>
    +
    +<style scoped>
    +.msg {
    +  color: v-bind(fontColor);
    +}
    +</style>

    如上面的代码,将渲染出一句红色文本的 Hello World!

    这其实是利用了现代浏览器支持的 CSS 变量来实现的一个功能(所以如果打算用它的话,需要提前注意一下兼容性噢,点击查看:CSS Variables 兼容情况 )。

    它渲染到 DOM 上,其实也是通过绑定 style 来实现,可以看到渲染出来的样式是:

    html
    <p class="msg" data-v-7eb2bc79="" style="--7eb2bc79-fontColor:#ff0000;">
    +  Hello World!
    +</p>

    对应的 CSS 变成了:

    css
    .msg[data-v-7eb2bc79] {
    +  color: var(--7eb2bc79-fontColor);
    +}

    理论上 v-bind 函数可以在 Vue 内部支持任意的 JavaScript 表达式,但由于可能包含在 CSS 标识符中无效的字符,因此官方是建议在大多数情况下,用引号括起来,如:

    css
    .text {
    +  font-size: v-bind('theme.font.size');
    +}

    由于 CSS 变量的特性,因此对 CSS 响应式属性的更改不会触发模板的重新渲染(这也是和 :class:style 的最大不同)。

    TIP

    不管有没有开启 <style scoped> ,使用 v-bind 渲染出来的 CSS 变量,都会带上 scoped 的随机 hash 前缀,避免样式污染(永远不会意外泄漏到子组件中),所以请放心使用!

    如果对 CSS 变量的使用还不是很了解的话,可以先阅读一下相关的基础知识点。

    相关阅读:使用 CSS 自定义属性(变量) - MDN

    样式表的组件作用域

    CSS 不像 JS ,是没有作用域的概念的,一旦写了某个样式,直接就是全局污染。所以 BEM 命名法 等规范才应运而生。

    但在 Vue 组件里,有两种方案可以避免出现这种污染问题:一个是 Vue 2 就有的 <style scoped> ,一个是 Vue 3 新推出的 <style module>

    Style Scoped

    Vue 组件在设计的时候,就想到了一个很优秀的解决方案,通过 scoped 来支持创建一个 CSS 作用域,使这部分代码只运行在这个组件渲染出来的虚拟 DOM 上。

    使用方式很简单,只需要在 <style /> 上添加 scoped 属性:

    vue
    <!-- 注意这里多了一个 `scoped` -->
    +<style scoped>
    +.msg {
    +  width: 100%;
    +}
    +.msg p {
    +  color: #333;
    +  font-size: 14px;
    +}
    +</style>

    编译后,虚拟 DOM 都会带有一个 data-v-xxxxx 这样的属性,其中 xxxxx 是一个随机生成的 Hash ,同一个组件的 Hash 是相同并且唯一的:

    html
    <div class="msg" data-v-7eb2bc79>
    +  <p data-v-7eb2bc79>Hello World!</p>
    +</div>

    而 CSS 则也会带上与 HTML 相同的属性,从而达到样式作用域的目的。

    css
    .msg[data-v-7eb2bc79] {
    +  width: 100%;
    +}
    +.msg p[data-v-7eb2bc79] {
    +  color: #333;
    +  font-size: 14px;
    +}

    使用 scoped 可以有效的避免全局样式污染,可以在不同的组件里面都使用相同的 className,而不必担心会相互覆盖,不必再定义很长很长的样式名来防止冲突了。

    TIP

    添加 scoped 生成的样式,只作用于当前组件中的元素,并且权重高于全局 CSS ,可以覆盖全局样式

    Style Module ~new

    这是在 Vue 3 才推出的一个新方案,和 <style scoped> 不同,scoped 是通过给 DOM 元素添加自定义属性的方式来避免冲突,而 <style module> 则更为激进,将会编译成 CSS Modules

    对于 CSS Modules 的处理方式,也可以通过一个小例子来更直观的了解它:

    css
    /* 案例来自阮一峰老师的博文《CSS Modules 用法教程》 */
    +/* https://www.ruanyifeng.com/blog/2016/06/css_modules.html */
    +
    +/* 编译前 */
    +.title {
    +  color: red;
    +}
    +
    +/* 编译后 */
    +._3zyde4l1yATCOkgn-DBWEL {
    +  color: red;
    +}

    可以看出,是通过比较 “暴力” 的方式,把编写的 “好看的” 样式名,直接改写成一个随机 Hash 样式名,来避免样式互相污染。

    所以回到 Vue 这边,看看 <style module> 是怎么操作的。

    vue
    <template>
    +  <p :class="$style.msg">Hello World!</p>
    +</template>
    +
    +<style module>
    +.msg {
    +  color: #ff0000;
    +}
    +</style>

    于是,将渲染出一句红色文本的 Hello World!

    TIP

    1. 使用这个方案,需要了解如何 使用 :class 动态修改样式名

    2. 如果单纯只使用 <style module> ,那么在绑定样式的时候,是默认使用 $style 对象来操作的

    3. 必须显示的指定绑定到某个样式,比如 $style.msg ,才能生效

    4. 如果单纯的绑定 $style ,并不能得到 “把全部样式名直接绑定” 的期望结果

    5. 如果指定的 className 是短横杆命名,比如 .user-name ,那么需要通过 $style['user-name'] 去绑定

    也可以给 module 进行命名,然后就可以通过命名的 “变量名” 来操作:

    vue
    <template>
    +  <p :class="classes.msg">Hello World!</p>
    +</template>
    +
    +<style module="classes">
    +.msg {
    +  color: #ff0000;
    +}
    +</style>

    TIP

    需要注意的一点是,一旦开启 <style module> ,那么在 <style module> 里所编写的样式都必须手动绑定才能生效,没有被绑定的样式虽然也会被编译,但不会主动生效到 DOM 上。

    原因是编译出来的样式名已经变化,而原来的 DOM 未指定对应的样式名,或者指定的是编译前的命名,所以并不能匹配到正确的样式。

    useCssModule ~new

    这是一个全新的 API ,面向在 script 部分操作 CSS Modules 。

    在上面的 CSS Modules 部分可以知道,可以在 style 定义好样式,然后在 template 部分通过变量名来绑定样式。

    那么如果有一天有个需求,需要通过 v-html 来渲染 HTML 代码,那这里的样式岂不是凉凉了?当然不会!

    Vue 3 提供了一个 Composition API useCssModule 来帮助在 setup 函数里操作的 CSS Modules (对,只能在 setup 或者 script setup 里使用)。

    基本用法:

    绑定多几个样式,再来操作:

    vue
    <template>
    +  <p :class="$style.msg">
    +    <span :class="$style.text">Hello World!</span>
    +  </p>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, useCssModule } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const style = useCssModule()
    +    console.log(style)
    +  },
    +})
    +</script>
    +
    +<style module>
    +.msg {
    +  color: #ff0000;
    +}
    +.text {
    +  font-size: 14px;
    +}
    +</style>

    可以看到打印出来的 style 是一个对象:

    • key 是在 <style modules> 里定义的原始样式名

    • value 则是编译后的新样式名

    js
    {
    +  msg: 'home_msg_37Xmr',
    +  text: 'home_text_2woQJ'
    +}

    所以来配合 模板字符串 的使用,看看刚刚说的,要通过 v-html 渲染出来的内容应该如何绑定样式:

    vue
    <template>
    +  <div v-html="content"></div>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent, useCssModule } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 获取样式
    +    const style = useCssModule()
    +
    +    // 编写模板内容
    +    const content = `<p class="${style.msg}">
    +      <span class="${style.text}">Hello World! —— from v-html</span>
    +    </p>`
    +
    +    return {
    +      content,
    +    }
    +  },
    +})
    +</script>
    +
    +<style module>
    +.msg {
    +  color: #ff0000;
    +}
    +.text {
    +  font-size: 14px;
    +}
    +</style>

    是不是也非常简单?可能刚开始不太习惯,但写多几次其实也蛮好玩的这个功能!

    另外,需要注意的是,如果是指定了 modules 的名称,那么必须传入对应的名称作为入参才可以正确拿到这些样式:

    比如指定了一个 classes 作为名称:

    vue
    <style module="classes">
    +/* ... */
    +</style>

    那么需要通过传入 classes 这个名称才能拿到样式,否则会是一个空对象:

    ts
    const style = useCssModule('classes')

    TIP

    const style = useCssModule() 的时候,命名是随意的,跟在 <style module="classes"> 这里指定的命名没有关系。

    深度操作符 ~new

    样式表的组件作用域 部分了解到,使用 scoped 后,父组件的样式将不会渗透到子组件中,但也不能直接修改子组件的样式。

    如果确实需要进行修改子组件的样式,必须通过 ::v-deep(完整写法) 或者 :deep(快捷写法) 操作符来实现。

    TIP

    1. 旧版的深度操作符是 >>>/deep/::v-deep,现在 >>>/deep/ 已进入弃用阶段(虽然暂时还没完全移除)

    2. 同时需要注意的是,旧版 ::v-deep 的写法是作为组合器的方式,写在样式或者元素前面,如:::v-deep .class-name { /* ... */ },现在这种写法也废弃了。

    现在不论是 ::v-deep 还是 :deep ,使用方法非常统一,来假设 .b 是子组件的样式名:

    vue
    <style scoped>
    +.a :deep(.b) {
    +  /* ... */
    +}
    +</style>

    编译后:

    css
    .a[data-v-f3f3eg9] .b {
    +  /* ... */
    +}

    TIP

    可以看到,新的 deep 写法是作为一个类似 JS “函数” 那样去使用,需要深度操作的样式或者元素名,作为 “入参” 去传入。

    同理,如果使用 Less 或者 Stylus 这种支持嵌套写法的预处理器,也是可以这样去深度操作的:

    less
    .a {
    +  :deep(.b) {
    +    /* ... */
    +  }
    +}

    另外,除了操作子组件的样式,那些通过 v-html 创建的 DOM 内容,也不受作用域内的样式影响,也可以通过深度操作符来实现样式修改。

    使用 CSS 预处理器

    在工程化的现在,可以说前端都几乎不写 CSS 了,都是通过 sasslessstylus 等 CSS 预处理器来完成样式的编写。

    为什么要用 CSS 预处理器?放一篇关于三大预处理器的点评,新开发者可以做个简单了解,具体的用法在对应的官网上有非常详细的说明。

    可以查看了解:浅谈 CSS 预处理器,Sass、Less 和 Stylus

    在 Vue 组件里使用预处理器非常简单,像 Vite 已内置了对预处理器文件的支持(可处理 .less.scss 之类的预处理器扩展名文件),因此只需要安装对应的依赖到项目里。

    这里以 Less 为例,先安装该预处理器:

    bash
    # 因为是在开发阶段使用,所以添加到 `devDependencies`
    +npm i -D less

    接下来在 Vue 组件里,只需要在 <style /> 标签上,通过 lang="less" 属性指定使用哪个预处理器,即可直接编写对应的代码:

    vue
    <style lang="less" scoped>
    +// 定义颜色变量
    +@color-black: #333;
    +@color-red: #ff0000;
    +
    +// 父级标签
    +.msg {
    +  width: 100%;
    +  // 其子标签可以使用嵌套写法
    +  p {
    +    color: @color-black;
    +    font-size: 14px;
    +    // 支持多级嵌套
    +    span {
    +      color: @color-red;
    +    }
    +  }
    +}
    +</style>

    编译后的 css 代码:

    css
    .msg {
    +  width: 100%;
    +}
    +.msg p {
    +  color: #333333;
    +  font-size: 14px;
    +}
    +.msg p span {
    +  color: #ff0000;
    +}

    预处理器也支持 scoped,用法请查阅 样式表的组件作用域 部分。

    Released under the MIT License.

    + + + + \ No newline at end of file diff --git a/efficient.html b/efficient.html new file mode 100644 index 00000000..f04b313d --- /dev/null +++ b/efficient.html @@ -0,0 +1,568 @@ + + + + + + 高效开发 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
    Skip to content
    目录

    高效开发

    可能很多开发者(包括笔者)刚上手 Vue 3 的那段时间,都会觉得开发过程似乎变得更繁琐了, Vue 官方团队当然不会无视群众的呼声,如果基于脚手架和 .vue 文件开发,那么可以享受到更高效率的开发体验。

    在阅读这一章之前,需要对 Vue 3 的单组件开发有一定的了解,如果还处于完全没有接触过的阶段,请先抽点时间阅读 单组件的编写 一章。

    TIP

    要体验以下新特性,请确保项目下 package.json 里的 vue 版本在 3.2.0 以上,最好同步 npm 上当前最新的 @latest 版本,否则可能出现 API 未定义等问题。

    script-setup ~new

    script-setup 是 Vue 3 组件的一个语法糖,旨在帮助开发者降低 setup 函数需要 return 的心智负担。

    Vue 的 3.1.2 版本是针对 script-setup 的一个分水岭版本,自 3.1.4 开始 script-setup 进入定稿状态,部分旧的 API 已被舍弃,本章节内容将以最新的 API 为准进行整理说明,如果需要查阅旧版 API 的使用,请参阅笔者的 这篇开荒博文

    script-setup 方案已在 Vue 3.2.0-beta.1 版本中脱离实验状态,正式进入 Vue 3 的队伍,此后所有的新版本均可以作为一个官方标准的开发方案使用。

    新特性的产生背景

    在了解 script-setup 怎么用之前,可以先了解一下推出该语法糖的一些开发背景,通过对比开发体验上的异同点,了解为什么会有这个新模式。

    在 Vue 3 的组件标准写法里,如果数据和方法需要在 <template /> 里使用,都需要在 <script /> 的 setup 函数里 return 出来。

    如果使用的是 TypeScript ,还需要借助 defineComponent 对 API 类型进行自动推导。

    vue
    <!-- 标准组件格式 -->
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // ...
    +
    +    return {
    +      // ...
    +    }
    +  },
    +})
    +</script>

    关于标准 setup 和 defineComponent 的说明和用法,可以查阅 全新的 setup 函数 一节。

    script-setup 的推出是为了让熟悉 Vue 3 的开发者可以更高效率地开发组件,减少编码过程中的心智负担,只需要给 <script /> 标签添加一个 setup 属性,那么整个 <script /> 就直接会变成 setup 函数,所有顶级变量、函数,均会自动暴露给模板使用(无需再一个个 return 了)。

    Vue 会通过单组件编译器,在编译的时候将其处理回标准组件,所以目前这个方案只适合用 .vue 文件写的工程化项目。

    vue
    <!-- 使用 script-setup 格式 -->
    +<script setup lang="ts">
    +// ...
    +</script>

    对,就是这样,代码量瞬间大幅度减少!

    因为 script-setup 的大部分功能在书写上和标准版是一致的,因此下面的内容只提及有差异的写法。

    全局编译器宏

    在 script-setup 模式下,新增了 4 个全局编译器宏,他们无需 import 就可以直接使用。

    但是默认的情况下直接使用,如果项目开启了 ESLint ,可能会提示 API 没有导入,但导入 API 后,控制台的 Vue 编译助手又会提示不需要导入,就很尴尬… 不过不用着急!可以通过配置 Lint 规则解决这个问题!

    将这几个编译助手写进全局规则里,这样不导入也不会报错了。

    js
    // 项目根目录下的 .eslintrc.js
    +module.exports = {
    +  // ...
    +  // 在原来的 Lint 规则后面,补充下面的 `globals` 选项
    +  globals: {
    +    defineProps: 'readonly',
    +    defineEmits: 'readonly',
    +    defineExpose: 'readonly',
    +    withDefaults: 'readonly',
    +  },
    +}

    关于几个宏的说明都在下面的文档部分有说明,也可以从这里导航过去直接查看。

    说明
    defineProps点击查看
    defineEmits点击查看
    defineExpose点击查看
    withDefaults点击查看

    下面继续了解 script-setup 的变化。

    template 操作简化

    如果使用 JSX / TSX 写法,这一点没有太大影响,但对于习惯使用 <template /> 的开发者来说,这是一个非常爽的体验。

    主要体现在这两点:

    1. 变量无需进行 return
    2. 子组件无需手动注册

    变量无需进行 return

    标准组件模式下,变量和方法都需要在 setup 函数里 return 出去,才可以在 <template /> 部分拿到。

    vue
    <!-- 标准组件格式 -->
    +<template>
    +  <p>{{ msg }}</p>
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    const msg = 'Hello World!'
    +
    +    // 要给 `<template />` 用的数据需要 `return` 出去才可以
    +    return {
    +      msg,
    +    }
    +  },
    +})
    +</script>

    在 script-setup 模式下,定义了就可以直接使用。

    vue
    <!-- 使用 script-setup 格式 -->
    +<template>
    +  <p>{{ msg }}</p>
    +</template>
    +
    +<script setup lang="ts">
    +const msg = 'Hello World!'
    +</script>

    子组件无需手动注册

    子组件的挂载,在标准组件里的写法是需要 import 后再放到 components 里才能够启用:

    vue
    <!-- 标准组件格式 -->
    +<template>
    +  <Child />
    +</template>
    +
    +<script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +// 导入子组件
    +import Child from '@cp/Child.vue'
    +
    +export default defineComponent({
    +  // 需要启用子组件作为模板
    +  components: {
    +    Child,
    +  },
    +
    +  // 组件里的业务代码
    +  setup() {
    +    // ...
    +  },
    +})
    +</script>

    在 script-setup 模式下,只需要导入组件即可,编译器会自动识别并启用。

    vue
    <!-- 使用 script-setup 格式 -->
    +<template>
    +  <Child />
    +</template>
    +
    +<script setup lang="ts">
    +import Child from '@cp/Child.vue'
    +</script>

    props 的接收方式变化

    由于整个 script 都变成了一个大的 setup 函数,没有了组件选项,也没有了 setup 的入参,所以没办法和标准写法一样去接收 props 了。

    这里需要使用一个全新的 API :defineProps 。

    defineProps 是一个方法,内部返回一个对象,也就是挂载到这个组件上的所有 props ,它和普通的 props 用法一样,如果不指定为 props ,则传下来的属性会被放到 attrs 那边去。

    TIP

    前置知识点:接收 props - 组件之间的通信

    defineProps 的基础用法

    如果只是单纯在 <template /> 里使用,那么这么简单定义就可以了:

    ts
    defineProps(['name', 'userInfo', 'tags'])

    使用 string[] 数组作为入参,把 prop 的名称作为数组的 item 传给 defineProps 就可以了。

    如果 <script /> 里的方法要拿到 props 的值,也可以使用字面量定义:

    ts
    const props = defineProps(['name', 'userInfo', 'tags'])
    +console.log(props.name)

    但作为 Vue 的老玩家,都清楚不显性的指定 props 的类型很容易在协作中引起程序报错,那么应该如何对每个 prop 进行类型检查呢?

    有两种方式来处理类型定义:

    1. 通过构造函数检查 prop
    2. 使用类型注解检查 prop

    通过构造函数检查 prop

    这是第一种方式:使用 JavaScript 原生构造函数进行类型规定,也就是跟平时定义 prop 类型时一样, Vue 会通过 instanceof 来进行 类型检查

    使用这种方法,需要通过一个 “对象” 入参来传递给 defineProps ,比如:

    ts
    defineProps({
    +  name: String,
    +  userInfo: Object,
    +  tags: Array,
    +})

    所有原来 props 具备的校验机制,都可以适用,比如除了要限制类型外,还想指定 name 是可选,并且带有一个默认值:

    ts
    defineProps({
    +  name: {
    +    type: String,
    +    required: false,
    +    default: 'Petter',
    +  },
    +  userInfo: Object,
    +  tags: Array,
    +})

    更多的 props 校验机制,可以点击 带有类型限制的 props可选以及带有默认值的 props 了解更多。

    使用类型注解检查 prop

    这是第二种方式:使用 TypeScript 的类型注解,和 ref 等 API 的用法一样,defineProps 也是可以使用尖括号 <> 来包裹类型定义,紧跟在 API 后面。

    另外,由于 defineProps 返回的是一个对象(因为 props 本身是一个对象),所以尖括号里面的类型还要用大括号包裹,通过 key: value 的键值对形式表示,如:

    ts
    defineProps<{ name: string }>()

    注意到了吗?这里使用的类型,和第一种方法提到的指定类型是不一样的。这里不再使用构造函数校验,而是需要遵循使用 TypeScript 的类型,比如字符串是 string,而不是 String

    如果有多个 prop ,就跟写 interface 一样:

    ts
    defineProps<{
    +  name: string
    +  phoneNumber: number
    +  userInfo: object
    +  tags: string[]
    +}>()

    其中,举例里的 userInfo 是一个对象,可以简单的指定为 object,也可以先定义好它对应的类型,再进行指定:

    ts
    interface UserInfo {
    +  id: number
    +  age: number
    +}
    +
    +defineProps<{
    +  name: string
    +  userInfo: UserInfo
    +}>()

    如果想对某个数据设置为可选,也是遵循 TS 规范,通过英文问号 ? 来允许可选:

    ts
    // name 是可选
    +defineProps<{
    +  name?: string
    +  tags: string[]
    +}>()

    如果想设置可选参数的默认值,需要借助 withDefaults API。

    WARNING

    需要强调的一点是:在 构造函数类型注解 这两种校验方式只能二选一,不能同时使用,否则会引起程序报错。

    withDefaults 的基础用法

    这个新的 withDefaults API 可以让在使用 TS 类型系统时,也可以指定 props 的默认值。

    它接收两个入参:

    参数含义
    props通过 defineProps 传入的 props
    defaultValues根据 props 的 key 传入默认值

    光看描述可能不容易理解,看看下面这段演示代码会更直观:

    ts
    withDefaults(
    +  // 这是第一个参数,声明 props
    +  defineProps<{
    +    size?: number
    +    labels?: string[]
    +  }>(),
    +  // 这是第二个参数,设置默认值
    +  {
    +    size: 3,
    +    labels: () => ['default label'],
    +  }
    +)

    也可以通过字面量获取 props :

    ts
    // 上面的写法可能比较复杂,存在阅读成本
    +// 也可以跟平时一样先通过 interface 声明其类型
    +interface Props {
    +  size?: number
    +  labels?: string[]
    +}
    +
    +// 再作为 `defineProps` 的类型传入
    +// 代码风格上会简洁很多
    +const props = withDefaults(defineProps<Props>(), {
    +  size: 3,
    +  labels: () => ['default label'],
    +})
    +
    +// 这样就可以通过 `props` 变量拿到需要的值
    +console.log(props.size)

    emits 的接收方式变化

    和 props 一样,emits 的接收也是需要使用一个全新的 API 来操作,这个 API 就是 defineEmits 。

    和 defineProps 一样, defineEmits 也是一个方法,它接受的入参格式和标准组件的要求是一致的。

    TIP

    前置知识点:接收 emits - 组件之间的通信

    defineEmits 的基础用法

    需要通过字面量来定义 emits ,最基础的用法也是传递一个 string[] 数组进来,把每个 emit 的名称作为数组的 item 。

    ts
    // 获取 emit
    +const emit = defineEmits(['update-name'])
    +
    +// 调用 emit
    +emit('update-name', 'Tom')

    由于 defineEmits 的用法和原来的 emits 选项差别不大,这里也不重复说明更多的诸如校验之类的用法了,可以查看 接收 emits 一节了解更多。

    attrs 的接收方式变化

    attrs 和 props 很相似,也是基于父子通信的数据,如果父组件绑定下来的数据没有被指定为 props ,那么就会被 attrs 接收。

    在标准组件里, attrs 的数据是通过 setup 的第二个入参 context 里的 attrs API 获取的。

    ts
    // 标准组件的写法
    +export default defineComponent({
    +  setup(props, { attrs }) {
    +    // attrs 是个对象,每个 Attribute 都是它的 key
    +    console.log(attrs.class)
    +
    +    // 如果传下来的 Attribute 带有短横线,需要通过这种方式获取
    +    console.log(attrs['data-hash'])
    +  },
    +})

    但和 props 一样,由于没有了 context 参数,需要使用一个新的 API 来拿到 attrs 数据,这个 API 就是 useAttrs 。

    useAttrs 的基础用法

    顾名思义, useAttrs 可以是用来获取 attrs 数据的,它的用法非常简单:

    ts
    import { useAttrs } from 'vue'
    +
    +// 获取 attrs
    +const attrs = useAttrs()
    +
    +// attrs 是个对象,和 props 一样,需要通过 `key` 来得到对应的单个 attr
    +console.log(attrs.msg)

    对 attrs 不太了解的话,可以查阅 获取非 Prop 的 Attribute

    slots 的接收方式变化

    slots 是 Vue 组件的插槽数据,也是在父子通信里的一个重要成员。

    对于使用 <template /> 的开发者来说,在 script-setup 里获取插槽数据并不困难,因为跟标准组件的写法是完全一样的,可以直接在 <template /> 里使用 <slot /> 标签渲染。

    vue
    <template>
    +  <div>
    +    <!-- 插槽数据 -->
    +    <slot />
    +    <!-- 插槽数据 -->
    +  </div>
    +</template>

    但对使用 JSX / TSX 的开发者来说,就影响比较大了,在标准组件里,想在 script 里获取插槽数据,也是需要在 setup 的第二个入参里拿到 slots API 。

    ts
    // 标准组件的写法
    +export default defineComponent({
    +  // 这里的 slots 就是插槽
    +  setup(props, { slots }) {
    +    // ...
    +  },
    +})

    新版本的 Vue 也提供了一个全新的 useSlots API 来帮助 script-setup 用户获取插槽。

    useSlots 的基础用法

    先来看看父组件,父组件先为子组件传入插槽数据,支持 “默认插槽” 和 “命名插槽” :

    vue
    <template>
    +  <!-- 子组件 -->
    +  <ChildTSX>
    +    <!-- 默认插槽 -->
    +    <p>Default slot for TSX.</p>
    +    <!-- 默认插槽 -->
    +
    +    <!-- 命名插槽 -->
    +    <template #msg>
    +      <p>Named slot for TSX.</p>
    +    </template>
    +    <!-- 命名插槽 -->
    +  </ChildTSX>
    +  <!-- 子组件 -->
    +</template>
    +
    +<script setup lang="ts">
    +// 实际上是导入 ChildTSX.tsx 文件,扩展名默认可以省略
    +import ChildTSX from '@cp/ChildTSX'
    +</script>

    在使用 JSX / TSX 编写的子组件里,就可以通过 useSlots 来获取父组件传进来的 slots 数据进行渲染:

    tsx
    // src/components/ChildTSX.tsx
    +import { defineComponent, useSlots } from 'vue'
    +
    +export default defineComponent({
    +  setup() {
    +    // 获取插槽数据
    +    const slots = useSlots()
    +
    +    // 渲染组件
    +    return () => (
    +      <div>
    +        {/* 渲染默认插槽 */}
    +        <p>{slots.default ? slots.default() : ''}</p>
    +
    +        {/* 渲染命名插槽 */}
    +        <p>{slots.msg ? slots.msg() : ''}</p>
    +      </div>
    +    )
    +  },
    +})

    请注意,这里的 TSX 组件代码需要使用 .tsx 作为文件扩展名,并且构建工具可能默认没有对 JSX / TSX 作支持,以 Vite 为例,需要安装官方提供的 JSX / TSX 支持插件才可以正常使用。

    bash
    # 该插件支持使用 JSX 或 TSX 作为 Vue 组件
    +npm i -D @vitejs/plugin-vue-jsx

    并在 vite.config.ts 里启用插件,添加对 JSX 和 TSX 的支持。

    ts
    // vite.config.ts
    +import { defineConfig } from 'vite'
    +import vueJsx from '@vitejs/plugin-vue-jsx'
    +
    +export default defineConfig({
    +  // ...
    +  plugins: [
    +    // ...
    +    // 启用插件
    +    vueJsx(),
    +  ],
    +})

    如果还存在报错的情况,可以检查项目下的 tsconfig.json 文件里,编译选项 jsx 是否设置为 preserve

    json
    {
    +  "compilerOptions": {
    +    "jsx": "preserve"
    +  }
    +}

    ref 的通信方式变化

    在标准组件写法里,子组件的数据和方法可以通过在 setup 里 return 出来给父组件调用,也就是父组件可以通过 childComponent.value.foo 这样的方式直接操作子组件的数据(参见:DOM 元素与子组件 - 响应式 API 之 ref)。

    但在 script-setup 模式下,所有数据只是默认隐式 return 给 <template /> 使用,不会暴露到组件外,所以父组件是无法直接通过挂载 ref 变量获取子组件的数据。

    在 script-setup 模式下,如果要调用子组件的数据,需要先在子组件显式的暴露出来,才能够正确的拿到,这个操作,就是由 defineExpose API 来完成。

    defineExpose 的基础用法

    defineExpose 的用法非常简单,它本身是一个函数,可以接受一个对象参数。

    在子组件里,像这样把需要暴露出去的数据通过 key: value 的形式作为入参(下面的例子是用到了 ES6 的 属性的简洁表示法 ):

    vue
    <script setup lang="ts">
    +const msg = 'Hello World!'
    +
    +// 通过该 API 显式暴露的数据,才可以在父组件拿到
    +defineExpose({
    +  msg,
    +})
    +</script>

    然后在父组件就可以通过挂载在子组件上的 ref 变量,去拿到暴露出来的数据了。

    顶级 await 的支持

    在 script-setup 模式下,不必再配合 async 就可以直接使用 await 了,这种情况下,组件的 setup 会自动变成 async setup 。

    vue
    <script setup lang="ts">
    +const res = await fetch(`https://example.com/api/foo`)
    +const json = await res.json()
    +console.log(json)
    +</script>

    它转换成标准组件的写法就是:

    vue
    <script lang="ts">
    +import { defineComponent } from 'vue'
    +
    +export default defineComponent({
    +  async setup() {
    +    const res = await fetch(`https://example.com/api/foo`)
    +    const json = await res.json()
    +    console.log(json)
    +
    +    return {
    +      json,
    +    }
    +  },
    +})
    +</script>

    命名技巧

    对于接触编程不久的开发者,在个人练习 demo 或者简单的代码片段里可能会经常看到 var avar b 这样的命名,因为本身是一段练习代码,因此都是 “能跑就行”,问题不大。

    但在工作中,很多开发团队都会有语义化命名的规范要求,严格的团队会有 Code Review 环节,使用这种无意义命名的代码将无法通过审查,在这种背景下,开发者可能会在命名上花费很多时间,在这里也分享笔者的一些常用技巧,希望能够帮助开发者节约在命名上的时间开销。

    文件命名技巧

    在开始讲变量命名之前,先说说文件的命名,因为代码都是保存在文件里,并且可能会互相引用,如果后期再修改文件名或者保存位置而忘记更新代码里的引用路径,那么就会影响程序编译和运行。

    Vue 组件

    在 Vue 项目里,会有放在 views 下的路由组件,有放在 components 目录下的公共组件,虽然都是以 .vue 为扩展名的 Vue 组件文件,但根据用途,它们其实并不相同,因此命名上也有不同的技巧。

    路由组件

    路由组件组件通常存放在 src/views 目录下,在命名上容易困惑的点应该是风格问题,开发者容易陷入是使用 camelCase 小驼峰还是 kebab-case 短横线风格,或者是 snake_case 下划线风格的选择困难。

    一般情况下路由组件都是以单个名词或动词进行命名,例如个人资料页使用 profile 命名路由,路由的访问路径使用 /profile ,对应的路由组件使用 profile.vue 命名,下面是几个常见的例子。

    ts
    // src/router/routes.ts
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +const routes: RouteRecordRaw[] = [
    +  // 首页
    +  // e.g. `https://example.com/`
    +  {
    +    path: '/',
    +    name: 'home',
    +    component: () => import('@views/home.vue'),
    +  },
    +  // 个人资料页
    +  // e.g. `https://example.com/profile`
    +  {
    +    path: '/profile',
    +    name: 'profile',
    +    component: () => import('@views/profile.vue'),
    +  },
    +  // 登录页
    +  // e.g. `https://example.com/login`
    +  {
    +    path: '/login',
    +    name: 'login',
    +    component: () => import('@views/login.vue'),
    +  },
    +]
    +
    +export default routes

    如果是一些数据列表类的页面,使用名词复数,或者名词单数加上 -list 结尾的 kebab-case 短横线风格写法,推荐短横线风格是因为在 URL 的风格设计里更为常见。

    像文章列表可以使用 articles 或者 article-list ,但同一个项目建议只使用其中一种方式,以保持整个项目的风格统一,下面是几个常见的例子。

    ts
    // src/router/routes.ts
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +const routes: RouteRecordRaw[] = [
    +  // 文章列表页
    +  // 翻页逻辑是改变页码进行跳转,因此需要添加动态参数 `:page`
    +  // 可以在组件内使用路由实例 `route.params.page` 拿到页码
    +  // e.g. `https://example.com/articles/1`
    +  {
    +    path: '/articles/:page',
    +    name: 'articles',
    +    component: () => import('@views/articles.vue'),
    +  },
    +  // 通知列表页
    +  // 翻页逻辑使用 AJAX 无刷翻页,这种情况则可以不配置页码参数
    +  // e.g. `https://example.com/notifications`
    +  {
    +    path: '/notifications',
    +    name: 'notifications',
    +    component: () => import('@views/notifications.vue'),
    +  },
    +]
    +
    +export default routes

    列表里的资源详情页,因为访问的时候通常会带上具体的 ID 以通过接口查询详情数据,这种情况下资源就继续使用单数,例如下面这个例子。

    ts
    // src/router/routes.ts
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +const routes: RouteRecordRaw[] = [
    +  // 文章详情页
    +  // 可以在组件内使用路由实例 `route.params.id` 拿到文章 ID
    +  // e.g. `https://example.com/article/1`
    +  {
    +    path: '/article/:id',
    +    name: 'article',
    +    component: () => import('@views/article.vue'),
    +  },
    +]
    +
    +export default routes

    如果项目路由比较多,通常会对同一业务的路由增加文件夹归类,因此上面的文章列表和文章详情页,可以统一放到 article 目录下,使用 listdetail 区分是列表还是详情。

    ts
    // src/router/routes.ts
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +const routes: RouteRecordRaw[] = [
    +  // 文章相关的路由统一放在这里管理
    +  {
    +    path: '/article',
    +    name: 'article',
    +    // 这是一个配置了 `<router-view />` 标签的路由中转站组件
    +    // 目的是使其可以渲染子路由
    +    component: () => import('@cp/TransferStation.vue'),
    +    // 由于父级路由没有内容,所以重定向至列表的第 1 页
    +    // e.g. `https://example.com/article`
    +    redirect: {
    +      name: 'article-list',
    +      params: {
    +        page: 1,
    +      },
    +    },
    +    children: [
    +      // 文章列表页
    +      // e.g. `https://example.com/article/list/1`
    +      {
    +        path: 'list/:page',
    +        name: 'article-list',
    +        component: () => import('@views/article/list.vue'),
    +      },
    +      // 文章详情页
    +      // e.g. `https://example.com/article/detail/1`
    +      {
    +        path: 'detail/:id',
    +        name: 'article-detail',
    +        component: () => import('@views/article/detail.vue'),
    +      },
    +    ],
    +  },
    +]
    +
    +export default routes

    对于一些需要用多个单词才能描述的资源,可以使用 kebab-case 短横线风格命名,例如很常见的 “策划面对面” 这种栏目,在设置路由时,比较难用一个单词在 URL 里体现其含义,就需要使用这种多个单词的连接。

    ts
    // src/router/routes.ts
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +const routes: RouteRecordRaw[] = [
    +  // 面对面栏目
    +  {
    +    path: '/face-to-face',
    +    name: 'face-to-face',
    +    component: () => import('@views/face-to-face.vue'),
    +  },
    +]
    +
    +export default routes

    这种情况如果需要使用文件夹管理多个路由,同样建议使用 kebab-case 短横线风格命名,例如上面这个 “策划面对面” 栏目,可能会归属于 “开发计划” 这个业务下,那么其父级文件夹就可以使用 development-plan 这样的短横线命名。

    公共组件

    公共组件组件通常存放在 src/components 目录下,也可以视不同的使用情况,在路由文件夹下创建属于当前路由的 components 目录,作为一个小范围共享的公共组件目录来管理,而 src/components 则只存放全局性质的公共组件。

    本节最开始提到了路由组件和公共组件并不相同,虽然都是组件,但路由组件代表的是整个页面,而公共组件更多是作为一个页面上的某个可复用的部件,如果开发者写过 Flutter ,应该能够更深刻的理解到这里的公共组件更接近于 Widget 性质的小部件。

    公共组件通常使用 PascalCase 帕斯卡命名法,也就是大驼峰,为什么不用小驼峰呢?

    这是源于 Vue 官网的一个 组件名格式 命名推荐:

    使用 PascalCase 作为组件名的注册格式,这是因为:
    PascalCase 是合法的 JavaScript 标识符。这使得在 JavaScript 中导入和注册组件都很容易,同时 IDE 也能提供较好的自动补全。
    ><PascalCase /> 在模板中更明显地表明了这是一个 Vue 组件,而不是原生 HTML 元素。同时也能够将 Vue 组件和自定义元素( web components )区分开来。

    而且实际使用 PascalCase 风格的编码过程中,在 VSCode 里可以得到不同颜色的高亮效果,这与 kebab-case 风格的 HTML 标签可以快速区分。

    vue
    <template>
    +  <!-- 普通的 HTML 标签 -->
    +  <!-- 在笔者的 VSCode 风格里呈现为桃红色 -->
    +  <div></div>
    +
    +  <!-- 大驼峰组件 -->
    +  <!-- 在笔者的 VSCode 风格里呈现为绿色 -->
    +  <PascalCase />
    +</template>

    养成这种习惯还有一个好处,就是使用 UI 框架的时候,例如 Ant Design Vue 的 Select 组件 ,在其文档上演示的是全局安装的写法:

    vue
    <template>
    +  <a-select>
    +    <a-select-option value="Hello">Hello</a-select-option>
    +  </a-select>
    +</template>

    而实际使用时,为了更好的配合构建工具进行 Tree Shaking 移除没有用到的组件,都是按需引入 UI 框架的组件,因此如果平时有养成习惯使用 PascalCase 命名,就可以很轻松的知道上面的 <a-select-option /> 组件应该对应的是 <SelectOption /> ,因此是这样按需导入:

    ts
    import { Select, SelectOption } from 'ant-design-vue'

    可以说, PascalCase 这个命名方式也是目前流行 UI 框架都在使用的命名规范。

    TypeScript 文件

    在 Vue 项目里,虽然 TypeScript 代码可以写在组件里,但由于很多功能实现是可以解耦并复用,所以经常会有专门的目录管理公共方法,这样做也可以避免在一个组件里写出一两千行代码从而导致维护成本提高。

    libs 文件

    笔者习惯将这些方法统一放到 src/libs 目录下,按照业务模块或者功能的相似度,以一个名词或者动词作为文件命名。

    例如常用的正则表达式,可以归类到 regexp.ts 里。

    ts
    // src/libs/regexp.ts
    +
    +// 校验手机号格式
    +export function isMob(phoneNumber: number | string) {
    +  // ...
    +}
    +
    +// 校验电子邮箱格式
    +export function isEmail(email: string) {
    +  // ...
    +}
    +
    +// 校验网址格式
    +export function isUrl(url: string) {
    +  // ...
    +}
    +
    +// 校验身份证号码格式
    +export function isIdCard(idCardNumber: string) {
    +  // ...
    +}
    +
    +// 校验银行卡号码格式
    +export function isBankCard(bankCardNumber: string) {
    +  // ...
    +}

    统一使用命名导出,这样一个 TS 文件就像一个 npm 包一样,在使用的时候就可以从这个 “包” 里面导出各种要用到的方法直接使用,无需在组件里重复编写判断逻辑。

    ts
    import { isMob, isEmail } from '@libs/regexp'

    其他诸如常用到的短信验证 sms.ts 、登录逻辑 login.ts 、数据格式转换 format.ts 都可以像这样单独抽出来封装,这种与业务解耦的封装方式非常灵活,以后不同项目如果也有类似的需求,就可以直接拿过去复用了!

    types 文件

    对于经常用到的 TypeScript 类型,也可以抽离成公共文件,笔者习惯在 src/types 目录管理公共类型,统一使用 .ts 作为扩展名并在里面导出 TS 类型,而不使用 .d.ts 这个类型声明文件。

    这样做的好处是在使用到相应类型时,可以通过 import type 显式导入,在后期的项目维护过程中,可以很明确的知道类型来自于哪里,并且更接近从 npm 包里导入类型使用的开发方式。

    例如上文配置路由的例子里,就是从 Vue Router 里导入了路由的类型:

    ts
    // src/router/routes.ts
    +import type { RouteRecordRaw } from 'vue-router'
    +
    +const routes: RouteRecordRaw[] = [
    +  // ...
    +]
    +
    +export default routes

    在 types 目录下,可以按照业务模块创建多个模块文件分别维护不同的 TS 类型,并统一在 index.ts 里导出:

    bash
    src
    +└─types
    +   # 入口文件
    +  ├─index.ts
    +   # 管理不同业务的公共类型
    +  ├─user.ts
    +  ├─game.ts
    +  └─news.ts

    例如 game.ts 可以维护经常用到的游戏业务相关类型,其中为了避免和其他模块命名冲突,以及一眼可以看出是来自哪个业务的类型,可以统一使用业务模块的名称作为前缀。

    ts
    // src/types/game.ts
    +
    +// 游戏公司信息
    +export interface GameCompany {
    +  // ...
    +}
    +
    +// 游戏信息
    +export interface GameInfo {
    +  id: number
    +  name: string
    +  gameCompany: GameCompany
    +  // ...
    +}

    将该模块的所有类型在 index.ts 里全部导出:

    ts
    // src/types/index.ts
    +export * from './game'

    在组件里就可以这样使用该类型:

    ts
    // 可以从 `types` 里统一导入,而不必明确到 `types/game`
    +import type { GameInfo } from '@/types'
    +
    +const game: GameInfo = {
    +  id: 1,
    +  name: 'Contra',
    +  gameCompany: {},
    +}
    +console.log(game)

    TS 类型都遵循 PascalCase 命名风格,方便和声明的变量作为区分,大部分情况下一看到 GameInfo 就知道是类型,而 gameInfo 则是一个变量。

    代码命名技巧

    在编写 JavaScript / TypeScript 时,为变量和函数的命名也是新手开发者容易花费比较多时间的一件事情,笔者也分享自己常用的命名套路,可以大幅度降低命名的思考时间,而且可以体现一定的语义化。

    变量的命名

    首先笔者遵循变量只使用 camelCase 小驼峰风格的基本原则,并且根据不同的类型,搭配不同的命名前缀或后缀。

    对于 string 字符串类型,使用相关的名词命名即可。

    ts
    import { ref } from 'vue'
    +
    +// 用户名
    +const username = ref<string>('Petter')
    +
    +// 职业
    +const profession = ref<string>('Front-end Engineer')

    对于 number 数值类型,除了一些本身可以代表数字的名词,例如年龄 age 、秒数 seconds ,其他的情况可以搭配后缀命名,常用的后缀有 CountNumberSizeAmount 等和单位有关的名词。

    ts
    import { ref } from 'vue'
    +
    +// 最大数量
    +const maxCount = ref<number>(100)
    +
    +// 页码
    +const pageNumber = ref<number>(1)
    +
    +// 每页条数
    +const pageSize = ref<number>(10)
    +
    +// 折扣金额
    +const discountAmount = ref<number>(50)

    对于 boolean 布尔值类型,可搭配 ishas 等 Be 动词或判断类的动词作为前缀命名,并视情况搭配行为动词和目标名词,或者直接使用一些状态形容词。

    ts
    import { ref } from 'vue'
    +
    +// 是否显示弹窗
    +const isShowDialog = ref<boolean>(false)
    +
    +// 用户是否为 VIP 会员
    +const isVIP = ref<boolean>(true)
    +
    +// 用户是否有头像
    +const hasAvatar = ref<boolean>(true)
    +
    +// 是否被禁用
    +const disabled = ref<boolean>(true)
    +
    +// 是否可见
    +const visible = ref<boolean>(true)

    之所以要搭配 is 开头,是为了和函数区分,例如 showDialog() 是显示弹窗的方法,而 isShowDialog 才是一个布尔值用于逻辑判断。

    对于数组,通常使用名词的复数形式,或者名词加上 List 结尾作为命名,数组通常会有原始数据类型的数组,也有 JSON 对象数组,笔者习惯对前者使用名词复数,对后者使用 List 结尾。

    ts
    import { ref } from 'vue'
    +
    +// 每个 Item 都是字符串
    +const tags = ref<string>(['食物', '粤菜', '卤水'])
    +
    +// 每个 Item 都是数值
    +const tagIds = ref<number>([1, 2, 3])
    +
    +// 每个 Item 都是 JSON 对象
    +const memberList = ref<Member[]>([
    +  {
    +    id: 1,
    +    name: 'Petter',
    +  },
    +  {
    +    id: 2,
    +    name: 'Marry',
    +  },
    +])

    如果是作为函数的入参,通常也遵循变量的命名规则。

    除非是一些代码量很少的操作,可以使用 ij 等单个字母的变量名,例如提交接口参数时,经常只需要提交一个 ID 数组,从 JSON 数组里提取 ID 数组时就可以使用这种简短命名。

    ts
    // `map` 的参数命名就可以使用 `i` 这种简短命名
    +const ids = dataList.map((i) => i.id)

    函数的命名

    函数的命名也是只使用 camelCase 小驼峰风格,通常根据该函数是同步操作还是异步操作,使用不同的动词前缀。

    获取数据的函数,通常使用 getqueryread 等代表会返回数据的动词作为前缀,如果还是觉得很难确定使用哪一个,可以统一使用 get ,也可以根据函数的操作性质来决定:

    • 如果是同步操作,不涉及接口请求,使用 get 作为前缀
    • 如果是需要从 API 接口查询数据的异步操作,使用 query 作为前缀
    • 如果是 Node.js 程序这种需要进行文件内容读取的场景,就使用 read
    ts
    // 从本地存储读取数据
    +// 因为是同步操作,所以使用 `get` 前缀
    +function getLoginInfo() {
    +  try {
    +    const info = localStorage.getItem('loginInfo')
    +    return info ? JSON.parse(info) : null
    +  } catch (e) {
    +    return null
    +  }
    +}
    +
    +// 从接口查询数据
    +// 因为是异步操作,需要去数据库查数据,所以使用 `query` 前缀
    +async function queryMemberInfo(id: number) {
    +  try {
    +    const res = await fetch(`https://example.com/api/member/${id}`)
    +    const json = await res.json()
    +    return json
    +  } catch (e) {
    +    return null
    +  }
    +}

    修改数据的函数,通常使用 saveupdatedelete 等会变更数据的动词作为前缀,一般情况下:

    • 数据存储可以统一使用 save
    • 如果要区分新建或者更新操作,可以对新建操作使用 create ,对更新操作使用 update
    • 删除使用 deleteremove
    • 如果是 Node.js 程序需要对文件写入内容,使用 write
    • 表单验证合法性等场景,可以使用 verifycheck
    • 切换可见性可以用 showhide ,如果是写在一个函数里,可以使用 toggle
    • 发送验证码、发送邮件等等可以使用 send
    • 打开路由、打开外部 URL 可以使用 open

    当然以上只是一些常用到的命名技巧建议,对于简单的业务,例如一个 H5 活动页面,也可以在同步操作时使用 set 表示可以直接设置,在异步操作时使用 save 表示需要提交保存。

    ts
    // 将数据保存至本地存储
    +// 因为是同步操作,所以使用 `set` 前缀
    +function setLoginInfo(info: LoginInfo) {
    +  try {
    +    localStorage.setItem('loginInfo', JSON.stringify(info))
    +    return true
    +  } catch (e) {
    +    return false
    +  }
    +}
    +
    +// 将数据通过接口保存到数据库
    +// 因为是异步操作,所以使用 `save` 前缀
    +async function saveMemberInfo(id: number, data: MemberDTO) {
    +  try {
    +    const res = await fetch(`https://example.com/api/member/${id}`, {
    +      method: 'POST',
    +      body: JSON.stringify(data),
    +    })
    +    const json = await res.json()
    +    return json.code === 200
    +  } catch (e) {
    +    return false
    +  }
    +}

    Class 类上的方法和函数命名规则一样,但 Class 本身使用 PascalCase 命名法,代表这是一个类,在调用的时候需要 new

    ts
    // 类使用 PascalCase 命名法
    +class Hello {
    +  name: string
    +
    +  constructor(name: string) {
    +    this.name = name
    +  }
    +
    +  say() {
    +    console.log(`Hello ${this.name}`)
    +  }
    +}
    +
    +const hello = new Hello('World')
    +hello.say() // Hello World

    希望曾经在命名上有过困扰的开发者,不再有此烦恼,编写代码更加高效率!

    Released under the MIT License.

    + + + + \ No newline at end of file diff --git a/engineering.html b/engineering.html new file mode 100644 index 00000000..4ec5a76e --- /dev/null +++ b/engineering.html @@ -0,0 +1,307 @@ + + + + + + 了解前端工程化 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
    Skip to content
    目录

    了解前端工程化

    现在前端的工作与以前的前端开发已经完全不同了。

    刚接触前端的时候,做一个页面,是先创建 HTML 页面文件写页面结构,再在里面写 CSS 代码美化页面,再根据需要写一些 JavaScript 代码增加交互功能,需要几个页面就创建几个页面,相信大家的前端起步都是从这个模式开始的。

    而实际上的前端开发工作,早已进入了前端工程化开发的时代,已经充满了各种现代化框架、预处理器、代码编译…

    最终的产物也不再单纯是多个 HTML 页面,经常能看到 SPA / SSR / SSG 等词汇的身影。

    TIP

    现代化的开发概念 一节会介绍这些词汇的含义。

    传统开发的弊端

    在了解什么是前端工程化之前,先回顾一下传统开发存在的一些弊端,这样更能知道为什么需要它。

    在传统的前端开发模式下,前端工程师大部分只需要单纯地写写页面,都是在 HTML 文件里直接编写代码,所需要的 JavaScript 代码是通过 script 标签以内联或者文件引用的形式放到 HTML 代码里的,当然 CSS 代码也是一样的处理方式。

    例如这样:

    html
    <!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>Document</title>
    +  </head>
    +  <body>
    +    <!-- 引入 JS 文件 -->
    +    <script src="./js/lib-1.js"></script>
    +    <script src="./js/lib-2.js"></script>
    +    <!-- 引入 JS 文件 -->
    +  </body>
    +</html>

    如演示代码,虽然可以把代码分成多个文件来维护,这样可以有效降低代码维护成本,但在实际开发过程中,还是会存在代码运行时的一些问题。

    一个常见的案例

    继续用上面的演示代码,来看一个最简单的一个例子。

    先在 lib-1.js 文件里,声明一个变量:

    js
    var foo = 1

    再在 lib-2.js 文件里,也声明一个变量(没错,也是 foo ):

    js
    var foo = 2

    然后在 HTML 代码里追加一个 script ,打印这个值:

    html
    <!DOCTYPE html>
    +<html lang="en">
    +<head>
    +  <meta charset="UTF-8">
    +  <meta http-equiv="X-UA-Compatible" content="IE=edge">
    +  <meta name="viewport" content="width=device-width, initial-scale=1.0">
    +  <title>Document</title>
    +</head>
    +<body>
    +
    +  <!-- 引入 JS 文件 -->
    +  <script src="./js/lib-1.js"></script>
    +  <script src="./js/lib-2.js"></script>
    +  <!-- 引入 JS 文件 -->
    +
    +  <!-- 假设这里是实际的业务代码 -->
    +  <script>
    +    console.log(foo)
    +  </script>
    +  <!-- 假设这里是实际的业务代码 -->
    +
    +</body>
    +</html>

    先猜猜会输出什么? —— 答案是 2

    如果在开发的过程中,不知道在 lib-2.js 文件里也声明了一个 foo 变量,一旦在后面的代码里预期了 foo + 2 === 3 ,那么这样就得不到想要的结果(因为 lib-1.js 里的 foo11 + 2 等于 3 ) 。

    原因是 JavaScript 的加载顺序是从上到下,当使用 var 声明变量时,如果命名有重复,那么后加载的变量会覆盖掉先加载的变量。

    这是使用 var 声明的情况,它允许使用相同的名称来重复声明,那么换成 let 或者 const 呢?

    虽然不会出现重复声明的情况,但同样会收到一段报错:

    bash
    Uncaught SyntaxError: Identifier 'foo' has already been declared (at lib-2.js:1:1)

    这次程序直接崩溃了,因为 letconst 无法重复声明,从而抛出这个错误,程序依然无法正确运行。

    更多问题

    以上只是一个最简单的案例,就暴露出了传统开发很大的弊端,然而并不止于此,实际上,存在诸如以下这些问题:

    1. 如本案例,可能存在同名的变量声明,引起变量冲突
    2. 引入多个资源文件时,比如有多个 JS 文件,在其中一个 JS 文件里面使用了在别处声明的变量,无法快速找到是在哪里声明的,大型项目难以维护
    3. 类似第 1 、 2 点提到的问题无法轻松预先感知,很依赖开发人员人工定位原因
    4. 大部分代码缺乏分割,比如一个工具函数库,很多时候需要整包引入到 HTML 里,文件很大,然而实际上只需要用到其中一两个方法
    5. 由第 4 点大文件延伸出的问题, script 的加载从上到下,容易阻塞页面渲染
    6. 不同页面的资源引用都需要手动管理,容易造成依赖混乱,难以维护
    7. 如果要压缩 CSS 、混淆 JS 代码,也是要人力操作使用工具去一个个处理后替换,容易出错

    当然,实际上还会有更多的问题会遇到。

    工程化带来的优势

    为了解决传统开发的弊端,前端也开始引入工程化开发的概念,借助工具来解决人工层面的烦琐事情。

    开发层面的优势

    传统开发的弊端 里,主要列举的是开发层面的问题,工程化首要解决的当然也是在开发层面遇到的问题。

    在开发层面,前端工程化有以下这些好处:

    1. 引入了模块化和包的概念,作用域隔离,解决了代码冲突的问题
    2. 按需导出和导入机制,让编码过程更容易定位问题
    3. 自动化的代码检测流程,有问题的代码在开发过程中就可以被发现
    4. 编译打包机制可以让使用开发效率更高的编码方式,比如 Vue 组件、 CSS 的各种预处理器
    5. 引入了代码兼容处理的方案( e.g. Babel ),可以让开发者自由使用更先进的 JavaScript 语句,而无需顾忌浏览器兼容性,因为最终会转换为浏览器兼容的实现版本
    6. 引入了 Tree Shaking 机制,清理没有用到的代码,减少项目构建后的体积

    还有非常多的体验提升,列举不完。而对应的工具,根据用途也会有非常多的选择,在后面的学习过程中,会一步一步体验到工程化带来的好处。

    团队协作的优势

    除了对开发者有更好的开发体验和效率提升,对于团队协作,前端工程化也带来了更多的便利,例如下面这些场景:

    统一的项目结构

    以前的项目结构比较看写代码的人的喜好,虽然一般在研发部门里都有 “团队规范” 这种东西,但靠自觉性去配合的事情,还是比较难做到统一,特别是项目很赶的时候。

    工程化后的项目结构非常清晰和统一,以 Vue 项目来说,通过脚手架创建一个新项目之后,它除了提供能直接运行 Hello World 的基础代码之外,还具备了如下的统一目录结构:

    • src 是源码目录
    • src/main.ts 是入口文件
    • src/views 是路由组件目录
    • src/components 是子组件目录
    • src/router 是路由目录

    虽然也可以自行调整成别的结构,但根据笔者在多年的工作实际接触下来,以及从很多开源项目的代码里看到的,都是沿用脚手架创建的项目结构(不同脚手架创建的结构会有所不同,但基于同一技术栈的项目基本上都具备相同的结构)。

    TIP

    脚手架的升级与配置 一章可以学习如何使用脚手架创建 Vue 3 项目。

    统一的代码风格

    不管是接手其他人的代码或者是修改自己不同时期的代码,可能都会遇到这样的情况,例如一个模板语句,上面包含了很多属性,有的人喜欢写成一行,属性多了维护起来很麻烦,需要花费较多时间辨认:

    vue
    <template>
    +  <div class="list">
    +    <!-- 这个循环模板有很多属性 -->
    +    <div class="item" :class="{ `top-${index + 1}`: index < 3 }" v-for="(item, index)
    +    in list" :key="item.id" @click="handleClick(item.id)">
    +      <span>{{ item.text }}</span>
    +    </div>
    +    <!-- 这个循环模板有很多属性 -->
    +  </div>
    +</template>

    而工程化配合统一的代码格式化规范,可以让不同人维护的代码,最终提交到 Git 上的时候,风格都保持一致,并且类似这种很多属性的地方,都会自动帮格式化为一个属性一行,维护起来就很方便:

    vue
    <template>
    +  <div class="list">
    +    <!-- 这个循环模板有很多属性 -->
    +    <div
    +      class="item"
    +      :class="{ `top-${index + 1}`: index < 3 }"
    +      v-for="(item, index) in list"
    +      :key="item.id"
    +      @click="handleClick(item.id)"
    +    >
    +      <span>{{ item.text }}</span>
    +    </div>
    +    <!-- 这个循环模板有很多属性 -->
    +  </div>
    +</template>

    同样的,写 JavaScript 时也会有诸如字符串用双引号还是单引号,缩进是 Tab 还是空格,如果用空格到底是要 4 个空格还是 2 个空格等一堆 “没有什么实际意义” 、但是不统一的话协作起来又很难受的问题……

    在工程化项目这些问题都可以交给程序去处理,在书写代码的时候,开发者可以先按照自己的习惯书写,然后再执行命令进行格式化,或者是在提交代码的时候配合 Git Hooks 自动格式化,都可以做到统一风格。

    TIP

    添加协作规范 一节可以学习如何给项目添加统一的协作规范。

    可复用的模块和组件

    传统项目比较容易被复用的只有 JavaScript 代码和 CSS 代码,会抽离公共函数文件上传到 CDN ,然后在 HTML 页面里引入这些远程资源, HTML 代码部分通常只有由 JS 创建的比较小段的 DOM 结构。

    并且通过 CDN 引入的资源,很多时候都是完整引入,可能有时候只需要用到里面的一两个功能,却要把很大的完整文件都引用进来。

    这种情况下,在前端工程化里,就可以抽离成一个开箱即用的 npm 组件包,并且很多包都提供了模块化导出,配合构建工具的 Tree Shaking ,可以抽离用到的代码,没有用到的其他功能都会被抛弃,不会一起发布到生产环境。

    TIP

    依赖包和插件 一节可以学习如何查找和使用开箱即用的 npm 包。

    代码健壮性有保障

    传统的开发模式里,只能够写 JavaScript ,而在工程项目里,可以在开发环境编写带有类型系统的 TypeScript ,然后再编译为浏览器能认识的 JavaScript 。

    在开发过程中,编译器会检查代码是否有问题,比如在 TypeScript 里声明了一个布尔值的变量,然后不小心将它赋值为数值:

    ts
    // 声明一个布尔值变量
    +let bool: boolean = true
    +
    +// 在 TypeScript ,不允许随意改变类型,这里会报错
    +bool = 3

    编译器检测到这个行为的时候就会抛出错误:

    bash
    # ...
    +return new TSError(diagnosticText, diagnosticCodes);
    +           ^
    +TSError:  Unable to compile TypeScript:
    +src/index.ts:2:1 - error TS2322: Type 'number' is not assignable to type 'boolean'.
    +
    +2 bool = 3
    +  ~~~~
    +# ...

    从而得以及时发现问题并修复,减少线上事故的发生。

    团队开发效率高

    在前后端合作环节,可以提前 Mock 接口与后端工程师同步开发,如果遇到跨域等安全限制,也可以进行本地代理,不受跨域困扰。

    前端工程在开发过程中,还有很多可以交给程序处理的环节,像前面提到的代码格式化、代码检查,还有在部署上线的时候也可以配合 CI/CD 完成自动化流水线,不像以前改个字都要找服务端工程师去更新,可以把非常多的人力操作剥离出来交给程序。

    求职竞争上的优势

    近几年前端开发领域的相关岗位,都会在招聘详情里出现类似的描述:

    熟悉 Vue / React 等主流框架,对前端组件化和模块化有深入的理解和实践
    熟悉面向组件的开发模式,熟悉 Webpack / Vite 等构建工具
    熟练掌握微信小程序开发,熟悉 Taro 框架或 uni-app 框架优先
    熟悉 Scss / Less / Stylus 等预处理器的使用
    熟练掌握 TypeScript 者优先
    有良好的代码风格,结构设计与程序架构者优先
    了解或熟悉后端开发者优先(如 Java / Go / Node.js )

    知名企业对 1-3 年工作经验的初中级工程师,更是明确要求具备前端工程化开发的能力:

    组件化开发、模块化开发、 Webpack / Vite 构建工具、 Node.js 开发… 这些技能都属于前端工程化开发的知识范畴,不仅在面试的时候会提问,入职后新人接触的项目通常也是直接指派前端工程化项目,如果能够提前掌握相关的知识点,对求职也是非常有帮助的!

    Vue.js 与工程化

    在上一节提到了前端工程化 在求职竞争上的优势 ,里面列出的招聘要求例子都提及到了 Vue 和 React 这些主流的前端框架,前端框架是前端工程化开发里面不可或缺的成员。

    框架能够充分的利用前端工程化相关的领先技术,不仅在开发层面降低开发者的上手难度、提升项目开发效率,在构建出来的项目成果上也有着远比传统开发更优秀的用户体验。

    本书结合 Vue.js 框架 3.0 系列的全新版本,将从项目开发的角度,在帮助开发者入门前端工程化的同时,更快速的掌握一个流行框架的学习和使用。

    了解 Vue.js 与全新的 3.0 版本

    Vue.js(发音为 /vjuː/ ,类似 view )是一个易学易用,性能出色,适用场景丰富的 Web 前端框架,从 2015 年发布 1.0 版本以来,受到了全世界范围的前端开发者喜爱,已成为当下最受欢迎的前端框架之一。

    Vue 一直紧跟广大开发者的需求迭代发展,保持着它活跃的生命力。

    2020 年 9 月 18 日, Vue.js 发布了 3.0 正式版,在大量开发者长达约一年半的使用和功能改进反馈之后, Vue 又于 2022 年 2 月 7 日发布了 3.2 版本,同一天, Vue 3 成为 Vue.js 框架全新的默认版本 (在此之前,通过 npm install vue 的默认版本还是 Vue 2 )。

    也就是在未来的日子里, Vue 3 将随着时间的推移,逐步成为 Vue 生态的主流版本,是时候学习 Vue 3 了!

    如果还没有体验过 Vue ,可以把以下代码复制到的代码编辑器,保存成一个 HTML 文件(例如: hello.html ),并在浏览器里打开访问,同时请唤起浏览器的控制台面板(例如 Chrome 浏览器是按 F12 或者鼠标右键点 “检查” ),在 Console 面板查看 Log 的打印。

    html
    <!-- 这是使用 Vue 实现的 demo -->
    +<!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>Hello Vue</title>
    +    <script src="https://unpkg.com/vue@3"></script>
    +  </head>
    +  <body>
    +    <div id="app">
    +      <!-- 通过 `{{ 变量名 }}` 语法渲染响应式变量 -->
    +      <p>Hello {{ name }}!</p>
    +
    +      <!-- 通过 `v-model` 双向绑定响应式变量 -->
    +      <!-- 通过 `@input` 给输入框绑定输入事件 -->
    +      <input
    +        type="text"
    +        v-model="name"
    +        placeholder="输入名称打招呼"
    +        @input="printLog"
    +      />
    +
    +      <!-- 通过 `@click` 给按钮绑定点击事件 -->
    +      <button @click="reset">重置</button>
    +    </div>
    +
    +    <script>
    +      const { createApp, ref } = Vue
    +      createApp({
    +        // `setup` 是一个生命周期钩子
    +        setup() {
    +          // 默认值
    +          const DEFAULT_NAME = 'World'
    +
    +          // 用于双向绑定的响应式变量
    +          const name = ref(DEFAULT_NAME)
    +
    +          // 打印响应式变量的值到控制台
    +          function printLog() {
    +            // `ref` 变量需要通过 `.value` 操作值
    +            console.log(name.value)
    +          }
    +
    +          // 重置响应式变量为默认值
    +          function reset() {
    +            name.value = DEFAULT_NAME
    +            printLog()
    +          }
    +
    +          // 需要 `return` 出去才可以被模板使用
    +          return { name, printLog, reset }
    +        },
    +      }).mount('#app')
    +    </script>
    +  </body>
    +</html>

    这是一个基于 Vue 3 组合式 API 语法的 demo ,它包含了两个主要功能:

    1. 可以在输入框修改输入内容,上方的 Hello World! 以及浏览器控制台的 Log 输出,都会随着输入框内容的变更而变化
    2. 可以点击 “重置” 按钮,响应式变量被重新赋值的时候,输入框的内容也会一起变化为新的值

    这是 Vue 的特色之一:数据的双向绑定。

    对比普通的 HTML 文件需要通过输入框的 oninput 事件手动编写视图的更新逻辑, Vue 的双向绑定功能大幅度减少了开发过程的编码量。

    在未接触 Vue 这种编程方式之前,相信大部分人首先想到的是直接操作 DOM 来实现需求,为了更好的进行对比,接下来用原生 JavaScript 实现一次相同的功能:

    html
    <!-- 这是使用原生 JavaScript 实现的 demo -->
    +<!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>Hello World</title>
    +  </head>
    +  <body>
    +    <div id="app">
    +      <!-- 通过一个 `span` 标签来指定要渲染数据的位置 -->
    +      <p>Hello <span id="name"></span>!</p>
    +
    +      <!-- 通过 `oninput` 给输入框绑定输入事件 -->
    +      <input
    +        id="input"
    +        type="text"
    +        placeholder="输入名称打招呼"
    +        oninput="handleInput()"
    +      />
    +
    +      <!-- 通过 `onclick` 给按钮绑定点击事件 -->
    +      <button onclick="reset()">重置</button>
    +    </div>
    +
    +    <script>
    +      // 默认值
    +      const DEFAULT_NAME = 'World'
    +
    +      // 要操作的 DOM 元素
    +      const nameElement = document.querySelector('#name')
    +      const inputElement = document.querySelector('#input')
    +
    +      // 处理输入
    +      function handleInput() {
    +        const name = inputElement.value
    +        nameElement.innerText = name
    +        printLog()
    +      }
    +
    +      // 打印输入框的值到控制台
    +      function printLog() {
    +        const name = inputElement.value
    +        console.log(name)
    +      }
    +
    +      // 重置 DOM 元素的文本和输入框的值
    +      function reset() {
    +        nameElement.innerText = DEFAULT_NAME
    +        inputElement.value = DEFAULT_NAME
    +        printLog()
    +      }
    +
    +      // 执行一次初始化,赋予 DOM 元素默认文本和输入框的默认值
    +      window.addEventListener('load', reset)
    +    </script>
    +  </body>
    +</html>

    虽然两个方案总的代码量相差不大,但可以看到两者的明显区别:

    1. Vue 只需要对一个 name 变量的进行赋值操作,就可以轻松实现视图的同步更新
    2. 使用原生 JavaScript 则需要频繁的操作 DOM 才能达到输入内容即时体现在文本 DOM 上面,并且还要考虑 DOM 是否已渲染完毕,否则操作会出错

    Vue 的这种编程方式,称之为 “数据驱动” 编程。

    如果在一个页面上频繁且大量的操作真实 DOM ,频繁的触发浏览器回流( Reflow )与重绘( Repaint ),会带来很大的性能开销,从而造成页面卡顿,在大型项目的性能上很是致命。

    而 Vue 则是通过操作虚拟 DOM ( Virtual DOM ,简称 VDOM ),每一次数据更新都通过 Diff 算法找出需要更新的节点,只更新对应的虚拟 DOM ,再去映射到真实 DOM 上面渲染,以此避免频繁或大量的操作真实 DOM 。

    TIP

    虚拟 DOM 是一种编程概念,是指将原本应该是真实 DOM 元素的 UI 界面,用数据结构来组织起完整的 DOM 结构,再同步给真实 DOM 渲染,减少浏览器的回流与重绘。

    在 JavaScript 里,虚拟 DOM 的表现是一个 Object 对象,其中需要包含指定的属性(例如 Vue 的虚拟 DOM 需要用 type 来指定当前标签是一个 <div /> 还是 <span /> ),然后框架会根据对象的属性去转换为 DOM 结构并最终完成内容的显示。

    更多关于 Vue 虚拟 DOM 和性能优化可以查看官网的 渲染机制 一章进行了解。

    Vue 3.0 版本还引入了组合式 API 的概念,更符合软件工程 “高内聚,低耦合” 的思想,让开发者可以更灵活的管理自己的逻辑代码,更方便的进行抽离封装再复用,不管是大型项目还是流水线业务,开箱即用的逻辑代码都是提升开发效率的利器。

    Vue 与工程化之间的关联

    在已经对 Vue 做了初步了解之后,可能有读者会问:“既然 Vue 的使用方式也非常简单,可以像 jQuery 这些经典类库一样在 HTML 引入使用,那么 Vue 和工程化有什么关联呢?”

    Vue.js 是一个框架,框架除了简化编码过程中的复杂度之外,面对不同的业务需求还提供了通用的解决方案,而这些解决方案,通常是将前端工程化里的很多种技术栈组合起来串成一条条技术链,一环扣一环,串起来就是一个完整的工程化项目。

    举一个常见的例子,比如上一节内容 了解 Vue.js 与全新的 3.0 版本 里的 demo 是一个简单的 HTML 页面,如果业务稍微复杂一点,比如区分了 “首页” 、 “列表页” 、 “内容页” 这样涉及到多个页面,传统的开发方案是通过 A 标签跳转到另外一个页面,在跳转期间会产生 “新页面需要重新加载资源、会有短暂白屏” 等情况,用户体验不太好。

    Vue 提供了 Vue Router 实现路由功能,利用 History API 实现单页面模式(可在 现代化的开发概念 部分了解区别),在一个 HTML 页面里也可以体验 “页面跳转” 这样的体验,但如果页面很多,所有代码都堆积在一个 HTML 页面里,就很难维护。

    借助前端工程化的构建工具,开发者可以编写 .vue 单组件文件,将多个页面的代码根据其功能模块进行划分,可拆分到多个单组件文件里维护并进行合理复用,最终通过构建工具编译再合并,最终生成浏览器能访问的 HTML / CSS / JS 文件,这样的开发过程,用户体验没有影响,但开发体验大大提升。

    类似这样一个个业务场景会积少成多,把 Vue 和工程化结合起来,处理问题更高效更简单。

    选择 Vue 入门工程化的理由

    虽然前端的流行框架有主流的 Angular 、 React 和 Vue ,也有新兴的 Svelte 等等,每一个框架都有自己的特色,那为什么建议选择 Vue 来入门工程化呢?

    最主要的两个原因是:

    1. 职场对 Vue 技术栈的需求量大,容易找工作
    2. 上手门槛低,会一些基础的 HTML / CSS / JavaScript 语法知识,就能够轻松上手 Vue 的组件开发

    第一个原因在 求职竞争上的优势 已有进行过说明,掌握一门流行框架已经是前端岗位必备的技能,几乎所有公司在招聘前端工程师的时候都要求会 Vue 。

    这里主要讲讲第二个原因,在 Vue 与工程化之间的关联 里提到了开发者可以编写 .vue 文件,这是一个 Vue 专属的文件扩展名,官方名称是 Single-File Component ,简称 SFC ,也就是单文件组件。

    .vue 文件最大的特色就是支持像编写 .html 文件一样,在文件里写 HTML / CSS / JS 代码,不仅结构相似,在代码书写上,两者的语法也是十分接近:

    .vue 文件.html 文件
    <template /> 部分HTML 代码
    <style /> 部分CSS 代码
    <script /> 部分JavaScript 代码

    下面就是一个最基础的 Vue 组件结构,可以看到和 HTML 文件是非常的相似:

    vue
    <!-- `template` 对应 HTML 代码 -->
    +<template>
    +  <div>
    +    <!-- 一些 HTML  -->
    +  </div>
    +</template>
    +
    +<!-- `script` 部分对应 JavaScript 代码 -->
    +<!-- 还支持其他语言,例如 `lang="ts"` 代表当前使用 TypeScript 编写 -->
    +<script>
    +export default {
    +  // 这里是变量、函数等逻辑代码
    +}
    +</script>
    +
    +<!-- `style` 部分对应 CSS 代码 -->
    +<!-- 还支持开启 `scoped` 标识,让 CSS 代码仅对当前组件生效,不会全局污染 -->
    +<style scoped>
    +/* 一些 CSS 代码 */
    +</style>

    Vue 组件不仅支持这些语言的所有基础用法,还增加了非常多更高效的功能,在后面 Vue3 教程的 单组件的编写 一章会有详细的介绍。

    现代化的开发概念

    在本章最开始的时候提到了 SPA / SSR / SSG 等词汇,这些词汇是一些现代前端工程化开发的概念名词缩写,代表着不同的开发模式和用户体验。

    当下主流的前端框架都提供了这些开发模式的支持,因此在学习前端工程化和 Vue 开发的过程中,会不定期的看到这一类词汇,在实际工作业务的技术选型时,面对不同的业务场景也要考虑好需要使用什么样的开发模式,提前了解这些概念,对以后的工作也会很有帮助。

    MPA 与 SPA

    首先来看 MPA 与 SPA ,这代表着两个完全相反的开发模式和用户体验,它们的全称和中文含义如下:

    名词全称中文
    MPAMulti-Page Application多页面应用
    SPASingle-Page Application单页面应用

    多页面应用

    MPA 多页面应用是最传统的网站体验,当一个网站有多个页面时,会对应有多个实际存在的 HTML 文件,访问每一个页面都需要经历一次完整的页面请求过程:

    bash
    # 传统的页面跳转过程
    +
    +从用户点击跳转开始:
    +---> 浏览器打开新的页面
    +---> 请求【所有】资源
    +---> 加载 HTML 、CSS  JS  图片等资源
    +---> 完成新页面的渲染
    MPA 的优点

    作为最传统也是最被广泛运用的模式,自然有它的优势存在:

    • 首屏加载速度快

    因为 MPA 的页面源码都是实实在在的写在 HTML 文件里,所以当 HTML 文件被访问成功,内容也就随即呈现(在不考虑额外的 CSS 、 图片加载速度的情况下,这种模式的内容呈现速度是最快的)。

    • SEO 友好,容易被搜索引擎收录

    如果读者有稍微了解过一些 SEO 知识,会知道除了网页的 TKD 三要素之外,网页的内容也影响收录的关键因素,传统的多页面应用,网页的内容都是直接位于 HTML 文件内,例如下面这个有很多内容的网页:

    右键查看该网页的源代码,可以看到网页内容对应的 HTML 结构也是包含在 .html 文件里。

    TIP

    网页的 TKD 三要素是指一个网页的三个关键信息,含义如下:

    T ,指 Title ,网站的标题,即网页的 <title>网站的标题</title> 标签。

    K ,指 Keywords ,网站的关键词,即网页的 <meta name="Keywords" content="关键词1,关键词2,关键词3" /> 标签。

    D ,指 Description ,网站的描述,即网页的 <meta name="description" content="网站的描述" /> 标签。

    这三个要素标签都位于 HTML 文件的 <head /> 标签内。

    • 容易与服务端语言结合

    由于传统的页面都是由服务端直出,所以可以使用 PHP 、 JSP 、 ASP 、 Python 等非前端语言或技术栈来编写页面模板,最终输出 HTML 页面到浏览器访问。

    MPA 的缺点

    说完 MPA 的优点,再来看看它的缺点,正因为有这些缺点的存在,才会催生出其他更优秀的开发模式出现。

    • 页面之间的跳转访问速度慢

    正如它的访问流程,每一次页面访问都需要完整的经历一次渲染过程,哪怕从详情页 A 的 “相关阅读” 跳转到详情页 B ,这种网页结构一样,只有内容不同的两个页面,也需要经历这样的过程。

    • 用户体验不够友好

    如果网页上的资源较多或者网速不好,这个过程就会有明显的卡顿或者布局错乱,影响用户体验。

    • 开发成本高

    传统的多页面模式缺少前端工程化的很多优秀技术栈支持,前端开发者在刀耕火种的开发过程中效率低下。如果是基于 PHP 等非前端语言开发,工作量通常更是压在一名开发者身上,无法做到前后端分离来利用好跨岗位协作。

    TIP

    此处列举的多页面应用问题均指传统开发模式下的多页面,之所以特地说明,是因为后文还会有新的技术栈来实现多页面应用,但实现原理和体验并不一样。

    单页面应用

    正因为传统的多页面应用存在了很多无法解决的开发问题和用户体验问题,催生了现代化的 SPA 单页面应用技术的诞生。

    SPA 单页面应用是现代化的网站体验,与 MPA 相反,不论站点内有多少个页面,在 SPA 项目实际上只有一个 HTML 文件,也就是 index.html 首页文件。

    它只有第一次访问的时候才需要经历一次完整的页面请求过程,之后的每个内部跳转或者数据更新操作,都是通过 AJAX 技术来获取需要呈现的内容并只更新指定的网页位置。

    TIP

    AJAX 技术( Asynchronous JavaScript and XML )是指在不离开页面的情况下,通过 JavaScript 发出 HTTP 请求,让网页通过增量更新的方式呈现给用户界面,而不需要刷新整个页面来重新加载,是一种 “无刷体验” 。

    SPA 在页面跳转的时候,地址栏也会发生变化,主要有以下两种方式:

    1. 通过修改 Location:hash 修改 URL 的 Hash 值(也就是 # 号后面部分),例如从 https://example.com/#/foo 变成 https://example.com/#/bar
    2. 通过 History API 的 pushState 方法更新 URL ,例如从 https://example.com/foo 变成 https://example.com/bar

    这两个方式的共同特点是更新地址栏 URL 的时候,均不会刷新页面,只是单纯的变更地址栏的访问地址,而网页的内容则通过 AJAX 更新,配合起来就形成了一种网页的 “前进 / 后退” 等行为效果。

    TIP

    Vue Router 默认提供了这两种 URL 改变方式的支持,分别是 createWebHashHistory 的 Hash 模式和 createWebHistory 对应的 History 模式,在 路由的使用 一章可以学习更多 Vue 路由的使用。

    理解了实现原理之后,可以把 SPA 的请求过程简化为如下步骤:

    bash
    # SPA 页面跳转过程
    +
    +从用户点击跳转开始:
    +---> 浏览器通过 `pushState` 等方法更新 URL
    +---> 请求接口数据(如果有涉及到前后端交互)
    +---> 通过 JavaScript 处理数据,拼接 HTML 片段
    +--->  HTML 片段渲染到指定位置,完成页面的 “刷新”
    SPA 的优点

    从上面的实现原理已经能总结出它的优势了:

    • 只有一次完全请求的等待时间(首屏加载)
    • 用户体验好,内部跳转的时候可以实现 “无刷切换”
    • 因为不需要重新请求整个页面,所以切换页面的时候速度更快
    • 因为没有脱离当前页面,所以 “页” 与 “页” 之间在切换过程中支持动画效果
    • 脱离了页面跳页面的框架,让整个网站形成一个 Web App ,更接近原生 App 的访问体验
    • 开发效率高,前后端分离,后端负责 API 接口,前端负责界面和联调,同步进行缩短工期

    这也是为什么短短几年时间, SPA 的体验模式成为前端领域的主流。

    SPA 的缺点

    虽然 SPA 应用在使用过程中的用户体验非常好,但也有自身的缺点存在:

    • 首屏加载相对较慢

    由于 SPA 应用的路由是由前端控制, SPA 在打开首页后,还要根据当前的路由再执行一次内容渲染,相对于 MPA 应用从服务端直出 HTML ,首屏渲染所花费的时间会更长。

    • 不利于 SEO 优化

    由于 SPA 应用全程是由 JavaScript 控制内容的渲染,因此唯一的一个 HTML 页面 index.html 通常是一个空的页面,只有最基础的 HTML 结构,不仅无法设置每个路由页面的 TDK ,页面内容也无法呈现在 HTML 代码里,因此对搜索引擎来说,网站的内容再丰富,依然只是一个 “空壳” ,无法让搜索引擎进行内容爬取。

    为了减少用户等待过程中的焦虑感,可以通过增加 Loading 过程,或者 Skeleton 骨架屏等优化方案,但其实也是治标不治本,因此为了结合 SPA 和 MPA 的优点,又进一步催生出了更多实用的技术方案以适配更多的业务场景,在后面的小节将逐一介绍。

    CSR 与 SSR

    在了解了 MPA 与 SPA 之后,先了解另外两个有相关联的名词: CSR 与 SSR ,同样的,这一对也是代表着相反的开发模式和用户体验,它们的全称和中文含义如下:

    名词全称中文
    CSRClient-Side Rendering客户端渲染
    SSRServer-Side Rendering服务端渲染

    正如它们的名称,这两者代表的是渲染网页过程中使用到的技术栈。

    客户端渲染

    MPA 多页面应用与 SPA 单页面应用 部分的介绍过的 SPA 单页面应用,正是基于 CSR 客户端渲染实现的(因此大部分情况下, CSR 等同于 SPA ,包括实现原理和优势),这是一种利用 AJAX 技术,把渲染工作从服务端转移到客户端完成,不仅客户端的用户体验更好,前后端分离的开发模式更加高效。

    但随之而来的首屏加载较慢、不利于 SEO 优化等缺点,而 SPA 的这几个缺点,却是传统 MPA 多页面应用所具备的优势,但同样的, MPA 也有着自己开发成本高、用户体验差等问题。

    既然原来的技术方案无法完美满足项目需求,因此在结合 MPA 的优点和 SPA 的优点之后,一种新的技术随之诞生,这就是 SSR 服务端渲染。

    服务端渲染

    和传统的 MPA 使用 PHP / JSP 等技术栈做服务端渲染不同,现代前端工程化里的 SSR 通常是指使用 Node.js 作为服务端技术栈。

    TIP

    工程化神器 Node.js 一节会介绍 Node ,以及它对前端工程化带来的重大变化,现代前端工程化发展离不开它的存在。

    传统的服务端渲染通常由后端开发者一起维护前后端代码,需要写后端语言支持的模板、 JavaScript 代码维护成本也比较高;而 SSR 服务端渲染则是交给前端开发者来维护,利用 Node 提供的能力进行同构渲染,由于本身前后端都使用 JavaScript 编写,维护成本也大大的降低。

    SSR 技术利用的同构渲染方案( Isomorphic Rendering ),指的是一套代码不仅可以在客户端运行,也可以在服务端运行,在一些合适的时机先由服务端完成渲染( Server-Side Rendering )再直出给客户端激活( Client-Side Hydration ),这种开发模式带来了:

    • 更好的 SEO 支持,解决了 SPA 单页面应用的痛点
    • 更快的首屏加载速度,保持了 MPA 多页面应用的优点
    • 和 SPA 一样支持前后端分离,开发效率依然很高
    • 有更好的客户端体验,当用户完全打开页面后,本地访问过程中也可以保持 SPA 单页面应用的体验
    • 统一的心智模型,由于支持同构,因此没有额外的心智负担

    那么,使用 Vue 开发项目时,应该如何实现 SSR 呢?

    Vue 的 SSR 支持非常好, Vue 官方不仅提供了一个 Vue.js 服务器端渲染指南 介绍了基于 Vue 的 SSR 入门实践,还有基于 Vue 的 Nuxt.jsQuasar 框架帮助开发者更简单地落地 SSR 开发,构建工具 Vite 也有内置的 Vue SSR 支持。

    Pre-Rendering 与 SSG

    在介绍了 SSR 服务端渲染技术后,读者可能会想到一个问题,就是 SSR 的开发成本总归比较高,如果本身项目比较简单,例如一个静态博客,或者静态官网、落地页等内容不多,仅需要简单的 SEO 支持的项目需求,是否有更简便的方案呢?

    以下两种方案正是用于满足这类需求的技术:

    名词全称中文
    Pre-RenderingPre-Rendering预渲染
    SSGStatic-Site Generation静态站点生成

    预渲染

    预渲染也是一种可以让 SPA 单页面应用 解决 SEO 问题的技术手段。

    预渲染的原理是在构建的时候启动无头浏览器( Headless Browser ),加载页面的路由并将访问结果按照路由的路径保存到静态 HTML 文件里,这样部署到服务端的页面,不再是一个空的 HTML 页面,而是有真实内容的存在,但由于只在构建时运行,因此用户每次访问的时候 HTML 里的内容不会产生变化,直到下一次构建。

    TIP

    无头浏览器( Headless Browser ),指没有 GUI 界面的浏览器,使用代码通过编程接口来控制浏览器的行为,常用于网络爬虫、自动化测试等场景,预渲染也使用它来完成页面的渲染,以获取渲染后的代码来填充 HTML 文件。

    预渲染和 服务端渲染 最大的区别在于,预渲染只在构建的时候就完成了页面内容的输出(发生在用户请求前),因此构建后不论用户何时访问, HTML 文件里的内容都是构建的时候的那份内容,所以预渲染适合一些简单的、有一定的 SEO 要求但对内容更新频率没有太高要求、内容多为静态展示的页面。

    例如企业用于宣传的官网页面、营销活动的推广落地页都非常适合使用预渲染技术,现代的构建工具都提供了预渲染的内置实现,例如这个教程: 用 Vite 更简单的解决 Vue3 项目的预渲染问题 ,就是通过 Vite 的内置功能来实现预渲染,最终也运用到了公司的业务上。

    静态站点生成

    SSG 静态站点生成是基于预渲染技术,通过开放简单的 API 和配置文件,就让开发者可以实现一个预渲染静态站点的技术方案。

    它可以让开发者定制站点的个性化渲染方案,但更多情况下,通常是作为一些开箱即用的技术产品来简化开发过程中的繁琐步骤,这一类技术产品通常称之为静态站点生成器( Static-Site Generator ,也是简称 SSG )。

    常见的 SSG 静态站点生成器有:基于 Vue 技术的 VuePressVitePress ,自带了 Vue 组件的支持,还有基于 React 的 Docusaurus ,以及很多各有特色的生成器,例如 JekyllHugo 等等。

    如果有写技术文档或者博客等内容创作需求,使用静态站点生成器是一个非常方便的选择,通常这一类产品还有非常多的个性化主题可以使用。

    ISR 与 DPR

    在现代化的开发概念这一节,从 MPA 多页面应用到 SPA 单页面应用 ,再到 CSR 客户端渲染和 SSR 服务端渲染 ,以及 Pre-Rendering 预渲染与 SSG 静态站点生成 ,似乎已经把所有常见的开发场景覆盖完了。

    那接下来要讲的 ISR 和 DPR 又是什么用途的技术方案呢?先看看它们的全称和中文含义:

    名词全称中文
    ISRIncremental Site Rendering增量式的网站渲染
    DPRDistributed Persistent Rendering分布式的持续渲染

    当网站的内容体量达到一定程度的时候,从头开始构建进行预渲染所花费的时间会非常久,而实际上并不是所有页面的内容都需要更新,这两项技术的推出是为了提升大型项目的渲染效率。

    ISR 增量式的网站渲染,通过区分 “关键页面” 和 “非关键页面” 进行构建,优先预渲染 “关键页面” 以保证内容的最新和正确,同时缓存到 CDN ,而 “非关键页面” 则交给用户访问的时候再执行 CSR 客户端渲染,并触发异步的预渲染缓存到 CDN 。

    这样做的好处是,大幅度的提升了每次构建的时间,但由于只保证部分 “关键页面” 的构建和内容正确,所以访问 “非关键页面” 的时候,有可能先看到旧的内容,再由 CSR 刷新为新的内容,会丢失一部分用户体验。

    更多 ISR 技术细节可以阅读 Netlify 的开发者体验总监 Cassidy Williams 的一篇文章: Incremental Static Regeneration: Its Benefits and Its Flaws

    DPR 分布式的持续渲染则是为了解决 ISR 方案下可能访问到旧内容的问题,这也是由 Cassidy Williams 发起的一个提案,详情可在 GitHub 查看:Distributed Persistent Rendering (DPR)

    由于目前这两项技术还在发展初期,能够支持的框架和服务还比较少,在这里建议作为一种技术知识储备提前了解,在未来的某一天有业务需要的时候,也可以知道有这样的方案可以解决问题。

    工程化不止于前端

    现代化的开发概念 部分所讲述的都是关于网页开发的变化,当然,前端这个岗位本身就是从页面开发发展起来的,自然还是离不开网页这个老本行。

    但随着前端工程化的发展,前端越来越不止于写前端,已经有很多前端工程师利用前端工程化带来的优势,不仅仅只是做一个 Web 前端,开始逐步发展为一个全栈工程师,在企业内部承担起了更多的岗位职责,包括作者笔者也是。

    之所以能做这么多事情,得益于 Node.js 在前端开发带来的翻天覆地的变化,可以在保持原有的 JavaScript 和 TypeScript 基础上,几乎没有过多的学习成本就可以过度到其他端的开发。

    在了解 Node.js 之前,先来看看现在的前端开发工程师除了写 Web 前端,还可以做到哪些岗位的工作。

    服务端开发

    在传统的认知里,如果一个前端工程师想自己搭建一个服务端项目,需要学习 Java 、 PHP 、 Go 等后端语言,还需要学习 Nginx 、 Apache 等 Web Server 程序的使用,并使用这些技术来开发并部署一个项目的服务端。

    现在的前端工程师可以利用 Node.js ,单纯使用 JavaScript 或者 TypeScript 来开发一个基于 Node 的服务端项目。

    Node 本身是一个 JavaScript 的运行时,还提供了 HTTP 模块 可以启动一个本地 HTTP 服务,如果把 Node 项目部署到服务器上,就可以运行一个可对外访问的公网服务。

    但 Node 的原生服务端开发成本比较高,因此在 GitHub 开源社区也诞生了很多更方便的、开箱即用、功能全面的服务端框架,根据它们的特点,可以简单归类如下:

    ExpressKoaFastify 为代表的轻量级服务端框架,这一类框架的特点是 “短平快” ,对于服务端需求不高,只是跑一些小项目的话,开箱即用非常地方便,比如 Build 了一个 Vue 项目,然后提供一个读取静态目录的服务来访问它。

    但是 “短平快” 框架带来了一些团队协作上的弊端,如果缺少一些架构设计的能力,很容易把一个服务端搭的很乱以至于难以维护,比如项目的目录结构、代码的分层设计等等,每个创建项目的人都有自己的想法和个人喜好,就很难做到统一管理。

    因此在这些框架的基础上,又诞生了以 Nest (底层基于 Express ,可切换为 Fastify )、 Egg (基于 Koa )为代表的基于 MVC 架构的企业级服务端框架,这一类框架的特点是基于底层服务进行了更进一步的架构设计并实现了代码分层,还自带了很多开箱即用的 Building Blocks ,例如 TypeORM 、WebSockets 、Swagger 等等,同样也是开箱即用,对大型项目的开发更加友好。

    TIP

    当然, Node.js 所做的事情是解决服务端程序部分的工作,如果涉及到数据存储的需求,学习 MySQL 和 Redis 的技术知识还是必不可少的!

    App 开发

    常规的 Native App 原生开发需要配备两条技术线的支持:使用 Java / Kotlin 语言开发 Android 版本,使用 Objective-C / Swift 语言开发 iOS 版本,这对于创业团队或者个人开发者来说都是一个比较高的开发成本。

    前端开发者在项目组里对 App 的作用通常是做一些活动页面、工具页面内嵌到 App 的 WebView 里,如果是在一些产品比较少的团队里,例如只有一个 App 产品,那么前端的存在感会比较低。

    而 Hybrid App 的出现,使得前端开发者也可以使用 JavaScript / TypeScript 来编写混合 App ,只需要了解简单的打包知识,就可以参与到一个 App 的开发工作中。

    开发 Hybrid App 的过程通常称为混合开发,最大的特色就是一套代码可以运行到多个平台,这是因为整个 App 只有一个基座,里面的 App 页面都是使用 UI WebView 来渲染的 Web 界面,因此混合开发的开发成本相对于原生开发是非常低的,通常只需要一个人 / 一个小团队就可以输出双平台的 App ,并且整个 App 的开发周期也会更短。

    在用户体验方面, Hybrid App 相对于 Native App ,一样可以做到:

    • 双平台的体验一致性
    • 支持热更新,无需用户重新下载整个 App
    • 内置的 WebView 在交互体验上也可以做到和系统交互,比如读取 / 存储照片、通讯录,获取定位等等
    • 支持 App Push 系统通知推送
    • 还有很多 Native App 具备的功能

    基本上 Native App 的常见功能,在 Hybrid App 都能满足。

    而且大部分情况下,在构建 Hybrid App 的时候还可以顺带输出一个 Web App 版本,也就是让这个 App 在被用户下载前,也有一模一样的网页版可以体验,这对于吸引新用户是非常有用的。

    在混合开发的过程中,通常是由前端开发者来负责 App 项目从 “开发” 到 “打包” 再到 “发版” 的整个流程,在开发的过程中是使用常见的前端技术栈,例如目前主流的有基于 Vue 的 uni-app 、基于 React 的 React Native 等等,这些 Hybrid 框架都具备了 “学习成本低、开发成本低、一套代码编译多个平台” 的特点。

    在 App 开发完毕后,使用 Hybrid 框架提供的 CLI 工具编译出 App 资源包,再根据框架提供的原生基座打包教程去完成 Android / iOS 的安装包构建,这个环节会涉及到原生开发的知识,例如 Android 包的构建会使用到 Android Studio ,但整个过程使用到原生开发的环节非常少,几乎没有太高的学习门槛。

    桌面程序开发

    放在以前要开发一个 Windows 桌面程序,需要用上 QT / WPF / WinForm 等技术栈,还要学习 C++ / C# 之类的语言,对于只想在业余写几个小工具的开发者来说,上手难度和学习成本都很高,但在前端工程化的时代里,使用 JavaScript 或 TypeScript 也可以满足程序开发的需要。

    这得益于 Electron / Tauri 等技术栈的出现,其中 Electron 的成熟度最高、生态最完善、最被广泛使用,除了可以构建 Windows 平台支持的 .exe 文件之外,对 macOS 和 Linux 平台也提供了对应的文件构建支持。

    广大前端开发者每天都在使用的 Visual Studio Code 以及知名的 HTTP 网络测试工具 Postman 都是使用 Electron 开发的。

    笔者也通过 Electron 构建了多个给公司内部使用的界面化工具客户端,这一类技术栈对于前端开发者来说,真的非常方便!在这里以 Electron 为例,简单讲解下它的工作原理,以了解为什么程序开发可以如此简单。

    Electron 的底层是基于 Chromium 和 Node.js ,它提供了两个进程供开发者使用:

    1. 主进程:它是整个应用的入口点,主进程运行在 Node 环境中,可以使用所有的 Node API ,程序也因此具备了和系统进行交互的能力,例如文件的读写操作。

    2. 渲染进程:负责与用户交互的 GUI 界面,基于 Chromium 运行,所以开发者得以使用 HTML / CSS / JavaScript 像编写网页一样来编写程序的 GUI 界面。

    一个程序应用只会有一个主进程,而渲染进程则可以根据实际需求创建多个,渲染进程如果需要和系统交互,则必须与主进程通信,借助主进程的能力来实现。

    在构建的时候, Electron 会把 Node 和 Chromium 一起打包为一个诸如 .exe 这样的安装文件(或者是包含了两者的免安装版本),这样用户不需要 Node 环境也可以运行桌面程序。

    应用脚本开发

    桌面程序开发 部分讲的是构建一种拥有可视化 GUI 界面的程序,但有时候并不需要复杂的 GUI ,可能只想提供一个双击运行的脚本类程序给用户,现在的前端工程化也支持使用 JavaScript 构建一个无界面的应用脚本。

    假如某一天公司的运营小姐姐希望能做一个自动化的脚本减轻她们的机械操作,或者是自己工作过程中发现一些日常工作可以交付给脚本解决的情况,就可以使用这种方式来输出一个脚本程序,使用的时候双击运行非常方便。

    笔者之前为了让团队的工程师减少写日报的心智负担,也是使用了这个方式编写了一个 git-commit-analytics 工具,部门里的工程师可以通过规范化 commit 来生成每天的工作日报,每天双击一下就可以生成一份报告,很受团队的喜欢。

    在这里推荐一个工具 Pkg ,它可以把 Node 项目打包为一个可执行文件,支持 Windows 、 macOS 、 Linux 等多个平台,它的打包机制和 Electron 打包的思路类似,也是通过把 Node 一起打包,让用户可以在不安装 Node 环境的情况下也可以直接运行脚本程序。

    实践工程化的流程

    基于 Vue 3 的项目,最主流的工程化组合拳有以下两种:

    常用方案Runtime构建工具前端框架
    方案一NodeWebpackVue
    方案二NodeViteVue

    方案一是比较传统并且过去项目使用最多的方案组合,但从 2021 年初随着 Vite 2.0 的发布,伴随着更快的开发体验和日渐丰富的社区生态,新项目很多都开始迁移到方案二,因此本书秉着面向当下与未来的原则,会侧重 Vite 的使用来开展讲解,包括一些 demo 的创建等等。

    当技术成熟的时候,还可以选择更喜欢的方案自行组合,例如用 Deno 来代替 Node ,但前期还是按照主流的方案来进入工程化的学习。

    下面的内容将根据 Vue 3 的工程化开发,逐一讲解涉及到常用的工具,了解它们的用途和用法。

    工程化神器 Node.js

    只要在近几年有接触过前端开发,哪怕没有实际使用过,也应该有听说过 Node.js ,那么它是一个什么样的存在?

    什么是 Node.js

    Node.js (简称 Node ) 是一个基于 Chrome V8 引擎构建的 JS 运行时( JavaScript Runtime )。

    它让 JavaScript 代码不再局限于网页上,还可以跑在客户端、服务端等场景,极大的推动了前端开发的发展,现代的前端开发几乎都离不开 Node 。

    什么是 Runtime

    Runtime ,可以叫它 “运行时” 或者 “运行时环境” ,这个概念是指,项目的代码在哪里运行,哪里就是运行时。

    传统的 JavaScript 只能跑在浏览器上,每个浏览器都为 JS 提供了一个运行时环境,可以简单地把浏览器当成一个 Runtime ,明白了这一点,相信就能明白什么是 Node 。

    Node 就是一个让 JS 可以脱离浏览器运行的环境,当然,这里并不是说 Node 就是浏览器。

    Node 和浏览器的区别

    虽然 Node 也是基于 Chrome V8 引擎构建,但它并不是一个浏览器,它提供了一个完全不一样的运行时环境,没有 Window 、没有 Document 、没有 DOM 、没有 Web API ,没有 UI 界面…

    但它提供了很多浏览器做不到的能力,比如和操作系统的交互,例如 “文件读写” 这样的操作在浏览器有诸多的限制,而在 Node 则轻轻松松。

    对于前端开发者来说, Node 的巨大优势在于,使用一种语言就可以编写所有东西(前端和后端),不再花费很多精力去学习各种各样的开发语言。

    哪怕仅仅只做 Web 开发,也不再需要顾虑新的语言特性在浏览器上的兼容性( e.g. ES6 、 ES7 、 ES8 、 ES9 …), Node 配合构建工具,以及诸如 Babel 这样的代码编译器,可以帮转换为浏览器兼容性最高的 ES5 。

    当然还有很多工程化方面的好处,总之一句话,使用 Node 的开发体验会非常好。

    工程化的入门准备 一章中,会对 Node 开发做进一步的讲解,下面先继续顺着 Node 的工具链,了解与日常开发息息相关的前端构建工具。

    工程化的构建工具

    在前端开发领域,构建工具已经成为现在必不可少的开发工具了,很多刚接触前端工程化的开发者可能会有疑惑,为什么以前的前端页面直接编写代码就可以在浏览器访问,现在却还要进行构建编译,是否 “多此一举” ?

    要消除这些困惑,就需要了解一下为什么要使用构建工具,知道构建工具在开发上能够给带来什么好处。

    为什么要使用构建工具

    目前已经有很多流行的构建工具,例如: GruntGulpWebpackSnowpackParcelRollupVite … 每一个工具都有自己的特色。

    如上面列举的构建工具,虽然具体到某一个工具的时候,是 “一个” 工具,但实际上可以理解为是 “一套” 工具链、工具集,构建工具通常集 “语言转换 / 编译” 、 “资源解析” 、 “代码分析” 、 “错误检查” 、 “任务队列” 等非常多的功能于一身。

    构建工具可以帮解决很多问题,先看看最基础的一个功能支持: “语言转换 / 编译” 。

    且不说构建工具让可以自由自在的在项目里使用 TypeScript 这些新兴的语言,单纯看历史悠久的 JavaScript ,从 2015 年开始,每年也都会有新的版本发布(例如 ES6 对应 ES2015 、 ES7 对应 ES2016 、 ES8 对应 ES2017 等等)。

    虽然新版本的 JS API 更便捷更好用,但浏览器可能还没有完全支持,这种情况下可以通过构建工具去转换成兼容度更高的低版本 JS 代码。

    举个很常用到的例子,现在判断一个数组是否包含某个值,通常会这么写:

    js
    // 声明一个数组
    +const arr = ['foo', 'bar', 'baz']
    +
    +// 当数组包含 foo 这个值时,处理一些逻辑
    +if (arr.includes('foo')) {
    +  // do something…
    +}

    通过 Array.prototype.includes() 这个实例方法返回的布尔值,判断数组是否包含目标值,而这个方法是从 ES6 开始支持的,对于不支持 ES6 的古董浏览器,只能使用其他更早期的方法代替( e.g. indexOf ),或者手动引入它的 Polyfill 来保证这个方法可用。

    TIP

    Polyfill 是在浏览器不支持的情况下实现某个功能的代码,可以在概念发明者 Remy Sharp 的博文里了解到它的由来,是一个挺有意思的命名。

    点击阅读: What is a Polyfill?

    以下是摘选自 MDN 网站上关于 Array.prototype.includes() 的 Polyfill 实现:

    js
    // https://tc39.github.io/ecma262/#sec-array.prototype.includes
    +if (!Array.prototype.includes) {
    +  Object.defineProperty(Array.prototype, 'includes', {
    +    value: function (valueToFind, fromIndex) {
    +      if (this == null) {
    +        throw new TypeError('"this" is null or not defined')
    +      }
    +
    +      // 1. Let O be ? ToObject(this value).
    +      var o = Object(this)
    +
    +      // 2. Let len be ? ToLength(? Get(O, "length")).
    +      var len = o.length >>> 0
    +
    +      // 3. If len is 0, return false.
    +      if (len === 0) {
    +        return false
    +      }
    +
    +      // 4. Let n be ? ToInteger(fromIndex).
    +      //    (If fromIndex is undefined, this step produces the value 0.)
    +      var n = fromIndex | 0
    +
    +      // 5. If n ≥ 0, then
    +      //  a. Let k be n.
    +      // 6. Else n < 0,
    +      //  a. Let k be len + n.
    +      //  b. If k < 0, let k be 0.
    +      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0)
    +
    +      function sameValueZero(x, y) {
    +        return (
    +          x === y ||
    +          (typeof x === 'number' &&
    +            typeof y === 'number' &&
    +            isNaN(x) &&
    +            isNaN(y))
    +        )
    +      }
    +
    +      // 7. Repeat, while k < len
    +      while (k < len) {
    +        // a. Let elementK be the result of ? Get(O, ! ToString(k)).
    +        // b. If SameValueZero(valueToFind, elementK) is true, return true.
    +        if (sameValueZero(o[k], valueToFind)) {
    +          return true
    +        }
    +        // c. Increase k by 1.
    +        k++
    +      }
    +
    +      // 8. Return false
    +      return false
    +    },
    +  })
    +}

    由于 JavaScript 允许更改 prototype ,所以 Polyfill 的原理就是先检查浏览器是否支持某个方法,当浏览器不支持的时候,会借助已经被广泛支持的方法来实现相同的功能,达到在旧浏览器上也可以使用新方法的目的。

    下面是一个简单的 includes 方法实现,也借用浏览器支持的 indexOf 方法,让不支持 includes 的浏览器也可以使用 includes

    js
    // 借助 indexOf 来实现一个简单的 includes
    +if (!Array.prototype.includes) {
    +  Array.prototype.includes = function (v) {
    +    return this.indexOf(v) > -1
    +  }
    +}

    WARNING

    请注意,上面这个实现方案很粗糙,没有 Polyfill 的方案考虑的足够周到,只是在这里做一个简单的实现演示。

    Polyfill 会考虑到多种异常情况,最大幅度保证浏览器的兼容支持,当然一些复杂的方法实现起来会比较臃肿,全靠人工维护 Polyfill 很不现实。

    而且实际的项目里,要用到的 JavaScript 原生方法非常多,不可能手动去维护每一个方法的兼容性,所以这部分工作,通常会让构建工具来自动化完成,常见的方案就有 Babel

    除了 “语言转换 / 编译” 这个好处之外,在实际的开发中,构建工具可以更好地提高开发效率、提供自动化的代码检查、规避上线后的生产风险,例如:

    • 项目好多代码可以复用,可以直接抽离成 模块组件 ,交给构建工具去合并打包
    • TypeScript 的类型系统和代码检查真好用,也可以放心写,交给构建工具去编译
    • CSS 写起来很慢,可以使用 Sass 、 Less 等 CSS 预处理器 ,利用它们的变量支持、混合继承等功能提高开发效率,最终交给构建工具去编译回 CSS 代码
    • 海量的 npm 包 开箱即用,剩下的工作交给构建工具去按需抽离与合并
    • 项目上线前代码要混淆,人工处理太费劲,交给构建工具自动化处理
    • 还有很多列举不完的其他场景…

    下面基于接下来要学习的 Vue3 技术栈,介绍两个流行且强相关的构建工具: WebpackVite

    Webpack

    Webpack 是一个老牌的构建工具,前些年可以说几乎所有的项目都是基于 Webpack 构建的,生态最庞大,各种各样的插件最全面,对旧版本的浏览器支持程度也最全面。

    点击访问:Webpack 官网

    在升级与配置一章里的 使用 @vue/cli 创建项目 会指导如何使用 Vue CLI 创建一个基于 Webpack 的 Vue 项目。

    Vite

    Vite 的作者也是熟悉的 Vue 作者尤雨溪,它是一个基于 ESM 实现的构建工具,主打更轻、更快的开发体验,主要面向现代浏览器,于 2021 年推出 2.x 版本之后,进入了一个飞速发展的时代,目前市场上的 npm 包基本都对 Vite 做了支持,用来做业务已经没有问题了。

    毫秒级的开发服务启动和热重载,对 TypeScript 、 CSS 预处理器等常用开发工具都提供了开箱即用的支持,也兼容海量的 npm 包,如果是先用 Webpack 再用的 Vite ,会很快就喜欢上它!

    点击访问:Vite 官网

    在升级与配置一章里的 使用 Vite 创建项目 会指导如何使用流行脚手架创建一个基于 Vite 的 Vue 项目。

    两者的区别

    在开发流程上, Webpack 会先打包,再启动开发服务器,访问开发服务器时,会把打包好的结果直接给过去,下面是 Webpack 使用的 bundler 机制的工作流程。

    Vite 是基于浏览器原生的 ES Module ,所以不需要预先打包,而是直接启动开发服务器,请求到对应的模块的时候再进行编译,下面是 Vite 使用的 ESM 机制的工作流程。

    所以当项目体积越大的时候,在开发启动速度上, Vite 和 Webpack 的差距会越来越大。

    可以点击 Vite 官网的这篇文章: 为什么选 Vite 了解更多的技术细节。

    构建方面,为了更好的加载体验,以及 Tree Shaking 按需打包 、懒加载和 Chunk 分割利于缓存,两者都需要进行打包;但由于 Vite 是面向现代浏览器,所以如果项目有兼容低版本浏览器的需求的话,建议还是用 Webpack 来打包,否则, Vite 是目前的更优解。

    开发环境和生产环境

    在使用构建工具的时候,需要了解一下 “环境” 的概念,对构建工具而言,会有 “开发环境( development )” 和 “生产环境( production )” 之分。

    TIP

    需要注意的是,这和业务上的 “测试 -> 预发 -> 生产” 那几个环境的概念是不一样的,业务上线流程的这几个环境,对于项目来说,都属于 “生产环境” ,因为需要打包部署。

    开发环境

    前面在编写 Hello TypeScript 这个 demo 的时候,使用了 npm run dev:ts 这样的命令来测试 TypeScript 代码的可运行性,可以把这个阶段认为是一个 “测试环境” ,这个时候代码不管怎么写,它都是 TypeScript 代码,不是最终要编译出来的 JavaScript 。

    如果基于 Webpack 或者 Vite 这样的构建工具,测试环境提供了更多的功能,例如:

    • 可以使用 TypeScript 、 CSS 预处理器之类的需要编译的语言提高开发效率
    • 提供了热重载( Hot Module Replacement , 简称 HMR ),当修改了代码之后,无需重新运行或者刷新页面,构建工具会检测的修改自动帮更新
    • 代码不会压缩,并有 Source Mapping 源码映射,方便 BUG 调试
    • 默认提供局域网服务,无需自己做本地部署
    • 更多 …

    生产环境

    Hello TypeScript demo 最后配置的一个 npm run build 命令,将 TypeScript 代码编译成了 JavaScript ,这个时候 dist 文件夹下的代码文件就处于 “生产环境” 了,因为之后不论源代码怎么修改,都不会直接影响到它们,直到再次执行 build 编译。

    可以看出生产环境和开发环境最大的区别就是稳定!除非再次打包发布,否则不会影响到已部署的代码。

    • 代码会编译为浏览器最兼容的版本,一些不兼容的新语法会进行 Polyfill
    • 稳定,除非重新发布,否则不会影响到已部署的代码
    • 打包的时候代码会进行压缩混淆,缩小项目的体积,也降低源码被直接曝光的风险

    环境判断

    在 Webpack ,可以使用 process.env.NODE_ENV 来区分开发环境( development )还是生产环境( production ),它会返回当前所处环境的名称。

    在 Vite ,还可以通过判断 import.meta.env.DEVtrue 时是开发环境,判断 import.meta.env.PRODtrue 时是生产环境(这两个值永远相反)。

    有关环境变量的问题可以查阅以下文档:

    工具文档
    Webpack模式
    Vite环境变量和模式

    Released under the MIT License.

    + + + + \ No newline at end of file diff --git a/guide.html b/guide.html new file mode 100644 index 00000000..66c6a28b --- /dev/null +++ b/guide.html @@ -0,0 +1,666 @@ + + + + + + 工程化的前期准备 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
    Skip to content
    目录

    工程化的前期准备

    对于刚刚迈入前端工程化、或者还没有接触过前端工程化的开发者,从传统的用 HTML + CSS + JS 手写页面的认知阶段走到工程化的世界,会面对翻天覆地的变化,需要先学习一些入门准备知识。

    这一章会介绍一些前置的知识点科普,方便开始学习 Vue3 的时候,不会对一些基本的认知和操作存在太多疑惑。

    TIP

    本指南需要具备一定的 HTML 、 CSS 和 JavaScript 基础,如果完全不懂,请先对这三个知识点进行一些入门的学习。

    命令行工具

    在前端工程化开发过程中,已经离不开各种命令行操作,例如:管理项目依赖、本地服务启动、打包构建,还有拉取代码 / 提交代码这些 Git 操作等等。

    命令行界面( Command-line Interface ,缩写 CLI ),是一种通过命令行来实现人机交互的工具,需要提前准备好命令行界面工具。

    如果有所留意,会发现很多工具都可以实现命令行操作,比如:命令行界面( CLI )、终端( Terminal )、 Shell 、控制台( Console )等等。

    从完整功能看,它们之间确实有许多区别,不过对于前端开发者来说,日常的命令行交互需要用到的功能不会特别多,所以后面会统一一些名词,减少理解上的偏差。

    交互行为统一代替名词代替名词解释
    输入命令行需要输入命令的时候,会统一用 “命令行” 来指代。
    输出控制台鉴于前端开发者更多接触的是浏览器的 Console 控制台,
    所以也是会用 “控制台” 来指代。

    Windows

    在 Windows 平台,可以使用自带的 CMD 或者 Windows PowerShell 工具。

    但为了更好的开发体验,推荐使用以下工具(需要下载安装),可以根据自己的喜好选择其一:

    名称简介下载
    Windows Terminal由微软推出的强大且高效的 Windows 终端前往 GitHub 下载
    CMDer一款体验非常好的 Windows 控制台模拟器前往 GitHub 下载

    笔者在 Windows 台式机上是使用 Windows Terminal 比较多,在此之前是用 CMDer ,两者的设计和体验都非常优秀,当然,还有颜值。

    macOS

    如果使用的是 Mac 系统,可以直接使用系统自带的 “终端” 工具,笔者在 MacBook 上是使用自带的终端进行开发。

    TIP

    其实只要能正常使用命令行,对于前端工程师来说就可以满足日常需求,但选择更喜欢的工具,可以让自己的开发过程更为身心愉悦!

    安装 Node.js 环境

    安装好命令行工具之后,来安装 Node 的开发环境。

    下载和安装 Node

    在 Node.js 官网提供了安装包的下载,不论是使用 Windows 系统还是 MacOS 系统, Node 都提供了对应的安装包,直接下载安装包并运行即可安装到的电脑里,就可以用来开发的项目了。

    点击访问:Node.js 官网下载

    安装后,打开的 命令行工具 ,输入以下命令即可查看是否安装成功:

    bash
    node -v

    如果已成功安装,会在控制台输出当前的 Node 版本号。

    版本之间的区别

    可以看到官网标注了 LTS 和 Current 两个系列,并且对应了不同的版本号。

    Current 版本

    Current 是最新发布版本,或者叫 “尝鲜版” ,可以在这个系列体验到最新的功能,但也可能会有一些意想不到的问题和兼容性要处理。

    每六个月会发布一次 Current 大版本,新的偶数版本( e.g. v16.x.x )会在每年的 4 月份发布,奇数版本( e.g. v17.x.x )会在每年的 10 月份发布。

    也就是说,所有版本都会有 Current 版本阶段,这个阶段会持续 6 个月的时间,期间会被活跃的维护和变更,在发布满 6 个月后,奇偶数版本会有不同的结果:

    • 大版本号是奇数的,将变为不支持状态,不会进入 LTS 版本。
    • 大版本号是偶数的,会按照发布节点进入 LTS ,并且作为活跃状态投入使用。

    TIP

    除非是狂热的 Node 开发探索者,否则不应该选择 Current 系列(特别是在生产环境),应该选择未被 EOL 的 LTS 系列作为的项目运行环境,详见下方的 LTS 版本 说明。

    LTS 版本

    LTS ,全称 Long Time Support ,长期维护版本,这个系列代表着稳定,建议首次下载以及后续的每次升级都选择 LTS 版本,减少开发过程中的未知问题出现。

    每个 LTS 版本的大版本号都是偶数,并且会有 3 个阶段的生命周期:

    生命周期含义说明
    Active活跃阶段每个从 Current 进入 LTS 的偶数版本,都会有 18 个月的时间被积极维护和升级。
    Maintenance维护阶段活跃阶段达到 18 个月后,会进入为期 12 个月的维护阶段,期间只会进行错误修复和安全补丁。
    End of Life结束阶段简称 EOL ,在维护阶段达到期限之后,该版本进入 EOL 阶段,将不再维护,也就是说,每个 LTS 版本最长会有 30 个月的维护时间,之后将不再进行维护。

    TIP

    当然也会有一些例外情况,例如 Node.js 16 版本,为了配合 OpenSSL 1.1.1 的 EOL 时间,将提前 7 个月进入 EOL 阶段。

    详见官方公告: Bringing forward the End-of-Life Date for Node.js 16

    是否需要经常更新版本

    不论是 LTS 还是 Current ,每个系列下面都还有不同的大版本和小版本,是不是每次都必须及时更新到最新版呢?

    当然不是,完全可以依照的项目技术栈依赖的最低 Node 版本去决定是否需要升级,不过如果条件允许,还是建议至少要把大版本升级到最新的 LTS 版本。

    TIP

    关于 Node.js 的版本发布时间表可以在官方 GitHub 的 Release 仓库 查看。

    基础的 Node 项目

    在安装和配置完 Node.js 之后,接下来了解 Node 项目的一些基础组成,这有助于开启前端工程化开发大门。

    TIP

    当前文档所演示的 hello-node 项目已托管至 learning-vue3/hello-node 仓库,可使用 Git 克隆命令拉取至本地:

    bash
    # 从 GitHub 克隆
    +git clone https://github.com/learning-vue3/hello-node.git
    +
    +# 如果 GitHub 访问失败,可以从 Gitee 克隆
    +git clone https://gitee.com/learning-vue3/hello-node.git

    成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 node 开发的体验,可以更有效的提升学习效果。

    初始化一个项目

    如果想让一个项目成为 Node 项目,只需要在命令行 cd 到项目所在的目录,执行初始化命令:

    bash
    npm init

    之后命令行会输出一些提示,以及一些问题,可以根据的实际情况填写项目信息,例如:

    bash
    package name: (demo) hello-node

    以上面这个问题为例:

    冒号左边的 package name 是问题的题干,会询问要输入什么内容。

    冒号右边的括号内容 (demo) 是 Node 为推荐的答案(不一定会出现这个推荐值),如果觉得 OK ,可以直接按回车确认,进入下一道题。

    冒号右边的 hello-node 是输入的答案(如果选择了推荐的答案,则这里为空),这个答案会写入到项目信息文件里。

    当回答完所有问题之后,会把填写的信息输出到控制台,确认无误后,回车完成初始化的工作。

    bash
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "description": "A demo about Node.js.",
    +  "main": "index.js",
    +  "scripts": {
    +    "test": "echo \"Error: no test specified\" && exit 1"
    +  },
    +  "author": "chengpeiquan",
    +  "license": "MIT"
    +}
    +
    +
    +Is this OK? (yes)

    如果觉得问题太多,太繁琐了,可以直接加上 -y 参数,这样会以 Node 推荐的答案帮快速生成项目信息。

    bash
    npm init -y

    了解 package.json

    在完成 项目的初始化 之后,会发现在项目的根目录下出现了一个名为 package.json 的 JSON 文件。

    这是 Node 项目的清单,里面记录了这个项目的基础信息、依赖信息、开发过程的脚本行为、发布相关的信息等等,未来将在很多项目里看到它的身影。

    TIP

    它必须是 JSON 文件,不可以是存储了 JavaScript 对象字面量的 JS 文件。

    如果是按照上面初始化一节的操作得到的这个文件,打开它之后,会发现里面存储了在初始化过程中,根据问题确认下来的那些答案,例如:

    json
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "description": "A demo about Node.js.",
    +  "main": "index.js",
    +  "scripts": {
    +    "test": "echo \"Error: no test specified\" && exit 1"
    +  },
    +  "author": "chengpeiquan",
    +  "license": "MIT"
    +}

    package.json 的字段并非全部必填,唯一的要求就是,必须是一个 JSON 文件,所以也可以仅仅写入以下内容:

    json
    {}

    但在实际的项目中,往往需要填写更完善的项目信息,除了手动维护这些信息之外,在安装 npm 包等操作时, Node 也会帮写入数据到这个文件里,来了解一些常用字段的含义:

    字段名含义
    name项目名称,如果打算发布成 npm 包,它将作为包的名称
    version项目版本号,如果打算发布成 npm 包,这个字段是必须的,遵循 语义化版本号 的要求
    description项目的描述
    keywords关键词,用于在 npm 网站上进行搜索
    homepage项目的官网 URL
    main项目的入口文件
    scripts指定运行脚本的命令缩写,常见的如 npm run build 等命令就在这里配置,详见 脚本命令的配置
    author作者信息
    license许可证信息,可以选择适当的许可证进行开源
    dependencies记录当前项目的生产依赖,安装 npm 包时会自动生成,详见:依赖包和插件
    devDependencies记录当前项目的开发依赖,安装 npm 包时会自动生成,详见:依赖包和插件
    type配置 Node 对 CJS 和 ESM 的支持

    其中最后的 type 字段是涉及到模块规范的支持,它有两个可选值: commonjsmodule ,其默认值为 commonjs

    • 当不设置或者设置为 commonjs 时,扩展名为 .js.cjs 的文件都是 CommonJS 规范的模块,如果要使用 ES Module 规范,需要使用 .mjs 扩展名
    • 当设置为 module 时,扩展名为 .js.mjs 的文件都是 ES Module 规范的模块,如果要使用 CommonJS 规范,需要使用 .cjs 扩展名

    关于模块规范可以在 学习模块化设计 一节了解更多。

    关于 package.json 的完整的选项可以在 npm Docs 上查阅。

    项目名称规则

    如果打算发布成 npm 包,它将作为包的名称,可以是普通包名,也可以是范围包的包名。

    类型释义例子
    范围包具备 @scope/project-name 格式,一般有一系列相关的开发依赖之间会以相同的 scope 进行命名@vue/cli@vue/cli-service 就是一系列相关的范围包
    普通包其他命名都属于普通包vuevue-router

    包名有一定的书写规则:

    • 名称必须保持在 1 ~ 214 个字符之间(包括范围包的 @scope/ 部分)
    • 只允许使用小写字母、下划线、短横线、数字、小数点(并且只有范围包可以以点或下划线开头)
    • 包名最终成为 URL 、命令行参数或者文件夹名称的一部分,所以名称不能包含任何非 URL 安全字符

    TIP

    了解这一点有助于在后续工作中,在需要查找技术栈相关包的时候,可以知道如何在 npmjs 上找到它们。

    如果打算发布 npm 包,可以通过 npm view <package-name> 命令查询包名是否已存在,如果存在就会返回该包的相关信息。

    比如查询 vue 这个包名,会返回它的版本号、许可证、描述等信息:

    bash
    npm view vue
    +
    +vue@3.2.33 | MIT | deps: 5 | versions: 372
    +The progressive JavaScript framework for building modern web UI.
    +https://github.com/vuejs/core/tree/main/packages/vue#readme
    +
    +keywords: vue
    +
    +# 后面太多信息这里就省略...

    如果查询一个不存在的包名,则会返回 404 信息:

    bash
    npm view vue123456
    +npm ERR! code E404
    +npm ERR! 404 Not Found - GET https://registry.npmjs.org/vue123456 - Not found
    +npm ERR! 404
    +npm ERR! 404  'vue123456@latest' is not in this registry.
    +npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
    +npm ERR! 404
    +npm ERR! 404 Note that you can also install from a
    +npm ERR! 404 tarball, folder, http url, or git url.
    +
    +# 后面太多信息这里就省略...

    语义化版本号管理

    Node 项目遵循 语义化版本号 的规则,例如 1.0.01.0.11.1.0 这样的版本号,本教材的主角 Vue 也是遵循了语义化版本号的发布规则。

    建议开发者在入门前端工程化的时候就应该熟悉这套规则,后续的项目开发中,会使用到很多外部依赖,它们也是使用版本号控制来管理代码的发布,每个版本之间可能会有一些兼容性问题,如果不了解版本号的通用规则,很容易在开发中带来困扰。

    TIP

    现在有很多 CI/CD 流水线作业具备了根据 Git 的 Commit 记录来自动升级版本号,它们也是遵循了语义化版本号规则,版本号的语义化在前端工程里有重大的意义。

    基本格式与升级规则

    版本号的格式为: Major.Minor.Patch (简称 X.Y.Z ),它们的含义和升级规则如下:

    英文中文含义
    Major主版本号当项目作了大量的变更,与旧版本存在一定的不兼容问题
    Minor次版本号做了向下兼容的功能改动或者少量功能更新
    Patch修订号修复上一个版本的少量 BUG

    一般情况下,三者均为正整数,并且从 0 开始,遵循这三条注意事项:

    • 当主版本号升级时,次版本号和修订号归零
    • 当次版本号升级时,修订号归零,主版本号保持不变
    • 当修订号升级时,主版本号和次版本号保持不变

    下面以一些常见的例子帮助快速理解版本号的升级规则:

    • 如果不打算发布,可以默认为 0.0.0 ,代表它并不是一个进入发布状态的包
    • 在正式发布之前,可以将其设置为 0.1.0 发布第一个测试版本,自此,代表已进入发布状态,但还处于初期开发阶段,这个阶段可能经常改变 API ,但不需要频繁地更新主版本号
    • 0.1.0 发布后,修复了 BUG ,下一个版本号将设置为 0.1.1 ,即更新了一个修订号
    • 0.1.1 发布后,有新的功能发布,下一个版本号可以升级为 0.2.0 ,即更新了一个次版本号
    • 当觉得这个项目已经功能稳定、没有什么 BUG 了,决定正式发布并给用户使用时,那么就可以进入 1.0.0 正式版了

    版本标识符

    以上是一些常规的版本号升级规则,也可以通过添加 “标识符” 来修饰的版本更新:

    格式为: Major.Minor.Patch-Identifier.1 ,其中的 Identifier 代表 “标识符” ,它和版本号之间使用 - 短横线来连接,后面的 .1 代表当前标识符的第几个版本,每发布一次,这个数字 +1 。

    标识符含义
    alpha内部版本,代表当前可能有很大的变动
    beta测试版本,代表版本已开始稳定,但可能会有比较多的问题需要测试和修复
    rc即将作为正式版本发布,只需做最后的验证即可发布正式版

    脚本命令的配置

    在工作中,会频繁接触到 npm run dev 启动开发环境、 npm run build 构建打包等操作,这些操作其实是对命令行的一种别名。

    它在 package.json 里是存放于 scripts 字段,以 [key: string]: string 为格式的键值对存放数据( key: value )。

    json
    {
    +  "scripts": {
    +    // ...
    +  }
    +}

    其中:

    • key 是命令的缩写,也就是 npm run xxx 里的 xxx ,如果一个单词不足以表达,可以用冒号 : 拼接多个单词,例如 mock:listmock:detail 等等

    • value 是完整的执行命令内容,多个命令操作用 && 连接,例如 git add . && git commit

    以 Vue CLI 创建的项目为例,它的项目 package.json 文件里就会包括了这样的命令:

    json
    {
    +  "scripts": {
    +    "serve": "vue-cli-service serve",
    +    "build": "vue-cli-service build"
    +  }
    +}

    这里的名字是可以自定义的,比如可以把 serve 改成更喜欢的 dev

    json
    {
    +  "scripts": {
    +    "dev": "vue-cli-service serve",
    +    "build": "vue-cli-service build"
    +  }
    +}

    这样运行 npm run dev 也可以相当于运行了 vue-cli-service serve

    据笔者所了解,有不少开发者曾经对不同的 Vue CLI 版本提供的 npm run servenpm run dev 有什么区别有过疑问,看到这里应该都明白了吧,可以说没有区别,因为这取决于它对应的命令,而不是取决于它起什么名称。

    TIP

    如果 value 部分包含了双引号 " ,必须使用转义符 \ 来避免格式问题,例如: \"

    可以阅读 npm 关于 scripts 的 完整文档 了解更多用法。

    Hello Node

    看到这里,对于 Node 项目的基本创建流程和关键信息都有所了解了吧!来写一个 demo ,实际体验一下如何从初始化项目到打印一个 Hello World 到控制台的过程。

    请先启动的命令行工具,然后创建一个项目文件夹,这里使用 mkdir 命令:

    bash
    # 语法是 mkdir <dir-name>
    +mkdir hello-node

    使用 cd 命令进入刚刚创建好的项目目录:

    bash
    # 语法是 cd <dir-path>
    +cd hello-node

    执行项目初始化,可以回答问题,也可以添加 -y 参数来使用默认配置:

    bash
    npm init -y

    来到这里就得到了一个具有 package.json 的 Node 项目了。

    在项目下创建一个 index.js 的 JS 文件,可以像平时一样书写 JavaScript ,输入以下内容并保存:

    js
    console.log('Hello World')

    然后打开 package.json 文件,修改 scripts 部分如下,也就是配置了一个 "dev": "node index" 命令:

    json
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "description": "",
    +  "main": "index.js",
    +  "scripts": {
    +    "dev": "node index"
    +  },
    +  "keywords": [],
    +  "author": "",
    +  "license": "ISC"
    +}

    在命令行执行 npm run dev ,可以看到控制台打印出了 Hello World

    bash
    npm run dev
    +
    +> demo@1.0.0 dev
    +> node index
    +
    +Hello World

    这等价于直接在命令行执行 node index.js 命令,其中 node 是 Node.js 运行文件的命令, index 是文件名,相当于 index.js ,因为 JS 文件名后缀可以省略。

    学习模块化设计

    在了解 Node 项目之后,就要开始通过编码来加强对 Node.js 的熟悉程度了,但在开始使用之前,还需要了解一些概念。

    在未来的日子里(不限于本教程,与前端工程化相关的工作内容息息相关),会频繁的接触到两个词:模块( Module )和包( Package )。

    模块和包是 Node 开发最重要的组成部分,不管是全部自己实现一个项目,还是依赖各种第三方轮子来协助开发,项目的构成都离不开这两者。

    模块化解决了什么问题

    在软件工程的设计原则里,有一个原则叫 “单一职责” 。

    假设一个代码块负责了多个职责的功能支持,在后续的迭代过程中,维护成本会极大的增加,虽然只需要修改这个代码块,但需要兼顾职责 1 、职责 2 、职责 3 … 等多个职责的兼容性,稍不注意就会引起工程运行的崩溃。

    “单一职责” 的目的就是减少功能维护带来的风险,把代码块的职责单一化,让代码的可维护性更高。

    一个完整业务的内部实现,不应该把各种代码都耦合在一起,而应该按照职责去划分好代码块,再进行组合,形成一个 “高内聚,低耦合” 的工程设计。

    模块化就是由此而来,在前端工程里,每个单一职责的代码块,就叫做模块( Module ) ,模块有自己的作用域,功能与业务解耦,非常方便复用和移植。

    TIP

    模块化还可以解决本章开头所讲述的 传统开发的弊端 里提到的大部分问题,随着下面内容一步步深入,将一步步的理解它。

    如何实现模块化

    在前端工程的发展过程中,不同时期诞生了很多不同的模块化机制,最为主流的有以下几种:

    模块化方案全称适用范围
    CJSCommonJSNode 端
    AMDAsync Module Definition浏览器
    CMDCommon Module Definition浏览器
    UMDUniversal Module DefinitionNode 端和浏览器
    ESMES ModuleNode 端和浏览器

    其中 AMD 、CMD 、 UMD 都已经属于偏过去式的模块化方案,在新的业务里,结合各种编译工具,可以直接用最新的 ESM 方案来实现模块化,所以可以在后续有接触的时候再了解。

    ESM ( ES Module ) 是 JavaScript 在 ES6( ECMAScript 2015 )版本推出的模块化标准,旨在成为浏览器和服务端通用的模块解决方案。

    CJS ( CommonJS ) 原本是服务端的模块化标准(设计之初也叫 ServerJS ),是为 JavaScript 设计的用于浏览器之外的一个模块化方案, Node 默认支持了该规范,在 Node 12 之前也只支持 CJS ,但从 Node 12 开始,已经同时支持 ES Module 的使用。

    至此,不论是 Node 端还是浏览器端, ES Module 是统一的模块化标准了!

    但由于历史原因, CJS 在 Node 端依然是非常主流的模块化写法,所以还是值得进行了解,因此下面的内容将主要介绍 CJS 和 ESM 这两种模块化规范是如何实际运用。

    TIP

    在开始体验模块化的编写之前,请先在电脑里 安装好 Node.js ,然后打开 命令行工具 ,通过 cd 命令进入平时管理项目的目录路径, 初始化一个 Node 项目

    另外,在 CJS 和 ESM ,一个独立的文件就是一个模块,该文件内部的变量必须通过导出才能被外部访问到,而外部文件想访问这些变量,需要导入对应的模块才能生效。

    用 CommonJS 设计模块

    虽然现在推荐使用 ES Module 作为模块化标准,但是日后在实际工作的过程中,还是不免会遇到要维护一些老项目,因此了解 CommonJS 还是非常有必要的。

    以下简称 CJS 代指 CommonJS 规范。

    准备工作

    延续在 Hello Node 部分创建的 Node.js demo 项目,先调整一下目录结构:

    1. 删掉 index.js 文件
    2. 创建一个 src 文件夹,在里面再创建一个 cjs 文件夹
    3. cjs 文件夹里面创建两个文件: index.cjsmodule.cjs

    TIP

    请注意这里使用了 .cjs 文件扩展名,其实它也是 JS 文件,但这个扩展名是 Node 专门为 CommonJS 规范设计的,可以在 了解 package.json 部分的内容了解更多。

    此时目录结构应该如下:

    bash
    hello-node
    + # 源码文件夹
    +├─src
    +  # 业务文件夹
    + └─cjs
    +    # 入口文件
    +   ├─index.cjs
    +    # 模块文件
    +   └─module.cjs
    + # 项目清单
    +└─package.json

    这是一个常见的 Node 项目目录结构,通常源代码都会放在 src 文件夹里面统一管理。

    接下来再修改一下 package.json 里面的 scripts 部分,改成如下:

    json
    {
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs"
    +  }
    +}

    后面在命令行执行 npm run dev:cjs 命令,就可以测试刚刚添加的 CJS 模块了。

    基本语法

    CJS 使用 module.exports 语法导出模块,可以导出任意合法的 JavaScript 类型,例如:字符串、布尔值、对象、数组、函数等等。

    使用 require 导入模块,在导入的时候,当文件扩展名是 .js 时,可以只写文件名,而此时使用的是 .cjs 扩展名,所以需要完整的书写。

    默认导出和导入

    默认导出的意思是,一个模块只包含一个值;而导入默认值则意味着,导入时声明的变量名就是对应模块的值。

    src/cjs/module.cjs 文件里,写入以下代码,导出一句 Hello World 信息:

    js
    // src/cjs/module.cjs
    +module.exports = 'Hello World'

    TIP

    自己在写入代码的时候,不需要包含文件路径那句注释,这句注释只是为了方便阅读时能够区分代码属于哪个文件,以下代码均如此。

    src/cjs/index.cjs 文件里,写入以下代码,导入刚刚编写的模块。

    js
    // src/cjs/index.cjs
    +const m = require('./module.cjs')
    +console.log(m)

    在命令行输入 npm run dev:cjs ,可以看到成功输出了 Hello World 信息:

    bash
    npm run dev:cjs
    +
    +> demo@1.0.0 dev:cjs
    +> node src/cjs/index.cjs
    +
    +Hello World

    可以看到,在导入模块时,声明的 m 变量拿到的值,就是整个模块的内容,可以直接使用,此例子中它是一个字符串。

    再改动一下,把 src/cjs/module.cjs 改成如下,这次导出一个函数:

    js
    // src/cjs/module.cjs
    +module.exports = function foo() {
    +  console.log('Hello World')
    +}

    相应的,这次变成了导入一个函数,所以可以执行它:

    js
    // src/cjs/index.cjs
    +const m = require('./module.cjs')
    +m()

    得到的结果也是打印一句 Hello World ,不同的是,这一次的打印行为是在模块里定义的,入口文件只是执行模块里的函数。

    bash
    npm run dev:cjs
    +
    +> demo@1.0.0 dev:cjs
    +> node src/cjs/index.cjs
    +
    +Hello World

    命名导出和导入

    默认导出的时候,一个模块只包含一个值,有时候如果想把很多相同分类的函数进行模块化集中管理,例如想做一些 utils 类的工具函数文件、或者是维护项目的配置文件,全部使用默认导出的话,会有非常多的文件要维护。

    那么就可以用到命名导出,这样既可以导出多个数据,又可以统一在一个文件里维护管理,命名导出是先声明多个变量,然后通过 {} 对象的形式导出。

    再来修改一下 src/cjs/module.cjs 文件,这次改成如下:

    js
    // src/cjs/module.cjs
    +function foo() {
    +  console.log('Hello World from foo.')
    +}
    +
    +const bar = 'Hello World from bar.'
    +
    +module.exports = {
    +  foo,
    +  bar,
    +}

    这个时候通过原来的方式去拿模块的值,会发现无法直接获取到函数体或者字符串的值,因为打印出来的也是一个对象。

    js
    // src/cjs/index.cjs
    +const m = require('./module.cjs')
    +console.log(m)

    控制台输出:

    bash
    npm run dev:cjs
    +
    +> demo@1.0.0 dev:cjs
    +> node src/cjs/index.cjs
    +
    +{ foo: [Function: foo], bar: 'Hello World from bar.' }

    需要通过 m.foo()m.bar 的形式才可以拿到值。

    此时可以用一种更方便的方式,利用 ES6 的对象解构来直接拿到变量:

    js
    // src/cjs/index.cjs
    +const { foo, bar } = require('./module.cjs')
    +foo()
    +console.log(bar)

    这样子才可以直接调用变量拿到对应的值。

    导入时重命名

    以上都是基于非常理想的情况下使用模块,有时候不同的模块之间也会存在相同命名导出的情况,来看看模块化是如何解决这个问题的。

    src/cjs/module.cjs 文件保持不变,依然导出这两个变量:

    js
    // src/cjs/module.cjs
    +function foo() {
    +  console.log('Hello World from foo.')
    +}
    +
    +const bar = 'Hello World from bar.'
    +
    +module.exports = {
    +  foo,
    +  bar,
    +}

    这次在入口文件里也声明一个 foo 变量,在导入的时候对模块里的 foo 进行了重命名操作。

    js
    // src/cjs/index.cjs
    +const {
    +  foo: foo2,  // 这里进行了重命名
    +  bar,
    +} = require('./module.cjs')
    +
    +// 就不会造成变量冲突
    +const foo = 1
    +console.log(foo)
    +
    +// 用新的命名来调用模块里的方法
    +foo2()
    +
    +// 这个不冲突就可以不必处理
    +console.log(bar)

    再次运行 npm run dev:cjs ,可以看到打印出来的结果完全符合预期:

    bash
    npm run dev:cjs
    +
    +> demo@1.0.0 dev:cjs
    +> node src/cjs/index.cjs
    +
    +1
    +Hello World from foo.
    +Hello World from bar.

    这是利用了 ES6 解构对象的 给新的变量名赋值 技巧。

    以上是针对命名导出时的重命名方案,如果是默认导出,那么在导入的时候用一个不冲突的变量名来声明就可以了。

    用 ES Module 设计模块

    ES Module 是新一代的模块化标准,它是在 ES6( ECMAScript 2015 )版本推出的,是原生 JavaScript 的一部分。

    不过因为历史原因,如果要直接在浏览器里使用该方案,在不同的浏览器里会有一定的兼容问题,需要通过 Babel 等方案进行代码的版本转换(可在 控制编译代码的兼容性 一节了解如何使用 Babel )。

    因此一般情况下都需要借助构建工具进行开发,工具通常会提供开箱即用的本地服务器用于开发调试,并且最终打包的时候还可以抹平不同浏览器之间的差异。

    随着 ESM 的流行,很多新推出的构建工具都默认只支持该方案( e.g. Vite 、 Rollup ),如果需要兼容 CJS 反而需要另外引入插件单独配置。除了构建工具,很多语言也是默认支持 ESM ,例如 TypeScript ,因此了解 ESM 非常重要。

    以下简称 ESM 代指 ES Module 规范。

    TIP

    在阅读本小节之前,建议先阅读 用 CommonJS 设计模块 以了解前置内容,本小节会在适当的内容前后与 CJS 的写法进行对比。

    准备工作

    继续使用在 用 CommonJS 设计模块 时使用的 hello-node 项目作为 demo ,当然也可以重新创建一个新的。

    一样的,先调整一下目录结构:

    1. src 文件夹里面创建一个 esm 文件夹
    2. esm 文件夹里面创建两个 MJS 文件: index.mjsmodule.mjs

    TIP

    注意这里使用了 .mjs 文件扩展名,因为默认情况下, Node 需要使用该扩展名才会支持 ES Module 规范。

    也可以在 package.json 里增加一个 "type": "module" 的字段来使 .js 文件支持 ESM ,但对应的,原来使用 CommonJS 规范的文件需要从 .js 扩展名改为 .cjs 才可以继续使用 CJS 。

    为了减少理解上的门槛,这里选择了使用 .mjs 新扩展名便于入门,可以在 了解 package.json 部分的内容了解更多。

    此时目录结构应该如下:

    bash
    hello-node
    + # 源码文件夹
    +├─src
    +  # 上次用来测试 CommonJS 的相关文件
    + ├─cjs
    +  ├─index.cjs
    +  └─module.cjs
    + 
    +  # 这次要用的 ES Module 测试文件
    + └─esm
    +    # 入口文件
    +   ├─index.mjs
    +    # 模块文件
    +   └─module.mjs
    +
    + # 项目清单
    +└─package.json

    同样的,源代码放在 src 文件夹里面管理。

    然后再修改一下 package.json 里面的 scripts 部分,参照上次配置 CJS 的格式,增加一个 ESM 版本的 script ,改成如下:

    json
    {
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs",
    +    "dev:esm": "node src/esm/index.mjs"
    +  }
    +}

    后面在命令行执行 npm run dev:esm 就可以测试的 ESM 模块了。

    TIP

    注意, script 里的 .mjs 扩展名不能省略。

    另外,在实际项目中,可能不需要做这些处理,因为很多工作脚手架已经帮处理过了,比如 Vue3 项目。

    基本语法

    ESM 使用 export default (默认导出)和 export (命名导出)这两个语法导出模块,和 CJS 一样, ESM 也可以导出任意合法的 JavaScript 类型,例如:字符串、布尔值、对象、数组、函数等等。

    使用 import ... from ... 导入模块,在导入的时候,如果文件扩展名是 .js 则可以省略文件名后缀,否则需要把扩展名也完整写出来。

    默认导出和导入

    ESM 的默认导出也是一个模块只包含一个值,导入时声明的变量名,它对应的数据就是对应模块的值。

    src/esm/module.mjs 文件里,写入以下代码,导出一句 Hello World 信息:

    js
    // src/esm/module.mjs
    +export default 'Hello World'

    src/esm/index.mjs 文件里,写入以下代码,导入刚刚编写的模块。

    js
    // src/esm/index.mjs
    +import m from './module.mjs'
    +console.log(m)

    在命令行输入 npm run dev:esm ,可以看到成功输出了 Hello World 信息:

    bash
    npm run dev:esm
    +
    +> demo@1.0.0 dev:esm
    +> node src/esm/index.mjs
    +
    +Hello World

    可以看到,在导入模块时,声明的 m 变量拿到的值,就是整个模块的内容,可以直接使用,此例子中它是一个字符串。

    像在 CJS 的例子里一样,也来再改动一下,把 src/esm/module.mjs 改成导出一个函数:

    js
    // src/esm/module.mjs
    +export default function foo() {
    +  console.log('Hello World')
    +}

    同样的,这次也是变成了导入一个函数,可以执行它:

    js
    // src/esm/index.mjs
    +import m from './module.mjs'
    +m()

    一样可以从模块里的函数得到一句 Hello World 的打印信息。

    bash
    npm run dev:esm
    +
    +> demo@1.0.0 dev:esm
    +> node src/esm/index.mjs
    +
    +Hello World

    TIP

    可以看到, CJS 和 ESM 的默认导出是非常相似的,在未来如果有老项目需要从 CJS 往 ESM 迁移,大部分情况下只需要把 module.exports 改成 export default 即可。

    命名导出和导入

    虽然默认导出的时候, CJS 和 ESM 的写法非常相似,但命名导出却完全不同!

    在 CJS 里,使用命名导出后的模块数据默认是一个对象,可以导入模块后通过 m.foo 这样的方式去调用对象的属性,或者在导入的时候直接解构拿到对象上的某个属性:

    js
    // CJS 支持导入的时候直接解构
    +const { foo } = require('./module.cjs')

    但 ES Module 的默认导出不能这样做,例如下面这个例子,虽然默认导出了一个对象:

    js
    // 在 ESM ,通过这样导出的数据也是属于默认导出
    +export default {
    +  foo: 1,
    +}

    但是无法和 CJS 一样通过大括号的方式导入其中的某个属性:

    js
    // ESM 无法通过这种方式对默认导出的数据进行 “解构”
    +import { foo } from './module.mjs'

    这样操作在运行过程中,控制台会抛出错误信息:

    bash
    import { foo } from './module.mjs'
    +         ^^^
    +SyntaxError:
    +The requested module './module.mjs' does not provide an export named 'foo'

    正确的方式应该是通过 export 对数据进行命名导出,先将 src/esm/module.mjs 文件修改成如下代码,请留意 export 关键字的使用:

    js
    // src/esm/module.mjs
    +export function foo() {
    +  console.log('Hello World from foo.')
    +}
    +
    +export const bar = 'Hello World from bar.'

    通过 export 命名导出的方式,现在才可以使用大括号将它们进行命名导入:

    js
    // src/esm/index.mjs
    +import { foo, bar } from './module.mjs'
    +
    +foo()
    +console.log(bar)

    这一次程序可以顺利运行了:

    bash
    npm run dev:esm
    +
    +> demo@1.0.0 dev:esm
    +> node src/esm/index.mjs
    +
    +Hello World from foo.
    +Hello World from bar.

    那么有没有办法像 CJS 一样使用 m.foo 调用对象属性的方式一样,去使用这些命名导出的模块呢?

    答案是肯定的!命名导出支持使用 * as 变量名称 的方式将其所有命名挂在某个变量上,该变量是一个对象,每一个导出的命名都是其属性:

    ts
    // src/esm/index.mjs
    +// 注意这里使用了另外一种方式,将所有的命名导出都挂在了 `m` 变量上
    +import * as m from './module.mjs'
    +
    +console.log(typeof m)
    +console.log(Object.keys(m))
    +
    +m.foo()
    +console.log(m.bar)

    运行 npm run dev:esm ,将输出:

    bash
    npm run dev:esm
    +
    +> demo@1.0.0 dev:esm
    +> node src/esm/index.mjs
    +
    +object
    +[ 'bar', 'foo' ]
    +Hello World from foo.
    +Hello World from bar.

    导入时重命名

    接下来看看 ESM 是如何处理相同命名导出的问题,项目下的模块文件依然保持不变,还是导出两个变量:

    js
    // src/esm/module.mjs
    +export function foo() {
    +  console.log('Hello World from foo.')
    +}
    +
    +export const bar = 'Hello World from bar.'

    入口文件里面,也声明一个 foo 变量,然后导入的时候对模块里的 foo 进行重命名操作:

    js
    // src/esm/index.mjs
    +import {
    +  foo as foo2,  // 这里进行了重命名
    +  bar
    +} from './module.mjs'
    +
    +// 就不会造成变量冲突
    +const foo = 1
    +console.log(foo)
    +
    +// 用新的命名来调用模块里的方法
    +foo2()
    +
    +// 这个不冲突就可以不必处理
    +console.log(bar)

    可以看到,在 ESM 的重命名方式和 CJS 是完全不同的,它是使用 as 关键字来操作,语法为 <old-name> as <new-name>

    现在再次运行 npm run dev:esm ,可以看到打印出来的结果也是完全符合预期了:

    bash
    npm run dev:esm
    +
    +> demo@1.0.0 dev:esm
    +> node src/esm/index.mjs
    +
    +1
    +Hello World from foo.
    +Hello World from bar.

    以上是针对命名导出时的重命名方案,如果是默认导出,和 CJS 一样,在导入的时候用一个不冲突的变量名来声明就可以了。

    在浏览器里访问 ESM

    ES Module 除了支持在 Node 环境使用,还可以和普通的 JavaScript 代码一样在浏览器里运行。

    要在浏览器里体验 ESM ,需要使用现代的主流浏览器(如 Chrome ),并注意其访问限制,例如本地开发不能直接通过 file:// 协议在浏览器里访问本地 HTML 内引用的 JS 文件,这是因为浏览器对 JavaScript 的安全性要求,会触发 CORS 错误,因此需要启动本地服务并通过 http:// 协议访问。

    TIP

    CORS (全称 Cross-Origin Resource Sharing )是指跨源资源共享,可以决定浏览器是否需要阻止 JavaScript 获取跨域请求的响应。

    现代浏览器默认使用 “同源安全策略” ,这里的 “源” 指 URL 的 origin 部分,例如网页可以通过 window.location.origin 获取到如 https://example.com 这样格式的数据,就是网页的 origin

    默认情况下,非同源的请求会被浏览器拦截,最常见的场景是通过 XHR 或者 Fetch 请求 API 接口,需要网页和接口都部署在同一个域名才可以请求成功,否则就会触发跨域限制。

    如果网页和接口不在同一个域名,例如网页部署在 https://web.example.com ,接口部署在 https://api.example.com ,此时需要在 https://api.example.com 的 API 服务端程序里,配置 Access-Control-Allow-Origin: * 允许跨域请求( * 代表允许任意外域访问,也可以指定具体的域名作为白名单列表)。

    添加服务端程序

    接下来搭建一个简单的本地服务,并通过 HTML 文件来引入 ESM 模块文件,体验浏览器端如何使用 ESM 模块。

    在 hello-node 项目的根目录下创建名为 server 的文件夹(与 src 目录同级),并添加 index.js 文件,敲入以下代码:

    js
    // server/index.js
    +const { readFileSync } = require('fs')
    +const { resolve } = require('path')
    +const { createServer } = require('http')
    +
    +/**
    + * 判断是否 ESM 文件
    + */
    +function isESM(url) {
    +  return String(url).endsWith('mjs')
    +}
    +
    +/**
    + * 获取 MIME Type 信息
    + * @tips `.mjs` 和 `.js` 一样,都使用 JavaScript 的 MIME Type
    + */
    +function mimeType(url) {
    +  return isESM(url) ? 'application/javascript' : 'text/html'
    +}
    +
    +/**
    + * 获取入口文件
    + * @returns 存放在本地的文件路径
    + */
    +function entryFile(url) {
    +  const file = isESM(url) ? `../src/esm${url}` : './index.html'
    +  return resolve(__dirname, file)
    +}
    +
    +/**
    + * 创建 HTTP 服务
    + */
    +const app = createServer((request, response) => {
    +  // 获取请求时的相对路径,如网页路径、网页里的 JS 文件路径等
    +  const { url } = request
    +
    +  // 转换成对应的本地文件路径并读取其内容
    +  const entry = entryFile(url)
    +  const data = readFileSync(entry, 'utf-8')
    +
    +  // 需要设置正确的响应头信息,浏览器才可以正确响应
    +  response.writeHead(200, { 'Content-Type': mimeType(url) })
    +  response.end(data)
    +})
    +
    +/**
    + * 在指定的端口号启动本地服务
    + */
    +const port = 8080
    +app.listen(port, '0.0.0.0', () => {
    +  console.log(`Server running at:`)
    +  console.log()
    +  console.log(`  ➜  Local:  http://localhost:${port}/`)
    +  console.log()
    +})

    这是一个基础的 Node.js 服务端程序,利用了 HTTP 模块启动本地服务,期间利用 FS 模块的 I/O 能力对本地文件进行读取,而 PATH 模块则简化了文件操作过程中的路径处理和兼容问题(例如众所周知的 Windows 与 macOS 的路径斜杆问题)。

    TIP

    在这段服务端程序代码里,请留意 mimeType 方法,要让浏览器能够正确解析 .mjs 文件,需要在服务端响应文件内容时,将其 MIME Type 设置为 和 JavaScript 文件一样,这一点非常重要。

    并且需要注意传递给 readFileSync API 的文件路径是否与真实存在的文件路径匹配,如果启动服务时,在 Node 控制台报了 no such file or directory 的错误,请检查是否因为笔误写错了文件名称,或者文件路径多了空格等情况。

    添加入口页面

    继续在 server 目录下添加一个 index.html 并写入以下 HTML 代码,它将作为网站的首页文件:

    TIP

    可以在 VSCode 先新建一个空文件,文件语言设置为 HTML ,并写入英文感叹号 ! ,再按 Tab 键(或者鼠标选择第一个代码片段提示),可快速生成基础的 HTML 结构。

    html
    <!-- server/index.html -->
    +<!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>ESM run in browser</title>
    +  </head>
    +  <body>
    +    <script type="module" src="./index.mjs"></script>
    +  </body>
    +</html>

    请注意在 <script /> 标签这一句代码上,比平时多了一个 type="module" 属性,这代表这个 script 是使用了 ESM 模块,而 src 属性则对应指向了上文在 src/esm 目录下的入口文件名。

    之所以无需使用 ../src/esm/index.mjs 显式的指向真实目录,是因为在 添加服务端程序 时,已通过服务端代码里的 entryFile 方法重新指向了文件所在的真实路径,所以在 HTML 文件里可以使用 ./ 简化文件路径。

    启动服务并访问

    打开 package.json 文件,在 scripts 字段追加一个 serve 命令如下:

    json
    {
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs",
    +    "dev:esm": "node src/esm/index.mjs",
    +    "serve": "node server/index.js"
    +  }
    +}

    在命令行运行 npm run serve 即可启动本地服务:

    bash
     npm run serve
    +
    +> demo@1.0.0 serve
    +> node server/index.js
    +
    +Server running at:
    +
    +    Local:  http://localhost:8080/

    根据命令行提示,在浏览器访问 http://localhost:8080/ 地址,即可访问本地服务。

    TIP

    如遭遇端口号冲突,可在 server/index.js 的 const port = 8080 代码处修改为其他端口号。

    因为在编写 HTML 文件时没有写入内容,只引入了 ESM 模块文件,因此需要按 F12 唤起浏览器的控制台查看 Log ,可以看到控制台根据模块的文件内容,输出了这三句 Log (如果没有 Log ,可在控制台唤起的情况下按 F5 重新载入页面):

    bash
    1                                                   index.mjs:8
    +Hello World from foo.                               module.mjs:2
    +Hello World from bar.                               index.mjs:14

    分别来自 src/esm/index.mjs 本身的 console.log 语句,以及 import 进来的 module.mjs 里的 console.log 语句。

    如果未能出现这三句 Log ,请留意 .mjs 文件内容是否为上一小节最后的内容:

    src/esm/index.mjs 文件内容为:

    js
    // src/esm/index.mjs
    +import {
    +  foo as foo2, // 这里进行了重命名
    +  bar,
    +} from './module.mjs'
    +
    +// 就不会造成变量冲突
    +const foo = 1
    +console.log(foo)
    +
    +// 用新的命名来调用模块里的方法
    +foo2()
    +
    +// 这个不冲突就可以不必处理
    +console.log(bar)

    src/esm/module.mjs 文件内容为:

    js
    // src/esm/module.mjs
    +export function foo() {
    +  console.log('Hello World from foo.')
    +}
    +
    +export const bar = 'Hello World from bar.'
    内联的 ESM 代码

    到目前为止, server/index.html 文件里始终是通过文件的形式引入 ESM 模块,其实 <script type="module" /> 也支持编写内联代码,和普通的 <script /> 标签用法相同:

    html
    <script type="module">
    +  // ESM 模块的 JavaScript 代码
    +</script>

    请移除 <script /> 标签的 src 属性,并在标签内写入 src/esm/index.mjs 文件里的代码,现在该 HTML 文件的完整代码如下:

    html
    <!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>ESM run in browser</title>
    +  </head>
    +  <body>
    +    <!-- 标签内的代码就是 src/esm/index.mjs 的代码 -->
    +    <script type="module">
    +      import {
    +        foo as foo2, // 这里进行了重命名
    +        bar,
    +      } from './module.mjs'
    +
    +      // 就不会造成变量冲突
    +      const foo = 1
    +      console.log(foo)
    +
    +      // 用新的命名来调用模块里的方法
    +      foo2()
    +
    +      // 这个不冲突就可以不必处理
    +      console.log(bar)
    +    </script>
    +  </body>
    +</html>

    回到浏览器刷新 http://localhost:8080/ ,可以看到浏览器控制台依然输出了和引入 src="./index.mjs" 时一样的 Log 信息:

    bash
    1                                                   (index):21
    +Hello World from foo.                               module.mjs:2
    +Hello World from bar.                               (index):27
    了解模块导入限制

    虽然以上例子可以完美地在浏览器里引用现成的 ESM 模块代码并运行,但不代表工程化项目下所有的 ES Module 模块化方式都适合浏览器。

    先做一个小尝试,将 src/esm/index.mjs 文件内容修改如下,导入项目已安装的 md5 工具包:

    js
    // src/esm/index.mjs
    +import md5 from 'md5'
    +console.log(md5('Hello World'))

    回到浏览器刷新 http://localhost:8080/ ,观察控制台,可以发现出现了一个红色的错误信息:

    bash
    Uncaught TypeError: Failed to resolve module specifier "md5".
    +Relative references must start with either "/", "./", or "../".

    这是因为不论是通过 <script type="module" /> 标签还是通过 import 语句导入,模块的路径都必须是以 /./ 或者是 ../ 开头,因此无法直接通过 npm 包名进行导入。

    这种情况下需要借助另外一个 script 类型: importmap ,在 server/index.html 里追加 <script type="importmap" /> 这一段代码:

    html
    <!DOCTYPE html>
    +<html lang="en">
    +  <head>
    +    <meta charset="UTF-8" />
    +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +    <title>ESM run in browser</title>
    +  </head>
    +  <body>
    +    <!-- 注意需要先通过 `importmap` 引入 npm 包的 CDN -->
    +    <script type="importmap">
    +      {
    +        "imports": {
    +          "md5": "https://esm.run/md5"
    +        }
    +      }
    +    </script>
    +
    +    <!-- 然后才能在 `module` 里 `import xx from 'xx'` -->
    +    <script type="module" src="./index.mjs"></script>
    +  </body>
    +</html>

    再次刷新页面,可以看到控制台成功输出了 b10a8db164e0754105b7a99be72e3fe5 这个字符串,也就是 Hello World 被 MD5 处理后的结果。

    可以看到 importmap 的声明方式和 package.json 的 dependencies 字段非常相似, JSON 的 key 是包名称, value 则是支持 ESM 的远程地址。

    TIP

    Import Maps 的运行机制是通过 import 映射来控制模块说明符的解析,类似于构建工具常用的 alias 别名机制。

    这是一个现代浏览器才能支持的新特性,建议使用 Chrome 最新版本体验完整功能,可以在其 GitHub 仓库 查看更多用法。

    上方例子里, md5 对应的远程地址是使用了来自 esm.run 网站的 URL ,而不是 npm 包同步到 jsDelivr CDN 或者 UNPKG CDN 的地址,这是因为 md5 这个包本身不支持 ES Module ,需要通过 esm.run 这个网站进行在线转换才可以在 <script type="module" /> 上使用。

    该网站的服务是 jsDelivr CDN 所属的服务商提供,因此也可以通过 jsDelivr CDN 的 URL 添加 /+esm 参数来达到转换效果,以 md5 包为例:

    bash
    # 默认是一个 CJS 包
    +https://cdn.jsdelivr.net/npm/md5
    +
    +# 可添加 `/+esm` 参数变成 ESM 包
    +https://cdn.jsdelivr.net/npm/md5/+esm

    总的来说,现阶段在浏览器使用 ES Module 并不是一个很好的选择,建议开发者还是使用构建工具来开发,工具可以抹平这些浏览器差异化问题,降低开发成本。

    认识组件化设计

    学习完模块化设计之后,未来在 Vue 的工程化开发过程中,还会遇到一个新的概念,那就是 “组件” 。

    什么是组件化

    模块化属于 JavaScript 的概念,但作为一个页面,都知道它是由 HTML + CSS + JS 三部分组成的,既然 JS 代码可以按照不同的功能、需求划分成模块,那么页面是否也可以呢?

    答案是肯定的!组件化就是由此而来。

    在前端工程项目里,页面可以理解为一个积木作品,组件则是用来搭建这个作品的一块又一块积木。

    解决了什么问题

    模块化属于 JavaScript 的概念,把代码块的职责单一化,一个函数、一个类都可以独立成一个模块。

    但这只解决了逻辑部分的问题,一个页面除了逻辑,还有骨架( HTML )和样式( CSS ),组件就是把一些可复用的 HTML 结构和 CSS 样式再做一层抽离,然后再放置到需要展示的位置。

    常见的组件有:页头、页脚、导航栏、侧边栏… 甚至小到一个用户头像也可以抽离成组件,因为头像可能只是尺寸、圆角不同而已。

    每个组件都有自己的 “作用域” , JavaScript 部分利用 模块化 来实现作用域隔离, HTML 和 CSS 代码则借助 Style Scoped 来生成独有的 hash ,避免全局污染,这些方案组合起来,使得组件与组件之间的代码不会互相影响。

    如何实现组件化

    在 Vue ,是通过 Single-File Component (简称 SFC , .vue 单文件组件)来实现组件化开发。

    一个 Vue 组件是由三部分组成的:

    vue
    <template>
    +  <!-- HTML 代码 -->
    +</template>
    +
    +<script>
    +// JavaScript 代码
    +</script>
    +
    +<style scoped>
    +/* CSS 代码 */
    +</style>

    在后面的 单组件的编写 一章中,会详细介绍如何编写一个 Vue 组件。

    依赖包和插件

    在实际业务中,经常会用到各种各样的插件,插件在 Node 项目里的体现是一个又一个的依赖包。

    虽然也可以把插件的代码文件手动放到的源码文件夹里引入,但并不是一个最佳的选择,本节内容将带了解 Node 的依赖包。

    什么是包

    在 Node 项目里,包可以简单理解为模块的集合,一个包可以只提供一个模块的功能,也可以作为多个模块的集合集中管理。

    包通常是发布在官方的包管理平台 npmjs 上面,开发者需要使用的时候,可以通过包管理器安装到项目里,并在的代码里引入,开箱即用(详见: 依赖包的管理 )。

    使用 npm 包可以减少在项目中重复造轮子,提高项目的开发效率,也可以极大的缩小项目源码的体积(详见:什么是 node_modules)。

    包管理平台官网:https://www.npmjs.com

    什么是 node_modules

    node_modules 是 Node 项目下用于存放已安装的依赖包的目录,如果不存在,会自动创建。

    如果是本地依赖,会存在于项目根目录下,如果是全局依赖,会存在于环境变量关联的路径下,详见下方的管理依赖部分内容的讲解。

    TIP

    一般在提交项目代码到 Git 仓库或者的服务器上时,都需要排除 node_modules 文件夹的提交,因为它非常大。

    如果托管在 Git 仓库,可以在 .gitignore 文件里添加 node_modules 作为要排除的文件夹名称。

    什么是包管理器

    包管理器( Package Manager )是用来管理依赖包的工具,比如:发布、安装、更新、卸载等等。

    Node 默认提供了一个包管理器 npm ,在安装 Node.js 的时候,默认会一起安装 npm 包管理器,可以通过以下命令查看它是否正常。

    bash
    npm -v

    如果正常,将会输出相应的版本号。

    依赖包的管理

    接下来会以 npm 作为默认的包管理器,来了解如何在项目里管理依赖包。

    配置镜像源

    在国内,直接使用 npm 会比较慢,可以通过绑定 npm Mirror 中国镜像站 的镜像源来提升依赖包的下载速度。

    可以先在命令行输入以下命令查看当前的 npm 配置:

    bash
    npm config get registry
    +# https://registry.npmjs.org/

    默认情况下,会输出 npm 官方的资源注册表地址,接下来在命令行上输入以下命令,进行镜像源的绑定:

    bash
    npm config set registry https://registry.npmmirror.com

    可以再次运行查询命令来查看是否设置成功:

    bash
    npm config get registry
    +# https://registry.npmmirror.com/

    可以看到已经成功更换为中国镜像站的地址了,之后在安装 npm 包的时候,速度会有很大的提升!

    如果需要删除自己配置的镜像源,可以输入以下命令进行移除,移除后会恢复默认设置:

    bash
    npm config rm registry

    TIP

    如果之前已经绑定过 npm.taobao 系列域名,也请记得更换成 npmmirror 这个新的域名!

    随着新的域名已经正式启用,老 npm.taobao.orgregistry.npm.taobao.org 域名在 2022 年 05 月 31 日零时后不再提供服务。

    详见:【望周知】淘宝 npm 镜像站喊你切换新域名啦

    本地安装

    项目的依赖建议优先选择本地安装,这是因为本地安装可以把依赖列表记录到 package.json 里,多人协作的时候可以减少很多问题出现,特别是当本地依赖与全局依赖版本号不一致的时候。

    生产依赖

    执行 npm install 的时候,添加 --save 或者 -S 选项可以将依赖安装到本地,并列为生产依赖。

    TIP

    需要提前在命令行 cd 到的项目目录下再执行安装。

    另外, --save 或者 -S 选项在实际使用的时候可以省略,因为它是默认选项。

    bash
    npm install --save <package-name>

    可以在项目的 package.json 文件里的 dependencies 字段查看是否已安装成功,例如:

    json
    // package.json
    +{
    +  // 会安装到这里
    +  "dependencies": {
    +    // 以 "包名":"版本号" 的格式写入
    +    "vue-router": "^4.0.14"
    +  }
    +}

    生产依赖包会被安装到项目根目录下的 node_modules 目录里。

    项目在上线后仍需用到的包,就需要安装到生产依赖里,比如 Vue 的路由 vue-router 就需要以这个方式安装。

    开发依赖

    执行 npm install 的时候,如果添加 --save-dev 或者 -D 选项,可以将依赖安装到本地,并写入开发依赖里。

    TIP

    需要提前在命令行 cd 到的项目目录下再执行安装。

    bash
    npm install --save-dev <package-name>

    可以在项目的 package.json 文件里的 devDependencies 字段查看是否已安装成功,例如:

    json
    // package.json
    +{
    +  // 会安装到这里
    +  "devDependencies": {
    +    // 以 "包名":"版本号" 的格式写入
    +    "eslint": "^8.6.0"
    +  }
    +}

    开发依赖包也是会被安装到项目根目录下的 node_modules 目录里。

    和生产依赖包不同的点在于,只在开发环境生效,构建部署到生产环境时可能会被抛弃,一些只在开发环境下使用的包,就可以安装到开发依赖里,比如检查代码是否正确的 ESLint 就可以用这个方式安装。

    全局安装

    执行 npm install 的时候,如果添加 --global 或者 -g 选项,可以将依赖安装到全局,它们将被安装在 配置环境变量 里配置的全局资源路径里。

    bash
    npm install --global <package-name>

    TIP

    Mac 用户需要使用 sudo 来提权才可以完成全局安装。

    另外,可以通过 npm root -g 查看全局包的安装路径。

    一般情况下,类似于 @vue/cli 之类的脚手架会提供全局安装的服务,安装后,就可以使用 vue create xxx 等命令直接创建 Vue 项目了。

    但不是每个 npm 包在全局安装后都可以正常使用,请阅读 npm 包的主页介绍和使用说明。

    版本控制

    有时候一些包的新版本不一定适合的老项目,因此 npm 也提供了版本控制功能,支持通过指定的版本号或者 Tag 安装。

    语法如下,在包名后面紧跟 @ 符号,再紧跟版本号或者 Tag 名称。

    bash
    npm install <package-name>@<version | tag>

    例如:

    现阶段 Vue 默认为 3.x 的版本了,如果想安装 Vue 2 ,可以通过指定版本号的方式安装:

    bash
    npm install vue@2.6.14

    或者通过对应的 Tag 安装:

    bash
    npm install vue@legacy

    TIP

    版本号或者 Tag 名称可以在 npmjs 网站上的包详情页查询。

    版本升级

    一般来说,直接重新安装依赖包可以达到更新的目的,但也可以通过 npm update 命令来更新。

    语法如下,可以更新全部的包:

    bash
    npm update

    也可以更新指定的包:

    bash
    npm update <package-name>

    npm 会检查是否有满足版本限制的更新版本。

    卸载

    可以通过 npm uninstall 命令来卸载指定的包,和安装一样,卸载也区分了卸载本地依赖包和卸载全局包,不过只有在卸载全局包的时候才需要添加选项,默认只卸载当前项目下的本地包。

    本地卸载:

    bash
    npm uninstall <package-name>

    全局卸载:

    bash
    npm uninstall --global <package-name>

    TIP

    Mac 用户需要使用 sudo 来提权才可以完成全局卸载。

    如何使用包

    在了解了 npm 包的常规操作之后,通过一个简单的例子来了解如何在项目里使用 npm 包。

    继续使用的 Hello Node demo ,或者也可以重新创建一个 demo 。

    首先在 命令行工具 通过 cd 命令进入项目所在的目录,用本地安装的方式来把 md5 包 添加到生产依赖,这是一个为提供开箱即用的哈希算法的包,在未来的实际工作中,可能也会用到它,在这里使用它是因为足够简单。

    输入以下命令并回车执行:

    bash
    npm install md5

    可以看到控制台提示一共安装了 4 个包,这是因为 md5 这个 npm 包还引用了其他的包作为依赖,需要同时安装才可以正常工作。

    bash
    # 这是安装 md5 之后控制台的信息返回
    +added 4 packages, and audited 5 packages in 2s
    +
    +found 0 vulnerabilities

    此时项目目录下会出现一个 node_modules 文件夹和一个 package-lock.json 文件:

    bash
    hello-node
    + # 依赖文件夹
    +├─node_modules
    + # 源码文件夹
    +├─src
    + # 锁定安装依赖的版本号
    +├─package-lock.json
    + # 项目清单
    +└─package.json

    先打开 package.json ,可以看到已经多出了一个 dependencies 字段,这里记录了刚刚安装的 md5 包信息。

    json
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "description": "",
    +  "main": "index.js",
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs",
    +    "dev:esm": "node src/esm/index.mjs",
    +    "serve": "node server/index.js"
    +  },
    +  "keywords": [],
    +  "author": "",
    +  "license": "ISC",
    +  "dependencies": {
    +    "md5": "^2.3.0"
    +  }
    +}

    来到这里可能会有一连串的疑问:

    1. 为什么只安装了一个 md5 ,但控制台提示安装了 4 个包?
    2. 为什么 package.json 又只记录了 1 个 md5 包信息?
    3. 为什么提示审核了 5 个包,哪里来的第 5 个包?

    不要着急,请先打开 package-lock.json 文件,这个文件是记录了锁定安装依赖的版本号信息(由于篇幅原因,这里的展示省略了一些包的细节):

    json
    {
    +  "name": "hello-node",
    +  "version": "1.0.0",
    +  "lockfileVersion": 2,
    +  "requires": true,
    +  "packages": {
    +    "": {
    +      "name": "hello-node",
    +      "version": "1.0.0",
    +      "license": "ISC",
    +      "dependencies": {
    +        "md5": "^2.3.0"
    +      }
    +    },
    +    "node_modules/charenc": {
    +      "version": "0.0.2"
    +      // ...
    +    },
    +    "node_modules/crypt": {
    +      "version": "0.0.2"
    +      // ...
    +    },
    +    "node_modules/is-buffer": {
    +      "version": "1.1.6"
    +      // ...
    +    },
    +    "node_modules/md5": {
    +      "version": "2.3.0"
    +      // ...
    +    }
    +  },
    +  "dependencies": {
    +    "charenc": {
    +      "version": "0.0.2"
    +      // ...
    +    },
    +    "crypt": {
    +      "version": "0.0.2"
    +      // ...
    +    },
    +    "is-buffer": {
    +      "version": "1.1.6"
    +      // ...
    +    },
    +    "md5": {
    +      "version": "2.3.0",
    +      // ...
    +      "requires": {
    +        "charenc": "0.0.2",
    +        "crypt": "0.0.2",
    +        "is-buffer": "~1.1.6"
    +      }
    +    }
    +  }
    +}

    可以看到这个文件的 dependencies 字段除了 md5 之外,还有另外 3 个包信息,它们就是 md5 包所依赖的另外 3 个 npm 包了,这就解答了为什么一共安装了 4 个 npm 包。

    在 node_modules 文件夹下也可以看到以这 4 个包名为命名的文件夹,这些文件夹存放的就是各个包项目发布在 npmjs 平台上的文件。

    再看 packages 字段,这里除了罗列出 4 个 npm 包的信息之外,还把项目的信息也列了进来,这就是为什么是提示审核了 5 个包,原因是除了 4 个依赖包,该项目本身也是一个包。

    TIP

    package-lock.json 文件并不是一成不变的,假如以后 md5 又引用了更多的包,这里记录的信息也会随之增加。

    并且不同的包管理器,它的 lock 文件也会不同,如果是使用 yarn 作为包管理器的话,它是生成一个 yarn.lock 文件,而不是 package-lock.json ,有关更多的包管理器,详见 插件的使用 一章。

    现在已经安装好 md5 包了,接下来看看具体如何使用它。

    通常在包的 npmjs 主页上会有 API 和用法的说明,只需要根据说明操作,打开 src/esm/index.mjs 文件,首先需要导入这个包。

    包的导入和在 学习模块化设计 一节了解到的模块导入用法是一样的,只是把 from 后面的文件路径换成了包名。

    js
    // src/esm/index.mjs
    +import md5 from 'md5'

    然后根据 md5 的用法,来编写一个小例子,先声明一个原始字符串变量,然后再声明一个使用 md5 加密过的字符串变量,并打印它们:

    js
    // src/esm/index.mjs
    +import md5 from 'md5'
    +
    +const before = 'Hello World'
    +const after = md5(before)
    +console.log({ before, after })

    在命令行输入 npm run dev:esm ,可以在控制台看到输出了这些内容,成功获得了转换后的结果:

    bash
    npm run dev:esm
    +
    +> demo@1.0.0 dev:esm
    +> node src/esm/index.mjs
    +
    +{ before: 'Hello World', after: 'b10a8db164e0754105b7a99be72e3fe5' }

    是不是非常简单,其实包的用法和在导入模块的用法可以说是完全一样的,区别主要在于,包是需要安装了才能用,而模块是需要自己编写。

    控制编译代码的兼容性

    作为一名前端工程师,了解如何控制代码的兼容性是非常重要的能力。

    在 “了解前端工程化” 的 为什么要使用构建工具 一节里,已简单介绍过 Polyfill 的作用,以及介绍了构建工具可以通过 Babel 等方案自动化处理代码的兼容问题,这一小节将讲解 Babel 的配置和使用,亲自体验如何控制代码的兼容性转换。

    如何查询兼容性

    在开始学习使用 Babel 之前,需要先掌握一个小技能:了解如何查询代码在不同浏览器上的兼容性。

    说起浏览器兼容性,前端工程师应该都不陌生,特别是初学者很容易会遇到在自己的浏览器上布局正确、功能正常,而在其他人的电脑或者手机上访问就会有布局错位或者运行报错的问题出现,最常见的场景就是开发者使用的是功能强大的 Chrome 浏览器,而产品用户使用了 IE 浏览器。

    这是因为网页开发使用的 HTML / CSS / JavaScript 每年都在更新新版本,推出更好用的新 API ,或者废弃部分过时的旧 API ,不同的浏览器在版本更新过程中,对这些新 API 的支持程度并不一致,如果使用了新 API 而没有做好兼容支持,很容易就会在低版本浏览器上出现问题。

    为了保证程序可以正确的在不同版本浏览器之间运行,就需要根据产品要支持的目标浏览器范围,去选择兼容性最好的编程方案。

    在 Web 开发有一个网站非常知名:Can I use ,只要搜索 API 的名称,它会以图表的形式展示该 API 在不同浏览器的不同版本之间的支持情况,支持 HTML 标签、 CSS 属性、 JavaScript API 等内容的查询。

    以 JavaScript ES6 的 class 新特性为例:

    可以看到在 Chrome 浏览器需要在 49 版本开始才被完全支持,而 IE 浏览器则全面不支持,如果不做特殊处理(例如引入 Polyfill 方案),那么就需要考虑在编程过程中,是否需要可以直接使用 class 来实现功能,还是寻找其他替代方案。

    在工作中,工程师无需关注每一个 API 的具体支持范围,这些工作可以交给工具来处理,下面将介绍 Babel 的使用入门。

    Babel 的使用和配置

    Babel 是一个 JavaScript 编译器,它可以让开发者仅需维护一份简单的 JSON 配置文件,即可调动一系列工具链将源代码编译为目标浏览器指定版本所支持的语法。

    安装 Babel

    请打开 hello-node 项目,安装以下几个 Babel 依赖:

    bash
    npm i -D @babel/core @babel/cli @babel/preset-env

    此时在 package.json 的 devDependencies 可以看到有了如下三个依赖:

    json
    {
    +  "devDependencies": {
    +    "@babel/cli": "^7.19.3",
    +    "@babel/core": "^7.19.3",
    +    "@babel/preset-env": "^7.19.3"
    +  }
    +}

    它们的作用分别如下:

    依赖作用文档
    @babel/cli安装后可以从命令行使用 Babel 编译文件查看文档
    @babel/coreBabel 的核心功能包查看文档
    @babel/preset-env智能预设,可以通过它的选项控制代码要转换的支持版本查看文档

    TIP

    在使用 Babel 时,建议在项目下进行本地安装,尽量不选择全局安装,这是因为不同项目可能依赖于不同版本的 Babel ,全局依赖和可能会出现使用上的异常。

    添加 Babel 配置

    接下来在 hello-node 的根目录下创建一个名为 babel.config.json 的文件,这是 Babel 的配置文件,写入以下内容:

    json
    {
    +  "presets": [
    +    [
    +      "@babel/preset-env",
    +      {
    +        "targets": {
    +          "chrome": "41"
    +        },
    +        "modules": false,
    +        "useBuiltIns": "usage",
    +        "corejs": "3.6.5"
    +      }
    +    ]
    +  ]
    +}

    这份配置将以 Chrome 浏览器作为目标浏览器,编译结果将保留 ES Module 规范,可以在 配置文件文档 查看更多配置选项。

    这里的 targets.chrome 字段代表编译后要支持的目标浏览器版本号,在 caniuse 查询可知 ES6 的 class 语法 在 Chrome 49 版本之后才被完全支持,而 Chrome 41 或更低的版本是完全不支持该语法,因此先将其目标版本号设置为 41 ,下一步将开始测试 Babel 的编译结果。

    使用 Babel 编译代码

    在 hello-node 的 src 目录下添加一个 babel 文件夹,并在该文件夹下创建一个 index.js 文件,写入以下代码:

    js
    // src/babel/index.js
    +export class Hello {
    +  constructor(name) {
    +    this.name = name
    +  }
    +
    +  say() {
    +    return `Hello ${this.name}`
    +  }
    +}

    根据上一步的 Babel 配置,在这里使用 class 语法作为测试代码。

    接下来再打开 package.json 文件,添加一个 compile script 如下:

    json
    {
    +  "scripts": {
    +    "dev:cjs": "node src/cjs/index.cjs",
    +    "dev:esm": "node src/esm/index.mjs",
    +    "compile": "babel src/babel --out-dir compiled",
    +    "serve": "node server/index.js"
    +  }
    +}

    这条命令的含义是:使用 Babel 处理 src/babel 目录下的文件,并输出到根目录下的 compiled 文件夹。

    在命令行运行以下命令:

    bash
    npm run compile

    可以看到 hello-node 的根目录下多了一个 compiled 文件夹,里面有一个和源码相同命名的 index.js 文件,它的文件内容如下:

    js
    // compiled/index.js
    +function _classCallCheck(instance, Constructor) {
    +  if (!(instance instanceof Constructor)) {
    +    throw new TypeError('Cannot call a class as a function')
    +  }
    +}
    +
    +function _defineProperties(target, props) {
    +  for (var i = 0; i < props.length; i++) {
    +    var descriptor = props[i]
    +    descriptor.enumerable = descriptor.enumerable || false
    +    descriptor.configurable = true
    +    if ('value' in descriptor) descriptor.writable = true
    +    Object.defineProperty(target, descriptor.key, descriptor)
    +  }
    +}
    +
    +function _createClass(Constructor, protoProps, staticProps) {
    +  if (protoProps) _defineProperties(Constructor.prototype, protoProps)
    +  if (staticProps) _defineProperties(Constructor, staticProps)
    +  Object.defineProperty(Constructor, 'prototype', { writable: false })
    +  return Constructor
    +}
    +
    +export var Hello = /*#__PURE__*/ (function () {
    +  function Hello(name) {
    +    _classCallCheck(this, Hello)
    +
    +    this.name = name
    +  }
    +
    +  _createClass(Hello, [
    +    {
    +      key: 'say',
    +      value: function say() {
    +        return `Hello ${this.name}`
    +      },
    +    },
    +  ])
    +
    +  return Hello
    +})()

    由于 Chrome 41 版本不支持 class 语法,因此 Babel 做了大量的工作对其进行转换兼容。

    再次打开 babel.config.json ,将 targets.chrome 的版本号调整为支持 class 语法的 Chrome 49 版本:

    diff
    {
    +  "presets": [
    +    [
    +      "@babel/preset-env",
    +      {
    +        "targets": {
    +-          "chrome": "41"
    ++          "chrome": "49"
    +        },
    +        "modules": false,
    +        "useBuiltIns": "usage",
    +        "corejs": "3.6.5"
    +      }
    +    ]
    +  ]
    +}

    再次执行编译,这一次编译后的代码和编译前完全一样:

    js
    // compiled/index.js
    +export class Hello {
    +  constructor(name) {
    +    this.name = name
    +  }
    +
    +  say() {
    +    return `Hello ${this.name}`
    +  }
    +}

    因为此时配置文件指定的目标浏览器版本已支持该语法,无需转换。

    Babel 的使用其实非常简单,了解了这部分知识点之后,如果某一天需要自己控制代码的兼容性,只需要配合官方文档调整 Babel 的配置,处理起来就得心应手了!

    Released under the MIT License.

    + + + + \ No newline at end of file diff --git a/hashmap.json b/hashmap.json new file mode 100644 index 00000000..bbf05199 --- /dev/null +++ b/hashmap.json @@ -0,0 +1 @@ +{"changelog.md":"1e825a6d","preface.md":"59b338cf","efficient.md":"a41d0892","index.md":"c8d0f3cd","links.md":"d1aafe6b","pinia.md":"c3d0acb5","upgrade.md":"25cf659f","plugin.md":"66b7dcdd","guide.md":"82bb6597","router.md":"e17ca07e","engineering.md":"43ce842b","typescript.md":"e6e7bfb1","communication.md":"03c12ebf","component.md":"b59f8845"} diff --git a/icons/apple-touch-icon-152x152.png b/icons/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..397ad2be8fe47d1c1a1252d7f3674510ffc59b50 GIT binary patch literal 20188 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 literal 0 HcmV?d00001 diff --git a/icons/icon-128x128.png b/icons/icon-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..d99e792d652c6bc04059aa793dc92221296e1859 GIT binary patch literal 16420 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 literal 0 HcmV?d00001 diff --git a/icons/icon-256x256.png b/icons/icon-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..60da39b5b6a9316c03bdf7dbb6cb7aa05f1bad00 GIT binary patch literal 42402 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̷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 literal 0 HcmV?d00001 diff --git a/icons/icon-32x32.png b/icons/icon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..2a1785ccfe85d356df5beecdfcd11c63103d37c2 GIT binary patch literal 3502 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
      FCFR*B{C&$Qs&!nA5Tlkr#~!gNe-7 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 + + + diff --git a/index.html b/index.html new file mode 100644 index 00000000..ae6e487d --- /dev/null +++ b/index.html @@ -0,0 +1,24 @@ + + + + + + 出版说明 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
      Skip to content
      目录

      出版说明

      感谢各位读者长期以来的支持,经过长达一年时间的打磨和优化,本书已于 2023 年 5 月份正式出版上市,纸质版书籍的正式名称为《前端工程化:基于 Vue.js 3.0 的设计与实践》。

      如果您对笔者的作品认可,建议购买纸质版,纸质书在电子书的基础上,经过机械工业出版社的编辑老师们的内容优化、校对勘误、排版美化,更成体系!

      在此特别感谢李晓波编辑支持笔者将开源作品出版为纸质作品,李老师全程帮忙跟进了无数的大事小事,也给笔者科普了很多出版方面的知识,十分尽职!

      购买地址

      各位读者可以在各大电商平台购买纸质版书籍:

      ☞ 访问 京东商城 购买

      ☞ 访问 天猫商城 购买

      TIP

      可以在电商平台搜索纸质版的书名 “前端工程化:基于 Vue.js 3.0 的设计与实践” 或者笔者的名字 “程沛权” 查找更多的购买地址。

      背后的故事

      如果读者想了解这本书是如何写出来的,想了解笔者在日常生活中是个什么样的人,想知道笔者的表达能力是如何培养的,可以阅读 这本书背后的故事

      Released under the MIT License.

      + + + + \ No newline at end of file diff --git a/links.html b/links.html new file mode 100644 index 00000000..3e41b12b --- /dev/null +++ b/links.html @@ -0,0 +1,24 @@ + + + + + + 常用文档 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
      Skip to content
      目录

      Released under the MIT License.

      + + + + \ No newline at end of file diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..60e17006ad07cd313788585e2f5e528fbb7cf821 GIT binary patch literal 3451 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 literal 0 HcmV?d00001 diff --git a/logo.svg b/logo.svg new file mode 100644 index 00000000..d4d5f0bd --- /dev/null +++ b/logo.svg @@ -0,0 +1,8 @@ + + + + + diff --git a/manifest.json b/manifest.json new file mode 100644 index 00000000..de620f75 --- /dev/null +++ b/manifest.json @@ -0,0 +1,24 @@ +{ + "icons": [ + { + "src": "icons/icon-32x32.png", + "type": "image/png", + "sizes": "32x32" + }, + { + "src": "icons/icon-128x128.png", + "type": "image/png", + "sizes": "128x128" + }, + { + "src": "icons/icon-256x256.png", + "type": "image/png", + "sizes": "256x256" + }, + { + "src": "icons/icon-512x512.png", + "type": "image/png", + "sizes": "512x512" + } + ] +} \ No newline at end of file diff --git a/pinia.html b/pinia.html new file mode 100644 index 00000000..476f8c5f --- /dev/null +++ b/pinia.html @@ -0,0 +1,481 @@ + + + + + + 全局状态管理 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
      Skip to content
      目录

      全局状态管理

      本来这部分打算放在 组件之间的通信 里,里面也简单介绍了一下 Vuex ,但 Pinia 作为被官方推荐在 Vue 3 项目里作为全局状态管理的新工具,写着写着笔者认为还是单独开一章来写会更方便阅读和理解。

      官方推出的全局状态管理工具目前有 VuexPinia ,两者的作用和用法都比较相似,但 Pinia 的设计更贴近 Vue 3 组合式 API 的用法。

      TIP

      本章内的大部分内容都会和 Vuex 作对比,方便从 Vuex 项目向 Pinia 的迁移。

      温馨提示

      这是笔者写于 2024.02.20 的补充提示,为读者解答为何前面的章节都未提及 script-setup 组件语法的信息。

      笔者在执笔之初,考虑到降低初学过程中的各种心智负担,以及当时处于 script-setup 组件语法尚未完全稳定的背景下,所以在最后一章 高效开发 之前的章节,都只提供了组件的标准写法的讲解。

      除非遇到框架进行了 Breaking Change (例如从 Vue 2 升级到了 Vue 3 这种大版本更新),否则标准写法是始终有效的,在笔者多年的学习经历和实际收获里,也是比较相信一点:不论学习什么语言或者框架,只要基础打的好,未来总是可以轻松地举一反三去解决遇到的各类问题。

      因此如果读者通过各类脚手架创建的 Vue 3 项目,在组件看到 <script setup> 这种风格的组件,以及诸如 defineXxx 风格的 API ,这是 .vue 组件所支持的一种语法糖,可以随时在 高效开发 一章了解相关的 API 用法。

      另外从 Vue 3.4 版本之后所新增的 API 未在本书的介绍范围内,请读者在阅读的过程中也可以查阅官方的 API 一起学习,不论是本书还是其他计算机书籍,官方文档永远是最好的查询手册。

      TIP

      语法糖(英语:Syntactic sugar)是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

      关于 Pinia ~new

      由于 Vuex 4.x 版本只是个过渡版,Vuex 4 对 TypeScript 和 Composition API 都不是很友好,虽然官方团队在 GitHub 已有讨论 Vuex 5 的开发提案,但从 2022-02-07 在 Vue 3 被设置为默认版本开始, Pinia 已正式被官方推荐作为全局状态管理的工具。

      Pinia 支持 Vue 3 和 Vue 2 ,对 TypeScript 也有很完好的支持,延续本指南的宗旨,在这里只介绍基于 Vue 3 和 TypeScript 的用法。

      点击访问:Pinia 官网

      安装和启用 ~new

      Pinia 目前还没有被广泛的默认集成在各种脚手架里,所以如果原来创建的项目没有 Pinia ,则需要手动安装它。

      bash
      # 需要 cd 到的项目目录下
      +npm install pinia

      查看的 package.json ,看看里面的 dependencies 是否成功加入了 Pinia 和它的版本号(下方是示例代码,以实际安装的最新版本号为准):

      json
      {
      +  "dependencies": {
      +    "pinia": "^2.0.11"
      +  }
      +}

      然后打开 src/main.ts 文件,添加下面那两行有注释的新代码:

      ts
      import { createApp } from 'vue'
      +import { createPinia } from 'pinia' // 导入 Pinia
      +import App from '@/App.vue'
      +
      +createApp(App)
      +  .use(createPinia()) // 启用 Pinia
      +  .mount('#app')

      到这里, Pinia 就集成到的项目里了。

      TIP

      也可以通过 Create Preset 创建新项目(选择 vue 技术栈进入,选择 vue3-ts-vite 模板),可以得到一个集成常用配置的项目启动模板,该模板现在使用 Pinia 作为全局状态管理工具。

      状态树的结构 ~new

      在开始写代码之前,先来看一个对比,直观的了解 Pinia 的状态树构成,才能在后面的环节更好的理解每个功能的用途。

      鉴于可能有部分开发者之前没有用过 Vuex ,所以加入了 Vue 组件一起对比( Options API 写法)。

      作用Vue ComponentVuexPinia
      数据管理datastatestate
      数据计算computedgettersgetters
      行为方法methodsmutations / actionsactions

      可以看到 Pinia 的结构和用途都和 Vuex 与 Component 非常相似,并且 Pinia 相对于 Vuex ,在行为方法部分去掉了 mutations (同步操作)和 actions (异步操作)的区分,更接近组件的结构,入门成本会更低一些。

      下面来创建一个简单的 Store ,开始用 Pinia 来进行状态管理。

      创建 Store ~new

      和 Vuex 一样, Pinia 的核心也是称之为 Store 。

      参照 Pinia 官网推荐的项目管理方案,也是先在 src 文件夹下创建一个 stores 文件夹,并在里面添加一个 index.ts 文件,然后就可以来添加一个最基础的 Store 。

      Store 是通过 defineStore 方法来创建的,它有两种入参形式:

      形式 1 :接收两个参数

      接收两个参数,第一个参数是 Store 的唯一 ID ,第二个参数是 Store 的选项:

      ts
      // src/stores/index.ts
      +import { defineStore } from 'pinia'
      +
      +export const useStore = defineStore('main', {
      +  // Store 选项...
      +})

      形式 2 :接收一个参数

      接收一个参数,直接传入 Store 的选项,但是需要把唯一 ID 作为选项的一部分一起传入:

      ts
      // src/stores/index.ts
      +import { defineStore } from 'pinia'
      +
      +export const useStore = defineStore({
      +  id: 'main',
      +  // Store 选项...
      +})

      TIP

      不论是哪种创建形式,都必须为 Store 指定一个唯一 ID 。

      另外可以看到这里把导出的函数名命名为 useStore ,以 use 开头是 Vue 3 对可组合函数的一个命名约定。

      并且使用的是 export const 而不是 export default (详见:命名导出和默认导出),这样在使用的时候可以和其他的 Vue 组合函数保持一致,都是通过 import { xxx } from 'xxx' 来导入。

      如果有多个 Store ,可以分模块管理,并根据实际的功能用途进行命名( e.g. useMessageStoreuseUserStoreuseGameStore … )。

      管理 state ~new

      在上一小节的 状态树的结构 这里已经了解过, Pinia 是在 state 里面定义状态数据。

      给 Store 添加 state

      它是通过一个箭头函数的形式来返回数据,并且能够正确的帮推导 TypeScript 类型:

      ts
      // src/stores/index.ts
      +import { defineStore } from 'pinia'
      +
      +export const useStore = defineStore('main', {
      +  // 先定义一个最基本的 message 数据
      +  state: () => ({
      +    message: 'Hello World',
      +  }),
      +  // ...
      +})

      需要注意一点的是,如果不显式 return ,箭头函数的返回值需要用圆括号 () 套起来,这个是箭头函数的要求(详见:返回对象字面量)。

      所以相当于这样写:

      ts
      // ...
      +export const useStore = defineStore('main', {
      +  state: () => {
      +    return {
      +      message: 'Hello World',
      +    }
      +  },
      +  // ...
      +})

      笔者还是更喜欢加圆括号的简写方式。

      TIP

      可能有开发者会问: Vuex 可以用一个对象来定义 state 的数据, Pinia 可以吗?

      答案是:不可以! state 的类型必须是 state?: (() => {}) | undefined ,要么不配置(就是 undefined ),要么只能是个箭头函数。

      手动指定数据类型

      虽然 Pinia 会帮推导 TypeScript 的数据类型,但有时候可能不太够用,比如下面这段代码,请留意代码注释的说明:

      ts
      // ...
      +export const useStore = defineStore('main', {
      +  state: () => {
      +    return {
      +      message: 'Hello World',
      +      // 添加了一个随机消息数组
      +      randomMessages: [],
      +    }
      +  },
      +  // ...
      +})

      randomMessages 的预期应该是一个字符串数组 string[] ,但是这个时候 Pinia 会帮推导成 never[] ,那么类型就对不上了。

      这种情况下就需要手动指定 randomMessages 的类型,可以通过 as 来指定:

      ts
      // ...
      +export const useStore = defineStore('main', {
      +  state: () => {
      +    return {
      +      message: 'Hello World',
      +      // 通过 as 关键字指定 TS 类型
      +      randomMessages: [] as string[],
      +    }
      +  },
      +  // ...
      +})

      或者使用尖括号 <> 来指定:

      ts
      // ...
      +export const useStore = defineStore('main', {
      +  state: () => {
      +    return {
      +      message: 'Hello World',
      +      // 通过尖括号指定 TS 类型
      +      randomMessages: <string[]>[],
      +    }
      +  },
      +  // ...
      +})

      这两种方式是等价的。

      获取和更新 state

      获取 state 有多种方法,略微有区别(详见下方各自的说明),但相同的是,他们都是响应性的。

      WARNING

      不能直接通过 ES6 解构的方式( e.g. const { message } = store ),那样会破坏数据的响应性。

      使用 store 实例

      用法上和 Vuex 很相似,但有一点区别是,数据直接是挂在 store 上的,而不是 store.state 上面!

      TIP

      e.g. Vuex 是 store.state.message , Pinia 是 store.message

      所以,可以直接通过 store.message 直接调用 state 里的数据。

      ts
      import { defineComponent } from 'vue'
      +import { useStore } from '@/stores'
      +
      +export default defineComponent({
      +  setup() {
      +    // 像 useRouter 那样定义一个变量拿到实例
      +    const store = useStore()
      +
      +    // 直接通过实例来获取数据
      +    console.log(store.message)
      +
      +    // 这种方式需要把整个 store 给到 template 去渲染数据
      +    return {
      +      store,
      +    }
      +  },
      +})

      但一些比较复杂的数据这样写会很长,所以有时候更推荐用下面介绍的 computed APIstoreToRefs API 等方式来获取。

      在数据更新方面,在 Pinia 可以直接通过 Store 实例更新 state (这一点与 Vuex 有明显的不同,更改 Vuex 的 store 中的状态的唯一方法是提交 mutation),所以如果要更新 message ,只需要像下面这样,就可以更新 message 的值了!

      ts
      store.message = 'New Message.'

      使用 computed API

      现在 state 里已经有定义好的数据了,下面这段代码是在 Vue 组件里导入的 Store ,并通过计算数据 computed 拿到里面的 message 数据传给 template 使用。

      vue
      <script lang="ts">
      +import { computed, defineComponent } from 'vue'
      +import { useStore } from '@/stores'
      +
      +export default defineComponent({
      +  setup() {
      +    // 像 useRouter 那样定义一个变量拿到实例
      +    const store = useStore()
      +
      +    // 通过计算拿到里面的数据
      +    const message = computed(() => store.message)
      +    console.log('message', message.value)
      +
      +    // 传给 template 使用
      +    return {
      +      message,
      +    }
      +  },
      +})
      +</script>

      使用 store 实例 以及 使用 storeToRefs API 不同,这个方式默认情况下无法直接更新 state 的值。

      TIP

      这里的定义的 message 变量是一个只有 getter ,没有 setter 的 ComputedRef 数据,所以它是只读的。

      如果要更新数据怎么办?

      1. 可以通过提前定义好的 Store Actions 方法进行更新。

      2. 在定义 computed 变量的时候,配置好 setter 的行为:

      ts
      // 其他代码和上一个例子一样,这里省略...
      +
      +// 修改:定义 computed 变量的时候配置 getter 和 setter
      +const message = computed({
      +  // getter 还是返回数据的值
      +  get: () => store.message,
      +  // 配置 setter 来定义赋值后的行为
      +  set(newVal) {
      +    store.message = newVal
      +  },
      +})
      +
      +// 此时不再抛出 Write operation failed: computed value is readonly 的警告
      +message.value = 'New Message.'
      +
      +// store 上的数据已成功变成了 New Message.
      +console.log(store.message)

      使用 storeToRefs API

      Pinia 还提供了一个 storeToRefs API 用于把 state 的数据转换为 ref 变量。

      这是一个专门为 Pinia Stores 设计的 API ,类似于 toRefs ,区别在于,它会忽略掉 Store 上面的方法和非响应性的数据,只返回 state 上的响应性数据。

      ts
      import { defineComponent } from 'vue'
      +import { useStore } from '@/stores'
      +
      +// 记得导入这个 API
      +import { storeToRefs } from 'pinia'
      +
      +export default defineComponent({
      +  setup() {
      +    const store = useStore()
      +
      +    // 通过 storeToRefs 来拿到响应性的 message
      +    const { message } = storeToRefs(store)
      +    console.log('message', message.value)
      +
      +    return {
      +      message,
      +    }
      +  },
      +})

      通过这个方式拿到的 message 变量是一个 Ref 类型的数据,所以可以像普通的 ref 变量一样进行读取和赋值。

      ts
      // 直接赋值即可
      +message.value = 'New Message.'
      +
      +// store 上的数据已成功变成了 New Message.
      +console.log(store.message)

      使用 toRefs API

      使用 storeToRefs API 部分所说,该 API 本身的设计就是类似于 toRefs ,所以也可以直接用 toRefs 把 state 上的数据转成 ref 变量。

      ts
      // 注意 toRefs 是 vue 的 API ,不是 Pinia
      +import { defineComponent, toRefs } from 'vue'
      +import { useStore } from '@/stores'
      +
      +export default defineComponent({
      +  setup() {
      +    const store = useStore()
      +
      +    // 跟 storeToRefs 操作都一样,只不过用 Vue 的这个 API 来处理
      +    const { message } = toRefs(store)
      +    console.log('message', message.value)
      +
      +    return {
      +      message,
      +    }
      +  },
      +})

      详见 使用 toRefs 一节的说明,可以像普通的 ref 变量一样进行读取和赋值。

      另外,像上面这样,对 store 执行 toRefs 会把 store 上面的 getters 、 actions 也一起提取,如果只需要提取 state 上的数据,可以这样做:

      ts
      // 只传入 store.$state
      +const { message } = toRefs(store.$state)

      使用 toRef API

      toRef 是 toRefs 的兄弟 API ,一个是只转换一个字段,一个是转换所有字段,所以它也可以用来转换 state 数据变成 ref 变量。

      ts
      // 注意 toRef 是 vue 的 API ,不是 Pinia
      +import { defineComponent, toRef } from 'vue'
      +import { useStore } from '@/stores'
      +
      +export default defineComponent({
      +  setup() {
      +    const store = useStore()
      +
      +    // 遵循 toRef 的用法即可
      +    const message = toRef(store, 'message')
      +    console.log('message', message.value)
      +
      +    return {
      +      message,
      +    }
      +  },
      +})

      详见 使用 toRef 一节的说明,可以像普通的 ref 变量一样进行读取和赋值。

      使用 actions 方法

      在 Vuex ,如果想通过方法来操作 state 的更新,必须通过 mutation 来提交;而异步操作需要更多一个步骤,必须先通过 action 来触发 mutation ,非常繁琐!

      Pinia 所有操作都集合为 action ,无需区分同步和异步,按照平时的函数定义即可更新 state ,具体操作详见 管理 actions 一节。

      批量更新 state

      获取和更新 state 部分说的都是如何修改单个 state 数据,那么有时候要同时修改很多个,会显得比较繁琐。

      如果写过 React 或者微信小程序,应该非常熟悉这些用法:

      ts
      // 下面不是 Vue 的代码,不要在的项目里使用
      +
      +// React
      +this.setState({
      +  foo: 'New Foo Value',
      +  bar: 'New bar Value',
      +})
      +
      +// 微信小程序
      +this.setData({
      +  foo: 'New Foo Value',
      +  bar: 'New bar Value',
      +})

      Pinia 也提供了一个 $patch API 用于同时修改多个数据,它接收一个参数:

      参数类型语法
      partialState对象 / 函数store.$patch(partialState)

      传入一个对象

      当参数类型为对象时,key 是要修改的 state 数据名称, value 是新的值(支持嵌套传值),用法如下:

      ts
      // 继续用前面的数据,这里会打印出修改前的值
      +console.log(JSON.stringify(store.$state))
      +// 输出 {"message":"Hello World","randomMessages":[]}
      +
      +/**
      + * 注意这里,传入了一个对象
      + */
      +store.$patch({
      +  message: 'New Message',
      +  randomMessages: ['msg1', 'msg2', 'msg3'],
      +})
      +
      +// 这里会打印出修改后的值
      +console.log(JSON.stringify(store.$state))
      +// 输出 {"message":"New Message","randomMessages":["msg1","msg2","msg3"]}

      对于简单的数据,直接修改成新值是非常好用的。

      但有时候并不单单只是修改,而是要对数据进行拼接、补充、合并等操作,相对而言开销就会很大,这种情况下,更适合 传入一个函数 来处理。

      TIP

      使用这个方式时, key 只允许是实例上已有的数据,不可以提交未定义的数据进去。

      强制提交的话,在 TypeScript 会抛出错误, JavaScript 虽然不会报错,但实际上, Store 实例上面依然不会有这个新增的非法数据。

      传入一个函数

      当参数类型为函数时,该函数会有一个入参 state ,是当前实例的 state ,等价于 store.$state ,用法如下:

      ts
      // 这里会打印出修改前的值
      +console.log(JSON.stringify(store.$state))
      +// 输出 {"message":"Hello World","randomMessages":[]}
      +
      +/**
      + * 注意这里,这次是传入了一个函数
      + */
      +store.$patch((state) => {
      +  state.message = 'New Message'
      +
      +  // 数组改成用追加的方式,而不是重新赋值
      +  for (let i = 0; i < 3; i++) {
      +    state.randomMessages.push(`msg${i + 1}`)
      +  }
      +})
      +
      +// 这里会打印出修改后的值
      +console.log(JSON.stringify(store.$state))
      +// 输出 {"message":"New Message","randomMessages":["msg1","msg2","msg3"]}

      传入一个对象 比,不一定说就是哪种方式更好,通常要结合业务场景合理使用。

      TIP

      使用这个方式时,和 传入一个对象 一样只能修改已定义的数据,并且另外需要注意,传进去的函数只能是同步函数,不可以是异步函数!

      如果还不清楚什么是同步和异步,可以阅读 同步和异步 JavaScript - MDN 一文。

      全量更新 state

      批量更新 state 了解到可以用 store.$patch 方法对数据进行批量更新操作,不过如其命名,这种方式本质上是一种 “补丁更新” 。

      虽然可以对所有数据都执行一次 “补丁更新” 来达到 “全量更新” 的目的,但 Pinia 也提供了一个更好的办法。

      从前面多次提到 state 数据可以通过 store.$state 来拿到,而这个属性本身是可以直接赋值的。

      还是继续用上面的例子, state 上现在有 messagerandomMessages 这两个数据,那么要全量更新为新的值,就这么操作:

      ts
      store.$state = {
      +  message: 'New Message',
      +  randomMessages: ['msg1', 'msg2', 'msg3'],
      +}

      同样的,必须遵循 state 原有的数据和对应的类型。

      TIP

      该操作不会使 state 失去响应性。

      重置 state

      Pinia 提供了一个 $reset API 挂在每个实例上面,用于重置整颗 state 树为初始数据:

      ts
      // 这个 store 是上面定义好的实例
      +store.$reset()

      具体例子:

      ts
      // 修改数据
      +store.message = 'New Message'
      +console.log(store.message) // 输出 New Message
      +
      +// 3s 后重置状态
      +setTimeout(() => {
      +  store.$reset()
      +  console.log(store.message) // 输出最开始的 Hello World
      +}, 3000)

      订阅 state

      和 Vuex 一样, Pinia 也提供了一个用于订阅 state 的 $subscribe API 。

      订阅 API 的 TS 类型

      在了解这个 API 的使用之前,先看一下它的 TS 类型定义:

      ts
      // $subscribe 部分的 TS 类型
      +// ...
      +$subscribe(
      +  callback: SubscriptionCallback<S>,
      +  options?: { detached?: boolean } & WatchOptions
      +): () => void
      +// ...

      可以看到, $subscribe 可以接受两个参数:

      1. 第一个入参是 callback 函数,必传
      2. 第二个入参是一些选项,可选

      同时还会返回一个函数,执行后可以用于移除当前订阅,下面来看看具体用法。

      添加订阅

      $subscribe API 的功能类似于 watch ,但它只会在 state 被更新的时候才触发一次,并且在组件被卸载时删除(参考:组件的生命周期)。

      订阅 API 的 TS 类型 可以看到,它可以接受两个参数,第一个参数是必传的 callback 函数,一般情况下默认用这个方式即可,使用例子:

      ts
      // 可以在 state 出现变化时,更新本地持久化存储的数据
      +store.$subscribe((mutation, state) => {
      +  localStorage.setItem('store', JSON.stringify(state))
      +})

      这个 callback 里面有 2 个入参:

      入参作用
      mutation本次事件的一些信息
      state当前实例的 state

      其中 mutation 包含了以下数据:

      字段
      storeId发布本次订阅通知的 Pinia 实例的唯一 ID(由 创建 Store 时指定)
      type有 3 个值:返回 direct 代表 直接更改 数据;返回 patch object 代表是通过 传入一个对象 更改;返回 patch function 则代表是通过 传入一个函数 更改
      events触发本次订阅通知的事件列表
      payload通过 传入一个函数 更改时,传递进来的荷载信息,只有 typepatch object 时才有

      如果不希望组件被卸载时删除订阅,可以传递第二个参数 options 用以保留订阅状态,传入一个对象。

      可以简单指定为 { detached: true }

      ts
      store.$subscribe(
      +  (mutation, state) => {
      +    // ...
      +  },
      +  { detached: true }
      +)

      也可以搭配 watch API 的选项一起用。

      移除订阅

      添加订阅 部分已了解过,默认情况下,组件被卸载时订阅也会被一并移除,但如果之前启用了 detached 选项,就需要手动取消了。

      前面在 订阅 API 的 TS 类型 里提到,在启用 $subscribe API 之后,会有一个函数作为返回值,这个函数可以用来取消该订阅。

      用法非常简单,做一下简单了解即可:

      ts
      // 定义一个退订变量,它是一个函数
      +const unsubscribe = store.$subscribe(
      +  (mutation, state) => {
      +    // ...
      +  },
      +  { detached: true }
      +)
      +
      +// 在合适的时期调用它,可以取消这个订阅
      +unsubscribe()

      跟 watch API 的机制非常相似, 它也是返回 一个取消侦听的函数 用于移除指定的 watch 。

      管理 getters ~new

      状态树的结构 了解过, Pinia 的 getters 是用来计算数据的。

      给 Store 添加 getter

      TIP

      如果对 Vue 的计算数据不是很熟悉或者没接触过的话,可以先阅读 数据的计算 这一节,以便有个初步印象,不会云里雾里。

      添加普通的 getter

      继续用刚才的 message ,来定义一个 Getter ,用于返回一句拼接好的句子。

      ts
      // src/stores/index.ts
      +import { defineStore } from 'pinia'
      +
      +export const useStore = defineStore('main', {
      +  state: () => ({
      +    message: 'Hello World',
      +  }),
      +  // 定义一个 fullMessage 的计算数据
      +  getters: {
      +    fullMessage: (state) => `The message is "${state.message}".`,
      +  },
      +  // ...
      +})

      Options API 的 Computed 写法一样,也是通过函数来返回计算后的值, Getter 可以通过入参的 state 来拿到当前实例的数据(在 Pinia 里,官方更推荐使用箭头函数)。

      添加引用 getter 的 getter

      有时候可能要引用另外一个 getter 的值来返回数据,这个时候不能用箭头函数了,需要定义成普通函数而不是箭头函数,并在函数内部通过 this 来调用当前 Store 上的数据和方法。

      继续在上面的例子里,添加多一个 emojiMessage 的 getter ,在返回 fullMessage 的结果的同时,拼接多一串 emoji 。

      ts
      export const useStore = defineStore('main', {
      +  state: () => ({
      +    message: 'Hello World',
      +  }),
      +  getters: {
      +    fullMessage: (state) => `The message is "${state.message}".`,
      +    // 这个 getter 返回了另外一个 getter 的结果
      +    emojiMessage(): string {
      +      return `🎉🎉🎉 ${this.fullMessage}`
      +    },
      +  },
      +})

      如果只写 JavaScript ,可能对这一条所说的限制觉得很奇怪,事实上用 JS 写箭头函数来引用确实不会报错,但如果用的是 TypeScript ,不按照这个写法,在 VSCode 提示和执行 TSC 检查的时候都会给抛出一条错误:

      bash
      src/stores/index.ts:9:42 - error TS2339:
      +Property 'fullMessage' does not exist on type '{ message: string; } & {}'.
      +
      +9     emojiMessage: (state) => `🎉🎉🎉 ${state.fullMessage}`,
      +                                           ~~~~~~~~~~~
      +
      +
      +Found 1 error in src/stores/index.ts:9

      另外关于普通函数的 TS 返回类型,官方建议显式的进行标注,就像这个例子里的 emojiMessage(): string 里的 : string

      给 getter 传递参数

      getter 本身是不支持参数的,但和 Vuex 一样,支持返回一个具备入参的函数,用来满足需求。

      ts
      import { defineStore } from 'pinia'
      +
      +export const useStore = defineStore('main', {
      +  state: () => ({
      +    message: 'Hello World',
      +  }),
      +  getters: {
      +    // 定义一个接收入参的函数作为返回值
      +    signedMessage: (state) => {
      +      return (name: string) => `${name} say: "The message is ${state.message}".`
      +    },
      +  },
      +})

      调用的时候是这样:

      ts
      const signedMessage = store.signedMessage('Petter')
      +console.log('signedMessage', signedMessage)
      +// Petter say: "The message is Hello World".

      这种情况下,这个 getter 只是调用的函数的作用,不再有缓存,如果通过变量定义了这个数据,那么这个变量也只是普通变量,不具备响应性。

      ts
      // 通过变量定义一个值
      +const signedMessage = store.signedMessage('Petter')
      +console.log('signedMessage', signedMessage)
      +// Petter say: "The message is Hello World".
      +
      +// 2s 后改变 message
      +setTimeout(() => {
      +  store.message = 'New Message'
      +
      +  // signedMessage 不会变
      +  console.log('signedMessage', signedMessage)
      +  // Petter say: "The message is Hello World".
      +
      +  // 必须这样再次执行才能拿到更新后的值
      +  console.log('signedMessage', store.signedMessage('Petter'))
      +  // Petter say: "The message is New Message".
      +}, 2000)

      获取和更新 getter

      getter 和 state 都属于数据管理,读取和赋值的方法是一样的,请参考上方 获取和更新 state 一节的内容。

      管理 actions ~new

      状态树的结构 提到了, Pinia 只需要用 actions 就可以解决各种数据操作,无需像 Vuex 一样区分为 mutations / actions 两大类。

      给 Store 添加 action

      可以为当前 Store 封装一些可以开箱即用的方法,支持同步和异步。

      ts
      // src/stores/index.ts
      +import { defineStore } from 'pinia'
      +
      +export const useStore = defineStore('main', {
      +  state: () => ({
      +    message: 'Hello World',
      +  }),
      +  actions: {
      +    // 异步更新 message
      +    async updateMessage(newMessage: string): Promise<string> {
      +      return new Promise((resolve) => {
      +        setTimeout(() => {
      +          // 这里的 this 是当前的 Store 实例
      +          this.message = newMessage
      +          resolve('Async done.')
      +        }, 3000)
      +      })
      +    },
      +    // 同步更新 message
      +    updateMessageSync(newMessage: string): string {
      +      // 这里的 this 是当前的 Store 实例
      +      this.message = newMessage
      +      return 'Sync done.'
      +    },
      +  },
      +})

      可以看到,在 action 里,如果要访问当前实例的 state 或者 getter ,只需要通过 this 即可操作,方法的入参完全不再受 Vuex 那样有固定形式的困扰。

      TIP

      在 action 里, this 是当前的 Store 实例,所以如果的 action 方法里有其他函数也要调用实例,请记得写成 箭头函数 来提升 this 。

      调用 action

      在 Pinia 中只要像普通的函数一样使用即可,不需要和 Vuex 一样调用 commit 或者 dispatch。

      ts
      export default defineComponent({
      +  setup() {
      +    const store = useStore()
      +    const { message } = storeToRefs(store)
      +
      +    // 立即执行
      +    console.log(store.updateMessageSync('New message by sync.'))
      +
      +    // 3s 后执行
      +    store.updateMessage('New message by async.').then((res) => console.log(res))
      +
      +    return {
      +      message,
      +    }
      +  },
      +})

      添加多个 Store ~new

      到这里,对单个 Store 的配置和调用相信都已经清楚了,实际项目中会涉及到很多数据操作,还可以用多个 Store 来维护不同需求模块的数据状态。

      这一点和 Vuex 的 Module 比较相似,目的都是为了避免状态树过于臃肿,但用起来会更为简单。

      目录结构建议

      建议统一存放在 src/stores 下面管理,根据业务需要进行命名,比如 user 就用来管理登录用户相关的状态数据。

      bash
      src
      +└─stores
      +   # 入口文件
      +  ├─index.ts
      +   # 多个 store
      +  ├─user.ts
      +  ├─game.ts
      +  └─news.ts

      里面暴露的方法就统一以 use 开头加上文件名,并以 Store 结尾,作为小驼峰写法,比如 user 这个 Store 文件里面导出的函数名就是:

      ts
      // src/stores/user.ts
      +export const useUserStore = defineStore('user', {
      +  // ...
      +})

      然后以 index.ts 里作为统一的入口文件, index.ts 里的代码写为:

      ts
      export * from './user'
      +export * from './game'
      +export * from './news'

      这样在使用的时候,只需要从 @/stores 里导入即可,无需写完整的路径,例如,只需要这样:

      ts
      import { useUserStore } from '@/stores'

      而无需这样:

      ts
      import { useUserStore } from '@/stores/user'

      在 Vue 组件 / TS 文件里使用

      这里以一个比较简单的业务场景举例,希望能够方便的理解如何同时使用多个 Store 。

      假设目前有一个 userStore 是管理当前登录用户信息, gameStore 是管理游戏的信息,而 “个人中心” 这个页面需要展示 “用户信息” ,以及 “该用户绑定的游戏信息”,那么就可以这样:

      ts
      import { defineComponent, onMounted, ref } from 'vue'
      +import { storeToRefs } from 'pinia'
      +// 这里导入要用到的 Store
      +import { useUserStore, useGameStore } from '@/stores'
      +import type { GameItem } from '@/types'
      +
      +export default defineComponent({
      +  setup() {
      +    // 先从 userStore 获取用户信息(已经登录过,所以可以直接拿到)
      +    const userStore = useUserStore()
      +    const { userId, userName } = storeToRefs(userStore)
      +
      +    // 使用 gameStore 里的方法,传入用户 ID 去查询用户的游戏列表
      +    const gameStore = useGameStore()
      +    const gameList = ref<GameItem[]>([])
      +    onMounted(async () => {
      +      gameList.value = await gameStore.queryGameList(userId.value)
      +    })
      +
      +    return {
      +      userId,
      +      userName,
      +      gameList,
      +    }
      +  },
      +})

      再次提醒,切记每个 Store 的 ID 必须不同,如果 ID 重复,在同一个 Vue 组件 / TS 文件里定义 Store 实例变量的时候,会以先定义的为有效值,后续定义的会和前面一样。

      如果先定义了 userStore :

      ts
      // 假设两个 Store 的 ID 一样
      +const userStore = useUserStore() // 是想要的 Store
      +const gameStore = useGameStore() // 得到的依然是 userStore 的那个 Store

      如果先定义了 gameStore :

      ts
      // 假设两个 Store 的 ID 一样
      +const gameStore = useGameStore() // 是想要的 Store
      +const userStore = useUserStore() // 得到的依然是 gameStore 的那个 Store

      Store 之间互相引用

      如果在定义一个 Store 的时候,要引用另外一个 Store 的数据,也是很简单,回到那个 message 的例子,添加一个 getter ,它会返回一句问候语欢迎用户:

      ts
      // src/stores/message.ts
      +import { defineStore } from 'pinia'
      +
      +// 导入用户信息的 Store 并启用它
      +import { useUserStore } from './user'
      +const userStore = useUserStore()
      +
      +export const useMessageStore = defineStore('message', {
      +  state: () => ({
      +    message: 'Hello World',
      +  }),
      +  getters: {
      +    // 这里就可以直接引用 userStore 上面的数据了
      +    greeting: () => `Welcome, ${userStore.userName}!`,
      +  },
      +})

      假设现在 userName 是 Petter ,那么会得到一句对 Petter 的问候:

      ts
      const messageStore = useMessageStore()
      +console.log(messageStore.greeting) // Welcome, Petter!

      专属插件的使用 ~new

      Pinia 拥有非常灵活的可扩展性,有专属插件可以开箱即用满足更多的需求场景。

      如何查找插件

      插件有统一的命名格式 pinia-plugin-* ,所以可以在 npmjs 上搜索这个关键词来查询目前有哪些插件已发布。

      点击查询: pinia-plugin - npmjs

      如何使用插件

      这里以 pinia-plugin-persistedstate 为例,这是一个让数据持久化存储的 Pinia 插件。

      TIP

      数据持久化存储,指页面关闭后再打开,浏览器依然可以记录之前保存的本地数据,例如:浏览器原生的 localStorageIndexedDB ,或者是一些兼容多种原生方案并统一用法的第三方方案,例如: localForage

      插件也是独立的 npm 包,需要先安装,再激活,然后才能使用。

      激活方法会涉及到 Pinia 的初始化过程调整,这里不局限于某一个插件,通用的插件用法如下(请留意代码注释):

      ts
      // src/main.ts
      +import { createApp } from 'vue'
      +import App from '@/App.vue'
      +import { createPinia } from 'pinia' // 导入 Pinia
      +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' // 导入 Pinia 插件
      +
      +const pinia = createPinia() // 初始化 Pinia
      +pinia.use(piniaPluginPersistedstate) // 激活 Pinia 插件
      +
      +createApp(App)
      +  .use(pinia) // 启用 Pinia ,这一次是包含了插件的 Pinia 实例
      +  .mount('#app')

      使用前

      Pinia 默认在页面刷新时会丢失当前变更的数据,没有在本地做持久化记录:

      ts
      // 其他代码省略
      +const store = useMessageStore()
      +
      +// 假设初始值是 Hello World
      +setTimeout(() => {
      +  // 2s 后变成 Hello World!
      +  store.message = store.message + '!'
      +}, 2000)
      +
      +// 页面刷新后又变回了 Hello World

      使用后

      按照 persistedstate 插件的文档说明,在其中一个 Store 启用它,只需要添加一个 persist: true 的选项即可开启:

      ts
      // src/stores/message.ts
      +import { defineStore } from 'pinia'
      +import { useUserStore } from './user'
      +
      +const userStore = useUserStore()
      +
      +export const useMessageStore = defineStore('message', {
      +  state: () => ({
      +    message: 'Hello World',
      +  }),
      +  getters: {
      +    greeting: () => `Welcome, ${userStore.userName}`,
      +  },
      +  // 这是按照插件的文档,在实例上启用了该插件,这个选项是插件特有的
      +  persist: true,
      +})

      回到的页面,现在这个 Store 具备了持久化记忆的功能了,它会从 localStorage 读取原来的数据作为初始值,每一次变化后也会将其写入 localStorage 进行记忆存储。

      ts
      // 其他代码省略
      +const store = useMessageStore()
      +
      +// 假设初始值是 Hello World
      +setTimeout(() => {
      +  // 2s 后变成 Hello World!
      +  store.message = store.message + '!'
      +}, 2000)
      +
      +// 页面刷新后变成了 Hello World!!
      +// 再次刷新后变成了 Hello World!!!
      +// 再次刷新后变成了 Hello World!!!!

      可以在浏览器查看到 localStorage 的存储变化,以 Chrome 浏览器为例,按 F12 ,打开 Application 面板,选择 Local Storage ,可以看到以当前 Store ID 为 Key 的存储数据。

      这是其中一个插件使用的例子,更多的用法请根据自己选择的插件的 README 说明操作。

      Released under the MIT License.

      + + + + \ No newline at end of file diff --git a/plugin.html b/plugin.html new file mode 100644 index 00000000..e0030a66 --- /dev/null +++ b/plugin.html @@ -0,0 +1,807 @@ + + + + + + 插件的开发和使用 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
      Skip to content
      目录

      插件的开发和使用

      在构建 Vue 项目的过程中,离不开各种开箱即用的插件支持,用以快速完成需求,避免自己造轮子。

      在 Vue 项目里,可以使用针对 Vue 定制开发的专属插件,也可以使用无框架依赖的通用 JS 插件,插件的表现形式也是丰富多彩,既可以是功能的实现,也可以是组件的封装,本章将从插件的使用到亲自开发一个小插件的过程,逐一讲解。

      温馨提示

      这是笔者写于 2024.02.20 的补充提示,为读者解答为何前面的章节都未提及 script-setup 组件语法的信息。

      笔者在执笔之初,考虑到降低初学过程中的各种心智负担,以及当时处于 script-setup 组件语法尚未完全稳定的背景下,所以在最后一章 高效开发 之前的章节,都只提供了组件的标准写法的讲解。

      除非遇到框架进行了 Breaking Change (例如从 Vue 2 升级到了 Vue 3 这种大版本更新),否则标准写法是始终有效的,在笔者多年的学习经历和实际收获里,也是比较相信一点:不论学习什么语言或者框架,只要基础打的好,未来总是可以轻松地举一反三去解决遇到的各类问题。

      因此如果读者通过各类脚手架创建的 Vue 3 项目,在组件看到 <script setup> 这种风格的组件,以及诸如 defineXxx 风格的 API ,这是 .vue 组件所支持的一种语法糖,可以随时在 高效开发 一章了解相关的 API 用法。

      另外从 Vue 3.4 版本之后所新增的 API 未在本书的介绍范围内,请读者在阅读的过程中也可以查阅官方的 API 一起学习,不论是本书还是其他计算机书籍,官方文档永远是最好的查询手册。

      TIP

      语法糖(英语:Syntactic sugar)是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

      插件的安装和引入

      前端工程化 十分普及的今天,可以说几乎所有要用到的插件,都可以在 npmjs 上搜到,除了官方提供的包管理器 npm ,也有很多种安装方式选择。

      TIP

      如果还不了解什么是包和包管理器,请先阅读 了解包和插件 一节的内容。

      另外,每个包管理都可以配置镜像源,提升国内的下载速度,对此也可以先阅读 配置镜像源 一节了解。

      虽然对于个人开发者来说,有一个用的顺手的包管理器就足够日常开发了,但是还是有必要多了解一下不同的包管理器,因为未来可能会面对团队协作开发、为开源项目贡献代码等情况,需要遵循团队要求的包管理机制(例如使用 Monorepo 架构的团队会更青睐于 yarn 或 pnpm 的 Workspace 功能)。

      通过 npm 安装

      npm 是 Node.js 自带的包管理器,平时通过 npm install 命令来安装各种 npm 包(比如 npm install vue-router ),就是通过这个包管理器来安装的。

      如果包的下载速度太慢,可以通过以下命令管理镜像源:

      bash
      # 查看下载源
      +npm config get registry
      +
      +# 绑定下载源
      +npm config set registry https://registry.npmmirror.com
      +
      +# 删除下载源
      +npm config rm registry

      TIP

      npm 的 lock 文件是 package-lock.json ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

      通过 cnpm 安装

      cnpm 是阿里巴巴推出的包管理工具,安装之后默认会使用 https://registry.npmmirror.com 这个镜像源。

      它的安装命令和 npm 非常一致,通过 cnpm install 命令来安装(比如 cnpm install vue-router)。

      在使用它之前,需要通过 npm 命令进行全局安装:

      bash
      npm install -g cnpm
      +
      +# 或者
      +# npm install -g cnpm --registry=https://registry.npmmirror.com

      TIP

      cnpm 不生成 lock 文件,也不会识别项目下的 lock 文件,所以还是推荐使用 npm 或者其他包管理工具,通过绑定镜像源的方式来管理项目的包。

      通过 yarn 安装

      yarn 也是一个常用的包管理工具,和 npm 十分相似, npmjs 上的包,也会同步到 yarnpkg

      也是需要全局安装才可以使用:

      bash
      npm install -g yarn

      但是安装命令上会有点不同, yarn 是用 add 代替 install ,用 remove 代替 uninstall ,例如:

      bash
      # 安装单个包
      +yarn add vue-router
      +
      +# 安装全局包
      +yarn global add typescript
      +
      +# 卸载包
      +yarn remove vue-router

      而且在运行脚本的时候,可以直接用 yarn 来代替 npm run ,例如 yarn dev 相当于 npm run dev

      yarn 默认绑定的是 https://registry.yarnpkg.com 的下载源,如果包的下载速度太慢,也可以配置镜像源,但是命令有所差异:

      bash
      # 查看镜像源
      +yarn config get registry
      +
      +# 绑定镜像源
      +yarn config set registry https://registry.npmmirror.com
      +
      +# 删除镜像源(注意这里是 delete )
      +yarn config delete registry

      TIP

      yarn 的 lock 文件是 yarn.lock ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

      通过 pnpm 安装

      pnpm 是包管理工具的一个后起之秀,主打快速的、节省磁盘空间的特色,用法跟其他包管理器很相似,没有太多的学习成本, npm 和 yarn 的命令它都支持。

      也是必须先全局安装它才可以使用:

      bash
      npm install -g pnpm

      目前 pnpm 在开源社区的使用率越来越高,包括接触最多的 Vue / Vite 团队也在逐步迁移到 pnpm 来管理依赖。

      pnpm 的下载源使用的是 npm ,所以如果要绑定镜像源,按照 npm 的方式 处理就可以了。

      相关阅读:

      TIP

      pnpm 的 lock 文件是 pnpm-lock.yaml ,如果有管理多人协作仓库的需求,可以根据实际情况把它添加至 .gitignore 文件,便于统一团队的包管理。

      通过 CDN 安装

      大部分插件都会提供一个 CDN 版本,让可以在 .html 文件里通过 <script> 标签引入。

      比如:

      html
      <script src="https://unpkg.com/vue-router"></script>

      插件的引入

      除了 CDN 版本是直接可用之外,其他通过 npm 、 yarn 等方式安装的插件,都需要在入口文件 main.ts 或者要用到的 .vue 文件里引入,比如:

      ts
      import { createRouter, createWebHistory } from 'vue-router'

      因为本教程都是基于工程化开发,使用的 CLI 脚手架,所以这些内容暂时不谈及 CDN 的使用方式。

      通常来说会有细微差别,但影响不大,插件作者也会在插件仓库的 README 或者使用文档里进行告知。

      Vue 专属插件

      这里特指 Vue 插件,通过 Vue Plugins 设计规范 开发出来的插件,在 npm 上通常是以 vue-xxx 这样带有 vue 关键字的格式命名(比如 vue-baidu-analytics)。

      专属插件通常分为 全局插件单组件插件,区别在于,全局版本是在 main.ts 引入后 use,而单组件版本则通常是作为一个组件在 .vue 文件里引入使用。

      全局插件的使用 ~new

      在本教程最最前面的时候,特地说了一个内容就是 项目初始化 ,在这里有提到过就是需要通过 use 来初始化框架、插件。

      全局插件的使用,就是在 main.ts 通过 import 引入,然后通过 use 来启动初始化。

      在 Vue 2 ,全局插件是通过 Vue.use(xxx) 来启动,而现在,则需要通过 createAppuse,既可以单独一行一个 use ,也可以直接链式 use 下去。

      参数

      use 方法支持两个参数:

      参数类型作用
      pluginobject | function插件,一般是在 import 时使用的名称
      optionsobject插件的参数,有些插件在初始化时可以配置一定的选项

      基本的写法就是像下面这样:

      ts
      // main.ts
      +import plugin1 from 'plugin1'
      +import plugin2 from 'plugin2'
      +import plugin3 from 'plugin3'
      +import plugin4 from 'plugin4'
      +
      +createApp(App)
      +  .use(plugin1)
      +  .use(plugin2)
      +  .use(plugin3, {
      +    // plugin3's options
      +  })
      +  .use(plugin4)
      +  .mount('#app')

      大部分插件到这里就可以直接启动了,个别插件可能需要通过插件 API 去手动触发,在 npm 包的详情页或者 GitHub 仓库文档上,作者一般会告知使用方法,按照说明书操作即可。

      单组件插件的使用 ~new

      单组件的插件,通常自己本身也是一个 Vue 组件(大部分情况下都会打包为 JS 文件,但本质上是一个 Vue 的 Component )。

      单组件的引入,一般都是在需要用到的 .vue 文件里单独 import ,然后挂到 <template /> 里去渲染,下面是一段模拟代码,理解起来会比较直观:

      vue
      <template>
      +  <!-- 放置组件的渲染标签,用于显示组件 -->
      +  <ComponentExample />
      +</template>
      +
      +<script lang="ts">
      +import { defineComponent, onMounted, ref } from 'vue'
      +import logo from '@/assets/logo.png'
      +
      +// 引入单组件插件
      +import ComponentExample from 'a-component-example'
      +
      +export default defineComponent({
      +  // 挂载组件模板
      +  components: {
      +    ComponentExample,
      +  },
      +})
      +</script>

      参考上面的代码还有注释,应该能大概了解如何使用单组件插件了吧!

      通用 JS / TS 插件

      也叫普通插件,这个 “普通” 不是指功能平平无奇,而是指它们无需任何框架依赖,可以应用在任意项目中,属于独立的 Library ,比如 axiosqrcodemd5 等等,在任何技术栈都可以单独引入使用,非 Vue 专属。

      通用插件的使用非常灵活,既可以全局挂载,也可以在需要用到的组件里单独引入。

      组件里单独引入方式:

      ts
      import { defineComponent } from 'vue'
      +import md5 from '@withtypes/md5'
      +
      +export default defineComponent({
      +  setup() {
      +    const md5Msg = md5('message')
      +  },
      +})

      全局挂载方法比较特殊,因为插件本身不是专属 Vue,没有 install 接口,无法通过 use 方法直接启动,下面有一小节内容单独讲这一块的操作,详见 全局 API 挂载

      本地插件 ~new

      插件也不全是来自于网上,有时候针对自己的业务,涉及到一些经常用到的功能模块,也可以抽离出来封装成项目专用的插件。

      封装的目的

      举个例子,比如在做一个具备用户系统的网站时,会涉及到手机短信验证码模块,在开始写代码之前,需要先要考虑到这些问题:

      1. 很多操作都涉及到下发验证码的请求,比如 “登录” 、 “注册” 、 “修改手机绑定” 、 “支付验证” 等等,代码雷同,只是接口 URL 或者参数不太一样

      2. 都是需要对手机号是否有传入、手机号的格式正确性验证等一些判断

      3. 需要对接口请求成功和失败的情况做一些不同的数据返回,但要处理的数据很相似,都是用于告知调用方当前是什么情况

      4. 返回一些 Toast 告知用户当前的交互结果

      TIP

      如果不把这一块的业务代码抽离出来,需要在每个用到的地方都写一次,不仅繁琐,而且以后一旦产品需求有改动,维护起来就惨了。

      常用的封装类型

      常用的本地封装方式有两种:一种是以 通用 JS / TS 插件 的形式,一种是以 Vue 专属插件 的形式。

      关于这两者的区别已经在对应的小节有所介绍,接下来来看看如何封装它们。

      开发本地通用 JS / TS 插件

      一般情况下会以通用类型比较常见,因为大部分都是一些比较小的功能,而且可以很方便的在不同项目之间进行复用。

      TIP

      注:接下来会统一称之为 “通用插件” ,不论是基于 JavaScript 编写的还是 TypeScript 编写的。

      项目结构

      通常会把这一类文件都归类在 src 目录下的 libs 文件夹里,代表存放的是 Library 文件( JS 项目以 .js 文件存放, TS 项目以 .ts 文件存放)。

      bash
      vue-demo
      + # 源码文件夹
      +├─src
      +  # 本地通用插件
      + └─libs
      +   ├─foo.ts
      +   └─bar.ts
      +
      + # 其他结构这里省略…
      +
      +└─package.json

      这样在调用的时候,可以通过 @/libs/foo 来引入,或者配置了 alias 别名,也可以使用别名导入,例如 @libs/foo

      设计规范与开发案例

      在设计本地通用插件的时候,需要遵循 ES Module 模块设计规范 ,并且做好必要的代码注释(用途、入参、返回值等)。

      TIP

      如果还没有了解过 “模块” 的概念的话,可以先阅读 了解模块化设计 一节的内容。

      一般来说,会有以下三种情况需要考虑。

      只有一个默认功能

      如果只有一个默认的功能,那么可以使用 export default 来默认导出一个函数。

      例如需要封装一个打招呼的功能:

      ts
      // src/libs/greet.ts
      +
      +/**
      + * 向对方打招呼
      + * @param name - 打招呼的目标人名
      + * @returns 向传进来的人名返回一句欢迎语
      + */
      +export default function greet(name: string): string {
      +  return `Welcome, ${name}!`
      +}

      在 Vue 组件里就可以这样使用:

      vue
      <script lang="ts">
      +import { defineComponent } from 'vue'
      +// 导入本地插件
      +import greet from '@libs/greet'
      +
      +export default defineComponent({
      +  setup() {
      +    // 导入的名称就是这个工具的方法名,可以直接调用
      +    const message = greet('Petter')
      +    console.log(message) // Welcome, Petter!
      +  },
      +})
      +</script>
      是一个小工具合集

      如果有很多个作用相似的函数,那么建议放在一个文件里作为一个工具合集统一管理,使用 export 来导出里面的每个函数。

      例如需要封装几个通过 正则表达式 判断表单的输入内容是否符合要求的函数:

      ts
      // src/libs/regexp.ts
      +
      +/**
      + * 手机号校验
      + * @param phoneNumber - 手机号
      + * @returns true=是手机号,false=不是手机号
      + */
      +export function isMob(phoneNumber: number | string): boolean {
      +  return /^1[3456789]\d{9}$/.test(String(phoneNumber))
      +}
      +
      +/**
      + * 邮箱校验
      + * @param email - 邮箱地址
      + * @returns true=是邮箱地址,false=不是邮箱地址
      + */
      +export function isEmail(email: string): boolean {
      +  return /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/.test(
      +    email
      +  )
      +}

      在 Vue 组件里就可以这样使用:

      vue
      <script lang="ts">
      +import { defineComponent } from 'vue'
      +// 需要用花括号 {} 来按照命名导出时的名称导入
      +import { isMob, isEmail } from '@libs/regexp'
      +
      +export default defineComponent({
      +  setup() {
      +    // 判断是否是手机号
      +    console.log(isMob('13800138000')) // true
      +    console.log(isMob('123456')) // false
      +
      +    // 判断是否是邮箱地址
      +    console.log(isEmail('example@example.com')) // true
      +    console.log(isEmail('example')) // false
      +  },
      +})
      +</script>

      TIP

      类似这种情况,就没有必要为 isMobisEmail 每个方法都单独保存一个文件了,只需要统一放在 regexp.ts 正则文件里维护。

      包含工具及辅助函数

      如果主要提供一个独立功能,但还需要提供一些额外的变量或者辅助函数用于特殊的业务场景,那么可以用 export default 导出主功能,用 export 导出其他变量或者辅助函数。

      只有一个默认功能 这个打招呼例子的基础上修改一下,默认提供的是 “打招呼” 的功能,偶尔需要更热情的赞美一下,那么这个 “赞美” 行为就可以用这个方式来放到这个文件里一起维护。

      ts
      // src/libs/greet.ts
      +
      +/**
      + * 称赞对方
      + * @param name - 要称赞的目标人名
      + * @returns 向传进来的人名发出一句赞美的话
      + */
      +export function praise(name: string): string {
      +  return `Oh! ${name}! It's so kind of you!`
      +}
      +
      +/**
      + * 向对方打招呼
      + * @param name - 打招呼的目标人名
      + * @returns 向传进来的人名发出一句欢迎语
      + */
      +export default function greet(name: string): string {
      +  return `Welcome, ${name}!`
      +}

      在 Vue 组件里就可以这样使用:

      vue
      <script lang="ts">
      +import { defineComponent } from 'vue'
      +// 两者可以同时导入使用
      +import greet, { praise } from '@libs/greet'
      +
      +export default defineComponent({
      +  setup() {
      +    // 使用默认的打招呼
      +    const message = greet('Petter')
      +    console.log(message) // Welcome, Petter!
      +
      +    // 使用命名导出的赞美
      +    const praiseMessage = praise('Petter')
      +    console.log(praiseMessage) // Oh! Petter! It's so kind of you!
      +  },
      +})
      +</script>

      开发本地 Vue 专属插件

      Vue 专属插件 部分已介绍过,这一类的插件只能给 Vue 使用,有时候自己的业务比较特殊,无法找到完全适用的 npm 包,那么就可以自己写一个!

      项目结构

      通常会把这一类文件都归类在 src 目录下的 plugins 文件夹里,代表存放的是 Plugin 文件( JS 项目以 .js 文件存放, TS 项目以 .ts 文件存放)。

      bash
      vue-demo
      + # 源码文件夹
      +├─src
      +  # 本地 Vue 插件
      + └─plugins
      +   ├─foo.ts
      +   └─bar.ts
      +
      + # 其他结构这里省略…
      +
      +└─package.json

      这样在调用的时候,可以通过 @/plugins/foo 来引入,或者配置了 alias 别名,也可以使用别名导入,例如 @plugins/foo

      设计规范

      在设计本地 Vue 插件的时候,需要遵循 Vue 官方撰写的 Vue Plugins 设计规范 ,并且做好必要的代码注释,除了标明插件 API 的 “用途、入参、返回值” 之外,最好在注释内补充一个 Example 或者 Tips 说明,功能丰富的插件最好直接写个 README 文档。

      开发案例

      全局插件开发并启用后,只需要在 main.ts 里导入并 use 一次,即可在所有的组件内使用插件的功能。

      下面对全局插件进行一个开发示范,希望能给大家以后需要的时候提供思路参考。

      TIP

      单组件插件一般作为 npm 包发布,会借助 Webpack 、 Vite 或者 Rollup 单独构建,本地直接放到 components 文件夹下作为组件管理即可。

      基本结构

      插件支持导出两种格式的:一种是函数,一种是对象。

      1. 当导出为一个函数时, Vue 会直接调用这个函数,此时插件内部是这样子:
      ts
      export default function (app, options) {
      +  // 逻辑代码...
      +}
      1. 当导出为一个对象时,对象上面需要有一个 install 方法给 Vue , Vue 通过调用这个方法来启用插件,此时插件内部是这样子:
      ts
      export default {
      +  install: (app, options) => {
      +    // 逻辑代码...
      +  },
      +}

      不论哪种方式,入口函数都会接受两个入参:

      参数作用类型
      appcreateApp 生成的实例App (从 'vue' 里导入该类型),见下方的案例演示
      options插件初始化时的选项undefined 或一个对象,对象的 TS 类型由插件的选项决定

      如果需要在插件初始化时传入一些必要的选项,可以定义一个对象作为 options ,这样只要在 main.tsuse 插件时传入第二个参数,插件就可以拿到它们:

      ts
      // src/main.ts
      +createApp(App)
      +  // 注意这里的第二个参数就是插件选项
      +  .use(customPlugin, {
      +    foo: 1,
      +    bar: 2,
      +  })
      +  .mount('#app')
      编写插件

      这里以一个 自定义指令 为例,写一个用于管理自定义指令的插件,其中包含两个自定义指令:一个是判断是否有权限,一个是给文本高亮,文本高亮还支持一个插件选项。

      ts
      // src/plugins/directive.ts
      +import type { App } from 'vue'
      +
      +// 插件选项的类型
      +interface Options {
      +  // 文本高亮选项
      +  highlight?: {
      +    // 默认背景色
      +    backgroundColor: string
      +  }
      +}
      +
      +/**
      + * 自定义指令
      + * @description 保证插件单一职责,当前插件只用于添加自定义指令
      + */
      +export default {
      +  install: (app: App, options?: Options) => {
      +    /**
      +     * 权限控制
      +     * @description 用于在功能按钮上绑定权限,没权限时会销毁或隐藏对应 DOM 节点
      +     * @tips 指令传入的值是管理员的组别 id
      +     * @example <div v-permission="1" />
      +     */
      +    app.directive('permission', (el, binding) => {
      +      // 假设 1 是管理员组别的 id ,则无需处理
      +      if (binding.value === 1) return
      +
      +      // 其他情况认为没有权限,需要隐藏掉界面上的 DOM 元素
      +      if (el.parentNode) {
      +        el.parentNode.removeChild(el)
      +      } else {
      +        el.style.display = 'none'
      +      }
      +    })
      +
      +    /**
      +     * 文本高亮
      +     * @description 用于给指定的 DOM 节点添加背景色,搭配文本内容形成高亮效果
      +     * @tips 指令传入的值需要是合法的 CSS 颜色名称或者 Hex 值
      +     * @example <div v-highlight="`cyan`" />
      +     */
      +    app.directive('highlight', (el, binding) => {
      +      // 获取默认颜色
      +      let defaultColor = 'unset'
      +      if (
      +        Object.prototype.toString.call(options) === '[object Object]' &&
      +        options?.highlight?.backgroundColor
      +      ) {
      +        defaultColor = options.highlight.backgroundColor
      +      }
      +
      +      // 设置背景色
      +      el.style.backgroundColor =
      +        typeof binding.value === 'string' ? binding.value : defaultColor
      +    })
      +  },
      +}
      启用插件

      main.ts 全局启用插件,在启用的时候传入了第二个参数 “插件的选项” ,这里配置了个高亮指令的默认背景颜色:

      ts
      // src/main.ts
      +import { createApp } from 'vue'
      +import App from '@/App.vue'
      +import directive from '@/plugins/directive' // 导入插件
      +
      +createApp(App)
      +   // 自定义插件
      +  .use(directive, {
      +    highlight: {
      +      backgroundColor: '#ddd',
      +    },
      +  })
      +  .mount('#app')
      使用插件

      在 Vue 组件里使用:

      vue
      <template>
      +  <!-- 测试 permission 指令 -->
      +  <div>根据 permission 指令的判断规则:</div>
      +  <div v-permission="1">这个可以显示</div>
      +  <div v-permission="2">这个没有权限,会被隐藏</div>
      +
      +  <!-- 测试 highlight 指令 -->
      +  <div>根据 highlight 指令的判断规则:</div>
      +  <div v-highlight="`cyan`">这个是青色高亮</div>
      +  <div v-highlight="`yellow`">这个是黄色高亮</div>
      +  <div v-highlight="`red`">这个是红色高亮</div>
      +  <div v-highlight>这个是使用插件初始化时设置的灰色</div>
      +</template>

      全局 API 挂载

      对于一些使用频率比较高的插件方法,如果觉得在每个组件里单独导入再用很麻烦,也可以考虑将其挂载到 Vue 上,使其成为 Vue 的全局变量。

      注:接下来的全局变量,都是指 Vue 环境里的全局变量,非 Window 下的全局变量。

      回顾 Vue 2

      在 Vue 2 ,可以通过 prototype 的方式来挂载全局变量,然后通过 this 关键字来从 Vue 原型上调用该方法。

      md5 插件为例,在 main.ts 里进行全局 import,然后通过 prototype 去挂到 Vue 上。

      ts
      import Vue from 'vue'
      +import md5 from 'md5'
      +
      +Vue.prototype.$md5 = md5

      之后在 .vue 文件里,就可以这样去使用 md5

      ts
      const md5Msg = this.$md5('message')

      了解 Vue 3 ~new

      在 Vue 3 ,已经不再支持 prototype 这样使用了,在 main.ts 里没有了 Vue,在组件的生命周期里也没有了 this

      如果依然想要挂载全局变量,需要通过全新的 globalProperties 来实现,在使用该方式之前,可以把 createApp 定义为一个变量再执行挂载。

      定义全局 API ~new

      如上,在配置全局变量之前,可以把初始化时的 createApp 定义为一个变量(假设为 app ),然后把需要设置为全局可用的变量或方法,挂载到 appconfig.globalProperties 上面。

      ts
      import md5 from 'md5'
      +
      +// 创建 Vue 实例
      +const app = createApp(App)
      +
      +// 把插件的 API 挂载全局变量到实例上
      +app.config.globalProperties.$md5 = md5
      +
      +// 也可以自己写一些全局函数去挂载
      +app.config.globalProperties.$log = (text: string): void => {
      +  console.log(text)
      +}
      +
      +app.mount('#app')

      全局 API 的替代方案

      在 Vue 3 实际上并不是特别推荐使用全局变量,Vue 3 比较推荐按需引入使用,这也是在构建过程中可以更好的做到代码优化。

      特别是针对 TypeScript , Vue 作者尤雨溪先生对于全局 API 的相关 PR 说明: Global API updates ,也是不建议在 TS 里使用。

      那么确实是需要用到一些全局 API 怎么办?

      对于一般的数据和方法,建议采用 Provide / Inject 方案,在根组件(通常是 App.vue )把需要作为全局使用的数据或方法 Provide 下去,在需要用到的组件里通过 Inject 即可获取到,或者使用 EventBus / Vuex / Pinia 等全局通信方案来处理。

      npm 包的开发与发布

      相信很多开发者都想发布一个属于自己的 npm 包,在实际的工作中,也会有一些公司出于开发上的便利,也会将一些常用的业务功能抽离为独立的 npm 包,提前掌握包的开发也是非常重要的能力,接下来将介绍如何从 0 到 1 开发一个 npm 包,并将其发布到 npmjs 上可供其他项目安装使用。

      TIP

      在开始本节内容之前,请先阅读或回顾以下两部分内容:

      1. 阅读 了解 package.json 一节,了解或重温 npm 包清单文件的作用
      2. 阅读 学习模块化设计 一节,了解或重温模块化开发的知识

      常用的构建工具

      平时项目里用到的 npm 包,也可以理解为是一种项目插件,一些很简单的包,其实就和编写 本地插件 一样,假设包的入口文件是 index.js ,那么可以直接在 index.js 里编写代码,再进行模块化导出。

      其他项目里安装这个包之后就可以直接使用里面的方法了,这种方式适合非常非常简单的包,很多独立的工具函数包就是使用这种方式来编写包的源代码。

      例如 is-number 这个包,每周下载量超过 6800 万次,它的源代码非常少:

      js
      /**
      + * 摘自 is-number 的入口文件
      + * @see https://github.com/jonschlinkert/is-number/blob/master/index.js
      + */
      +module.exports = function (num) {
      +  if (typeof num === 'number') {
      +    return num - num === 0
      +  }
      +  if (typeof num === 'string' && num.trim() !== '') {
      +    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num)
      +  }
      +  return false
      +}

      再如 slash 这个包,每周下载量超过 5200 万次,它的源代码也是只有几行:

      js
      /**
      + * 摘自 slash 的入口文件
      + * @see https://github.com/sindresorhus/slash/blob/main/index.js
      + */
      +export default function slash(path) {
      +  const isExtendedLengthPath = /^\\\\\?\\/.test(path)
      +
      +  if (isExtendedLengthPath) {
      +    return path
      +  }
      +
      +  return path.replace(/\\/g, '/')
      +}

      但这一类包通常是提供很基础的功能实现,更多时候需要自己开发的包更倾向于和框架、和业务挂钩,涉及到非 JavaScript 代码,例如 Vue 组件的编译、 Less 等 CSS 预处理器编译、 TypeScript 的编译等等,如果不通过构建工具来处理,那么发布后这个包的使用就会有诸多限制,需要满足和开发这个包时一样的开发环境才能使用,这对于使用者来说非常不友好。

      因此大部分 npm 包的开发也需要用到构建工具来转换项目源代码,统一输出为一个兼容性更好、适用性更广的 JavaScript 文件,配合 .d.ts 文件的类型声明,使用者可以不需要特地配置就可以开箱即用,非常方便,非常友好。

      传统的 Webpack 可以用来构建 npm 包文件,但按照目前更主流的技术选项,编译结果更干净更迷的当属 Rollup ,但 Rollup 需要配置很多插件功能,这对于刚接触包开发的开发者来说学习成本比较高,而 Vite 的出现则解决了这个难题,因为 Vite 的底层是基于 Rollup 来完成构建,上层则简化了很多配置上的问题,因此接下来将使用 Vite 来带领开发者入门 npm 包的开发。

      TIP

      在开始使用构建工具之前,请先在命令行使用 node -v 命令检查当前的 Node.js 版本号是否在构建工具的支持范围内,避免无法正常使用构建工具。

      通常可以在构建工具的官网查询到其支持的 Node 版本,以 Vite 为例,可以在 Vite 官网的 Node 支持 一节了解到当前只能在 Node 14.18+ / 16+ 版本上使用 Vite 。

      当构建工具所支持的 Node 版本和常用的 Node 版本出现严重冲突时,推荐使用 nvm / nvm-windows 或者 n 等 Node 版本管理工具安装多个不同版本的 Node ,即可根据开发需求很方便的切换不同版本的 Node 进行开发。

      项目结构与入口文件

      在动手开发具体功能之前,先把项目框架搭起来,熟悉常用的项目结构,以及如何配置项目清单信息。

      TIP

      当前文档所演示的 hello-lib 项目已托管至 learning-vue3/hello-lib 仓库,可使用 Git 克隆命令拉取至本地:

      bash
      # 从 GitHub 克隆
      +git clone https://github.com/learning-vue3/hello-lib.git
      +
      +# 如果 GitHub 访问失败,可以从 Gitee 克隆
      +git clone https://gitee.com/learning-vue3/hello-lib.git

      成品项目可作为学习过程中的代码参考,但更建议按照教程的讲解步骤,从零开始亲手搭建一个新项目并完成 npm 包的开发流程,可以更有效的提升学习效果。

      初始化项目

      首先需要初始化一个 Node 项目,打开命令行工具,先使用 cd 命令进入平时存放项目的目录,再通过 mkdir 命令创建一个项目文件夹,这里起名为 hello-lib

      bash
      # 创建一个项目文件夹
      +mkdir hello-lib

      创建了项目文件夹之后,使用 cd 命令进入项目,执行 Node 的项目初始化命令:

      bash
      # 进入项目文件夹
      +cd hello-lib
      +
      +# 执行初始化,使其成为一个 Node 项目
      +npm init -y

      此时 hello-lib 目录下会生成一个 package.json 文件,由于后面还需要手动调整该文件的信息,所以初始化的时候可以添加 -y 参数使用默认的初始化数据直接生成该文件,跳过答题环节。

      配置包信息

      对一个 npm 包来说,最重要的文件莫过于 package.json 项目清单,其中有三个字段是必填的:

      字段是否必填作用
      name必填npm 包的名称,遵循 项目名称的规则
      version必填npm 包的版本号,遵循 语义化版本号的规则
      main必填项目的入口文件,通常指向构建产物所在目录的某个文件,该文件通常包含了所有模块的导出。

      如果只指定了 main 字段,则使用 requireimport 以及浏览器访问 npm 包的 CDN 时,都将默认调用该字段指定的入口文件。

      如果有指定 modulebrowser 字段,则通常对应 cjs 格式的文件,对应 CommonJS 规范。
      module当项目使用 import 引入 npm 包时对应的入口文件,通常指向一个 es 格式的文件,对应 ES Module 规范。
      browser当项目使用了 npm 包的 CDN 链接,在浏览器访问页面时的入口文件,通常指向一个 umd 格式的文件,对应 UMD 规范。
      types一个 .d.ts 类型声明文件,包含了入口文件导出的方法 / 变量的类型声明,如果项目有自带类型文件,那么在使用者在使用 TypeScript 开发的项目里,可以得到友好的类型提示
      files指定发布到 npm 上的文件范围,格式为 string[] 支持配置多个文件名或者文件夹名称。

      通常可以只指定构建的输出目录,例如 dist 文件夹,如果不指定,则发布的时候会把所有源代码一同发布。

      其中 mainmodulebrowser 三个入口文件对应的文件格式和规范,通常都是交给构建工具处理,无需手动编写,开发者只需要维护一份源码即可编译出不同规范的 JS 文件, types 对应的类型声明文件也是由工具来输出,无需手动维护。

      而其他的字段可以根据项目的性质决定是否补充,以下是 hello-lib 的基础信息示例:

      json
      {
      +  "name": "@learning-vue3/lib",
      +  "version": "1.0.0",
      +  "description": "A library demo for learning-vue3.",
      +  "author": "chengpeiquan <chengpeiquan@chengpeiquan.com>",
      +  "homepage": "https://github.com/learning-vue3/hello-lib",
      +  "repository": {
      +    "type": "git",
      +    "url": "git+https://github.com/learning-vue3/hello-lib.git"
      +  },
      +  "license": "MIT",
      +  "files": ["dist"],
      +  "main": "dist/index.cjs",
      +  "module": "dist/index.mjs",
      +  "browser": "dist/index.min.js",
      +  "types": "dist/index.d.ts",
      +  "keywords": ["library", "demo", "example"],
      +  "scripts": {
      +    "build": "vite build"
      +  }
      +}

      此时 mainmodulebrowsertypes 字段对应的文件还不存在,它们将在项目执行 npm run build 构建之后才会产生。

      另外,入口文件使用了不同规范对应的文件扩展名,也可以统一使用 .js 扩展名,通过文件名来区分,例如 es 格式使用 index.es.js

      scripts 字段则配置了一个 build 命令,这里使用了 Vite 的构建命令来打包项目,这个过程会读取 Vite 的配置文件 vite.config.ts ,关于该文件的配置内容将在下文继续介绍。

      安装开发依赖

      本次的 npm 包将使用 Vite 进行构建,使用 TypeScript 编写源代码,由于 Vite 本身对 TypeScript 进行了支持,因此只需要将 Vite 安装到开发依赖:

      bash
      # 添加 -D 选项将其安装到 devDependencies
      +npm i -D vite

      添加配置文件

      配置包信息 的时候已提前配置了一个 npm run build 的命令,它将运行 Vite 来构建 npm 包的入口文件。

      由于 Vite 默认是构建入口文件为 HTML 的网页应用,而开发 npm 包时入口文件是 JS / TS 文件,因此需要添加一份配置文件来指定构建的选项。

      以下是本次的基础配置,可以完成最基本的打包,它将输出三个不同格式的入口文件,分别对应 CommonJS 、 ES Module 和 UMD 规范,分别对应 package.json 里 mainmodulebrowser 字段指定的文件。

      ts
      // vite.config.ts
      +import { defineConfig } from 'vite'
      +
      +// https://cn.vitejs.dev/config/
      +export default defineConfig({
      +  build: {
      +    // 输出目录
      +    outDir: 'dist',
      +    // 构建 npm 包时需要开启 “库模式”
      +    lib: {
      +      // 指定入口文件
      +      entry: 'src/index.ts',
      +      // 输出 UMD 格式时,需要指定一个全局变量的名称
      +      name: 'hello',
      +      // 最终输出的格式,这里指定了三种
      +      formats: ['es', 'cjs', 'umd'],
      +      // 针对不同输出格式对应的文件名
      +      fileName: (format) => {
      +        switch (format) {
      +          // ES Module 格式的文件名
      +          case 'es':
      +            return 'index.mjs'
      +          // CommonJS 格式的文件名
      +          case 'cjs':
      +            return 'index.cjs'
      +          // UMD 格式的文件名
      +          default:
      +            return 'index.min.js'
      +        }
      +      },
      +    },
      +    // 压缩混淆构建后的文件代码
      +    minify: true,
      +  },
      +})

      添加入口文件

      来到这里,最基础的准备工作已完成,接下来添加入口文件并尝试编译。

      添加配置文件 时已指定了入口文件为 src/index.ts ,因此需要对应的创建该文件,并写入一个简单的方法,将用它来测试打包结果:

      ts
      // src/index.ts
      +export default function hello(name: string) {
      +  console.log(`Hello ${name}`)
      +}

      在命令行执行 npm run build 命令,可以看到项目下生成了 dist 文件夹,以及三个 JavaScript 文件,此时目录结构如下:

      bash
      hello-lib
      + # 构建产物的输出文件夹
      +├─dist
      + ├─index.cjs
      + ├─index.min.js
      + └─index.mjs
      + # 依赖文件夹
      +├─node_modules
      + # 源码文件夹
      +├─src
      +  # 入口文件
      + └─index.ts
      + # 项目清单信息
      +├─package-lock.json
      +├─package.json
      + # Vite 配置文件
      +└─vite.config.ts

      打开 dist 目录下的文件内容,可以看到虽然源码是使用 TypeScript 编写的,但最终输出的内容是按照指定的格式转换为 JavaScript 并且被执行了压缩和混淆,在这里将它们重新格式化,来看看转换后的结果。

      这是 index.cjs 的文件内容,源码被转换为 CommonJS 风格的代码:

      js
      // dist/index.cjs
      +'use strict'
      +function l(o) {
      +  console.log(`Hello ${o}`)
      +}
      +module.exports = l

      这是 index.mjs 的内容,源码被转换为 ES Module 风格的代码:

      js
      // dist/index.mjs
      +function o(l) {
      +  console.log(`Hello ${l}`)
      +}
      +export { o as default }

      这是 index.min.js 的内容,源码被转换为 UMD 风格的代码:

      js
      // dist/index.min.js
      +;(function (e, n) {
      +  typeof exports == 'object' && typeof module < 'u'
      +    ? (module.exports = n())
      +    : typeof define == 'function' && define.amd
      +    ? define(n)
      +    : ((e = typeof globalThis < 'u' ? globalThis : e || self), (e.hello = n()))
      +})(this, function () {
      +  'use strict'
      +  function e(n) {
      +    console.log(`Hello ${n}`)
      +  }
      +  return e
      +})

      来到这里,准备工作已就绪,下一步将开始进入工具包和组件包的开发。

      开发 npm 包

      这里先从最简单的函数库开始入门包的开发,为什么说它简单呢?因为只需要编写 JavaScript 或 TypeScript 就可以很好的完成开发工作。

      在理解了包的开发流程之后,如果要涉及 Vue 组件包的开发,则安装相关的 Vue 的相关依赖、 Less 等 CSS 预处理器依赖,只要满足了编译条件,就可以正常构建和发布,它们的开发流程是一样的。

      编写 npm 包代码

      在开发的过程中,需要遵循模块化开发的要求,当前这个演示包使用 TypeScript 编码,就需要 使用 ES Module 来设计模块 ,如果对模块化设计还没有足够的了解,请先回顾相关的内容。

      先在 src 目录下创建一个名为 utils.ts 的文件,写入以下内容:

      ts
      // src/utils.ts
      +
      +/**
      + * 生成随机数
      + * @param min - 最小值
      + * @param max - 最大值
      + * @param roundingType - 四舍五入类型
      + * @returns 范围内的随机数
      + */
      +export function getRandomNumber(
      +  min: number = 0,
      +  max: number = 100,
      +  roundingType: 'round' | 'ceil' | 'floor' = 'round'
      +) {
      +  return Math[roundingType](Math.random() * (max - min) + min)
      +}
      +
      +/**
      + * 生成随机布尔值
      + */
      +export function getRandomBoolean() {
      +  const index = getRandomNumber(0, 1)
      +  return [true, false][index]
      +}

      这里导出了两个随机方法,其中 getRandomNumber 提供了随机数值的返回,而 getRandomBoolean 提供了随机布尔值的返回,在源代码方面, getRandomBoolean 调用了 getRandomNumber 获取随机索引。

      这是一个很常见的 npm 工具包的开发思路,包里的函数都使用了细粒度的编程设计,每一个函数都是独立的功能,在必要的情况下,函数 B 可以调用函数 A 来减少代码的重复编写。

      在这里, utils.ts 文件已开发完毕,接下来需要将它导出的方法提供给包的使用者,请删除入口文件 src/index.ts 原来的测试内容,并输入以下新代码:

      ts
      // src/index.ts
      +export * from './utils'

      这代表将 utils.ts 文件里导出的所有方法或者变量,再次导出去,如果有很多个 utils.ts 这样的文件, index.ts 将作为一个统一的入口,统一的导出给构建工具去编译输出。

      接下来在命令行执行 npm run build ,再分别看看 dist 目录下的文件变化:

      此时的 index.cjs 文件,已经按照 CommonJS 规范转换了源代码:

      js
      // dist/index.cjs
      +'use strict'
      +Object.defineProperties(exports, {
      +  __esModule: { value: !0 },
      +  [Symbol.toStringTag]: { value: 'Module' },
      +})
      +function t(e = 0, o = 100, n = 'round') {
      +  return Math[n](Math.random() * (o - e) + e)
      +}
      +function r() {
      +  const e = t(0, 1)
      +  return [!0, !1][e]
      +}
      +exports.getRandomBoolean = r
      +exports.getRandomNumber = t

      index.mjs 也按照 ES Module 规范进行了转换:

      js
      // dist/index.mjs
      +function o(n = 0, t = 100, e = 'round') {
      +  return Math[e](Math.random() * (t - n) + n)
      +}
      +function r() {
      +  const n = o(0, 1)
      +  return [!0, !1][n]
      +}
      +export { r as getRandomBoolean, o as getRandomNumber }

      index.min.js 同样正常按照 UMD 风格转换成了 JavaScript 代码:

      js
      // dist/index.min.js
      +;(function (e, n) {
      +  typeof exports == 'object' && typeof module < 'u'
      +    ? n(exports)
      +    : typeof define == 'function' && define.amd
      +    ? define(['exports'], n)
      +    : ((e = typeof globalThis < 'u' ? globalThis : e || self),
      +      n((e.hello = {})))
      +})(this, function (e) {
      +  'use strict'
      +  function n(o = 0, u = 100, d = 'round') {
      +    return Math[d](Math.random() * (u - o) + o)
      +  }
      +  function t() {
      +    const o = n(0, 1)
      +    return [!0, !1][o]
      +  }
      +  ;(e.getRandomBoolean = t),
      +    (e.getRandomNumber = n),
      +    Object.defineProperties(e, {
      +      __esModule: { value: !0 },
      +      [Symbol.toStringTag]: { value: 'Module' },
      +    })
      +})

      对 npm 包进行本地调试

      开发或者迭代了一个 npm 包之后,不建议直接发布,可以在本地进行测试,直到没有问题了再发布到 npmjs 上供其他人使用。

      npm 提供了一个 npm link 命令供开发者本地联调,假设 path/to/my-library 是一个 npm 包的项目路径, path/to/my-project 是一个调试项目的所在路径,那么通过以下步骤可以在 my-project 里本地调试 my-library 包。

      TIP

      关于 path/to 的典故,可以查看 #294 了解。

      创建本地软链接

      先在 my-library npm 包项目里执行 npm link 命令,创建 npm 包的本地软链接:

      bash
      # 进入 npm 包项目所在的目录
      +cd path/to/my-library
      +
      +# 创建 npm 包的本地软链接
      +npm link

      运行了以上命令之后,意味着刚刚开发好的 npm 包,已经被成功添加到了 Node 的全局安装目录下,可以在命令行运行以下命令查看全局安装目录的位置:

      bash
      npm prefix -g

      假设 {prefix} 是全局安装目录,刚刚这个包在 package.json 里的包名称是 my-library ,那么在 {prefix}/node_modules/my-library 这个目录下可以看到被软链接了一份项目代码。

      TIP

      软链接( Symbolic Link / Symlink / Soft Link ),是指通过指定路径来指向文件或目录,操作系统会自动将其解释为另一个文件或目录的路径,因此软链接被删除或修改不会影响源文件,而源文件的移动或者删除,不会自动更新软链接,这一点和快捷方式的作用比较类似。

      自此已经对这个 npm 包完成了一次 “本地发布” ,接下来就要在调试项目里进行本地关联。

      关联本地软链接

      my-project 调试项目里执行语法为 npm link [<package-spec>] 的 link 命令,关联 npm 包的本地软链接。

      TIP

      这里的 [<package-spec>] 参数,可以是包名称,也可以是 npm 包项目所在的路径。

      bash
      # 进入调试项目所在的目录
      +cd path/to/my-project
      +
      +# 通过 npm 包的包名称关联本地软链接
      +npm link my-library

      如果通过 npm 包名称关联失败,例如返回了如下信息:

      bash
       npm link my-library
      +npm ERR! code E404
      +npm ERR! 404 Not Found - GET https://registry.npmjs.org/my-library - Not found
      +npm ERR! 404
      +npm ERR! 404  'my-library@*' is not in this registry.
      +npm ERR! 404
      +npm ERR! 404 Note that you can also install from a
      +npm ERR! 404 tarball, folder, http url, or git url.

      这种情况通常出现于本地 npm 包还没有在 npmjs 上进行过任意版本的发布,而包管理器又找不到本地全局安装目录的软链接,就会去 npm 源找,都找不到就会返回 404 的报错,针对这种情况,也可以使用 npm 包项目的路径进行关联:

      bash
      # 进入调试项目所在的目录
      +cd path/to/my-project
      +
      +# 通过 npm 包的项目路径关联本地软链接
      +npm link path/to/my-library

      至此,就完成了调试项目对该 npm 包在本地的 “安装” ,此时在 my-project 这个调试项目的 node_modules 目录下也会创建一个软链接,指向 my-library 所在的目录。

      回归当前的演示包项目,先创建一个基于 TypeScript 的 Vue 新项目作为调试项目,在关联了本地 npm 包之后,就可以在调试项目里编写如下代码,测试 npm 包里的方法是否可以正常使用:

      ts
      // 请将 `@learning-vue3/lib` 更换为实际的包名称
      +import { getRandomNumber } from '@learning-vue3/lib'
      +
      +const num = getRandomNumber()
      +console.log(num)

      启动 npm run dev 的调试命令并打开本地调试页面,就可以在浏览器控制台正确的打印出了随机结果。

      因为本包还支持 UMD 规范,所以也可以在 HTML 页面通过普通的 <script /> 标签直接引入 dist 目录下的文件测试将来引入 CDN 时的效果,可以在 npm 包项目下创建一个 demo 目录,并添加一个 index.html 文件到该目录下,并写入以下内容:

      html
      <!-- demo/index.html -->
      +<!DOCTYPE html>
      +<html lang="en">
      +  <head>
      +    <meta charset="UTF-8" />
      +    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      +    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      +    <title>Library Demo</title>
      +  </head>
      +  <body>
      +    <!-- 这里引入的是 UMD 规范的文件 -->
      +    <script src="../dist/index.min.js"></script>
      +    <script>
      +      /**
      +       * UMD 规范的文件会有一个全局变量
      +       * 由 vite.config.ts 的 `build.lib.name` 决定
      +       */
      +      console.log(hello)
      +
      +      /**
      +       * 所有的方法会挂在这个全局变量上
      +       * 类似于 jQuery 的 $.xxx() 那样使用
      +       */
      +      const num = hello.getRandomNumber()
      +      console.log(num)
      +    </script>
      +  </body>
      +</html>

      在浏览器打开该 HTML 文件并唤起控制台,一样可以看到随机结果的打印记录。

      添加版权注释

      很多知名项目在 Library 文件的开头都会有一段版权注释,它的作用除了声明版权归属之外,还会告知使用者关于项目的主页地址、版本号、发布日期、 BUG 反馈渠道等信息。

      例如很多开发者入门前端时使用过的经典类库 jQuery :

      js
      // https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.js
      +
      +/*!
      + * jQuery JavaScript Library v3.6.1
      + * https://jquery.com/
      + *
      + * Includes Sizzle.js
      + * https://sizzlejs.com/
      + *
      + * Copyright OpenJS Foundation and other contributors
      + * Released under the MIT license
      + * https://jquery.org/license
      + *
      + * Date: 2022-08-26T17:52Z
      + */
      +( function( global, factory ) {
      +// ...

      又如流行的 JavaScript 工具库 Lodash :

      js
      // https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js
      +
      +/**
      + * @license
      + * Lodash <https://lodash.com/>
      + * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
      + * Released under MIT license <https://lodash.com/license>
      + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
      + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
      + */
      +(function(){
      +// ...

      还有每次做轮播图一定会想到它的 Swiper :

      js
      // https://cdn.jsdelivr.net/npm/swiper@8.4.3/swiper-bundle.js
      +
      +/**
      + * Swiper 8.4.3
      + * Most modern mobile touch slider and framework
      + * with hardware accelerated transitions
      + * https://swiperjs.com
      + *
      + * Copyright 2014-2022 Vladimir Kharlampidi
      + *
      + * Released under the MIT License
      + *
      + * Released on: October 6, 2022
      + */
      +(function (global, factory) {
      +// ...

      聪明的开发者肯定已经猜到了,这些版权注释肯定不是手动添加的,那么它们是如何自动生成的呢?

      npm 社区提供了非常多开箱即用的注入插件,通常可以通过 “当前使用的构建工具名称” 加上 “plugin banner” 这样的关键字,在 npmjs 网站上搜索是否有相关的插件,以当前使用的 Vite 为例,可以通过 vite-plugin-banner 实现版权注释的自动注入。

      回到 hello-lib 项目,安装该插件到 devDependencies :

      bash
      npm i -D vite-plugin-banner

      根据插件的文档建议,打开 vite.config.ts 文件,将其导入,并通过读取 package.json 的信息来生成常用的版权注释信息:

      ts
      // vite.config.ts
      +import { defineConfig } from 'vite'
      +// 导入版权注释插件
      +import banner from 'vite-plugin-banner'
      +// 导入 npm 包信息
      +import pkg from './package.json'
      +
      +// https://cn.vitejs.dev/config/
      +export default defineConfig({
      +  // 其他选项保持不变
      +  // ...
      +  plugins: [
      +    // 新增 banner 插件的启用,传入 package.json 的字段信息
      +    banner(
      +      `/**\n * name: ${pkg.name}\n * version: v${pkg.version}\n * description: ${pkg.description}\n * author: ${pkg.author}\n * homepage: ${pkg.homepage}\n */`
      +    ),
      +  ],
      +})

      再次运行 npm run build 命令,打开 dist 目录下的 Library 文件,可以看到都成功添加了一段版权注释:

      js
      // dist/index.mjs
      +
      +/**
      + * name: @learning-vue3/lib
      + * version: v1.0.0
      + * description: A library demo for learning-vue3.
      + * author: chengpeiquan <chengpeiquan@chengpeiquan.com>
      + * homepage: https://github.com/learning-vue3/hello-lib
      + */
      +function o(n = 0, t = 100, e = 'round') {
      +  return Math[e](Math.random() * (t - n) + n)
      +}
      +function r() {
      +  const n = o(0, 1)
      +  return [!0, !1][n]
      +}
      +export { r as getRandomBoolean, o as getRandomNumber }

      这样其他开发者如果在使用过程中遇到了问题,就可以轻松找到插件作者的联系方式了!

      TIP

      请根据实际的 package.json 存在的字段信息调整 banner 内容。

      生成 npm 包的类型声明

      虽然到这里已经得到一个可以运行的 JavaScript Library 文件,在 JavaScript 项目里使用是完全没有问题的,但还不建议直接发布到 npmjs 上,因为目前的情况下在 TypeScript 项目并不能完全兼容,还需要生成一份 npm 包的类型声明文件。

      为什么需要类型声明

      如果在上一小节 关联本地软链接 创建 Vue 调试项目时,也是使用了 TypeScript 版本的 Vue 项目,会遇到 VSCode 在下面这句代码上:

      ts
      import { getRandomNumber } from '@learning-vue3/lib'

      在包名称 '@learning-vue3/lib' 的位置提示了一个红色波浪线,把鼠标移上去会显示这么一段话:

      无法找到模块 “@learning-vue3/lib” 的声明文件。 “D:/Project/demo/hello-lib/dist/index.cjs” 隐式拥有 "any" 类型。
      尝试使用 npm i --save-dev @types/learning-vue3__lib (如果存在),或者添加一个包含 declare module '@learning-vue3/lib'; 的新声明 (.d.ts) 文件 ts(7016)

      此时在命令行运行 Vue 调试项目的打包命令 npm run build ,也会遇到打包失败的报错,控制台同样反馈了这个问题:缺少声明文件。

      bash
       npm run build
      +
      +> hello-vue3@0.0.0 build
      +> vue-tsc --noEmit && vite build
      +
      +src/App.vue:8:30 - error TS7016: Could not find a declaration file for module '@learning-vue3/lib'. 'D:/Project/demo/hello-lib/dist/index.cjs' implicitly has an 'any' type.
      +  Try `npm i --save-dev @types/learning-vue3__lib` if it exists or add a new declaration (.d.ts) file containing `declare module '@learning-vue3/lib';`
      +
      +8 import { getRandomNumber } from '@learning-vue3/lib'
      +                               ~~~~~~~~~~~~~~~~~~~~
      +
      +
      +Found 1 error in src/App.vue:8

      虽然使用者可以按照报错提示,在调试项目下创建一个 d.ts 文件并写入以下内容来声明该 npm 包:

      ts
      declare module '@learning-vue3/lib'

      但这需要每个使用者,或者说每个使用到这个包的项目都声明一次,对于使用者来说非常不友好, declare module 之后虽然不会报错了,但也无法获得 VSCode 对 npm 包提供的 API 进行 TS 类型的自动推导与类型提示、代码补全等功能支持。

      主流的做法

      细心的开发者在 npmjs 网站上搜索 npm 包时,会发现很多 npm 包在详情页的包名后面,跟随有一个蓝色的 TS 图标,鼠标移上去时,还会显示一句提示语:

      This package contains built-in TypeScript declarations

      例如上图的 @vue/reactivity , Vue 3 的响应式 API 包,就带有这个图标。

      这表示带有这个图标的 npm 包,已包含内置的 TypeScript 声明,可以获得完善的 TS 类型推导和提示支持,开发过程中也可以获得完善的代码补全功能支持,提高开发效率,在 TypeScript 项目执行 npm run build 的时候也能够被成功打包。

      以 @vue/reactivity 这个包为例,如果项目下安装有这个 npm 包,可以在

      bash
      # 基于项目根目录
      +./node_modules/@vue/reactivity/dist/reactivity.d.ts

      这个文件里查看 Vue 3 响应式 API 的类型声明,也可以通过该文件的 CDN 地址访问到其内容:

      bash
      https://cdn.jsdelivr.net/npm/@vue/reactivity@3.2.40/dist/reactivity.d.ts

      生成 DTS 文件

      有在 “快速上手 TypeScript ” 一章阅读过 了解 tsconfig.json 这节内容的开发者,应该对该文件有了一定的了解,如果还没有阅读过也没关系,可以先按照下方的步骤操作,接下来将分布说明如何生成 npm 包的 DTS 类型声明文件(以 .d.ts 为扩展名的文件)。

      请先全局安装 typescript 这个包:

      bash
      npm install -g typescript

      依然是在在命令行界面,回到 hello-lib 这个 npm 包项目的根目录,执行以下命令生成 tsconfig.json 文件:

      bash
      tsc --init

      打开 tsconfig.json 文件,生成的文件里会有很多默认被注释掉的选项,请将以下几个选项取消注释,同时在 compilerOptions 字段的同级新增 include 字段,这几个选项都修改为如下配置:

      json
      {
      +  "compilerOptions": {
      +    "declaration": true,
      +    "emitDeclarationOnly": true,
      +    "declarationDir": "./dist"
      +  },
      +  "include": ["./src"]
      +}

      其中 compilerOptions 三个选项的意思是: .ts 源文件不编译为 .js 文件,只生成 .d.ts 文件并输出到 dist 目录; include 选项则告诉 TypeScript 编译器,只处理 src 目录下的 TS 文件。

      修改完毕后,在命令行执行以下命令,它将根据 tsconfig.json 的配置对项目进行编译:

      bash
      tsc

      可以看到现在的 dist 目录下多了 2 份 .d.ts 文件: index.d.ts 和 utils.d.ts 。

      bash
      hello-lib
      +└─dist
      +  ├─index.cjs
      +  ├─index.d.ts
      +  ├─index.min.js
      +  ├─index.mjs
      +  └─utils.d.ts

      打开 dist/index.d.ts ,可以看到它的内容和 src/index.ts 是一样的,因为作为入口文件,只提供了模块的导出:

      ts
      // dist/index.d.ts
      +export * from './utils'

      再打开 dist/utils.d.ts ,可以看到它的内容如下,对比 src/utils.ts 的文件内容,它去掉了具体的功能实现,并且根据代码逻辑,转换成了 TypeScript 的类型声明:

      ts
      // dist/utils.d.ts
      +/**
      + * 生成随机数
      + * @param min - 最小值
      + * @param max - 最大值
      + * @param roundingType - 四舍五入类型
      + * @returns 范围内的随机数
      + */
      +export declare function getRandomNumber(
      +  min?: number,
      +  max?: number,
      +  roundingType?: 'round' | 'ceil' | 'floor'
      +): number
      +/**
      + * 生成随机布尔值
      + */
      +export declare function getRandomBoolean(): boolean

      由于 hello-lib 项目的 package.json 已提前指定了类型声明文件指向:

      json
      {
      +  "types": "dist/index.d.ts"
      +}

      因此可以直接回到调试 npm 包的 Vue 项目,此时 VSCode 对那句 import 语句的红色波浪线报错信息已消失不见,鼠标移到 getRandomNumber 这个方法上,也可以看到 VSCode 出现了该方法的类型提示,非常方便。

      TIP

      如果 VSCode 未能及时更新该包的类型,依然提示红色波浪线,可以重启 VSCode 再次查看。

      再次运行 npm run build 命令构建调试项目,这一次顺利通过编译:

      bash
       npm run build
      +
      +> hello-vue3@0.0.0 build
      +> vue-tsc --noEmit && vite build
      +
      +vite v2.9.15 building for production...
      + 42 modules transformed.
      +dist/assets/logo.03d6d6da.png             6.69 KiB
      +dist/index.html                           0.42 KiB
      +dist/assets/home.9a123f29.js              2.01 KiB / gzip: 1.01 KiB
      +dist/assets/logo.db8b6a93.js              0.12 KiB / gzip: 0.13 KiB
      +dist/assets/TransferStation.25db7d3e.js   0.29 KiB / gzip: 0.22 KiB
      +dist/assets/bar.0e9da4c4.js               0.53 KiB / gzip: 0.37 KiB
      +dist/assets/bar.09e673fa.css              0.22 KiB / gzip: 0.18 KiB
      +dist/assets/home.6bd02f2a.css             0.62 KiB / gzip: 0.33 KiB
      +dist/assets/index.60726771.css            0.47 KiB / gzip: 0.29 KiB
      +dist/assets/index.aebbe022.js             79.87 KiB / gzip: 31.80 KiB

      生成 DTS Bundle

      初始化项目生成 DTS 文件 ,其实已经走完一个 npm 包的完整开发流程了,是可以提交发布了,但在发布之前,先介绍另外一个生成 DTS 文件的方式,可以根据实际情况选择使用。

      请注意这里使用了 DTS Bundle 来称呼类型声明文件,这是因为直接使用 tsc 命令生成的 DTS 文件,是和源码目录的文件数量挂钩的,可以留意到在上一小节使用 tsc 命令生成声明文件后,在 hello-lib 项目中:

      • src 源码目录有 index.ts 和 utils.ts 两个文件
      • dist 输出目录也对应生成了 index.d.ts 和 utils.d.ts 两个文件

      在一个大型项目里,源码的目录和文件非常多,意味着 DTS 文件也是非常多,这样的输出结构并不是特别友好。

      在讲 npm 包对类型声明 主流的做法 的时候,提到了 Vue 响应式 API 的 npm 包是提供了一个完整的 DTS 文件,它包含了所有 API 的类型声明信息:

      bash
      ./node_modules/@vue/reactivity/dist/reactivity.d.ts

      这种将多个模块的文件内容合并为一个完整文件的行为通常称之为 Bundle ,本小节将介绍如何生成这种 DTS Bundle 文件。

      继续回到 hello-lib 这个 npm 包项目,由于 tsc 本身不提供类型文件的合并,所以需要借助第三方依赖来实现,比较流行的第三方包有: dts-bundle-generatornpm-dtsdts-bundledts-generator 等等。

      之前笔者在为公司开发 npm 工具包的时候都对它们进行了一轮体验,鉴于实际开发过程中遇到的一些编译问题,在这里选用问题最少的 dts-bundle-generator 进行开发演示,请先安装到 hello-lib 项目的 devDependencies :

      bash
      npm i -D dts-bundle-generator

      dts-bundle-generator 支持在 package.json 里配置一个 script ,通过命令的形式在命令行生成 DTS Bundle ,也支持通过 JavaScript / TypeScript 编写函数来执行文件的生成,鉴于实际开发过程中使用函数生成 DTS Bundle 的场景比较多(例如 Monorepo 会有生成多个 Bundle 的使用场景),因此这里以函数的方式进行演示。

      TIP

      在使用 Git 等版本控制系统时,如果多个独立项目之间有关联,会把这些项目的代码都存储在同一个代码仓库集中管理,此时这个大型代码仓库就被称之为 Monorepo (其中 Mono 表示单一, Repo 是存储库 Repository 的缩写),当下许多大型项目都基于这种方法管理代码, Vue 3 在 GitHub 的代码仓库也是一个 Monorepo 。

      请在 hello-lib 的根目录下,创建一个与 src 源码目录同级的 scripts 目录,用来存储源码之外的脚本函数。

      将以下代码保存到 scripts 目录下,命名为 buildTypes.mjs :

      js
      // scripts/buildTypes.mjs
      +import { writeFileSync } from 'fs'
      +import { dirname, resolve } from 'path'
      +import { fileURLToPath } from 'url'
      +import { generateDtsBundle } from 'dts-bundle-generator'
      +
      +async function run() {
      +  // 默认情况下 `.mjs` 文件需要自己声明 __dirname 变量
      +  const __filename = fileURLToPath(import.meta.url)
      +  const __dirname = dirname(__filename)
      +
      +  // 获取项目的根目录路径
      +  const rootPath = resolve(__dirname, '..')
      +
      +  // 添加构建选项
      +  // 插件要求是一个数组选项,支持多个入口文件
      +  const options = [
      +    {
      +      filePath: resolve(rootPath, `./src/index.ts`),
      +      output: {
      +        noBanner: true,
      +      },
      +    },
      +  ]
      +
      +  // 生成 DTS 文件内容
      +  // 插件返回一个数组,返回的文件内容顺序同选项顺序
      +  const dtses = generateDtsBundle(options, {
      +    preferredConfigPath: resolve(rootPath, `./tsconfig.json`),
      +  })
      +  if (!Array.isArray(dtses) || !dtses.length) return
      +
      +  // 将 DTS Bundle 的内容输出成 `.d.ts` 文件保存到 dist 目录下
      +  // 当前只有一个文件要保存,所以只取第一个下标的数据
      +  const dts = dtses[0]
      +  const output = resolve(rootPath, `./dist/index.d.ts`)
      +  writeFileSync(output, dts)
      +}
      +run().catch((e) => {
      +  console.log(e)
      +})

      接下来打开 hello-lib 的 package.json 文件,添加一个 build:types 的 script ,并在 build 命令中通过 && 符号设置为继发执行任务,当前所有的 scripts 如下:

      json
      {
      +  "scripts": {
      +    "build": "vite build && npm run build:types",
      +    "build:types": "node scripts/buildTypes.mjs"
      +  }
      +}

      TIP

      继发执行:只有前一个任务执行成功,才继续执行下一个任务,任务与任务之间使用 && 符号连接。

      接下来再运行 npm run build 命令,将在执行完 Vite 的 build 任务之后,再继续执行 DTS Bundle 的文件生成,可以看到现在的 dist 目录变成了如下,只会生成一个 .d.ts 文件:

      bash
      hello-lib
      +└─dist
      +  ├─index.cjs
      +  ├─index.d.ts
      +  ├─index.min.js
      +  └─index.mjs

      现在 index.d.ts 文件已经集合了源码目录下所有的 TS 类型,变成了如下内容:

      ts
      // dist/index.d.ts
      +/**
      + * 生成随机数
      + * @param min - 最小值
      + * @param max - 最大值
      + * @param roundingType - 四舍五入类型
      + * @returns 范围内的随机数
      + */
      +export declare function getRandomNumber(
      +  min?: number,
      +  max?: number,
      +  roundingType?: 'round' | 'ceil' | 'floor'
      +): number
      +/**
      + * 生成随机布尔值
      + */
      +export declare function getRandomBoolean(): boolean
      +
      +export {}

      对于大型项目,将 DTS 文件集合为 Bundle 输出是一种主流的管理方式,非常建议使用这种方式来为 npm 包生成类型文件。

      添加说明文档

      作为一个完整的 npm 包,应该配备一份操作说明给使用者阅读,复杂的文档可以使用 VitePress 等文档程序独立部署,而简单的项目则只需要完善一份 README 即可。

      请创建一个名为 README.md 的 Markdown 文件在项目根目录下,与 src 源码目录同级,该文件的文件名 README 推荐使用全大写,这是开源社区主流的命名方式,全大写的原因是为了与代码文件进行直观的区分。

      编写 README 使用的 Markdown 是一种轻量级标记语言,可以使用易读易写的纯文本格式编写文档,以 .md 作为文件扩展名,当代码托管到 GitHub 仓库或者发布到 npmjs 等平台时, README 文件会作为项目的主页内容呈现。

      为了方便学习,这里将一些常用的 Markdown 语法与 HTML 代码对比如下,可以看到书写方面非常的简洁:

      Markdown 代码HTML 代码
      # 一级标题<h1>一级标题</h1>
      ## 二级标题<h2>二级标题</h2>
      ### 三级标题<h3>三级标题</h3>
      **加粗文本**<span style="font-weight: bold;">加粗文本</span>
      [链接文本](https://example.com)<a href="https://example.com">链接文本</a>

      更多的 Markdown 语法建议在 Markdown 教程网站 上学习。

      下面附上一份常用的 README 模板:

      md
      # 项目名称
      +
      +写上项目用途的一句话简介。
      +
      +## 功能介绍
      +
      +1. 功能 1 一句话介绍
      +2. 功能 2 一句话介绍
      +3. 功能 3 一句话介绍
      +
      +## 在线演示
      +
      +如果有部署在线 demo ,可放上 demo 的访问地址。
      +
      +## 安装方法
      +
      +使用 npm : `npm install package-name`
      +
      +使用 CDN : `https://example.com/package-name`
      +
      +## 用法
      +
      +告诉使用者如何使用 npm 包。
      +
      +## 插件选项
      +
      +如果 npm 包是一个插件,并支持传递插件选项,在这里可以使用表格介绍选项的作用。
      +
      +| 选项名称 |  类型  |    作用    |
      +| :------: | :----: | :--------: |
      +|   foo    | string | 一句话介绍 |
      +|   bar    | number | 一句话介绍 |
      +
      +更多内容请根据实际情况补充。

      拥有完善的使用说明文档,会让 npm 包更受欢迎!

      发布 npm 包

      一个 npm 包开发完毕后,就可以进入发布阶段了,这一小节将讲解如何注册 npm 账号并发布到 npmjs 平台上供其他开发者下载使用。

      TIP

      在操作 npm 包发布之前,请先运行 npm config rm registry 命令取消 npm 镜像源的绑定,否则会发布失败,在 npm 包发布后,可以再重新 配置镜像源

      注册 npm 账号

      在发布 npm 包之前,请先在 npm 官网上注册一个账号:点击注册

      接下来需要在命令行上登录该账号以操作发布命令,打开命令行工具,输入以下命令进行登录:

      bash
      npm login

      按照命令行的提示输入在 npmjs 网站上注册的账号和密码即可完成登录,可以通过以下命令查看当前登录的账号名称,验证是否登录成功:

      bash
      npm whoami

      在登录成功之后,命令行会记住账号的登录状态,以后的操作就无需每次都执行登录命令了。

      TIP

      以上操作也可以实用 npm adduser 命令代替,直接在命令行完成注册和登录。

      将包发布到 npmjs

      在 npm 上发布私有包需要进行付费,因此这里只使用公共包的发布作为演示和讲解,如果开发的是公司内部使用的 npm 包,只要源代码是私有仓库,也可以使用这种方式来发布,当前在这样做之前请先获得公司的同意。

      对于一个普通命名的包,要发布到 npmjs 上非常简单,只需要执行 npm 包管理器自带的一个命令即可:

      bash
      npm publish

      它默认会将这个包作为一个公共包发布,如果包名称合法并且没有冲突,则发布成功,可以在 npmjs 查询到,否则会返回错误信息告知原因,如果因为包名冲突导致的失败,可以尝试修改别的名称再次发布。

      如果打算使用像 @vue/cli@vue/compiler-sfc 这样带有 @scope 前缀的作用域包名,需要先在 npmjs 的 创建新组织 页面创建一个组织,或者确保自己拥有 @scope 对应的组织发布权限。

      @scope 作用域包默认会作为私有包发布,因此在执行发布命令的时候还需要加上一个 --access 选项,将其指定为 public 允许公开访问才可以发布成功:

      bash
      npm publish --access public

      当前的 hello-lib 项目已发布到 npmjs ,可以查看该包的主页 @learning-vue3/lib ,也可以通过 npm 安装到项目里使用了:

      bash
      npm i @learning-vue3/lib

      并且发布到 npmjs 上的包,都同时获得热门 CDN 服务的自动同步,可以通过包名称获取到 CDN 链接并通过 <script /> 标签引入到 HTML 页面里:

      bash
      # 使用 jsDelivr CDN
      +https://cdn.jsdelivr.net/npm/@learning-vue3/lib
      +
      +# 使用 UNPKG CDN
      +https://unpkg.com/@learning-vue3/lib

      此时 CDN 地址对应的 npm 包文件内容,就如前文所述,调用了 package.json 里 browser 字段指定的 UMD 规范文件 dist/index.min.js

      给 npm 包打 Tag

      细心的开发者还会留意到,例如像 Vue 这样的包,在 npmjs 上的 版本列表 里有 Current Tags 和 Version History 的版本分类,其中 Version History 是默认的版本发布历史列表,而 Current Tags 则是在发布 npm 包的时候指定打的标签。

      标签的好处是可以让使用者无需记住对应的版本号,而是使用一些更具备语义化的单词来安装指定版本,例如:

      bash
      # 安装最新版的 Vue 3 ,即截图里对应的 3.2.40 版本
      +npm i vue@latest
      +
      +# 安装最新版的 Vue 2 ,即截图里对应的 2.7.10 版本
      +npm i vue@v2-latest
      +
      +# 如果后续有功能更新的测试版,也可以通过标签安装
      +npm i vue@beta

      除了减少寻找版本号的麻烦外,一旦后续有版本更新,再次使用相同的标签安装,可以重新安装到该标签对应的最新版本,例如从 1.0.0-beta.1 升级到 1.0.0-beta.2 ,可以使用 @beta 标签再次安装来达到升级的目的。

      在标签列表里,有一个 latest 的标签是发布 npm 包时自带的,对应该包最新的正式版本,安装 npm 包时如果不指定标签,则默认使用 latest 标签,以下两个安装操作是等价的:

      bash
      # 隐式安装 latest 标签对应的版本
      +npm i vue
      +
      +# 显式安装 latest 标签对应的版本
      +npm i vue@latest

      同样的,当发布 npm 包时不指定标签,则该版本也会在发布后作为 @latest 标签对应的版本号。

      其他标签则需要在发布时配合发布命令,使用 --tag 作为选项手动指定,以下命令将为普通包打上名为 alpha 的 Tag :

      bash
      npm publish --tag alpha

      同理,如果是 @scope 作用域包也是在使用 --access 选项的情况下,继续追加一条 --tag 选项指定包的标签。

      bash
      npm publish --access public --tag alpha

      TIP

      请注意,如果是 Alpha 或者 Beta 版本,通常会在版本号上增加 -alpha.0-alpha.1 这样的 版本标识符,以便在发布正式版本的时候可以使用无标识符的相同版本号,以保证版本号在遵循 升级规则 下的连续性。

      Released under the MIT License.

      + + + + \ No newline at end of file diff --git a/preface.html b/preface.html new file mode 100644 index 00000000..2a2267ed --- /dev/null +++ b/preface.html @@ -0,0 +1,24 @@ + + + + + + 前言 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
      Skip to content
      目录

      前言

      Vue 3.0 从 2020 年 9 月份中旬正式发布,到 2022 年 2 月份代替 Vue 2 成为 Vue 的默认版本,经过长达一年半的市场验证,已经证明了它可以完美地支持常见的企业需求,适合投产使用,未来会被越来越多的企业所采用,只掌握 Vue 2 将远远不能满足企业的技能要求。

      本书以 Vue.js 的 3.0 版本为核心技术栈,围绕 “前端工程化” 和 TypeScript 的知识点展开讲解,读者可以收获到:

      1. 了解如何入门前端工程化开发,掌握 Node.js 和 npm 的使用
      2. 掌握前端领域多年来趋势走高、带有类型支持的 TypeScript 语言
      3. 上手主流前端框架 Vue.js 的全新版本,并且在遇到常见问题时知道如何解决

      本书的每一个小节都融入了笔者多年的开发实践经验,大部分知识点都搭配了通俗易懂的讲解和可实现的代码案例,在阅读的过程中可以亲自敲代码加强学习印象,毕竟上手一个新技术栈最快的方法,就是一边 Reading 一边 Coding 。

      适合人群

      本书作为一本入门类教程,主要面向以下读者人群:

      1. 掌握了基础的 HTML 页面编写知识,想学习一个主流前端框架的新手前端工程师
      2. 已经学会了 Vue 2 ,面对 Vue 3 的大版本更新,想快速上手使用的前端工程师
      3. 非职业前端开发,但涉及前端的工作,需要掌握一个主流前端框架的全栈工程师

      内容说明

      本书根据笔者多年的前端开发经验和一线团队管理经验,将 Vue 3 的知识点按照工程师做项目的顺序梳理成章,一步一步帮助工程师入门前端工程化和 Vue 3 的开发。

      书中包含了很多在构建项目过程中容易遇到的问题点和解决方案,对 Vue 3 和 Vue 2 差异化较大的功能点还进行了版本之间的写法对比。

      这一点和各个技术栈的官方文档有比较大的不同,官方文档更适合作为一本工具书,方便在需要的时候对 API 进行检索查询。

      目前笔者所带领的前端团队已经全员使用 TypeScript 和 Vue 3 进行日常的开发工作,团队成员的学习过程都非常顺利,各位开发者可放心阅读。

      TIP

      对于从 Vue 2 升级到 Vue 3 之后变化很大的内容,文档的侧边栏添加了图标,如果对 Vue 2 版本已经很熟悉,可以针对带有图标的地方单独查阅。

      注:当出现在二级标题时,说明这一节都是新的,如果只出现在三级标题,说明只有那一小部分变化比较大。

      学习顺序

      推荐按照本书章节的顺序学习,从前端工程化开始上手,到 TypeScript 语言的学习,再到使用 TypeScript 开发 Vue 3 项目,这是一个循序渐进的学习过程。

      Vue.js 是一个 “渐进式” 的框架,它可以只用最基础的组件来开发一个小项目,也可以把相关生态引入进来组合成一个大项目(例如 Vue Router 、 Vuex 、 Pinia 等等),本书和 Vue.js 框架一样,也是一个 “渐进式” 的教程,对于本身已经有一定基础的开发者,也可以在遇到具体问题的时候,只阅读对应的部分内容。

      在学习的过程中,推荐将已有的其他技术栈项目,使用 Vue 3 重写,使其可以复刻原来的功能,比如一个使用 jQuery 或者是 Vue 2 编写的活动页面或小工具,用 Vue 3 重新实现一遍,看看能否还原出原来的功能,如果能够成功实现,那么说明已经能够掌握 Vue 3 的使用了。

      疑惑解答

      在学习的过程中如果遇到什么问题无法解决,可以通过以下途径反馈:

      1. 在仓库里提 Issue 或者 Discussions
      2. 发送邮件到笔者的邮箱 chengpeiquan@chengpeiquan.com

      如果阅读本书的内容觉得有帮助,欢迎到仓库给个 Star 鼓励

      赏个罐头

      如果觉得本书的内容有帮助,欢迎 购买纸质版书籍 ,或者捐赠一个猫罐头给作者家的三只猫猫,感恩!

      作者养了一只黑色英短、一只红虎斑缅因和一只棕虎斑美短,欢迎在线吸猫:

      版权许可

      MIT License © 2020 chengpeiquan

      Released under the MIT License.

      + + + + \ No newline at end of file diff --git a/router.html b/router.html new file mode 100644 index 00000000..12c37407 --- /dev/null +++ b/router.html @@ -0,0 +1,519 @@ + + + + + + 路由的使用 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
      Skip to content
      目录

      路由的使用

      在传统的 Web 开发过程中,当需要实现多个站内页面时,以前需要写很多个 HTML 页面,然后通过 <a /> 标签来实现互相跳转。

      在如今工程化模式下的前端开发,像 Vue 工程,可以轻松实现只用一个 HTML 文件,却能够完成多个站内页面渲染、跳转的功能,这就是路由。

      TIP

      从这里开始,所有包含到 .vue 文件引入的地方,可能会看到 @xx/xx.vue 这样的写法。

      @viewssrc/views 的路径别名,@cpsrc/components 的路径别名。

      路径别名可以在 vite.config.ts 等构建工具配置文件里添加 alias ,点击了解:添加项目配置

      温馨提示

      这是笔者写于 2024.02.20 的补充提示,为读者解答为何前面的章节都未提及 script-setup 组件语法的信息。

      笔者在执笔之初,考虑到降低初学过程中的各种心智负担,以及当时处于 script-setup 组件语法尚未完全稳定的背景下,所以在最后一章 高效开发 之前的章节,都只提供了组件的标准写法的讲解。

      除非遇到框架进行了 Breaking Change (例如从 Vue 2 升级到了 Vue 3 这种大版本更新),否则标准写法是始终有效的,在笔者多年的学习经历和实际收获里,也是比较相信一点:不论学习什么语言或者框架,只要基础打的好,未来总是可以轻松地举一反三去解决遇到的各类问题。

      因此如果读者通过各类脚手架创建的 Vue 3 项目,在组件看到 <script setup> 这种风格的组件,以及诸如 defineXxx 风格的 API ,这是 .vue 组件所支持的一种语法糖,可以随时在 高效开发 一章了解相关的 API 用法。

      另外从 Vue 3.4 版本之后所新增的 API 未在本书的介绍范围内,请读者在阅读的过程中也可以查阅官方的 API 一起学习,不论是本书还是其他计算机书籍,官方文档永远是最好的查询手册。

      TIP

      语法糖(英语:Syntactic sugar)是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

      路由的目录结构

      Vue 3 引入路由的方式和 Vue 2 一样,路由的管理也是放在 src/router 这个目录下:

      bash
      src
      + # 路由目录
      +├─router
      +   # 路由入口文件
      +├───index.ts
      +   # 路由配置,如果路由很多,可以再拆分模块文件
      +├───routes.ts
      + # 项目入口文件
      +└─main.ts

      其中 index.ts 是路由的入口文件,如果路由很少,那么可以只维护在这个文件里,但对复杂项目来说,往往需要配置上二级、三级路由,逻辑和配置都放到一个文件的话,太臃肿了。

      所以如果项目稍微复杂一些,可以像上面这个结构一样拆分成两个文件: index.ts 和 routes.ts ,在 routes.ts 里维护路由树的结构,在 index.ts 导入路由树结构并激活路由,同时可以在该文件里配置路由钩子。

      如果项目更加复杂,例如做一个 Admin 后台,可以按照业务模块,再把 routes 拆分得更细,例如 game.ts / member.ts / order.ts 等业务模块,再统一导入到 index.ts 文件里。

      TIP

      需要注意的是,与 Vue 3 配套的路由版本是 vue-router 4.x 以上才可以正确适配项目。

      在项目里引入路由

      不管是 Vue 2 还是 Vue 3 ,引入路由都是在 src/router/index.ts 文件里,但是版本升级带来的变化很大,由于本书关于 Vue 3 都是使用 TypeScript ,所以这里只做一个 TypeScript 的变化对比。

      TIP

      下文可能会出现多次 import.meta.env.BASE_URL 这个变量,它是由 Vite 提供的环境变量,详见 Vite 官网关于 环境变量 的说明。

      使用其他构建工具请自行替换为对应构建工具提供的环境变量,例如使用 @vue/cli 创建的项目因为是基于 Webpack ,所以使用的是 process.env.BASE_URL

      回顾 Vue 2

      Vue 2 的引入方式如下(其中 RouteConfig 是路由项目的 TS 类型)。

      ts
      import Vue from 'vue'
      +import VueRouter from 'vue-router'
      +import type { RouteConfig } from 'vue-router'
      +
      +Vue.use(VueRouter)
      +
      +const routes: Array<RouteConfig> = [
      +  // ...
      +]
      +
      +const router = new VueRouter({
      +  mode: 'history',
      +  base: import.meta.env.BASE_URL,
      +  routes,
      +})
      +
      +export default router

      里面一些选项的功能说明:

      routes 是路由树的配置,当项目的路由很多的时候可以集中到 routes.ts 管理,然后再 import 进来(具体的配置请看后面的 路由配置部分 说明)。

      mode 决定访问路径模式,可配置为 hash 或者 history , Hash 模式是这种 http://abc.com/#/home 这样带 # 号的地址,支持所有浏览器, History 模式是 http://abc.com/home 这样不带 # 号,不仅美观,而且体验更好,但需要服务端做一些配置支持(详见下文的 服务端配置方案 ),也只对主流浏览器支持。

      base 是 History 模式在进行路由切换时的基础路径,默认是 / 根目录,如果的项目不是部署在根目录下,而是二级目录、三级目录等多级目录,就必须指定这个 base ,否则路由切换会有问题。

      了解 Vue 3 ~new

      Vue 3 的引入方式如下(其中 RouteRecordRaw 是路由项目的 TS 类型)。

      ts
      import { createRouter, createWebHistory } from 'vue-router'
      +import type { RouteRecordRaw } from 'vue-router'
      +
      +const routes: Array<RouteRecordRaw> = [
      +  // ...
      +]
      +
      +const router = createRouter({
      +  history: createWebHistory(import.meta.env.BASE_URL),
      +  routes,
      +})
      +
      +export default router

      在 Vue 3 (也就是 vue-router 4.x) 里,路由简化了一些配置项,其中 routes 和 Vue 2 一样,是路由树的配置。

      但是 history 和 Vue 2 有所不同,在 Vue 3 ,使用 history 来代替 Vue 2 的 mode ,但功能是一样的,也是决定访问路径模式是 Hash 模式 还是 History 模式,同时合并了 Vue 2 (也就是 vue-router 3.x) 的 base 选项作为模式函数的入参。

      和在使用 Vue 2 的时候一样, Vue 3 也可以配置一些额外的路由选项,比如:指定 router-link 为当前激活的路由所匹配的 className :

      ts
      const router = createRouter({
      +  history: createWebHistory(import.meta.env.BASE_URL),
      +  linkActiveClass: 'cur',
      +  linkExactActiveClass: 'cur',
      +  routes,
      +})

      更多的配置项可以参考 Vue Router 官网的 API 参考 一章。

      路由树的配置

      引入路由 部分有说到,当项目的路由很多的时候,文件会变得非常长,难以维护,这个时候可以集中到 routes.ts 或者更多的模块化文件管理,然后再 import 到 index.ts 里。

      暂且把 routes.ts 这个文件称为 “路由树” ,因为它像一棵大树一样,不仅可以以一级路由为树干去生长,还可以添加二级、三级等多级路由来开枝散叶,下面来看看 routes.ts 应该怎么写。

      基础格式 ~new

      在 TypeScript 里,路由文件的基础格式由三个部分组成:类型声明、数组结构、模块导出。

      ts
      // src/router/routes.ts
      +
      +// 使用 TypeScript 时需要导入路由项目的类型声明
      +import type { RouteRecordRaw } from 'vue-router'
      +
      +// 使用路由项目类型声明一个路由数组
      +const routes: Array<RouteRecordRaw> = [
      +  // ...
      +]
      +
      +// 将路由数组导出给其他模块使用
      +export default routes

      之后就可以在 index.ts 里导入使用了。

      那么里面的路由数组又是怎么写呢?这里就涉及到了 一级路由多级路由 的编写。

      公共基础路径

      在配置路由之前,需要先了解 “公共基础路径” 的概念,在讲解使用 Vite 等工具创建项目时,都提到了一个 项目配置 的管理,以 Vite 项目的配置文件 vite.config.ts 为例,里面有一个选项 base ,其实就是用来控制路由的公共基础路径,那么它有什么用呢?

      base 的默认值是 /,也就是说,如果不配置它,那么所有的资源文件都是从域名根目录读取,如果项目部署在域名根目录那当然好,但是如果不是呢?那么就必须来配置它了。

      配置很简单,只要把项目要上线的最终地址,去掉域名,剩下的那部分就是 base 的值。假设项目是部署在 https://example.com/vue3/ ,那么 base 就可以设置为 /vue3/

      TIP

      如果路由只有一级,那么 base 也可以设置为相对路径 ./,这样可以把项目部署到任意地方。

      如果路由不止一级,那么请准确的指定 base,并且确保是以 / 开头并以 / 结尾,例如 /foo/

      一级路由

      一级路由,顾名思义,就是在的项目地址后面,只有一级 Path ,比如 https://example.com/home 这里的 home 就是一级路由。

      来看一下最基本的路由配置应该包含哪些字段:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/',
      +    name: 'home',
      +    component: () => import('@views/home.vue'),
      +  },
      +]

      其中 path 是路由的访问路径,像上面说的,如果的域名是 https://example.com, 配置为 /home,那么访问路径就是 https://example.com/home

      TIP

      一级路由的 path 都必须是以 / 开头,比如: /home/setting

      如果的项目首页不想带上 home 之类的尾巴,只想要 https://example.com/ 这样的域名直达 ,其实也是配置一级路由,只需要把路由的 path 指定为 / 即可。

      name 是路由的名称,非必填,但是一般都会配置上去,这样可以很方便的通过 name 来代替 path 实现路由的跳转,因为像有时候的开发环境和生产环境的路径不一致,或者说路径变更,通过 name 无需调整,但如果通过 path,可能就要修改很多文件里面的链接跳转目标了。

      component 是路由的模板文件,指向一个 vue 组件,用于指定路由在浏览器端的视图渲染,这里有两种方式来指定使用哪个组件:

      同步组件

      字段 component 接收一个变量,变量的值就是对应的模板组件。

      在打包的时候,会把组件的所有代码都打包到一个文件里,对于大项目来说,这种方式的首屏加载是个灾难,要面对文件过大带来等待时间变长的问题。

      ts
      import Home from '@views/home.vue'
      +
      +const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/',
      +    name: 'home',
      +    component: Home,
      +  },
      +]

      所以现在都推荐使用第二种方式,可以实现 路由懒加载

      异步组件

      字段 component 接收一个函数,在 return 的时候返回模板组件,同时组件里的代码在打包的时候都会生成独立的文件,并在访问到对应路由的时候按需引入。

      ts
      const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/',
      +    name: 'home',
      +    component: () => import('@views/home.vue'),
      +  },
      +]

      关于这部分的更多说明,可以查看 路由懒加载

      多级路由

      在 Vue 路由生态里,支持配置二级、三级、四级等多级路由,理论上没有上限,实际业务中用到的级数通常是三级到四级。

      比如做一个美食类网站,打算在 “中餐” 大分类下配置一个 “饺子” 栏目,那么地址就是:

      https://example.com/chinese-food/dumplings

      这种情况下,中餐 chinese-food 就是一级路由,饺子 dumplings 就是二级路由。

      如果想再细化一下,“饺子” 下面再增加一个 “韭菜” 、“白菜” 等不同馅料的子分类:

      https://example.com/chinese-food/dumplings/chives

      这里的韭菜 chives 就是饺子 dumplings 的子路由,也就是三级路由。

      在了解了子路由的概念后,来看一下具体如何配置以及注意事项。

      父子路由的关系,都是严格按照 JSON 的层级关系,子路由的信息配置到父级的 children 数组里面,孙路由也是按照一样的格式,配置到子路由的 children 里。

      这是一个简单的子路由示范:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  // 注意:这里是一级路由
      +  {
      +    path: '/lv1',
      +    name: 'lv1',
      +    component: () => import('@views/lv1.vue'),
      +    // 注意:这里是二级路由,在 `path` 的前面没有 `/`
      +    children: [
      +      {
      +        path: 'lv2',
      +        name: 'lv2',
      +        component: () => import('@views/lv2.vue'),
      +        // 注意:这里是三级路由,在 `path` 的前面没有 `/`
      +        children: [
      +          {
      +            path: 'lv3',
      +            name: 'lv3',
      +            component: () => import('@views/lv3.vue'),
      +          },
      +        ],
      +      },
      +    ],
      +  },
      +]

      上面这个配置,最终三级路由的访问地址如下:

      https://example.com/lv1/lv2/lv3

      可以看到在注释里提示了二级、三级路由的 path 字段前面没有 / ,这样路径前面才会有其父级路由的 path 以体现其层级关系,否则会从根目录开始。

      路由懒加载

      在上面提过,路由在配置 同步组件 的时候,构建出来的文件都集中在一起,大的项目的文件会变得非常大,影响页面加载。

      所以 Vue 在 Webpack 的代码分割功能的基础上,推出了 异步组件,可以把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样按需载入,很方便的实现路由组件的懒加载。

      在这一段配置里面:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/',
      +    name: 'home',
      +    component: () => import('@views/home.vue'),
      +  },
      +]

      起到懒加载配置作用的就是 component 接收的值 () => import('@views/home.vue') ,其中 @views/home.vue 就是路由的组件。

      在命令行运行 npm run build 打包构建后,会看到控制台输出的打包结果:

      bash
       npm run build
      +
      +> hello-vue3@0.0.0 build
      +> vue-tsc --noEmit && vite build
      +
      +vite v2.9.15 building for production...
      + 42 modules transformed.
      +dist/index.html                       0.42 KiB
      +dist/assets/home.03ad1823.js          0.65 KiB / gzip: 0.42 KiB
      +dist/assets/HelloWorld.1322d484.js    1.88 KiB / gzip: 0.96 KiB
      +dist/assets/about.c2af6d65.js         0.64 KiB / gzip: 0.41 KiB
      +dist/assets/login.e9d1d9f9.js         0.65 KiB / gzip: 0.42 KiB
      +dist/assets/index.60726771.css        0.47 KiB / gzip: 0.29 KiB
      +dist/assets/login.bef803dc.css        0.12 KiB / gzip: 0.10 KiB
      +dist/assets/HelloWorld.b2638077.css   0.38 KiB / gzip: 0.19 KiB
      +dist/assets/home.ea56cd55.css         0.12 KiB / gzip: 0.10 KiB
      +dist/assets/about.a0917080.css        0.12 KiB / gzip: 0.10 KiB
      +dist/assets/index.19d6fb3b.js         79.94 KiB / gzip: 31.71 KiB

      可以看到路由文件都按照 views 目录下的路由组件和 components 目录下的组件命名,输出了对应的 JS 文件和 CSS 文件,项目部署后, Vue 只会根据当前路由加载需要的文件,其他文件只做预加载,对于大型项目的访问体验非常友好。

      而如果不使用路由懒加载,打包出来的文件是这样的:

      bash
       npm run build
      +
      +> hello-vue3@0.0.0 build
      +> vue-tsc --noEmit && vite build
      +
      +vite v2.9.15 building for production...
      + 41 modules transformed.
      +dist/index.html                  0.42 KiB
      +dist/assets/index.67b1ee4f.css   1.22 KiB / gzip: 0.49 KiB
      +dist/assets/index.f758ee53.js    78.85 KiB / gzip: 31.05 KiB

      可以看到所有的组件都被打包成了一个很大的 JS 文件和 CSS 文件,没有进行代码分割,对大型项目来说,这种方式打包出来的文件可能会有好几兆,对首屏加载的速度可想而知。

      路由的渲染

      所有路由组件,要在访问后进行渲染,都必须在父级组件里带有 <router-view /> 标签。

      <router-view /> 在哪里,路由组件的代码就渲染在哪个节点上,一级路由的父级组件,就是 src/App.vue 这个根组件。

      其中最基础的配置就是 <template /> 里面直接就是写一个 <router-view /> ,整个页面就是路由组件。

      vue
      <template>
      +  <router-view />
      +</template>

      如果站点带有全局公共组件,比如有全站统一的页头、页脚,只有中间区域才是路由,那么可以这样配置:

      vue
      <template>
      +  <!-- 全局页头 -->
      +  <Header />
      +
      +  <!-- 路由 -->
      +  <router-view />
      +
      +  <!-- 全局页脚 -->
      +  <Footer />
      +</template>

      如果有一部分路由带公共组件,一部分没有,比如大部分页面都需要有侧边栏,但登录页、注册页不需要,就可以这么处理:

      vue
      <template>
      +  <!-- 登录 -->
      +  <Login v-if="route.name === 'login'" />
      +
      +  <!-- 注册 -->
      +  <Register v-else-if="route.name === 'register'" />
      +
      +  <!-- 带有侧边栏的其他路由 -->
      +  <div v-else>
      +    <!-- 固定在左侧的侧边栏 -->
      +    <Sidebar />
      +
      +    <!-- 路由 -->
      +    <router-view />
      +  </div>
      +</template>

      也可以通过 路由元信息 来管理这些规则。

      使用 route 获取路由信息 ~new

      和 Vue 2 可以直接在组件里使用 this.$route 来获取当前路由信息不同,在 Vue 3 的组件里,Vue 实例既没有了 this,也没有了 $route

      要牢记一个事情就是,Vue 3 用啥都要导入,所以获取当前路由信息的正确用法是先导入路由 API :

      ts
      import { useRoute } from 'vue-router'

      再在 setup 里定义一个变量来获取当前路由:

      ts
      const route = useRoute()

      接下来就可以通过定义好的变量 route 去获取当前路由信息了。

      当然,如果要在 <template /> 里使用路由,记得把 routesetup 里 return 出去。

      ts
      // 获取路由名称
      +console.log(route.name)
      +
      +// 获取路由参数
      +console.log(route.params.id)

      Vue 3 的 route 和 Vue 2 的用法基本一致,日常使用应该很快能上手。

      WARNING

      但是 Vue 3 的新路由也有一些小变化,有一些属性是被移除了,比如之前获取父级路由信息,很喜欢用的 parent 属性,现在已经没有了,可以在 Vue Router 官网的 从 Vue2 迁移 一章查看所有破坏性变化。

      类似被移除的 parent ,如果要获取父级路由信息(比如在做面包屑功能的时候),可以改成下面这样,手动指定倒数第二个为父级信息:

      ts
      // 获取路由记录
      +const matched = route.matched
      +
      +// 获取该记录的路由个数
      +const max = matched.length
      +
      +// 获取倒数第二个路由(也就是当前路由的父级路由)
      +const parentRoute = matched[max - 2]

      如果有配置父级路由,那么 parentRoute 就是父级路由信息,否则会返回 undefined

      使用 router 操作路由 ~new

      route 一样,在 Vue 3 也不能再使用 this.$router ,也必须通过导入路由 API 来使用:

      ts
      import { useRouter } from 'vue-router'

      useRoute 一样, useRouter 也是一个函数,需要在 setup 里定义一个变量来获取路由信息。

      ts
      const router = useRouter()

      接下来就可以通过定义好的变量 router 去操作路由了:

      ts
      // 跳转首页
      +router.push({
      +  name: 'home',
      +})
      +
      +// 返回上一页
      +router.back()

      router-link 是一个全局组件,可直接在 <template /> 里直接使用,无需导入,基础的用法在 Vue 2 和 Vue 3 里是一样。

      默认会被转换为一个 a 标签,对比写死的 <a href="..."> ,使用 router-link 会更加灵活。

      基础跳转

      最基础的用法就是把它当成一个 target="_self"a 标签使用,但无需重新刷新页面,因为是路由跳转,它的体验和使用 router 去进行路由导航的效果完全一样。

      vue
      <template>
      +  <router-link to="/home">首页</router-link>
      +</template>

      等价于 routerpush

      ts
      router.push({
      +  name: 'home',
      +})

      可以写个 <div /> 标签绑定 Click 事件达到 router-link 的效果:

      vue
      <template>
      +  <div
      +    class="link"
      +    @click="
      +      router.push({
      +        name: 'home',
      +      })
      +    "
      +  >
      +    <span>首页</span>
      +  </div>
      +</template>

      了解这种使用对比,对下文其他跳转方式的学习会有帮助。

      带参数的跳转

      使用 router 的时候,可以轻松的带上参数去那些有 ID 的内容页、用户资料页、栏目列表页等等。

      比如要访问一篇文章 https://example.com/article/123 ,用 push 的写法是:

      ts
      router.push({
      +  name: 'article',
      +  params: {
      +    id: 123,
      +  },
      +})

      同理,从基础跳转的写法,很容易就能猜到在 router-link 里应该怎么写:

      vue
      <template>
      +  <router-link
      +    class="link"
      +    :to="{
      +      name: 'article',
      +      params: {
      +        id: 123,
      +      },
      +    }"
      +  >
      +    这是文章的标题
      +  </router-link>
      +</template>

      不生成 a 标签 ~new

      router-link 默认是被转换为一个 a 标签,但根据业务场景,也可以把它指定为生成其他标签,比如 spandivli 等等,这些标签因为不具备 href 属性,所以在跳转时都是通过 Click 事件去执行。

      在 Vue 2 ,指定为其他标签只需要一个 tag 属性即可:

      vue
      <template>
      +  <router-link tag="span" to="/home">首页</router-link>
      +</template>

      但在 Vue 3 ,tag 属性已被移除,需要通过 customv-slot 的配合将其渲染为其他标签。

      比如要渲染为一个带有路由导航功能的其他标签:

      vue
      <template>
      +  <router-link to="/home" custom v-slot="{ navigate }">
      +    <span class="link" @click="navigate"> 首页 </span>
      +  </router-link>
      +</template>

      渲染后就是一个普通的 <span /> 标签,当该标签被点击的时候,会通过路由的导航跳转到指定的路由页:

      html
      <!-- 渲染后的标签 -->
      +<span class="link">首页</span>

      关于这两个属性的参数说明如下:

      1. custom ,一个布尔值,用于控制是否需要渲染为 a 标签,当不包含 custom 或者把 custom 设置为 false 时,则依然使用 a 标签渲染。

      2. v-slot 是一个对象,用来决定标签的行为,它包含了:

      字段含义
      href解析后的 URL,将会作为一个 a 元素的 href 属性
      route解析后的规范化的地址
      navigate触发导航的函数,会在必要时自动阻止事件,和 router-link 同理
      isActive如果需要应用激活的 class 则为 true,允许应用一个任意的 class
      isExactActive如果需要应用精确激活的 class 则为 true,允许应用一个任意的 class

      一般来说,v-slot 必备的只有 navigate ,用来绑定元素的点击事件,否则元素点击后不会有任何反应,其他的可以根据实际需求来添加。

      TIP

      要渲染为非 a 标签,切记两个点:

      1. router-link 必须带上 customv-slot 属性

      2. 最终要渲染的标签,写在 router-link 里,包括对应的 className 和点击事件

      在独立 TS/JS 文件里使用路由

      除了可以在 .vue 文件里使用路由之外,也可以在单独的 .ts.js 里使用。

      比如要做一个带有用户系统的站点,登录的相关代码除了在 login.vue 里运用外,在注册页面 register.vue,用户注册成功还要帮用户执行一次自动登录。

      登录完成还要记录用户的登录信息、 Token 、过期时间等等,有不少数据要做处理,以及需要帮助用户自动切去登录前的页面等行为,这是两个不同的组件,如果写两次几乎一样的代码,会大大提高维护成本。

      这种情况下就可以通过抽离核心代码,封装成一个 login.ts 文件,在这个独立的 ts 文件里去操作路由。

      ts
      // 导入路由
      +import router from '@/router'
      +
      +// 执行路由跳转
      +router.push({
      +  name: 'home',
      +})

      路由元信息配置

      有时候的项目需要一些个性化配置,比如:

      1. 每个路由给予独立的标题;

      2. 管理后台的路由,部分页面需要限制一些访问权限;

      3. 通过路由来自动生成侧边栏、面包屑;

      4. 部分路由的生命周期需要做缓存( Keep Alive );

      5. 其他更多业务场景…

      无需维护很多套配置,在定义路由树的时候可以配置 meta 字段,比如下面就是包含了多种元信息的一个登录路由:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/login',
      +    name: 'login',
      +    component: () => import('@views/login.vue'),
      +    meta: {
      +      title: '登录',
      +      isDisableBreadcrumbLink: true,
      +      isShowBreadcrumb: false,
      +      addToSidebar: false,
      +      sidebarIcon: '',
      +      sidebarIconAlt: '',
      +      isNoLogin: true,
      +    },
      +  },
      +]

      这个是笔者曾经在做后台项目时用过的一些配置,主要的功能是:

      字段类型含义
      titlestring用于在渲染的时候配置浏览器标题;
      isDisableBreadcrumbLinkboolean是否禁用面包屑链接(对一些没有内容的路由可以屏蔽访问);
      isShowBreadcrumbboolean是否显示面包屑(此处的登录页不需要面包屑);
      addToSidebarboolean是否加入侧边栏(此处的登录页不需要加入侧边栏);
      sidebarIconstring配置侧边栏的图标 className(默认);
      sidebarIconAltstring配置侧边栏的图标 className(展开状态);
      isNoLoginboolean是否免登录(后台默认强制登录,设置为 true 则可以免登录访问,此处的登录页不需要校验);

      类似的,如果有其他需求,比如要增加对不同用户组的权限控制(比如有管理员、普通用户分组,部分页面只有管理员允许访问),都可以通过配置 Meta 里的字段,再配合 路由拦截 一起使用。

      路由重定向

      对一些已下线的页面,直接访问原来的地址会导致 404 ,为了避免这种情况出现,通常会配置重定向将其指向一个新的页面,或者跳转回首页。

      基本用法

      路由重定向是使用一个 redirect 字段进行配置到对应的路由里面去实现跳转:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/',
      +    name: 'home',
      +    component: () => import('@views/home.vue'),
      +    meta: {
      +      title: 'Home',
      +    },
      +  },
      +  // 访问这个路由会被重定向到首页
      +  {
      +    path: '/error',
      +    redirect: '/',
      +  },
      +]

      通常来说,配置了 redirect 的路由,只需要指定 2 个字段即可,1 个是 path 该路由本身的路径,1 个是 redirect 目标路由的路径,其他字段可以忽略。

      redirect 字段可以接收三种类型的值:

      类型填写的值
      string另外一个路由的 path
      route另外一个路由(类似 router.push
      function可以判断不同情况的重定向目标,最终 return 一个 path 或者 route

      业务场景

      路由重定向可以避免用户访问到一些无效路由页面:

      1. 比如项目上线了一段时间后,有个路由需要改名,或者调整路径层级,可以把旧路由重定向到新的,避免原来的用户从收藏夹等地方进来后找不到

      2. 一些容易打错的地址,比如通常个人资料页都是用 /profile,但是业务网站是使用 /account,那也可以把 /profile 重定向到 /account

      3. 对于一些有会员体系的站点,可以根据用户权限进行重定向,分别指向他们具备访问权限的页面

      4. 官网首页在 PC 端、移动端、游戏内嵌横屏版分别有 3 套页面,但希望能通过主域名来识别不同设备,帮助用户自动切换访问

      了解了业务场景,接下来就能比较清晰的了解应该如何配置重定向了。

      配置为 path

      最常用的场景,恐怕就是首页的指向了,比如首页地址是 https://example.com/home,但是想让主域名 https://example.com/ 也能跳转到 /home,可以这么配置:

      这是最简单的配置方式,把目标路由的 path 配置进来就可以了:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  // 重定向到 `/home`
      +  {
      +    path: '/',
      +    redirect: '/home',
      +  },
      +  // 真正的首页
      +  {
      +    path: '/home',
      +    name: 'home',
      +    component: () => import('@views/home.vue'),
      +  },
      +]

      但缺点也显而易见,只能针对那些不带参数的路由。

      配置为 route

      如果想要重定向后的路由地址带上一些参数,可以配置为 route

      ts
      const routes: Array<RouteRecordRaw> = [
      +  // 重定向到 `/home` ,并带上一个 `query` 参数
      +  {
      +    path: '/',
      +    redirect: {
      +      name: 'home',
      +      query: {
      +        from: 'redirect',
      +      },
      +    },
      +  },
      +  // 真正的首页
      +  {
      +    path: '/home',
      +    name: 'home',
      +    component: () => import('@views/home.vue'),
      +  },
      +]

      最终访问的地址就是 https://example.com/home?from=redirect, 像这样带有来路参数的,就可以在 “百度统计” 或者 “ CNZZ 统计” 之类的统计站点查看来路的流量。

      配置为 function

      结合业务场景来解释是最直观的,比如的网站有 3 个用户组,一个是管理员,一个是普通用户,还有一个是游客(未登录),他们的网站首页是不一样的:

      用户组访问首页时
      管理员具备各种数据可视化图表、最新的网站数据、一些最新的用户消息等等
      普通用户只有一些常用模块的入口链接
      未登录用户直接跳转到登录页面

      产品需要在访问网站主域名的时候,识别用户身份跳转不同的首页,那么就可以这样配置路由重定向:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  // 访问主域名时,根据用户的登录信息,重定向到不同的页面
      +  {
      +    path: '/',
      +    redirect: () => {
      +      // `loginInfo` 是当前用户的登录信息
      +      // 可以从 `localStorage` 或者 `Pinia` 读取
      +      const { groupId } = loginInfo
      +
      +      // 根据组别 ID 进行跳转
      +      switch (groupId) {
      +        // 管理员跳去仪表盘
      +        case 1:
      +          return '/dashboard'
      +
      +        // 普通用户跳去首页
      +        case 2:
      +          return '/home'
      +
      +        // 其他都认为未登录,跳去登录页
      +        default:
      +          return '/login'
      +      }
      +    },
      +  },
      +]

      路由别名配置

      根据的业务需求,也可以为路由指定一个别名,与上面的 路由重定向 功能相似,但又有不同:

      配置了路由重定向,当用户访问 /a 时,URL 将会被替换成 /b,然后匹配的实际路由是 /b

      配置了路由别名,/a 的别名是 /b,当用户访问 /b 时,URL 会保持为 /b,但是路由匹配则为 /a,就像用户访问 /a 一样。

      配置方法

      添加一个 alias 字段即可轻松实现:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/home',
      +    alias: '/index',
      +    name: 'home',
      +    component: () => import('@views/home.vue'),
      +  },
      +]

      如上的配置,即可实现可以通过 /home 访问首页,也可以通过 /index 访问首页。

      404 路由页面配置 ~new

      可以配置一个 404 路由来代替站内的 404 页面。

      配置方法

      ts
      const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/:pathMatch(.*)*',
      +    name: '404',
      +    component: () => import('@views/404.vue'),
      +  },
      +]

      这样配置之后,只要访问到不存在的路由,就会显示为这个 404 模板。

      WARNING

      新版的路由不再支持直接配置通配符 * ,而是必须使用带有自定义正则表达式的参数进行定义,详见官网 删除了 *(星标或通配符)路由 的说明。

      导航守卫

      和 Vue 2 时使用的路由一样, Vue 3 也支持导航守卫,并且用法基本上是一样的。

      导航守卫这个词对初次接触的开发者来说应该会有点云里雾里,其实就是几个专属的钩子函数,先来看一下使用场景,大致理解一下基本概念和作用。

      钩子的应用场景

      对于导航守卫还不熟悉的开发者,可以从一些实际使用场景来加强印象,比如:

      1. 前面说的,在渲染的时候配置浏览器标题,由于 Vue 项目只有一个 HTML 文件,所以默认只有一个标题,但想在访问 /home 的时候标题显示为 “首页”,访问 /about 的时候标题显示为 “关于” 。

      2. 部分页面需要管理员才能访问,普通用户不允许进入到该路由页面。

      3. Vue 单页面项目,传统的 CNZZ / 百度统计等网站统计代码只会在页面加载的时候统计一次,但需要每次切换路由都上报一次 PV 数据。

      这样的场景还有很多,导航守卫支持全局使用,也可以在 .vue 文件里单独使用,接下来看看具体的用法。

      路由里的全局钩子

      顾名思义,是在创建 router 的时候进行全局的配置,也就是说,只要配置了钩子,那么所有的路由在被访问到的时候,都会触发这些钩子函数。

      可用钩子含义触发时机
      beforeEach全局前置守卫在路由跳转前触发
      beforeResolve全局解析守卫在导航被确认前,同时在组件内守卫和异步路由组件被解析后
      afterEach全局后置守卫在路由跳转完成后触发

      全局配置非常简单,在 src/router/index.ts 里,在创建路由之后、在导出去之前使用:

      ts
      import { createRouter } from 'vue-router'
      +
      +// 创建路由
      +const router = createRouter({ ... })
      +
      +// 在这里调用导航守卫的钩子函数
      +router.beforeEach((to, from) => {
      +  // ...
      +})
      +
      +// 导出去
      +export default router

      beforeEach ~new

      全局前置守卫,这是导航守卫里面运用的最多的一个钩子函数,通常将其称为 “路由拦截”。

      拦截这个词,顾名思义,就是在 XXX 目的达到之前,把它拦下来,所以路由的目的就是渲染指定的组件,路由拦截就是在组件被渲染之前,做一些拦截操作。

      参数

      参数作用
      to即将要进入的路由对象
      from当前导航正要离开的路由

      TIP

      和 Vue 2 不同,Vue 2 的 beforeEach 是默认三个参数,第三个参数是 next,用来操作路由接下来的跳转。

      但在新版本路由里,已经通过 RFC 将其删除,虽然目前还是作为可选参数使用,但以后不确定是否会移除,不建议继续使用,点击查看原因

      新版本路由可以通过 return 来代替 next

      用法

      比如在进入路由之前,根据 Meta 路由元信息 的配置,设定路由的网页标题:

      ts
      router.beforeEach((to, from) => {
      +  const { title } = to.meta
      +  document.title = title || '默认标题'
      +})

      或者判断是否需要登录:

      ts
      router.beforeEach((to, from) => {
      +  const { isNoLogin } = to.meta
      +  if (!isNoLogin) return '/login'
      +})

      或者针对一些需要 ID 参数,但参数丢失的路由做拦截,比如:很多网站的文章详情页都是类似 https://example.com/article/123 这样格式的地址,是需要带有文章 ID 作为 URL 的一部分,如果只访问 https://example.com/article 则需要拦截掉。

      这里是关于 article 路由的配置,是有要求 Params 要带上 ID 参数:

      ts
      const routes: Array<RouteRecordRaw> = [
      +  // 这是一个配置了 `params` ,访问的时候必须带 `id` 的路由
      +  {
      +    path: '/article/:id',
      +    name: 'article',
      +    component: () => import('@views/article.vue'),
      +  },
      +  // ...
      +]

      当路由的 params 丢失的时候,路由记录 matched 是一个空数组,针对这样的情况,就可以配置一个拦截,丢失参数时返回首页:

      ts
      router.beforeEach((to) => {
      +  if (to.name === 'article' && to.matched.length === 0) {
      +    return '/'
      +  }
      +})

      beforeResolve

      全局解析守卫,它会在每次导航时触发,但是在所有组件内守卫和异步路由组件被解析之后,将在确认导航之前被调用。

      这个钩子用的比较少,因为它和 beforeEach 非常相似,相信大部分开发者都是会用 beforeEach 来代替它。

      那么它有什么用?

      它通常会用在一些申请权限的环节,比如一些 H5 页面需要申请系统相机权限、一些微信活动需要申请微信的登录信息授权,获得权限之后才允许获取接口数据和给用户更多的操作,使用 beforeEach 时机太早,使用 afterEach 又有点晚,那么这个钩子的时机就刚刚好。

      参数

      参数作用
      to即将要进入的路由对象
      from当前导航正要离开的路由

      用法

      以以前 Vue Router 官网的申请照相机权限的例子来举例:

      ts
      // https://router.vuejs.org/zh/guide/advanced/navigation-guards.html
      +
      +router.beforeResolve(async (to) => {
      +  // 如果路由配置了必须调用相机权限
      +  if (to.meta.requiresCamera) {
      +    // 正常流程,咨询是否允许使用照相机
      +    try {
      +      await askForCameraPermission()
      +    } catch (error) {
      +      // 容错
      +      if (error instanceof NotAllowedError) {
      +        // ... 处理错误,然后取消导航
      +        return false
      +      } else {
      +        // 如果出现意外,则取消导航并抛出错误
      +        throw error
      +      }
      +    }
      +  }
      +})

      afterEach

      全局后置守卫,这也是导航守卫里面用的比较多的一个钩子函数。

      参数

      参数作用
      to即将要进入的路由对象
      from当前导航正要离开的路由

      用法

      在刚刚的 钩子的应用场景 里面有个例子,就是每次切换路由都上报一次 PV 数据,类似这种每个路由都要执行一次,但又不必在渲染前操作的,都可以放到后置钩子里去执行。

      笔者之前写过两个数据统计的插件:Vue 版 CNZZ 统计Vue 版百度统计,就是用的这个后置钩子来实现自动上报数据。

      ts
      router.afterEach((to, from) => {
      +  // 上报流量的操作
      +  // ...
      +})

      在组件内使用全局钩子

      上面所讲的都是全局钩子,虽然一般都是在路由文件里使用,但如果有需要,也可以在 .vue 文件里操作。

      TIP

      和路由的渲染不同,渲染是父级路由组件必须带有 <router-view /> 标签才能渲染,但是使用全局钩子不受此限制。

      建议只在一些入口文件里使用,比如 App.vue ,或者是一些全局的 Header.vueFooter.vue 里使用,方便后续维护。

      setup 里,定义一个 router 变量获取路由之后,就可以操作了:

      ts
      import { defineComponent } from 'vue'
      +import { useRouter } from 'vue-router'
      +
      +export default defineComponent({
      +  setup() {
      +    // 定义路由
      +    const router = useRouter()
      +
      +    // 调用全局钩子
      +    router.beforeEach((to, from) => {
      +      // ...
      +    })
      +  },
      +})

      路由里的独享钩子

      介绍完全局钩子,如果只是有个别路由要做处理,可以使用路由独享的守卫,用来针对个别路由定制一些特殊功能,可以减少在全局钩子里面写一堆判断。

      可用钩子含义触发时机
      beforeEnter路由独享前置守卫在路由跳转前触发

      注:路由独享的钩子,必须配置在 routes 的 JSON 树里面,挂在对应的路由下面(与 pathnamemeta 这些字段同级)。

      beforeEnter ~new

      它和全局钩子 beforeEach 的作用相同,都是在进入路由之前触发,触发时机比 beforeResolve 要早。

      顺序:beforeEach(全局) > beforeEnter(独享) > beforeResolve(全局)。

      参数

      参数作用
      to即将要进入的路由对象
      from当前导航正要离开的路由

      TIP

      beforeEach 一样,也是取消了 next,可以通过 return 来代替。

      用法

      比如:整个站点的默认标题都是以 “栏目标题” + “全站关键标题” 的格式作为网页的 Title ,例如 “项目经验 - 程沛权” ,但在首页的时候,想做一些不一样的定制。

      ts
      const routes: Array<RouteRecordRaw> = [
      +  {
      +    path: '/home',
      +    name: 'home',
      +    component: () => import('@views/home.vue'),
      +    // 在这里添加单独的路由守卫
      +    beforeEnter: (to, from) => {
      +      document.title = '程沛权 - 养了三只猫'
      +    },
      +  },
      +]

      就可以通过 beforeEnter 来实现一些个别路由的单独定制。

      TIP

      需要注意的是,只有从不同的路由切换进来,才会触发该钩子。

      针对同一个路由,但是不同的 paramsquery 或者 hash ,都不会重复触发该钩子。

      比如从 https://example.com/article/123 切换到 https://example.com/article/234 是不会触发的。

      其他的用法和 beforeEach 可以说是一样的。

      组件内单独使用 ~new

      组件里除了可以使用全局钩子外,还可以使用组件专属的路由钩子。

      可用钩子含义触发时机
      onBeforeRouteUpdate组件内的更新守卫在当前路由改变,但是该组件被复用时调用
      onBeforeRouteLeave组件内的离开守卫导航离开该组件的对应路由时调用

      TIP

      1、组件内钩子的入参,也都是取消了 next,可以通过 return 来代替。

      2、和其他 Composition API 一样,需要先 import 再操作。

      和旧版路由不同,新版的 Composition API 移除了 beforeRouteEnter 这个钩子了。

      onBeforeRouteUpdate

      可以在当前路由改变,但是该组件被复用时,重新调用里面的一些函数用来更新模板数据的渲染。

      参数

      参数作用
      to即将要进入的路由对象
      from当前导航正要离开的路由

      用法

      比如一个内容网站,通常在文章详情页底部会有相关阅读推荐,这个时候就会有一个操作场景是,从文章 A 跳转到文章 B。

      比如从 https://example.com/article/111 切去 https://example.com/article/222 ,这种情况就属于 “路由改变,但是组件被复用” 的情况了。

      这种情况下,原本放在 onMounted 里执行数据请求的函数就不会被调用,可以借助该钩子来实现渲染新的文章内容。

      ts
      import { defineComponent, onMounted } from 'vue'
      +import { useRoute, onBeforeRouteUpdate } from 'vue-router'
      +
      +export default defineComponent({
      +  setup() {
      +    // 其他代码略...
      +
      +    // 查询文章详情
      +    async function queryArticleDetail(id: number) {
      +      // 请求接口数据
      +      const res = await axios({
      +        url: `/article/${id}`,
      +      })
      +      // ...
      +    }
      +
      +    // 组件挂载完成后执行文章内容的请求
      +    // 注意这里是获取 `route` 的 `params`
      +    onMounted(async () => {
      +      const id = Number(route.params.id) || 0
      +      await queryArticleDetail(id)
      +    })
      +
      +    // 组件被复用时重新请求新的文章内容
      +    onBeforeRouteUpdate(async (to, from) => {
      +      // ID 不变时减少重复请求
      +      if (to.params.id === from.params.id) return
      +
      +      // 注意这里是获取 `to` 的 `params`
      +      const id = Number(to.params.id) || 0
      +      await queryArticleDetail(id)
      +    })
      +  },
      +})

      onBeforeRouteLeave

      可以在离开当前路由之前,实现一些离开前的判断拦截。

      参数

      参数作用
      to即将要进入的路由对象
      from当前导航正要离开的路由

      用法

      这个离开守卫通常用来禁止用户在还未保存修改前突然离开,可以通过 return false 来取消用户离开当前路由。

      ts
      import { defineComponent } from 'vue'
      +import { onBeforeRouteLeave } from 'vue-router'
      +
      +export default defineComponent({
      +  setup() {
      +    // 调用离开守卫
      +    onBeforeRouteLeave((to, from) => {
      +      // 弹出一个确认框
      +      const confirmText = '确认要离开吗?您的更改尚未保存!'
      +      const isConfirmLeave = window.confirm(confirmText)
      +
      +      // 当用户点取消时,不离开路由
      +      if (!isConfirmLeave) {
      +        return false
      +      }
      +    })
      +  },
      +})

      路由侦听 ~new

      路由的侦听,可以延续以往的 watch 大法,也可以用全新的 watchEffect

      watch

      在 Vue 2 的时候,侦听路由变化用的最多的就是 watch 了, Vue 3 的 watch API 使用更简单。

      侦听整个路由

      可以跟以前一样,直接侦听整个路由的变化:

      ts
      import { defineComponent, watch } from 'vue'
      +import { useRoute } from 'vue-router'
      +
      +export default defineComponent({
      +  setup() {
      +    const route = useRoute()
      +
      +    // 侦听整个路由
      +    watch(route, (to, from) => {
      +      // 处理一些事情
      +      // ...
      +    })
      +  },
      +})

      第一个参数传入整个路由;第二个参数是个 Callback ,可以获取 tofrom 来判断路由变化情况。

      侦听路由的某个数据

      如果只想侦听路由的某个数据变化,比如侦听一个 Query ,或者一个 Param ,可以采用这种方式:

      ts
      import { defineComponent, watch } from 'vue'
      +import { useRoute } from 'vue-router'
      +
      +export default defineComponent({
      +  setup() {
      +    const route = useRoute()
      +
      +    // 侦听路由参数的变化
      +    watch(
      +      () => route.query.id,
      +      () => {
      +        console.log('侦听到 ID 变化')
      +      }
      +    )
      +  },
      +})

      第一个参数传入一个 getter 函数, return 要侦听的值;第二个参数是个 Callback ,可以针对参数变化进行一些操作。

      watchEffect

      这是 Vue 3 新出的一个侦听函数,可以简化 watch 的行为。

      比如定义了一个函数,通过路由的参数来获取文章 ID ,然后请求文章内容:

      ts
      import { defineComponent, watchEffect } from 'vue'
      +import { useRoute } from 'vue-router'
      +
      +export default defineComponent({
      +  setup() {
      +    const route = useRoute()
      +
      +    // 从接口查询文章详情
      +    async function queryArticleDetail() {
      +      const id = Number(route.params.id) || 0
      +      console.log('文章 ID 是:', id)
      +
      +      const res = await axios({
      +        url: `/article/${id}`,
      +      })
      +      // ...
      +    }
      +
      +    // 直接侦听包含路由参数的那个函数
      +    watchEffect(queryArticleDetail)
      +  },
      +})

      对比 watch 的使用, watchEffect 在操作上更加简单,把包含要被侦听数据的函数,当成它的入参传进去即可。

      部署问题与服务端配置

      通常使用路由的 Hash 模式,部署后有问题的情况很少,但是如果使用 History 模式,可能会遇到这样那样的问题。

      常见部署问题

      这里整理一些常见部署问题的原因分析和解决方案,可作参考。

      页面刷新就 404

      页面部署到服务端之后,访问首页正常;通过导航上面的链接进行路由跳转,也正常;但是刷新页面就变成 404 了。

      问题原因

      一般这种情况是路由开启了 History 模式,但是服务端没有配置功能支持。

      解决方案

      请根据 服务端配置 部分的说明,与的运维同事沟通,让他帮忙修改服务端的配置。

      部分路由白屏

      如果在项目配置文件里,把里面的 publicPath (使用 Vue CLI ) 或者 base (使用 Vite ) 配置成相对路径 ./ ,但是路由配置了二级或以上,那么就会出现这个问题。

      问题原因

      原因是打包后的 JS 、 CSS 等静态资源都是存放在项目根目录下,一级路由的 ./ 就是根目录,所以访问正常;而二级路由的 ./ 则不是根目录了,是从当前目录载入的 ,这就导致无法正确载入 JS 文件,从而导致了白屏。

      假设项目域名是 https://example.com ,那么:

      • 一级路由是 https://example.com/home
      • 二级路由是 https://example.com/foo/bar
      • 假设打包后的 JS 文件等静态资产存放于 https://example.com/assets/ 文件夹下

      访问一级路由时, ./ 访问到的 JS 文件是 https://example.com/assets/home.js ,所以一级路由可以正常访问到。

      访问二级路由时, ./ 访问到的 JS 文件是 https://example.com/foo/assets/bar.js ,但实际上文件是存放在 https://example.com/assets/bar.js ,访问到的 URL 资源不存在,所以白屏了。

      解决方案

      如果的项目开启了 History 模式,并且配置有二级或者二级以上的路由时,不要使用 ./ 这样的相对路径。

      正确的方式应该是修改 publicPath (使用 Vue CLI ) 或者 base (使用 Vite ),如果是部署在域名根目录则写 / ,如果是子目录,则按照子目录的格式,将其以 / 开头,以 / 结尾的形式配置( e.g. /hello-world/

      服务端配置方案

      如果使用的是 HTML5 的 History 模式,那么服务端也需要配置对应的支持,否则会出现路由跳转正常,但页面一刷新就 404 的情况。

      TIP

      服务端配置后,就不再进入 404 了,需要在项目里手动配置 404 路由页面 的路由。

      Nginx

      现在大部分公司的服务程序都在使用 Nginx ,可以将以下代码发给运维工程师参考,调整 Nginx 的配置:

      nginx
      location / {
      +  try_files $uri $uri/ /index.html;
      +}

      Express

      如果是前端工程师使用 Node.js 作服务端,并且使用了 Express 服务端框架,那么操作将变得更简单:

      1. 仅需要安装一个中间件
      bash
      npm install connect-history-api-fallback
      1. 在服务启动入口文件里导入该中间件并激活
      js
      const express = require('express')
      +const history = require('connect-history-api-fallback')
      +
      +// 创建 Express 实例
      +const app = express()
      +app
      +  // 启用 History 中间件
      +  .use(history())
      +  // 这里是读取打包后的页面文件目录
      +  .use('/', express.static(resolve('../dist')))

      更多用法可以看: connect-history-api-fallback 的文档。

      更多方案

      其他的诸如 Apache 、 IIS 、或者原生 Node 等等配置方案, Vue 官方都提供了对应的演示代码,点击查看更多配置方案: 服务器配置示例

      Released under the MIT License.

      + + + + \ No newline at end of file diff --git a/typescript.html b/typescript.html new file mode 100644 index 00000000..1a51ac7b --- /dev/null +++ b/typescript.html @@ -0,0 +1,693 @@ + + + + + + 快速上手 TypeScript | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
      Skip to content
      目录

      快速上手 TypeScript

      如果已经看完 工程化的起步准备 一章,相信此时的已经对 Node 工程项目有了足够的认识了,在此之前的所有代码都是使用 JavaScript 编写的,接下来这一节,将开始介绍 TypeScript ,这是一门新的语言,但是上手非常简单。

      TypeScript 简称 TS ,既是一门新语言,也是 JS 的一个超集,它是在 JavaScript 的基础上增加了一套类型系统,它支持所有的 JS 语句,为工程化开发而生,最终在编译的时候去掉类型和特有的语法,生成 JS 代码。

      虽然带有类型系统的前端语言不止 TypeScript (例如 Facebook 推出的 Flow.js ),但从目前整个 开源社区的流行趋势 看, TypeScript 无疑是更好的选择。

      而且只要本身已经学会了 JS ,并且经历过很多协作类的项目,那么使用 TS 编程是一个很自然而然的过程。

      为什么需要类型系统

      要想知道自己为什么要用 TypeScript ,得先从 JavaScript 有什么不足说起,举一个非常小的例子:

      js
      function getFirstWord(msg) {
      +  console.log(msg.split(' ')[0])
      +}
      +
      +getFirstWord('Hello World') // 输出 Hello
      +
      +getFirstWord(123) // TypeError: msg.split is not a function

      这里定义了一个用空格切割字符串的方法,并打印出第一个单词:

      1. 第一次执行时,字符串支持 split 方法,所以成功获取到了第一个单词 Hello
      2. 第二次执行时,由于数值不存在 split 方法,所以传入 123 引起了程序崩溃

      这就是 JavaScript 的弊端,过于灵活,没有类型的约束,很容易因为类型的变化导致一些本可避免的 BUG 出现,而且这些 BUG 通常需要在程序运行的时候才会被发现,很容易引发生产事故。

      虽然可以在执行 split 方法之前执行一层判断或者转换,但很明显增加了很多工作量。

      TypeScript 的出现,在编译的时候就可以执行检查来避免掉这些问题,而且配合 VSCode 等编辑器的智能提示,可以很方便的知道每个变量对应的类型。

      Hello TypeScript

      将继续使用 Hello Node 这个 demo ,或者可以再建一个新 demo ,依然是在 src 文件夹下,创建一个 ts 文件夹归类本次的测试文件,然后创建一个 index.ts 文件在 ts 文件夹下。

      TIP

      TypeScript 语言对应的文件扩展名是 .ts

      然后在命令行通过 cd 命令进入项目所在的目录路径,安装 TypeScript 开发的两个主要依赖包:

      1. typescript 这个包是用 TypeScript 编程的语言依赖包

      2. ts-node 是让 Node 可以运行 TypeScript 的执行环境

      bash
      npm install -D typescript ts-node

      这次添加了一个 -D 参数,因为 TypeScript 和 TS-Node 是开发过程中使用的依赖,所以将其添加到 package.json 的 devDependencies 字段里。

      然后修改 scripts 字段,增加一个 dev:ts 的 script :

      json
      {
      +  "name": "hello-node",
      +  "version": "1.0.0",
      +  "description": "",
      +  "main": "index.js",
      +  "scripts": {
      +    "dev:cjs": "node src/cjs/index.cjs",
      +    "dev:esm": "node src/esm/index.mjs",
      +    "dev:ts": "ts-node src/ts/index.ts",
      +    "compile": "babel src/babel --out-dir compiled",
      +    "serve": "node server/index.js"
      +  },
      +  "keywords": [],
      +  "author": "",
      +  "license": "ISC",
      +  "dependencies": {
      +    "md5": "^2.3.0"
      +  },
      +  "devDependencies": {
      +    "ts-node": "^10.7.0",
      +    "typescript": "^4.6.3"
      +  }
      +}

      准备工作完毕!

      TIP

      请注意, dev:ts 这个 script 是用了 ts-node 来代替原来在用的 node ,因为使用 node 无法识别 TypeScript 语言。

      为什么需要类型系统 里面提到的例子放到 src/ts/index.ts 里:

      ts
      // src/ts/index.ts
      +function getFirstWord(msg) {
      +  console.log(msg.split(' ')[0])
      +}
      +
      +getFirstWord('Hello World')
      +
      +getFirstWord(123)

      然后在命令行运行 npm run dev:ts 来看看这次的结果:

      bash
      TSError:  Unable to compile TypeScript:
      +src/ts/index.ts:1:23 - error TS7006: Parameter 'msg' implicitly has an 'any' type.
      +
      +1 function getFirstWord(msg) {
      +                        ~~~

      这是告知 getFirstWord 的入参 msg 带有隐式 any 类型,这个时候可能还不了解 any 代表什么意思,没关系,来看下如何修正这段代码:

      ts
      // src/ts/index.ts
      +function getFirstWord(msg: string) {
      +  console.log(msg.split(' ')[0])
      +}
      +
      +getFirstWord('Hello World')
      +
      +getFirstWord(123)

      留意到没有,现在函数的入参 msg 已经变成了 msg: string ,这是 TypeScript 指定参数为字符串类型的一个写法。

      现在再运行 npm run dev:ts ,上一个错误提示已经不再出现,取而代之的是一个新的报错:

      bash
      TSError:  Unable to compile TypeScript:
      +src/ts/index.ts:7:14 - error TS2345:
      +Argument of type 'number' is not assignable to parameter of type 'string'.
      +
      +7 getFirstWord(123)
      +               ~~~

      这次的报错代码是在 getFirstWord(123) 这里,告诉 number 类型的数据不能分配给 string 类型的参数,也就是故意传入一个会报错的数值进去,被 TypeScript 检查出来了!

      可以再仔细留意一下控制台的信息,会发现没有报错的 getFirstWord('Hello World') 也没有打印出结果,这是因为 TypeScript 需要先被编译成 JavaScript ,然后再执行。

      这个机制让有问题的代码能够被及早发现,一旦代码出现问题,编译阶段就会失败。

      移除会报错的那行代码,只保留如下:

      ts
      // src/ts/index.ts
      +function getFirstWord(msg: string) {
      +  console.log(msg.split(' ')[0])
      +}
      +
      +getFirstWord('Hello World')

      再次运行 npm run dev:ts ,这次完美运行!

      ts
      npm run dev:ts
      +
      +> demo@1.0.0 dev:ts
      +> ts-node src/ts/index.ts
      +
      +Hello

      在这个例子里,相信已经感受到 TypeScript 的魅力了!接下来来认识一下不同的 JavaScript 类型,在 TypeScript 里面应该如何定义。

      常用的 TS 类型定义

      Hello TypeScript 的体验中,相信能够感受到 TypeScript 编程带来的好处了,代码的健壮性得到了大大的提升!

      并且应该也能够深刻理解,TypeScript 的类型系统并不会给编程带来极高的门槛或者说开发障碍,这是以非常小的成本换取巨大收益的举措。

      TIP

      如果还没有体验这个 demo ,建议先按教程跑一下,然后来讲解不同的 JavaScript 类型应该如何在 TypeScript 里定义,接下来的时间里,可以一边看,一边在 demo 里实践。

      原始数据类型

      原始数据类型 是一种既非对象也无方法的数据,刚才演示代码里,函数的入参使用的字符串 String 就是原始数据类型之一。

      除了 String ,另外还有数值 Number 、布尔值 Boolean 等等,它们在 TypeScript 都有统一的表达方式,列个表格对比,能够更直观的了解:

      原始数据类型JavaScriptTypeScript
      字符串Stringstring
      数值Numbernumber
      布尔值Booleanboolean
      大整数BigIntbigint
      符号Symbolsymbol
      不存在Nullnull
      未定义Undefinedundefined

      有没有发现窍门?对! TypeScript 对原始数据的类型定义真的是超级简单,就是转为全小写即可!

      举几个例子:

      ts
      // 字符串
      +const str: string = 'Hello World'
      +
      +// 数值
      +const num: number = 1
      +
      +// 布尔值
      +const bool: boolean = true

      不过在实际的编程过程中,原始数据类型的类型定义是可以省略的,因为 TypeScript 会根据声明变量时赋值的类型,自动推导变量类型,也就是可以跟平时写 JavaScript 一样:

      ts
      // 这样也不会报错,因为 TS 会推导它们的类型
      +const str = 'Hello World'
      +const num = 1
      +const bool = true

      数组

      除了原始数据类型之外, JavaScript 还有引用类型,数组 Array 就是其中的一种。

      之所以先讲数组,是因为它在 TS 类型定义的写法上面,可能是最接近原始数据的一个类型了,为什么这么说?还是列个表格,来看一下如何定义数组:

      数组里的数据类型写法 1类型写法 2
      字符串string[]Array<string>
      数值number[]Array<number>
      布尔值boolean[]Array<boolean>
      大整数bigint[]Array<bigint>
      符号symbol[]Array<symbol>
      不存在null[]Array<null>
      未定义undefined[]Array<undefined>

      是吧!就只是在原始数据类型的基础上变化了一下书写格式,就成为了数组的定义!

      笔者最常用的就是 string[] 这样的格式,只需要追加一个方括号 [] ,另外一种写法是基于 TS 的泛型 Array<T> ,两种方式定义出来的类型其实是一样的。

      举几个例子:

      ts
      // 字符串数组
      +const strs: string[] = ['Hello World', 'Hi World']
      +
      +// 数值数组
      +const nums: number[] = [1, 2, 3]
      +
      +// 布尔值数组
      +const bools: boolean[] = [true, true, false]

      在实际的编程过程中,如果数组一开始就有初始数据(数组长度不为 0 ),那么 TypeScript 也会根据数组里面的项目类型,正确自动帮推导这个数组的类型,这种情况下也可以省略类型定义:

      ts
      // 这种有初始项目的数组, TS 也会推导它们的类型
      +const strs = ['Hello World', 'Hi World']
      +const nums = [1, 2, 3]
      +const bools = [true, true, false]

      但是!如果一开始是 [] ,那么就必须显式的指定数组类型(取决于当前项目的 tsconfig.json 配置,可能会引起报错):

      ts
      // 这个时候会认为是 any[] 或者 never[] 类型
      +const nums = []
      +
      +// 这个时候再 push 一个 number 数据进去,也不会使其成为 number[]
      +nums.push(1)

      而对于复杂的数组,比如数组里面的 item 都是对象,其实格式也是一样,只不过把原始数据类型换成 对象的类型 即可,例如 UserItem[] 表示这是一个关于用户的数组列表。

      对象(接口)

      看完了数组,接下来看看对象的用法,对象也是引用类型,在 数组 的最后提到了一个 UserItem[] 的写法,这里的 UserItem 就是一个对象的类型定义。

      如果熟悉 JavaScript ,那么就知道对象的 “键值对” 里面的值,可能是由原始数据、数组、对象组成的,所以在 TypeScript ,类型定义也是需要根据值的类型来确定它的类型,因此定义对象的类型应该是第一个比较有门槛的地方。

      如何定义对象的类型

      对象的类型定义有两个语法支持: typeinterface

      先看看 type 的写法:

      ts
      type UserItem = {
      +  // ...
      +}

      再看看 interface 的写法:

      ts
      interface UserItem {
      +  // ...
      +}

      可以看到它们表面上的区别是一个有 = 号,一个没有,事实上在一般的情况下也确实如此,两者非常接近,但是在特殊的时候也有一定的区别。

      了解接口的使用

      为了降低学习门槛,统一使用 interface 来做入门教学,它的写法与 Object 更为接近,事实上它也被用的更多。

      对象的类型 interface 也叫做接口,用来描述对象的结构。

      TIP

      对象的类型定义通常采用 Upper Camel Case 大驼峰命名法,也就是每个单词的首字母大写,例如 UserItemGameDetail ,这是为了跟普通变量进行区分(变量通常使用 Lower Camel Case 小驼峰写法,也就是第一个单词的首字母小写,其他首字母大写,例如 userItem )。

      这里通过一些举例来带举一反三,随时可以在 demo 里进行代码实践。

      以这个用户信息为例子,比如要描述 Petter 这个用户,他的最基础信息就是姓名和年龄,那么定义为接口就是这么写:

      ts
      // 定义用户对象的类型
      +interface UserItem {
      +  name: string
      +  age: number
      +}
      +
      +// 在声明变量的时候将其关联到类型上
      +const petter: UserItem = {
      +  name: 'Petter',
      +  age: 20,
      +}

      如果需要添加数组、对象等类型到属性里,按照这样继续追加即可。

      可选的接口属性

      注意,上面这样定义的接口类型,表示 nameage 都是必选的属性,不可以缺少,一旦缺少,代码运行起来就会报错!

      src/ts/index.ts 里敲入以下代码,也就是在声明变量的时候故意缺少了 age 属性,来看看会发生什么:

      ts
      // 注意!这是一段会报错的代码
      +
      +interface UserItem {
      +  name: string
      +  age: number
      +}
      +
      +const petter: UserItem = {
      +  name: 'Petter',
      +}

      运行 npm run dev:ts ,会看到控制台给的报错信息,缺少了必选的属性 age

      bash
      src/ts/index.ts:6:7 - error TS2741:
      +Property 'age' is missing in type '{ name: string; }'
      +but required in type 'UserItem'.
      +
      +6 const petter: UserItem = {
      +        ~~~~~~
      +
      +  src/ts/index.ts:3:3
      +    3   age: number
      +        ~~~
      +    'age' is declared here.

      在实际的业务中,有可能会出现一些属性并不是必须的,就像这个年龄,可以将其设置为可选属性,通过添加 ? 来定义。

      请注意下面代码的第三行, age 后面紧跟了一个 ? 号再接 : 号,这是 TypeScript 对象对于可选属性的一个定义方式,这一次这段代码是可以成功运行的!

      ts
      interface UserItem {
      +  name: string
      +  // 这个属性变成了可选
      +  age?: number
      +}
      +
      +const petter: UserItem = {
      +  name: 'Petter',
      +}

      调用自身接口的属性

      如果一些属性的结构跟本身一致,也可以直接引用,比如下面例子里的 friendList 属性,用户的好友列表,它就可以继续使用 UserItem 这个接口作为数组的类型:

      ts
      interface UserItem {
      +  name: string
      +  age: number
      +  enjoyFoods: string[]
      +  // 这个属性引用了本身的类型
      +  friendList: UserItem[]
      +}
      +
      +const petter: UserItem = {
      +  name: 'Petter',
      +  age: 18,
      +  enjoyFoods: ['rice', 'noodle', 'pizza'],
      +  friendList: [
      +    {
      +      name: 'Marry',
      +      age: 16,
      +      enjoyFoods: ['pizza', 'ice cream'],
      +      friendList: [],
      +    },
      +    {
      +      name: 'Tom',
      +      age: 20,
      +      enjoyFoods: ['chicken', 'cake'],
      +      friendList: [],
      +    }
      +  ],
      +}

      接口的继承

      接口还可以继承,比如要对用户设置管理员,管理员信息也是一个对象,但要比普通用户多一个权限级别的属性,那么就可以使用继承,它通过 extends 来实现:

      ts
      interface UserItem {
      +  name: string
      +  age: number
      +  enjoyFoods: string[]
      +  friendList: UserItem[]
      +}
      +
      +// 这里继承了 UserItem 的所有属性类型,并追加了一个权限等级属性
      +interface Admin extends UserItem {
      +  permissionLevel: number
      +}
      +
      +const admin: Admin = {
      +  name: 'Petter',
      +  age: 18,
      +  enjoyFoods: ['rice', 'noodle', 'pizza'],
      +  friendList: [
      +    {
      +      name: 'Marry',
      +      age: 16,
      +      enjoyFoods: ['pizza', 'ice cream'],
      +      friendList: [],
      +    },
      +    {
      +      name: 'Tom',
      +      age: 20,
      +      enjoyFoods: ['chicken', 'cake'],
      +      friendList: [],
      +    }
      +  ],
      +  permissionLevel: 1,
      +}

      如果觉得这个 Admin 类型不需要记录这么多属性,也可以在继承的过程中舍弃某些属性,通过 Omit 帮助类型来实现,Omit 的类型如下:

      ts
      type Omit<T, K extends string | number | symbol>

      其中 T 代表已有的一个对象类型, K 代表要删除的属性名,如果只有一个属性就直接是一个字符串,如果有多个属性,用 | 来分隔开,下面的例子就是删除了两个不需要的属性:

      ts
      interface UserItem {
      +  name: string
      +  age: number
      +  enjoyFoods: string[]
      +  friendList?: UserItem[]
      +}
      +
      +// 这里在继承 UserItem 类型的时候,删除了两个多余的属性
      +interface Admin extends Omit<UserItem, 'enjoyFoods' | 'friendList'> {
      +  permissionLevel: number
      +}
      +
      +// 现在的 admin 就非常精简了
      +const admin: Admin = {
      +  name: 'Petter',
      +  age: 18,
      +  permissionLevel: 1,
      +}

      看到这里并实际体验过的话,在业务中常见的类型定义已经难不倒了!

      类是 JavaScript ES6 推出的一个概念,通过 class 关键字,可以定义一个对象的模板,如果对类还比较陌生的话,可以先阅读一下阮一峰老师的 ES6 文章:Class 的基本语法

      在 TypeScript ,通过类得到的变量,它的类型就是这个类,可能这句话看起来有点难以理解,来看个例子,可以在 demo 里运行它:

      ts
      // 定义一个类
      +class User {
      +  // constructor 上的数据需要先这样定好类型
      +  name: string
      +
      +  // 入参也要定义类型
      +  constructor(userName: string) {
      +    this.name = userName
      +  }
      +
      +  getName() {
      +    console.log(this.name)
      +  }
      +}
      +
      +// 通过 new 这个类得到的变量,它的类型就是这个类
      +const petter: User = new User('Petter')
      +petter.getName() // Petter

      类与类之间可以继承:

      ts
      // 这是一个基础类
      +class UserBase {
      +  name: string
      +  constructor(userName: string) {
      +    this.name = userName
      +  }
      +}
      +
      +// 这是另外一个类,继承自基础类
      +class User extends UserBase {
      +  getName() {
      +    console.log(this.name)
      +  }
      +}
      +
      +// 这个变量拥有上面两个类的所有属性和方法
      +const petter: User = new User('Petter')
      +petter.getName()

      类也可以提供给接口去继承:

      ts
      // 这是一个类
      +class UserBase {
      +  name: string
      +  constructor(userName: string) {
      +    this.name = userName
      +  }
      +}
      +
      +// 这是一个接口,可以继承自类
      +interface User extends UserBase {
      +  age: number
      +}
      +
      +// 这样这个变量就必须同时存在两个属性
      +const petter: User = {
      +  name: 'Petter',
      +  age: 18,
      +}

      如果类上面本身有方法存在,接口在继承的时候也要相应的实现,当然也可以借助在 对象(接口) 提到的 Omit 帮助类型来去掉这些方法。

      ts
      class UserBase {
      +  name: string
      +  constructor(userName: string) {
      +    this.name = userName
      +  }
      +  // 这是一个方法
      +  getName() {
      +    console.log(this.name)
      +  }
      +}
      +
      +// 接口继承类的时候也可以去掉类上面的方法
      +interface User extends Omit<UserBase, 'getName'> {
      +  age: number
      +}
      +
      +// 最终只保留数据属性,不带有方法
      +const petter: User = {
      +  name: 'Petter',
      +  age: 18,
      +}

      联合类型

      阅读到这里,对 JavaScript 的数据和对象如何在 TypeScript 定义类型相信没有太大问题了吧!

      所以这里先插入一个知识点,在介绍 对象(接口) 的类型定义时,提到 Omit 的帮助类型,它的类型里面有一个写法是 string | number | symbol ,这其实是 TypeScript 的一个联合类型。

      当一个变量可能出现多种类型的值的时候,可以使用联合类型来定义它,类型之间用 | 符号分隔。

      举一个简单的例子,下面这个函数接收一个代表 “计数” 的入参,并拼接成一句话打印到控制台,因为最终打印出来的句子是字符串,所以参数没有必要非得是数值,传字符串也是可以的,所以就可以使用联合类型:

      ts
      // 可以在 demo 里运行这段代码
      +function counter(count: number | string) {
      +  console.log(`The current count is: ${count}.`)
      +}
      +
      +// 不论传数值还是字符串,都可以达到的目的
      +counter(1)  // The current count is: 1.
      +counter('2')  // The current count is: 2.

      TIP

      注意在上面 counter 函数的 console.log 语句里,使用了一个 `` 符号来定义字符串,这是 ES6 语法里的 模板字符串 ,它和传统的单引号 / 双引号相比更为灵活,特别是遇到字符串需要配合多变量拼接和换行的情况。

      对 JavaScript 后面推出的新语法不太熟悉的话,很容易和单引号混淆,在学名上,它也被称之为 “反引号” ( Backquote ) ,可以使用标准键盘的 ESC 键下方、也就是 1 左边的那个按键打出来。

      在实际的业务场景中,例如 Vue 的路由在不同的数据结构里也有不同的类型,有时候需要通过路由实例来判断是否符合要求的页面,也需要用到这种联合类型:

      ts
      // 注意:这不是完整的代码,只是一个使用场景示例
      +import type { RouteRecordRaw, RouteLocationNormalizedLoaded } from 'vue-router'
      +
      +function isArticle(
      +  route: RouteRecordRaw | RouteLocationNormalizedLoaded
      +): boolean {
      +  // ...
      +}

      再举个例子,是用 Vue 做页面,会涉及到子组件或者 DOM 的操作,当它们还没有渲染出来时,获取到的是 null ,渲染后才能拿到组件或者 DOM 结构,这种场景也可以使用联合类型:

      ts
      // querySelector 拿不到 DOM 的时候返回 null
      +const ele: HTMLElement | null = document.querySelector('.main')

      最后这个使用场景在 Vue 单组件的 DOM 元素与子组件 一节里也有相关的讲解。

      当决定使用联合类型的时候,大部分情况下可能需要对变量做一些类型判断再写逻辑,当然有时候也可以无所谓,就像第一个例子拼接字符串那样。

      这一小节在这里做简单了解即可,因为下面会继续配合不同的知识点把这个联合类型再次拿出来讲,比如 函数的重载 部分。

      函数

      函数是 JavaScript 里最重要的成员之一,所有的功能实现都是基于函数。

      函数的基本的写法

      在 JavaScript ,函数有很多种写法:

      js
      // 注意:这是 JavaScript 代码
      +
      +// 写法一:函数声明
      +function sum1(x, y) {
      +  return x + y
      +}
      +
      +// 写法二:函数表达式
      +const sum2 = function (x, y) {
      +  return x + y
      +}
      +
      +// 写法三:箭头函数
      +const sum3 = (x, y) => x + y
      +
      +// 写法四:对象上的方法
      +const obj = {
      +  sum4(x, y) {
      +    return x + y
      +  },
      +}
      +
      +// 还有很多……

      但其实离不开两个最核心的操作:输入与输出,也就是对应函数的 “入参” 和 “返回值” ,在 TypeScript ,函数本身和 TS 类型有关系的也是在这两个地方。

      函数的入参是把类型写在参数后面,返回值是写在圆括号后面,把上面在 JavaScript 的这几个写法,转换成 TypeScript 看看区别在哪里:

      ts
      // 注意:这是 TypeScript 代码
      +
      +// 写法一:函数声明
      +function sum1(x: number, y: number): number {
      +  return x + y
      +}
      +
      +// 写法二:函数表达式
      +const sum2 = function(x: number, y: number): number {
      +  return x + y
      +}
      +
      +// 写法三:箭头函数
      +const sum3 = (x: number, y: number): number => x + y
      +
      +// 写法四:对象上的方法
      +const obj = {
      +  sum4(x: number, y: number): number {
      +    return x + y
      +  }
      +}
      +
      +// 还有很多……

      是不是一下子 Get 到了技巧!函数的类型定义也是非常的简单,掌握这个技巧可以让解决大部分常见的函数。

      函数的可选参数

      实际业务中会遇到有一些函数入参是可选,可以用和 对象(接口) 一样,用 ? 来定义:

      ts
      // 注意 isDouble 这个入参后面有个 ? 号,表示可选
      +function sum(x: number, y: number, isDouble?: boolean): number {
      +  return isDouble ? (x + y) * 2 : x + y
      +}
      +
      +// 这样传参都不会报错,因为第三个参数是可选的
      +sum(1, 2) // 3
      +sum(1, 2, true) // 6

      TIP

      需要注意的是,可选参数必须排在必传参数的后面。

      无返回值的函数

      除了有返回值的函数,更多时候是不带返回值的,例如下面这个例子,这种函数用 void 来定义它的返回,也就是空。

      ts
      // 注意这里的返回值类型
      +function sayHi(name: string): void {
      +  console.log(`Hi, ${name}!`)
      +}
      +
      +sayHi('Petter') // Hi, Petter!

      需要注意的是, voidnullundefined 不可以混用,如果的函数返回值类型是 null ,那么是真的需要 return 一个 null 值:

      ts
      // 只有返回 null 值才能定义返回类型为 null
      +function sayHi(name: string): null {
      +  console.log(`Hi, ${name}!`)
      +  return null
      +}

      有时候要判断参数是否合法,不符合要求时需要提前终止执行(比如在做一些表单校验的时候),这种情况下也可以用 void

      ts
      function sayHi(name: string): void {
      +  // 这里判断参数不符合要求则提前终止运行,但它没有返回值
      +  if (!name) return
      +
      +  // 否则正常运行
      +  console.log(`Hi, ${name}!`)
      +}

      异步函数的返回值

      对于异步函数,需要用 Promise<T> 类型来定义它的返回值,这里的 T 是泛型,取决于该函数最终返回一个什么样的值( async / await 也适用这个类型)。

      例如这个例子,这是一个异步函数,会 resolve 一个字符串,所以它的返回类型是 Promise<string> (假如没有 resolve 数据,那么就是 Promise<void> )。

      ts
      // 注意这里的返回值类型
      +function queryData(): Promise<string> {
      +  return new Promise((resolve) => {
      +    setTimeout(() => {
      +      resolve('Hello World')
      +    }, 3000)
      +  })
      +}
      +
      +queryData().then((data) => console.log(data))

      函数本身的类型

      细心的开发者可能会有个疑问,通过函数表达式或者箭头函数声明的函数,这样写好像只对函数体的类型进行了定义,而左边的变量并没有指定。

      没错,确实是没有为这个变量指定类型:

      ts
      // 这里的 sum ,确实是没有指定类型
      +const sum = (x: number, y: number): number => x + y

      这是因为,通常 TypeScript 会根据函数体自动推导,所以可以省略这里的定义。

      如果确实有必要,可以这样来定义等号左边的类型:

      ts
      const sum: (x: number, y: number) => number = (x: number, y: number): number =>
      +  x + y

      这里出现了 2 个箭头 => ,注意第一个箭头是 TypeScript 的,第二个箭头是 JavaScript ES6 的。

      实际上上面这句代码是分成了三部分:

      1. const sum: (x: number, y: number) => number 是这个函数的名称和类型
      2. = (x: number, y: number) 这里是指明了函数的入参和类型
      3. : number => x + y 这里是函数的返回值和类型

      第 2 和 3 点相信从上面的例子已经能够理解了,所以注意力放在第一点:

      TypeScript 的函数类型是以 () => void 这样的形式来写的:左侧圆括号是函数的入参类型,如果没有参数,就只有一个圆括号,如果有参数,就按照参数的类型写进去;右侧则是函数的返回值。

      事实上由于 TypeScript 会推导函数类型,所以很少会显式的去写出来,除非在给对象定义方法:

      ts
      // 对象的接口
      +interface Obj {
      +  // 上面的方法就需要显式的定义出来
      +  sum: (x: number, y: number) => number
      +}
      +
      +// 声明一个对象
      +const obj: Obj = {
      +  sum(x: number, y: number): number {
      +    return x + y
      +  }
      +}

      函数的重载

      在未来的实际开发中,可能会接触到一个 API 有多个 TS 类型的情况,比如 Vue 的 watch API

      Vue 的这个 watch API 在被调用时,需要接收一个数据源参数,当侦听单个数据源时,它匹配了类型 1 ,当传入一个数组侦听多个数据源时,它匹配了类型 2 。

      这个知识点其实就是 TypeScript 里的函数重载。

      先来看一下在不使用函数重载时应该如何编写代码:

      ts
      // 对单人或者多人打招呼
      +function greet(name: string | string[]): string | string[] {
      +  if (Array.isArray(name)) {
      +    return name.map((n) => `Welcome, ${n}!`)
      +  }
      +  return `Welcome, ${name}!`
      +}
      +
      +// 单个问候语
      +const greeting = greet('Petter')
      +console.log(greeting) // Welcome, Petter!
      +
      +// 多个问候语
      +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
      +console.log(greetings)
      +// [ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

      TIP

      注意这里的入参和返回值使用了 TypeScript 的 联合类型 ,不了解的话请先重温知识点。

      虽然代码逻辑部分还是比较清晰的,区分了入参的数组类型和字符串类型,返回不同的结果,但是,在入参和返回值的类型这里,却显得非常乱。

      并且这样子写,下面在调用函数时,定义的变量也无法准确的获得它们的类型:

      ts
      // 此时这个变量依然可能有多个类型
      +const greeting: string | string[]

      如果要强制确认类型,需要使用 TS 的 类型断言 (留意后面的 as 关键字):

      ts
      const greeting = greet('Petter') as string
      +const greetings = greet(['Petter', 'Tom', 'Jimmy']) as string[]

      这无形的增加了编码时的心智负担。

      此时,利用 TypeScript 的函数重载就非常有用!来看一下具体如何实现:

      ts
      // 这一次用了函数重载
      +function greet(name: string): string  // TS 类型
      +function greet(name: string[]): string[]  // TS 类型
      +function greet(name: string | string[]) {
      +  if (Array.isArray(name)) {
      +    return name.map((n) => `Welcome, ${n}!`)
      +  }
      +  return `Welcome, ${name}!`
      +}
      +
      +// 单个问候语,此时只有一个类型 string
      +const greeting = greet('Petter')
      +console.log(greeting) // Welcome, Petter!
      +
      +// 多个问候语,此时只有一个类型 string[]
      +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
      +console.log(greetings)
      +// [ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

      上面是利用函数重载优化后的代码,可以看到一共写了 3 行 function greet … ,区别如下:

      第 1 行是函数的 TS 类型,告知 TypeScript ,当入参为 string 类型时,返回值也是 string ;

      第 2 行也是函数的 TS 类型,告知 TypeScript ,当入参为 string[] 类型时,返回值也是 string[] ;

      第 3 行开始才是真正的函数体,这里的函数入参需要把可能涉及到的类型都写出来,用以匹配前两行的类型,并且这种情况下,函数的返回值类型可以省略,因为在第 1 、 2 行里已经定义过返回类型了。

      任意值

      如果实在不知道应该如何定义一个变量的类型, TypeScript 也允许使用任意值。

      还记得在 为什么需要类型系统 的用的那个例子吗?再次放到 src/ts/index.ts 里:

      ts
      // 这段代码在 TS 里运行会报错
      +function getFirstWord(msg) {
      +  console.log(msg.split(' ')[0])
      +}
      +
      +getFirstWord('Hello World')
      +
      +getFirstWord(123)

      运行 npm run dev:ts 的时候,会得到一句报错 Parameter 'msg' implicitly has an 'any' type. ,意思是这个参数带有隐式 any 类型。

      这里的 any 类型,就是 TypeScript 任意值。

      既然报错是 “隐式” ,那 “显式” 的指定就可以了,当然,为了程序能够正常运行,还提高一下函数体内的代码健壮性:

      ts
      // 这里的入参显式指定了 any
      +function getFirstWord(msg: any) {
      +  // 这里使用了 String 来避免程序报错
      +  console.log(String(msg).split(' ')[0])
      +}
      +
      +getFirstWord('Hello World')
      +
      +getFirstWord(123)

      这次就不会报错了,不论是传 string 还是 number 还是其他类型,都可以正常运行。

      TIP

      使用 any 的目的是让在开发的过程中,可以不必在无法确认类型的地方消耗太多时间,不代表不需要注意代码的健壮性。

      一旦使用了 any ,代码里的逻辑请务必考虑多种情况进行判断或者处理兼容。

      npm 包

      虽然现在从 npm 安装的包都基本自带 TS 类型了,不过也存在一些包没有默认支持 TypeScript ,比如前面提到的 md5

      在 TS 文件里导入并使用这个包的时候,会编译失败,比如在前面的 Hello TypeScript demo 里敲入以下代码:

      ts
      // src/ts/index.ts
      +import md5 from 'md5'
      +console.log(md5('Hello World'))

      在命令行执行 npm run dev:ts 之后,会得到一段报错信息:

      bash
      src/ts/index.ts:1:17 - error TS7016:
      +Could not find a declaration file for module 'md5'.
      +'D:/Project/demo/hello-node/node_modules/md5/md5.js' implicitly has an 'any' type.
      +  Try `npm i --save-dev @types/md5` if it exists
      +  or add a new declaration (.d.ts) file
      +  containing `declare module 'md5';`
      +
      +1 import md5 from 'md5'
      +                  ~~~~~

      这是因为缺少 md5 这个包的类型定义,根据命令行的提示,安装 @types/md5 这个包。

      这是因为这些包是很早期用 JavaScript 编写的,因为功能够用作者也没有进行维护更新,所以缺少相应的 TS 类型,因此开源社区推出了一套 @types 类型包,专门处理这样的情况。

      @types 类型包的命名格式为 @types/<package-name> ,也就是在原有的包名前面拼接 @types ,日常开发要用到的知名 npm 包都会有相应的类型包,只需要将其安装到 package.json 的 devDependencies 里即可解决该问题。

      来安装一下 md5 的类型包:

      bash
      npm install -D @types/md5

      再次运行就不会报错了!

      bash
      npm run dev:ts
      +
      +> demo@1.0.0 dev:ts
      +> ts-node src/ts/index.ts
      +
      +b10a8db164e0754105b7a99be72e3fe5

      类型断言

      在讲解 函数的重载 的时候,提到了一个用法:

      ts
      const greeting = greet('Petter') as string

      这里的 值 as 类型 就是 TypeScript 类型断言的语法,它还有另外一个语法是 <类型>值

      当一个变量应用了 联合类型 时,在某些时候如果不显式的指明其中的一种类型,可能会导致后续的代码运行报错。

      这个时候就可以通过类型断言强制指定其中一种类型,以便程序顺利运行下去。

      常见的使用场景

      把函数重载时最开始用到的那个例子,也就是下面的代码放到 src/ts/index.ts 里:

      ts
      // 对单人或者多人打招呼
      +function greet(name: string | string[]): string | string[] {
      +  if (Array.isArray(name)) {
      +    return name.map((n) => `Welcome, ${n}!`)
      +  }
      +  return `Welcome, ${name}!`
      +}
      +
      +// 虽然已知此时应该是 string[]
      +// 但 TypeScript 还是会认为这是 string | string[]
      +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
      +
      +// 会导致无法使用 join 方法
      +const greetingSentence = greetings.join(' ')
      +console.log(greetingSentence)

      执行 npm run dev:ts ,可以清楚的看到报错原因,因为 string 类型不具备 join 方法。

      bash
      src/ts/index.ts:11:31 - error TS2339:
      +Property 'join' does not exist on type 'string | string[]'.
      +  Property 'join' does not exist on type 'string'.
      +
      +11 const greetingStr = greetings.join(' ')
      +                                 ~~~~

      此时利用类型断言就可以达到目的:

      ts
      // 对单人或者多人打招呼
      +function greet(name: string | string[]): string | string[] {
      +  if (Array.isArray(name)) {
      +    return name.map((n) => `Welcome, ${n}!`)
      +  }
      +  return `Welcome, ${name}!`
      +}
      +
      +// 已知此时应该是 string[] ,所以用类型断言将其指定为 string[]
      +const greetings = greet(['Petter', 'Tom', 'Jimmy']) as string[]
      +
      +// 现在可以正常使用 join 方法
      +const greetingSentence = greetings.join(' ')
      +console.log(greetingSentence)

      需要注意的事情

      但是,请不要滥用类型断言,只在能够确保代码正确的情况下去使用它,来看一个反例:

      ts
      // 原本要求 age 也是必须的属性之一
      +interface User {
      +  name: string
      +  age: number
      +}
      +
      +// 但是类型断言过程中,遗漏了
      +const petter = {} as User
      +petter.name = 'Petter'
      +
      +// TypeScript 依然可以运行下去,但实际上的数据是不完整的
      +console.log(petter) // { name: 'Petter' }

      TIP

      使用类型断言可以让 TypeScript 不再检查该代码,默认是正确无误的。

      所以,请务必保证这段代码真的是正确的!

      类型推论

      还记得在讲 原始数据类型 的时候,最后提到的:

      不过在实际的编程过程中,原始数据类型的类型定义是可以省略的,因为 TypeScript 会根据声明变量时赋值的类型,自动帮推导变量类型

      这其实是 TypeScript 的类型推论功能,当在声明变量的时候可以确认它的值,那么 TypeScript 也可以在这个时候帮推导它的类型,这种情况下就可以省略一些代码量。

      下面这个变量这样声明是 OK 的,因为 TypeScript 会推导 msgstring 类型。

      ts
      // 相当于 msg: string
      +let msg = 'Hello World'
      +
      +// 所以要赋值为 number 类型时会报错
      +msg = 3 // Type 'number' is not assignable to type 'string'

      下面这段代码也是可以正常运行的,因为 TypeScript 会根据 return 的结果推导 getRandomNumber 的返回值是 number 类型,从而推导变量 num 也是 number 类型。

      ts
      // 相当于 getRandomNumber(): number
      +function getRandomNumber() {
      +  return Math.round(Math.random() * 10)
      +}
      +
      +// 相当于 num: number
      +const num = getRandomNumber()

      类型推论的前提是变量在声明时有明确的值,如果一开始没有赋值,那么会被默认为 any 类型。

      ts
      // 此时相当于 foo: any
      +let foo
      +
      +// 所以可以任意改变类型
      +foo = 1 // 1
      +foo = true // true

      类型推论可以节约很多书写工作量,在确保变量初始化有明确的值的时候,可以省略其类型,但必要的时候,该写上的还是要写上。

      如何编译为 JavaScript 代码

      学习到这里,对于 TypeScript 的入门知识已经学到了吧!

      前面学习的时候,一直是基于 dev:ts 命令,它调用的是 ts-node 来运行的 TS 文件:

      json
      {
      +  // ...
      +  "scripts": {
      +    // ...
      +    "dev:ts": "ts-node src/ts/index.ts"
      +  }
      +  // ...
      +}

      但最终可能需要的是一个 JS 文件,比如要通过 <script src> 来放到 HTML 页面里,这就涉及到对 TypeScript 的编译。

      来看看如何把一个 TS 文件编译成 JS 文件,让其从 TypeScript 变成 JavaScript 代码。

      编译单个文件

      先在 package.json 里增加一个 build script :

      json
      {
      +  "name": "hello-node",
      +  "version": "1.0.0",
      +  "description": "",
      +  "main": "index.js",
      +  "scripts": {
      +    "dev:cjs": "node src/cjs/index.cjs",
      +    "dev:esm": "node src/esm/index.mjs",
      +    "dev:ts": "ts-node src/ts/index.ts",
      +    "build": "tsc src/ts/index.ts --outDir dist",
      +    "compile": "babel src/babel --out-dir compiled",
      +    "serve": "node server/index.js"
      +  },
      +  "keywords": [],
      +  "author": "",
      +  "license": "ISC",
      +  "dependencies": {
      +    "md5": "^2.3.0"
      +  },
      +  "devDependencies": {
      +    "@types/md5": "^2.3.2",
      +    "ts-node": "^10.7.0",
      +    "typescript": "^4.6.3"
      +  }
      +}

      这样在命令行运行 npm run build 的时候,就会把 src/ts/index.ts 这个 TS 文件编译,并输出到项目下与 src 文件夹同级的 dist 目录下。

      其中 tsc 是 TypeScript 用来编译文件的命令, --outDir 是它的一个选项,用来指定输出目录,如果不指定,则默认生成到源文件所在的目录下面。

      把之前在 函数的重载 用过的这个例子放到 src/ts/index.ts 文件里,因为它是一段比较典型的、包含了多个知识点的 TypeScript 代码:

      ts
      // 对单人或者多人打招呼
      +function greet(name: string): string
      +function greet(name: string[]): string[]
      +function greet(name: string | string[]) {
      +  if (Array.isArray(name)) {
      +    return name.map((n) => `Welcome, ${n}!`)
      +  }
      +  return `Welcome, ${name}!`
      +}
      +
      +// 单个问候语
      +const greeting = greet('Petter')
      +console.log(greeting)
      +
      +// 多个问候语
      +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
      +console.log(greetings)

      可以先执行 npm run dev:ts 测试它的可运行性,当然,如果期间的代码运行有问题,在编译阶段也会给报错。

      现在来编译它,现在在命令行输入 npm run build 并回车执行。

      可以看到多了一个 dist 文件夹,里面多了一个 index.js 文件。

      bash
      hello-node
      + # 构建产物
      +├─dist
      +  # 编译后的 JS 文件
      + └─index.js
      + # 依赖文件夹
      +├─node_modules
      + # 源码文件夹
      +├─src
      + # 锁定安装依赖的版本号
      +├─package-lock.json
      + # 项目清单
      +└─package.json

      index.js 文件里面的代码如下:

      js
      function greet(name) {
      +  if (Array.isArray(name)) {
      +    return name.map(function (n) {
      +      return 'Welcome, '.concat(n, '!')
      +    })
      +  }
      +  return 'Welcome, '.concat(name, '!')
      +}
      +// 单个问候语
      +var greeting = greet('Petter')
      +console.log(greeting)
      +// 多个问候语
      +var greetings = greet(['Petter', 'Tom', 'Jimmy'])
      +console.log(greetings)

      可以看到已经成功把 TypeScript 代码编译成 JavaScript 代码了。

      在命令行执行 node dist/index.js ,像之前测试 JS 文件一样使用 node 命令,运行 dist 目录下的 index.js 文件,它可以正确运行:

      bash
      node dist/index.js
      +Welcome, Petter!
      +[ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

      编译多个模块

      刚才只是编译一个 index.ts 文件,如果 index.ts 里引入了其他模块,此时 index.ts 是作为入口文件,入口文件 import 进来使用的模块也会被 TypeScript 一并编译。

      拆分一下模块,把 greet 函数单独抽离成一个模块文件 src/ts/greet.ts

      ts
      // src/ts/greet.ts
      +function greet(name: string): string
      +function greet(name: string[]): string[]
      +function greet(name: string | string[]) {
      +  if (Array.isArray(name)) {
      +    return name.map((n) => `Welcome, ${n}!`)
      +  }
      +  return `Welcome, ${name}!`
      +}
      +
      +export default greet

      src/ts/index.ts 这边,把这个模块导进来:

      ts
      // src/ts/index.ts
      +import greet from './greet'
      +
      +// 单个问候语
      +const greeting = greet('Petter')
      +console.log(greeting)
      +
      +// 多个问候语
      +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
      +console.log(greetings)

      package.json 里的 build script 无需修改,依然只编译 index.ts ,但因为导入了 greet.ts ,所以 TypeScript 也会一并编译,来试一下运行 npm run build , 现在 dist 目录下有两个文件了:

      bash
      hello-node
      + # 构建产物
      +├─dist
      + ├─greet.js  # 多了这个文件
      + └─index.js
      +
      + # 其他文件这里省略...
      +└─package.json

      来看看这一次的编译结果:

      先看看 greet.js

      js
      // dist/greet.js
      +'use strict'
      +exports.__esModule = true
      +function greet(name) {
      +  if (Array.isArray(name)) {
      +    return name.map(function (n) {
      +      return 'Welcome, '.concat(n, '!')
      +    })
      +  }
      +  return 'Welcome, '.concat(name, '!')
      +}
      +exports['default'] = greet

      再看看 index.js

      js
      // dist/index.js
      +'use strict'
      +exports.__esModule = true
      +var greet_1 = require('./greet')
      +// 单个问候语
      +var greeting = (0, greet_1['default'])('Petter')
      +console.log(greeting)
      +// 多个问候语
      +var greetings = (0, greet_1['default'])(['Petter', 'Tom', 'Jimmy'])
      +console.log(greetings)

      这个代码风格有没有觉得似曾相识?是的,就是前面提到的 CommonJS 模块代码。

      其实在 编译单个文件 代码的时候,它也是 CommonJS ,只不过因为只有一个文件,没有涉及到模块化,所以第一眼看不出来。

      还是在命令行执行 node dist/index.js ,虽然也是运行 dist 目录下的 index.js 文件,但这次它的作用是充当一个入口文件了,引用到的 greet.js 模块文件也会被调用。

      这次一样可以得到正确的结果:

      bash
      node dist/index.js
      +Welcome, Petter!
      +[ 'Welcome, Petter!', 'Welcome, Tom!', 'Welcome, Jimmy!' ]

      修改编译后的 JS 版本

      还可以修改编译配置,让 TypeScript 编译成不同的 JavaScript 版本。

      修改 package.json 里的 build script ,在原有的命令后面增加一个 --target 选项:

      json
      {
      +  // ...
      +  "scripts": {
      +    // ...
      +    "build": "tsc src/ts/index.ts --outDir dist --target es6"
      +  }
      +  // ...
      +}

      --target 选项的作用是控制编译后的 JavaScript 版本,可选的值目前有: es3es5es6es2015es2016es2017es2018es2019es2020es2021es2022esnext ,分别对应不同的 JS 规范(所以未来的可选值会根据 JS 规范一起增加)。

      之前编译出来的 JavaScript 是 CommonJS 规范 ,本次配置的是 es6 ,这是支持 ES Module 规范 的版本。

      TIP

      通常还需要配置一个 --module 选项,用于决定编译后是 CJS 规范还是 ESM 规范,但如果缺省,会根据 --target 来决定。

      再次在命令行运行 npm run build ,这次看看变成了什么:

      先看看 greet.js

      js
      // dist/greet.js
      +function greet(name) {
      +  if (Array.isArray(name)) {
      +    return name.map((n) => `Welcome, ${n}!`)
      +  }
      +  return `Welcome, ${name}!`
      +}
      +export default greet

      再看看 index.js

      js
      // dist/index.js
      +import greet from './greet'
      +// 单个问候语
      +const greeting = greet('Petter')
      +console.log(greeting)
      +// 多个问候语
      +const greetings = greet(['Petter', 'Tom', 'Jimmy'])
      +console.log(greetings)

      这次编译出来的都是基于 ES6 的 JavaScript 代码,因为涉及到 ESM 模块,所以不能直接在 node 运行它了,可以手动改一下扩展名,改成 .mjs (包括 index 文件里 import 的 greet 文件名也要改),然后再运行 node dist/index.mjs

      其他事项

      在尝试 编译单个文件编译多个模块 的时候,相信各位开发者应该没有太大的疑问,但是来到 修改编译后的 JS 版本 这里,事情就开始变得复杂了起来,应该能感觉到编译的选项和测试成本都相应的增加了很多。

      事实上刚才编译的 JS 文件,因为涉及到 ESM 模块化,是无法通过普通的 <script /> 标签在 HTML 页面里使用的(单个文件可以,因为没有涉及模块),不仅需要加上 ESM 模块所需的 <script type="module" /> 属性,本地开发还需要启动本地服务器通过 HTTP 协议访问页面,才允许在浏览器里使用 ESM 模块(详见: 在浏览器里访问 ESM 一节)。

      因此在实际的项目开发中,需要借助 构建工具 来处理很多编译过程中的兼容性问题,降低开发成本。

      而刚才用到的诸如 --target 这样的选项,可以用一个更简单的方式来管理,类似于 package.json 项目清单, TypeScript 也有一份适用于项目的配置清单,请看 了解 tsconfig.json 部分。

      了解 tsconfig.json

      TypeScript 项目一般都会有一个 tsconfig.json 文件,放置于项目的根目录下,这个文件的作用是用来管理 TypeScript 在编译过程中的一些选项配置。

      在开始之前,需要全局安装一下 TypeScript :

      bash
      npm install -g typescript

      这样就可以使用 TypeScript 提供的全局功能,可以直接在命令行里使用 tsc 命令了(之前本地安装的时候,需要封装成 package.json 的 script 才能调用它)。

      依然是用的 Hello TypeScript demo ,记得先通过 cd 命令进入项目所在的目录。

      在命令行输入 tsc --init ,这是 TypeScript 提供的初始化功能,会生成一个默认的 tsconfig.json 文件。

      bash
      tsc --init
      +
      +Created a new tsconfig.json with:
      +                                                                               TS
      +  target: es2016
      +  module: commonjs
      +  strict: true
      +  esModuleInterop: true
      +  skipLibCheck: true
      +  forceConsistentCasingInFileNames: true
      +
      +
      +You can learn more at https://aka.ms/tsconfig.json

      现在的目录结构是这样子,多了一个 tsconfig.json 文件:

      bash
      hello-node
      + # 构建产物
      +├─dist
      + # 依赖文件夹
      +├─node_modules
      + # 源码文件夹
      +├─src
      + # 锁定安装依赖的版本号
      +├─package-lock.json
      + # 项目清单
      +├─package.json
      + # TypeScript 配置
      +└─tsconfig.json

      每一个 tsc 的命令行的选项,都可以作为这个 JSON 的一个字段来管理,例如刚才的 --outDir--target 选项,在这个 JSON 文件里对应的就是:

      json
      {
      +  "compilerOptions": {
      +    "target": "es6",
      +    "module": "es6",
      +    "outDir": "./dist"
      +  }
      +}

      可以直接在生成的 tsconfig.json 上面修改。

      来试试效果,这一次不需要用到 package.json 里的 build script 了,直接在命令行运行 tsc ,它现在会根据配置的 tsconfig.json 文件,按照的要求来编译。

      可以看到它依然按照要求在 dist 目录下生成编译后的 JS 文件,而且这一次的编译结果,和在 build script 里使用的 tsc src/ts/index.ts --outDir dist --target es6 这一长串命令是一样的。

      所以正常工作中,都是使用 tsconfig.json 来管理 TypeScript 的配置的。

      完整的选项可以查看 TypeScript 官网: tsconfig - typescriptlang

      不过实际工作中的项目都是通过一些脚手架创建的,例如 Vue CLI ,或者现在的 Create Vue 或者 Create Preset ,都会在创建项目模板的时候,提前配置好通用的选项,只需要在不满足条件的情况下去调整。

      Released under the MIT License.

      + + + + \ No newline at end of file diff --git a/upgrade.html b/upgrade.html new file mode 100644 index 00000000..270e6f0f --- /dev/null +++ b/upgrade.html @@ -0,0 +1,206 @@ + + + + + + 脚手架的升级与配置 | Vue3 入门指南与实战案例 + + + + + + + + + + + + + +
      Skip to content
      目录

      脚手架的升级与配置

      相信在 “了解前端工程化” 一章里阅读过 Vue.js 与工程化 一节内容的开发者,可以轻松猜到本书接下来关于 Vue 3 的学习都将基于前端工程化展开,本章将介绍如何配置 Vue 3 的开发环境,并创建基于前端工程化的 Vue 3 项目。

      TIP

      如果还不熟悉 Node.js 、 npm 依赖管理等前端工程化工具链的使用,请先阅读 工程化的前期准备 一章。

      全新的 Vue 版本 ~new

      在 2022 年 2 月 7 日, Vue 3 代替了 Vue 2 成为 Vue 的默认版本,有一些注意事项需要留意:

      使用 Vue 3

      在 npmjs 网站 Vue 主页的版本列表 上面,可以看到当前已使用 3.x.x 这样的版本号作为 latest 这个 Tag 对应的版本,也就是运行 npm i vue 默认会安装 Vue 3 了,无需再和以前一样,需要指定 vue@next 才可以安装到 Vue 3 。

      包括 vue-routervuexvue-loader@vue/test-utils 等相关的生态,同样不需要指定 next 版本了,都配合 Vue 3 指定了新的 latest 默认版本。

      同时 Vue 生态的所有官方文档也都默认切换到 Vue 3 版本,可在 官方文档 一节了解最新的官方资源站点。

      使用 Vue 2

      如果还需要使用 Vue 2 ,则在安装的时候需要手动指定 Tag 为 legacy 或者 v2-latest 才能安装到 Vue 2 :

      bash
      # 安装 2.6.x 的最新版本
      +npm i vue@legacy
      +
      +# 安装 2.7.x 的最新版本
      +npm i vue@v2-latest

      注意到 Vue 2 配对了两个不同的 Tag ,分别对应 2.7 系列和 2.6 系列。

      TIP

      Vue 2.7 系列是在 Vue 2 的基础上,对标 Vue 3 的功能支持所作的升级,主要是面向想使用 Vue 3 的新特性、但顾虑于产品对旧浏览器的支持而无法贸然升级的开发者。

      Vue 2.7 与 Vue 2.6 之前的旧版本在使用上略有不同,具体可以查看 Vue 2 的 更新记录 了解具体的差异化。

      对于一些没有打 Tag 的 Vue 2 相关生态(如 vuex 截止到撰写本文时还没有为旧版本打 Tag ),则需要显式的指定版本号才可以安装到配套的程序:

      bash
      # 显式的指定具体版本号安装
      +npm i vuex@3.6.2

      如果之前使用了 latest 标签或 * 从 npm 安装 Vue 或其他官方库,请确保项目下的 package.json 文件能够明确使用兼容 Vue 2 的版本。

      diff
      {
      +  "dependencies": {
      +-   "vue": "latest",
      ++   "vue": "^2.6.14",
      +-   "vue-router": "latest",
      ++   "vue-router": "^3.5.3",
      +-   "vuex": "latest"
      ++   "vuex": "^3.6.2"
      +  },
      +  "devDependencies": {
      +-   "vue-loader": "latest",
      ++   "vue-loader": "^15.9.8",
      +-   "@vue/test-utils": "latest"
      ++   "@vue/test-utils": "^1.3.0"
      +  }
      +}

      TIP

      上方代码块里的 - 号代表移除, + 号代表新增,这是一种 Diff 风格的排版,表明修改前后的变化,后文如有类似的代码风格同理。

      Hello Vue3

      如果想早点开始 Vue 3 的世界,可以通过以下命令直接创建一个启动项目:

      bash
      # 全局安装脚手架
      +npm install -g create-preset
      +
      +# 使用 `vue3-ts-vite` 模板创建一个名为 `hello-vue3` 的项目
      +preset init hello-vue3 --template vue3-ts-vite

      这是一个基于 Vite + TypeScript + Vue 3 + Pinia 的项目启动模板,可以使用这个项目来练习后面的案例代码,创建完毕后可以直接跳到 安装 VSCode添加 VSCode 插件 继续学习。

      当然有时间还是希望继续阅读 使用 Vite 创建项目使用 @vue/cli 创建项目 这两部分内容,了解 Vue 3 更主流的项目创建方案。

      TIP

      如果网络问题下载失败,可以先执行 preset proxy on 开启加速镜像代理下载。

      使用 Vite 创建项目 ~new

      Vite 是由 Vue 作者尤雨溪先生带领团队开发的一个构建工具,它利用浏览器原生支持 ES 模块的特点,极大提升了开发体验,自 2021 年 1 月份发布 2.0 版本以来,发展非常快,笔者也在第一时间参与贡献了一些文档和插件,并且在 2021 年期间,个人项目已经全面切换到 Vite ,公司业务也在 2021 年底开始使用 Vite 创建新项目,整体情况非常稳定,前景非常乐观。

      关于是否使用 Vite 和安利团队使用 Vue 3 ,可以看笔者在 2022 年春节前写的 Markdown 工程师的一周 一文,记录了一次关于团队技术栈升级的总结,笔者是非常推荐升级技术栈的!

      在这里推荐以下这几种创建 Vite 项目的方式:Create ViteCreate VueCreate Preset

      Create Vite

      create-vite 是 Vite 官方推荐的一个脚手架工具,可以创建基于 Vite 的不同技术栈基础模板。

      运行以下命令创建模板项目,再按照命令行的提示操作(选择 vue 技术栈进入),即可创建一个基于 Vite 的基础空项目。

      bash
      npm create vite

      不过这个方式创建的项目非常基础,如果需要用到 Router 、 Vuex 、 ESLint 等程序,都需要再单独安装和配置,所以推荐使用 Create Preset

      Create Vue

      create-vue 是 Vue 官方推出的一个新脚手架,用以代替基于 Webpack 的 Vue CLI ,它可以创建基于 Vite 的 Vue 基础模板。

      运行以下命令创建模板项目,然后根据命令行的提示操作即可。

      bash
      npm init vue@3

      Create Preset

      create-preset 是 Awesome Starter 的 CLI 脚手架,提供快速创建预设项目的能力,可以创建一些有趣实用的项目启动模板,也可以用来管理的常用项目配置。

      简单使用

      可以通过包管理器直接创建配置,然后按照命令行的提示操作,即可创建开箱即用的模板项目。

      bash
      npm create preset

      在这里选择 vue 技术栈进入,选择 vue3-ts-vite 创建一个基于 Vite + Vue 3 + TypeScript 的项目启动模板。

      TIP

      如果下载失败,可以通过 npm create preset proxy on 开启加速镜像代理下载。

      点击查看:代理选项 - Create Preset

      全局安装

      也可以像使用 @vue/cli 一样,全局安装到本地,通过 preset init 命令来创建项目。

      推荐全局安装它,用起来更方便,请先全局安装:

      bash
      npm install -g create-preset

      可以通过下面这个命令来检查安装是否成功,如果成功,将会得到一个版本号:

      bash
      preset -v

      然后可以通过 --template 选项直接指定一个模板创建项目,在这里使用 vue3-ts-vite 模板创建一个名为 hello-vue3 的项目:

      bash
      preset init hello-vue3 --template vue3-ts-vite

      常用的项目模板也可以绑定为本地配置,点击 Create Preset 官方文档 查看完整使用教程。

      管理项目配置

      不论使用上方哪种方式创建项目,在项目的根目录下都会有一个名为 vite.config.jsvite.config.ts 的项目配置文件(其扩展名由项目使用 JavaScript 还是 TypeScript 决定)。

      里面会有一些预设好的配置,可以在 Vite 官网的配置文档 查阅更多的可配置选项。

      使用 @vue/cli 创建项目

      如果不习惯 Vite ,依然可以使用 Vue CLI 作为开发脚手架。

      和 Vite 的区别

      Vue CLI 使用的构建工具是基于 Webpack ,可以在 了解构建工具 一节了解 Webpack 和 Vite 这两个构建工具的区别。

      更新 CLI 脚手架

      请先全局安装,把脚手架更新到最新版本(最低版本要求在 4.5.6 以上才能支持 Vue 3 项目的创建)。

      js
      npm install -g @vue/cli

      使用 CLI 创建 3.x 项目 ~new

      Vue CLI 全局安装后,可以在命令行输入 vue 进行操作,创建项目使用的是 create 命令:

      js
      vue create hello-vue3

      由于要使用 TypeScript ,所以需要选择最后一个选项来进行自定义搭配,通过键盘的上下箭头进行切换选择:

      js
      Vue CLI v5.0.4
      +? Please pick a preset:
      +  Default ([Vue 3] babel, eslint)
      +  Default ([Vue 2] babel, eslint)
      +> Manually select features

      多选菜单可以按空格选中需要的依赖,总共选择了下面这些选项:

      js
      Vue CLI v5.0.4
      +? Please pick a preset: Manually select features
      +? Check the features needed for your project: (Press <space> to select,
      +<a> to toggle all, <i> to invert selection, and <enter> to proceed)
      + (*) Babel
      + (*) TypeScript
      + ( ) Progressive Web App (PWA) Support
      + (*) Router
      + (*) Vuex
      + (*) CSS Pre-processors
      +>(*) Linter / Formatter
      + ( ) Unit Testing
      + ( ) E2E Testing

      选择 Vue 版本,要用 Vue 3 所以需要选择 3.x :

      js
      ? Choose a version of Vue.js that you want to start the project with
      +  (Use arrow keys)
      +> 3.x
      +  2.x

      是否选择 Class 语法的模板,在 Vue 2 版本为了更好的支持 TypeScript ,通常需要使用 Class 语法,由于 Vue 3 有了对 TypeScript 支持度更高的 Composition API ,因此选择 n ,也就是 “否” :

      js
      ? Use class-style component syntax? (y/N) n

      Babel 可以把新版本的 JavaScript 语句转换为兼容性更好的低版本 Polyfill 写法,所以选 y 确认使用:

      js
      ? Use Babel alongside TypeScript
      +  (required for modern mode, auto-detected polyfills, transpiling JSX)?
      +  (Y/n) y

      接下来是选择路由模式,选 y 启用 History 模式,选 n 使用 Hash 模式,可根据项目情况选择。

      建议先选 y 确认,如果遇到部署的问题可以在 “路由” 一章的 部署问题与服务端配置 小节查看如何处理。

      js
      ? Use history mode for router?
      +  (Requires proper server setup for index fallback in production)
      +  (Y/n) y

      选择一个 CSS 预处理器,可以根据自己的喜好选择,不过鉴于目前开源社区组件常用的都是 Less ,所以也建议选择 Less 作为入门的预处理器工具。

      js
      ? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported
      + by default):
      +  Sass/SCSS (with dart-sass)
      +> Less
      +  Stylus

      Lint 规则,用来代码检查,写 TypeScript 离不开 Lint ,可以根据自己喜好选择,也可以先选择默认,后面在 添加协作规范 一节也有说明如何配置规则,这里先默认第一个:

      js
      ? Pick a linter / formatter config: (Use arrow keys)
      +> ESLint with error prevention only
      +  ESLint + Airbnb config
      +  ESLint + Standard config
      +  ESLint + Prettier

      Lint 的校验时机,一个是在保存时校验,一个是在提交 commit 的时候才校验,这里也选默认:

      js
      ? Pick additional lint features: (Press <space> to select,
      + <a> to toggle all, <i> to invert selection, and <enter> to proceed)
      +>(*) Lint on save
      + ( ) Lint and fix on commit

      项目配置文件,笔者更习惯保存为独立文件:

      js
      ? Where do you prefer placing config for Babel, ESLint, etc.?
      +  (Use arrow keys)
      +> In dedicated config files
      +  In package.json

      是否保存为未来的项目配置,存起来方便以后快速创建:

      js
      ? Save this as a preset for future projects? Yes
      +? Save preset as: vue-3-ts-config

      至此,项目创建完成!可以通过 npm run serve 开启热更进行开发调试,通过 npm run build 构建打包上线。

      管理项目配置

      Vue CLI 的配置文件是 vue.config.js ,可以参考官网的说明文档调整各个选项配置:配置参考 - Vue CLI

      调整 TS Config

      如果在 Vite 的配置文件 vite.config.ts ,或者是在 Vue CLI 的配置文件 vue.config.js 里设置了 alias 的话,因为 TypeScript 不认识里面配置的 alias 别名,所以需要再对 tsconfig.json 做一点调整,增加对应的 paths ,否则在 VSCode 里可能会路径报红,提示找不到模块或其相应的类型声明。

      比如在 Vue 组件里引入路径为 @cp/HelloWorld.vue 的时候,可以避免写出 ../../../../components/HelloWorld.vue 这样的非常多层级的相对路径,但是默认情况下 TypeScript 并不知道这个 alias 等价于 src/components/HelloWorld.vue 这个文件路径,从而会报错找不到该模块并导致无法正确编译。

      假设在 vite.config.ts 里配置了这些 alias :

      ts
      export default defineConfig({
      +  // ...
      +  resolve: {
      +    alias: {
      +      '@': resolve('src'), // 源码根目录
      +      '@img': resolve('src/assets/img'), // 图片
      +      '@less': resolve('src/assets/less'), // 预处理器
      +      '@libs': resolve('src/libs'), // 本地库
      +      '@plugins': resolve('src/plugins'), // 本地插件
      +      '@cp': resolve('src/components'), // 公共组件
      +      '@views': resolve('src/views'), // 路由组件
      +    },
      +  },
      +  // ...
      +})

      那么在该项目的 tsconfig.json 文件里就需要相应的加上这些 paths :

      json
      {
      +  "compilerOptions": {
      +    // ...
      +    "paths": {
      +      "@/*": ["src/*"],
      +      "@img/*": ["src/assets/img/*"],
      +      "@less/*": ["src/assets/less/*"],
      +      "@libs/*": ["src/libs/*"],
      +      "@plugins/*": ["src/plugins/*"],
      +      "@cp/*": ["src/components/*"],
      +      "@views/*": ["src/views/*"]
      +    },
      +    // ...
      +  },
      +  // ...
      +}

      TIP

      注意 paths 的配置全部要以 /* 结尾,代表该目录下的文件都可以被匹配,而不是指向某一个文件。

      添加协作规范

      考虑到后续可能会有团队协作,最好是能够统一编码风格。

      Editor Config

      在项目根目录下再增加一个名为 .editorconfig 的文件。

      这个文件的作用是强制编辑器以该配置来进行编码,比如缩进统一为空格而不是 Tab ,每次缩进都是 2 个空格而不是 4 个等等。

      文件内容如下:

      js
      # http://editorconfig.org
      +root = true
      +
      +[*]
      +charset = utf-8
      +end_of_line = lf
      +indent_size = 2
      +indent_style = space
      +insert_final_newline = true
      +max_line_length = 80
      +trim_trailing_whitespace = true
      +
      +[*.md]
      +max_line_length = 0
      +trim_trailing_whitespace = false

      具体的参数说明可参考:项目代码风格统一神器 editorconfig 的作用与配置说明

      TIP

      部分编辑器可能需要安装对应的插件才可以支持该配置。

      例如 VSCode 需要安装 EditorConfig for VSCode 扩展

      Prettier

      Prettier 是目前最流行的代码格式化工具,可以约束的代码风格不会乱七八糟,目前所知道的知名项目(如 Vue 、 Vite 、 React 等)和大厂团队(谷歌、微软、阿里、腾讯等)都在使用 Prettier 格式化代码。

      通过脚手架创建的项目很多都内置了 Prettier 功能集成(例如 Create Preset ,参考了主流的格式化规范,比如 2 个空格的缩进、无需写分号结尾、数组 / 对象每一项都带有尾逗号等等)。

      如果需要手动增加功能支持,请在项目根目录下创建一个名为 .prettierrc 的文件,写入以下内容:

      json
      {
      +  "semi": false,
      +  "singleQuote": true
      +}

      这代表 JavaScript / TypeScript 代码一般情况下不需要加 ; 分号结尾,然后使用 '' 单引号来定义字符串等变量。

      这里只需要写入与默认配置不同的选项即可,如果和默认配置一致,可以省略,完整的配置选项以及默认值可以在 Prettier 官网的 Options Docs 查看。

      配合 VSCode 的 VSCode Prettier 扩展,可以在编辑器里使用该规则格式化文件(此时无需在项目下安装 Prettier 依赖)。

      如果开启了 ESLint ,配合 ESLint 的代码提示,可以更方便的体验格式化排版,详见 ESLint 一节的说明。

      TIP

      配合 VSCode Prettier 扩展 ,这份配置直接在 VSCode 里生效,如果配合 ESLint 使用,需要安装 Prettier 依赖。

      ESLint

      ESLint 是一个查找 JavaScript / TypeScript 代码问题并提供修复建议的工具,换句话说就是可以约束的代码不会写出一堆 BUG ,它是代码健壮性的重要保障。

      虽然大部分前端开发者都不愿意接受这些约束(当年笔者入坑的时候也是),但说实话,经过 ESLint 检查过的代码质量真的高了很多,如果不愿意总是做一个游兵散勇,建议努力让自己习惯被 ESLint 检查,大厂和大项目都是有 ESLint 检查的。

      特别是写 TypeScript ,配合 ESLint 的检查实在太爽了(字面意思,真的很舒服)。

      通过脚手架创建的项目通常都会帮配置好 ESLint 规则,如果有一些项目是一开始没有,后面想增加 ESLint 检查,也可以手动配置具体规则。

      这里以一个 Vite + TypeScript + Prettier 的 Vue 3 项目为例,在项目根目录下创建一个名为 .eslintrc.js 文件,写入以下内容:

      js
      module.exports = {
      +  root: true,
      +  env: {
      +    node: true,
      +    browser: true,
      +  },
      +  extends: ['plugin:vue/vue3-essential', 'eslint:recommended', 'prettier'],
      +  parser: 'vue-eslint-parser',
      +  parserOptions: {
      +    parser: '@typescript-eslint/parser',
      +    ecmaVersion: 2020,
      +    sourceType: 'module',
      +  },
      +  plugins: ['@typescript-eslint', 'prettier'],
      +  rules: {
      +    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
      +    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
      +    'prettier/prettier': 'warn',
      +    'vue/multi-word-component-names': 'off',
      +  },
      +  globals: {
      +    defineProps: 'readonly',
      +    defineEmits: 'readonly',
      +    defineExpose: 'readonly',
      +    withDefaults: 'readonly',
      +  },
      +}

      然后安装对应的依赖(记得添加 -D 参数添加到 devDependencies ,因为都是开发环境下使用的):

      这样就可以在项目中生效了(如果 VSCode 未能立即生效,重启编辑器即可),一旦代码有问题, ESLint 就会帮检查出来并反馈具体的报错原因,久而久之的代码就会越写越规范。

      更多的选项可以在 ESLint 官网的 Configuring ESLint 查阅。

      如果有一些文件需要排除检查,可以再创建一个 .eslintignore 文件在项目根目录下,里面添加要排除的文件或者文件夹名称:

      txt
      dist/*

      更多的排除规则可以在 ESLint 官网的 The .eslintignore File 一文查阅。

      安装 VSCode

      要问现在前端工程师用的最多的代码编辑器是哪个,肯定是 Visual Studio Code 了!

      与其他的编辑器相比,有这些优点:

      • 背靠 Microsoft ,完全免费并且开源,开箱即用
      • 可以通过简单的配置调整来满足之前在其他编辑器上的习惯( e.g. Sublime Text )
      • 轻量级但功能强大,内置了对 JavaScript、TypeScript 和 Node.js 的支持,
      • 丰富的插件生态,可以根据的需要,安装提高编码效率的功能支持,以及其他的语言扩展
      • 智能的代码补全、类型推导、代码检查提示、批量编辑、引用跳转、比对文件等功能支持
      • 登录的 GitHub 账号即可实现配置自动同步,在其他电脑上直接使用的最习惯配置和插件

      当然,还有非常多优点可自行体验!

      点击下载:Visual Studio Code

      一般情况下开箱即用,无门槛,也可以阅读官方文档了解一些个性化的配置。

      点击查看:VSCode 操作文档

      添加 VSCode 插件

      VSCode 本身是轻量级的,也就是只提供最基础的功能,更优秀的体验或者个性化体验,是需要通过插件来启用的。

      这里推荐几个非常舒服的 VSCode 插件,可以通过插件中心安装,也可以通过官方应用市场下载。

      Chinese (Simplified)

      VSCode 安装后默认是英文本,需要自己进行汉化配置, VSCode 的特色就是插件化处理各种功能,语言方面也一样。

      安装该插件并启用,即可让 VSCode 显示为简体中文。

      点击下载:Chinese (Simplified)

      Volar

      Vue 官方推荐的 VSCode 扩展,用以代替 Vue 2 时代的 Vetur ,提供了 Vue 3 的语言支持、 TypeScript 支持、基于 vue-tsc 的类型检查等功能。

      点击下载:Volar

      TIP

      Volar 取代了 Vetur 作为 Vue 3 的官方扩展,如果之前已经安装了 Vetur ,请确保在 Vue 3 的项目中禁用它。

      Vue VSCode Snippets

      从实际使用 Vue 的角度提供 Vue 代码片段的生成,可以通过简单的命令,在 .vue 文件里实现大篇幅的代码片段生成,例如:

      1. 输入 ts 可以快速创建一个包含了 template + script + style 的 Vue 组件模板(可选 2.x 、3.x 以及 class 风格的模板)

      2. 也可以通过输入带有 v3 开头的指令来快速生成 Vue 3 的 API 。

      下面是输入了 ts 两个字母之后,用箭头选择 vbase-3-ts 自动生成的一个模板片段,在开发过程中非常省事:

      vue
      <template>
      +  <div></div>
      +</template>
      +
      +<script lang="ts">
      +import { defineComponent } from 'vue'
      +
      +export default defineComponent({
      +  setup() {
      +    return {}
      +  },
      +})
      +</script>
      +
      +<style scoped></style>

      点击下载:Vue VSCode Snippets

      Auto Close Tag

      可以快速完成 HTML 标签的闭合,除非通过 .jsx / .tsx 文件编写 Vue 组件,否则在 .vue 文件里写 template 的时候肯定用得上。

      点击下载:Auto Close Tag

      Auto Rename Tag

      假如要把 div 修改为 section,不需要再把 <div> 然后找到代码尾部的 </div> 才能修改,只需要选中前面或后面的半个标签直接修改,插件会自动把闭合部分也同步修改,对于篇幅比较长的代码调整非常有帮助。

      点击下载:Auto Rename Tag

      EditorConfig for VSCode

      一个可以让编辑器遵守协作规范的插件,详见 添加协作规范

      点击下载:EditorConfig for VSCode

      Prettier for VSCode

      这是 Prettier 在 VSCode 的一个扩展,不论项目有没有安装 Pretter 依赖,安装该扩展之后,单纯在 VSCode 也可以使用 Pretter 进行代码格式化。

      点击下载:Prettier - Code formatter

      点击访问:Prettier 官网 了解更多配置。

      ESLint for VSCode

      这是 ESLint 在 VSCode 的一个扩展, TypeScript 项目基本都开了 ESLint ,编辑器也建议安装该扩展支持以便获得更好的代码提示。

      点击下载:VSCode ESLint

      点击访问:ESLint 官网 了解更多配置。

      其他插件

      其他的比如预处理器相关的,Git 相关的,可以根据自己的需求在 VSCode 的插件市场 里搜索安装。

      项目初始化

      至此,通过脚手架已经搭好了一个可直接运行的基础项目,已经可以正常的 npm run devnpm run build 了(具体命令取决于的项目 脚本命令的配置 ),项目配置和编辑器也都弄好了,是不是可以开始写代码了呢?

      请不要着急,还需要了解一点东西,就是如何初始化一个 Vue 3 项目。

      因为在实际开发过程中,还会用到各种 npm 包,像很多 UI 框架、功能插件的引入都是需要在 Vue 初始化阶段处理。

      甚至有时候还要脱离脚手架,采用 CDN 引入的方式来开发,所以开始写组件之前,还需要了解一下在 Vue 3 项目中,初始化阶段对比 Vue 2 的一些变化。

      入口文件

      项目的初始化都是在入口文件集中处理,Vue 3 的目录结构对比 Vue 2 没有变化,入口文件依然还是 main.ts 这个文件。

      但是 Vue 3 在初始化的时候,做了不少的调整,代码写法和 Vue 2 是完全不同,但是对于这次大改动,笔者认为是好的,因为统一了相关生态的启用方式,不再像 Vue 2 时期那样多方式共存,显得比较杂乱。

      回顾 Vue 2

      Vue 2 在导入各种依赖之后,通过 new Vue() 执行 Vue 的初始化,相关的 Vue 生态和插件,有的是使用 Vue.use() 来进行初始化,有的是作为 new Vue() 的入参:

      ts
      import Vue from 'vue'
      +import App from './App.vue'
      +import router from './router'
      +import store from './store'
      +import pluginA from 'pluginA'
      +import pluginB from 'pluginB'
      +import pluginC from 'pluginC'
      +
      +// 使用了 `use` 方法激活
      +Vue.use(pluginA)
      +Vue.use(pluginB)
      +Vue.use(pluginC)
      +
      +Vue.config.productionTip = false
      +
      +// 作为 `new Vue()` 的入参激活
      +new Vue({
      +  router,
      +  store,
      +  render: (h) => h(App),
      +}).$mount('#app')

      了解 Vue 3 ~new

      在 Vue 3 ,使用 createApp 执行 Vue 的初始化,另外不管是 Vue 生态里的东西,还是外部插件、 UI 框架,统一都是由 use() 进行激活,非常统一和简洁:

      ts
      import { createApp } from 'vue'
      +import App from './App.vue'
      +import router from './router'
      +import store from './store'
      +import pluginA from 'pluginA'
      +import pluginB from 'pluginB'
      +import pluginC from 'pluginC'
      +
      +createApp(App)
      +  .use(store)
      +  .use(router)
      +  .use(pluginA)
      +  .use(pluginB)
      +  .use(pluginC)
      +  .mount('#app')

      Vue Devtools

      Vue Devtools 是一个浏览器扩展,支持 Chrome 、 Firefox 等浏览器,需要先安装才能使用。

      点击安装:Vue Devtools 的浏览器扩展

      当在 Vue 项目通过 npm run dev 等命令启动开发环境服务后,访问本地页面(如: http://localhost:3000/ ),在页面上按 F12 唤起浏览器的控制台,会发现多了一个名为 vue 的面板。

      面板的顶部有一个菜单可以切换不同的选项卡,菜单数量会根据不同项目有所不同,例如没有安装 Pinia 则不会出现 Pinia 选项卡,这里以其中一部分选项卡作为举例。

      Components 是以结构化的方式显示组件的调试信息,可以查看组件的父子关系,并检查组件的各种内部状态:

      Routes 可以查看当前所在路由的配置信息:

      Timeline 是以时间线的方式追踪不同类型的数据,例如事件:

      Pinia 是可以查看当前组件引入的全局状态情况:

      可以在 Vue Devtools 官网 了解更多的用法。

      Released under the MIT License.

      + + + + \ No newline at end of file

    ZW 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�zBE;A6`RoYnYVbGchb9$^iIU2 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 literal 0 HcmV?d00001 diff --git a/assets/inter-roman-vietnamese.14ce25a6.woff2 b/assets/inter-roman-vietnamese.14ce25a6.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5a9f9cb9ca0cd78b6ea2f3e5c9d2838dc8895598 GIT binary patch literal 8492 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 a!Vc~9U7SGB8$q3Ii#9CnAx#qS0RRAsKuhfa literal 0 HcmV?d00001 diff --git a/assets/links.md.d1aafe6b.js b/assets/links.md.d1aafe6b.js new file mode 100644 index 00000000..523b7739 --- /dev/null +++ b/assets/links.md.d1aafe6b.js @@ -0,0 +1,8 @@ +/** + * name: learning-vue3 + * version: v2.0.0 + * description: A starting learning tutorial on Vue 3.0 + TypeScript, suitable for complete Vue novices and Vue 2.0 veterans, incorporating some of my own practical experience on the basis of official documents. + * author: chengpeiquan + * homepage: https://vue3.chengpeiquan.com + */ +import{_ as n,v as l,b as o,t as e,O as i,R as s,M as t}from"./chunks/framework.0d8bea05.js";const y=JSON.parse('{"title":"常用文档","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"links.md","filePath":"links.md"}'),p={name:"links.md"},h=s('

    dBB0qnSKu#(4LXE0dX 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 literal 0 HcmV?d00001 diff --git a/assets/img/seo-spa-page-code-dark.jpg b/assets/img/seo-spa-page-code-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a76c1a1460ed50d933a343761af87fb19b6fd9f GIT binary patch literal 113179 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 literal 0 HcmV?d00001 diff --git a/assets/img/seo-spa-page-code.jpg b/assets/img/seo-spa-page-code.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d345d779b4d4cf99a2d38020acf23f7c2ee5a0bc GIT binary patch literal 76386 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

  • 39oTla5h2*-Y8k4w?CywHk40ixqYU9u@k?^QBm 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 literal 0 HcmV?d00001 diff --git a/assets/img/github-top-languages.jpg b/assets/img/github-top-languages.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab976d61ee9b5ae668482e686044d36ea46e888e GIT binary patch literal 63529 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±LB1F)JIPie5-Y`JPggWlf9+ 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≪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