PageSourceSearch

https://jaren-blog.vercel.app/assets/js/9d9d7297.b1f5398d.js

js jaren-blog.vercel.app collected 2026-10-03 07:09:29 UTC 4,278 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkjaren_blog=self.webpackChunkjaren_blog||[]).push([[9904],{5296:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"frontend_architecture/fa1","title":"Building Resilient Frontend Architecture \u91cd\u9ede\u6458\u8981","description":"Building Resilient Frontend Architecture \u91cd\u9ede\u6458\u8981","source":"@site/docs/frontend_architecture/fa1.md","sourceDirName":"frontend_architecture","slug":"/frontend_architecture/fa1","permalink":"/docs/frontend_architecture/fa1","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Building Resilient Frontend Architecture \u91cd\u9ede\u6458\u8981","description":"Building Resilient Frontend Architecture \u91cd\u9ede\u6458\u8981","keywords":["frontend architecture"]},"sidebar":"tutorialSidebar","previous":{"title":"Frontend Architecture","permalink":"/docs/category/frontend-architecture"}}');var i=t(4848),c=t(8453);const s={title:"Building Resilient Frontend Architecture \u91cd\u9ede\u6458\u8981",description:"Building Resilient Frontend Architecture \u91cd\u9ede\u6458\u8981",keywords:["frontend architecture"]},o=void 0,d={},l=[{value:"\u66f4\u76f4\u63a5\u7684\u6a94\u6848\u67b6\u69cb",id:"\u66f4\u76f4\u63a5\u7684\u6a94\u6848\u67b6\u69cb",level:2},{value:"\u66f4\u4fdd\u5b88\u7684\u770b\u5f85\u91cd\u8907\u4f7f\u7528",id:"\u66f4\u4fdd\u5b88\u7684\u770b\u5f85\u91cd\u8907\u4f7f\u7528",level:2},{value:"\u5f37\u5316 Codebase \u7684\u908a\u754c",id:"\u5f37\u5316-codebase-\u7684\u908a\u754c",level:2}];function a(e){const n={a:"a",blockquote:"blockquote",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,c.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["\u5f71\u7247\u9023\u7d50: ",(0,i.jsx)(n.a,{href:"https://www.youtube.com/watch?v=TqfbAXCCVwE",children:"Building Resilient Frontend Architecture \u2022 Monica Lent \u2022 GOTO 2019"})]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://hackmd.io/_uploads/ryYUzdl66.png",alt:"image"})}),"\n",(0,i.jsx)(n.h2,{id:"\u66f4\u76f4\u63a5\u7684\u6a94\u6848\u67b6\u69cb",children:"\u66f4\u76f4\u63a5\u7684\u6a94\u6848\u67b6\u69cb"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://hackmd.io/_uploads/BJVQZdxTp.png",alt:"image"})}),"\n",(0,i.jsx)(n.h2,{id:"\u66f4\u4fdd\u5b88\u7684\u770b\u5f85\u91cd\u8907\u4f7f\u7528",children:"\u66f4\u4fdd\u5b88\u7684\u770b\u5f85\u91cd\u8907\u4f7f\u7528"}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Decoupled (\u89e3\u8026\u7684) > DRY (Don't Repeat Yourself)"})}),"\n"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u6240\u8b02\u7684\u8026\u5408\u662f\u6307\u5169\u6bb5\u7a0b\u5f0f\u78bc (\u6216\u5169\u500b\u6a21\u7d44) \u76f8\u4e92\u6709\u95dc\u4fc2\uff0c\u5c31\u50cf\u4f34\u4fb6\u4e00\u6a23\uff0c\u8026\u5408\u6027\u8d8a\u9ad8\u5c31\u9ecf\u5f97\u8d8a\u7dca\u3002\u4f46\u662f\u9ecf\u5f97\u7dca\uff0c\u5c31\u6703\u8b93\u7a0b\u5f0f\u6a21\u7d44\u6bd4\u8f03\u96e3\u88ab\u91cd\u8907\u4f7f\u7528\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u89e3\u8026\u5c31\u662f\u628a\u8026\u5408\u5728\u4e00\u8d77\u7684\u6771\u897f\u62c6\u958b\u3002"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u5f37\u5316-codebase-\u7684\u908a\u754c",children:"\u5f37\u5316 Codebase \u7684\u908a\u754c"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://hackmd.io/_uploads/ryjcW_epp.png",alt:"image"})}),"\n",(0,i.jsx)(n.p,{children:"Forbidden Dependencies Tests"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://hackmd.io/_uploads/r1ocG_e66.png",alt:"image"})})]})}function u(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var r=t(6540);const i={},c=r.createContext(i);function s(e){const n=r.useContext(c);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(c.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.