Commit 7eb07eca by 无尘

feat: 增加文档

parent 60d06471
...@@ -24,6 +24,7 @@ module.exports = { ...@@ -24,6 +24,7 @@ module.exports = {
themeConfig: { themeConfig: {
nav: [ nav: [
{ text: "主页", link: "/" }, { text: "主页", link: "/" },
{ text: "前端规范", link: "/frontend/" },
{ text: "好办项目", link: "/haoban/" }, { text: "好办项目", link: "/haoban/" },
{ text: "简介", link: "/guide/" }, { text: "简介", link: "/guide/" },
{ text: "关于", link: "/about/" }, { text: "关于", link: "/about/" },
......
...@@ -18,5 +18,14 @@ module.exports = { ...@@ -18,5 +18,14 @@ module.exports = {
'1.haoban2.0', '1.haoban2.0',
'2.haoban3.0', '2.haoban3.0',
'3.haoban4.0', '3.haoban4.0',
] ],
'/frontend/': [
'',
'css',
'JavaScript',
'editorconfig',
'git',
'update',
'vue'
],
}; };
\ No newline at end of file
...@@ -8,13 +8,13 @@ ...@@ -8,13 +8,13 @@
<link rel="icon" href="/front-vuepress/favicon.ico"> <link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库"> <meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.247a3952.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.5bcad825.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/6.706caab8.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.547ecaa9.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.6244719b.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.6a7e13a1.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.1815b13d.js"><link rel="prefetch" href="/front-vuepress/assets/js/2.45b9916f.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.6391a0d0.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.77a548c8.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.7964fd10.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.43b9788c.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.68c73906.js"> <link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/6.706caab8.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/2.45b9916f.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.247a3952.css"> <link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head> </head>
<body> <body>
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>Looks like we've got some broken links.</blockquote> <a href="/front-vuepress/" class="router-link-active"> <div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>There's nothing here.</blockquote> <a href="/front-vuepress/" class="router-link-active">
Take me home. Take me home.
</a></div></div><div class="global-ui"></div></div> </a></div></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.5bcad825.js" defer></script><script src="/front-vuepress/assets/js/6.706caab8.js" defer></script> <script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/6.706caab8.js" defer></script>
</body> </body>
</html> </html>
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
<link rel="icon" href="/front-vuepress/favicon.ico"> <link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库"> <meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.247a3952.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.5bcad825.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/8.43b9788c.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.547ecaa9.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.6244719b.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.6a7e13a1.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.1815b13d.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.6391a0d0.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.77a548c8.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.7964fd10.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.68c73906.js"> <link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/8.27f906d5.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.247a3952.css"> <link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head> </head>
<body> <body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -22,6 +24,8 @@ ...@@ -22,6 +24,8 @@
关于 关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> </a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -29,6 +33,6 @@ ...@@ -29,6 +33,6 @@
</a></div><div class="nav-item"><a href="/front-vuepress/about/" aria-current="page" class="nav-link router-link-exact-active router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/about/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
关于 关于
</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/front-vuepress/about/" aria-current="page" class="active sidebar-link">文档简介</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/front-vuepress/about/#参考" class="sidebar-link">参考</a></li></ul></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="文档简介"><a href="#文档简介" class="header-anchor">#</a> 文档简介</h1> <p>VuePress 由两部分组成:第一部分是一个极简静态网站生成器 (opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。</p> <p>每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用(SPA),其他的页面则会只在用户浏览到的时候才按需加载。</p> <h2 id="参考"><a href="#参考" class="header-anchor">#</a> 参考</h2> <ul><li><a href="https://www.vuepress.cn/guide/" target="_blank" rel="noopener noreferrer">vuepress<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div> </a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/front-vuepress/about/" aria-current="page" class="active sidebar-link">文档简介</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/front-vuepress/about/#参考" class="sidebar-link">参考</a></li></ul></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="文档简介"><a href="#文档简介" class="header-anchor">#</a> 文档简介</h1> <p>VuePress 由两部分组成:第一部分是一个极简静态网站生成器 (opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。</p> <p>每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用(SPA),其他的页面则会只在用户浏览到的时候才按需加载。</p> <h2 id="参考"><a href="#参考" class="header-anchor">#</a> 参考</h2> <ul><li><a href="https://www.vuepress.cn/guide/" target="_blank" rel="noopener noreferrer">vuepress<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.5bcad825.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/8.43b9788c.js" defer></script> <script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/8.27f906d5.js" defer></script>
</body> </body>
</html> </html>
(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{366:function(t,s,e){"use strict";e.r(s);var i=e(42),n=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"前端开发规范"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#前端开发规范"}},[this._v("#")]),this._v(" 前端开发规范")]),this._v(" "),s("blockquote",[s("p",[this._v("规范的目的是为了编写高质量的代码,让团队成员每天得心情都是愉悦的,大家在一起是快乐的。")])]),this._v(" "),s("blockquote",[s("p",[this._v("记录前端开发中代码规范")])])])}),[],!1,null,null,null);s.default=n.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{368:function(s,n,a){"use strict";a.r(n);var t=a(42),e=Object(t.a)({},(function(){var s=this,n=s.$createElement,a=s._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"css-规范"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#css-规范"}},[s._v("#")]),s._v(" CSS 规范")]),s._v(" "),a("blockquote",[a("p",[s._v("element-ui 里面的index.css 改过一些样式 所以新拉的项目要记得覆盖index.css")])]),s._v(" "),a("h2",{attrs:{id:"_1-css的书写顺序"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1-css的书写顺序"}},[s._v("#")]),s._v(" 1.CSS的书写顺序")]),s._v(" "),a("p",[s._v("结构性属性:\ndisplay,position, left, top, right float,margin, padding....\n表现性属性:\nbackground, border font...")]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v("\x3c!-- display 放在最前面 --\x3e\ndisplay:block;\n\x3c!-- position --\x3e\nposition: relative;\n\x3c!-- position 进行定位的属性 --\x3e\ntop: 100px;\n\x3c!-- 宽高 --\x3e\nwidth: 100px;\nline-height: 20px;\n\x3c!-- margin padding --\x3e\nmargin: 10px;\npadding: 10px;\n\x3c!-- font --\x3e\nfont-size: 20px;\nfont-weight: 700;\n\x3c!-- border --\x3e\nborder: 1px solid red;\nborder-radius: 4px;\n\x3c!-- background --\x3e\nbackground-color: pink;\n\x3c!-- z-index --\x3e\nz-index: 10;\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br")])]),a("h2",{attrs:{id:"_2-bem-命名"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-bem-命名"}},[s._v("#")]),s._v(" 2.BEM 命名")]),s._v(" "),a("p",[s._v("BEM代表块(Block),元素(Element),修饰符(Modifier)。\n"),a("a",{attrs:{href:"https://blog.csdn.net/love_lovelove/article/details/79462952",target:"_blank",rel:"noopener noreferrer"}},[s._v("BEM介绍"),a("OutboundLink")],1),s._v("\n组件库的通用组件强制要求使用BEM")]),s._v(" "),a("h2",{attrs:{id:"_3-css规范"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_3-css规范"}},[s._v("#")]),s._v(" 3.css规范")]),s._v(" "),a("ol",[a("li",[s._v("id 驼峰 PageOne")]),s._v(" "),a("li",[s._v('class 以"-"间隔 page-one')]),s._v(" "),a("li",[s._v("尽量避免把标签作为选择器")]),s._v(" "),a("li",[s._v("选择器尽可能的精确,避免出现中文拼音类名")]),s._v(" "),a("li",[s._v("减少使用ID作为选择器")]),s._v(" "),a("li",[s._v("避免使用!important")]),s._v(" "),a("li",[s._v("在css中注释要表明,分模块来标明,比如头部用/"),a("em",[a("strong",[a("strong",[s._v("头部start")])])]),s._v("/和/"),a("em",[a("strong",[a("strong",[s._v("头部end")])])]),s._v("/,目的是便于修改样式时进行查找。同样的js 也要以事件源发生的事件进行命名。")]),s._v(" "),a("li",[s._v("禁止在html文件使用"),a("code",[s._v("<style></style>")])]),s._v(" "),a("li",[s._v("名称首单词要与插件或者模块相关,例如时间插件:.date-(单词)")]),s._v(" "),a("li",[s._v("缩写属性")])]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v("//不推荐\nfont-family: palatino, georgia, serif;\nfont-size: 100%;\nline-height: 1.6;\n//推荐\nfont: 100%/1.6 palatino, georgia, serif;\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])]),a("ol",{attrs:{start:"11"}},[a("li",[s._v("兼容多个浏览器时,将标准属性写在底部。\n-moz-border-radius: 15px; /* Firefox "),a("em",[s._v("/\n-webkit-border-radius: 15px; /")]),s._v(" Safari和Chrome "),a("em",[s._v("/\nborder-radius: 15px; /")]),s._v(" Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 *//标准属性")]),s._v(" "),a("li",[s._v("css文件 一个样式一行")])]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v("// 不推荐\n.gic-btn {font-size:15px;}\n// 推荐\n.gic-btn\n{\n\tfont-size:15px;\n}\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br")])]),a("ol",{attrs:{start:"12"}},[a("li",[s._v("css每一个样式都需要“;”结尾,后期压缩css需要断句,例如:")])]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v(".btn \n{\n\tfont-size:14px;//结尾\n}\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])]),a("ol",{attrs:{start:"13"}},[a("li",[s._v("尽量css 路径,但路径不宜过长 3层内为宜")])]),s._v(" "),a("h2",{attrs:{id:"html文件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#html文件"}},[s._v("#")]),s._v(" html文件")]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v('<form class="gic-form">\n\t<dl class="gic-group">\n\t\t<dd class="gic-input">\n\t\t\t<label>\n\t\t\t\t<span>名称:</span>\n\t\t\t\t<span><input type="text" value="" /></input></span>\n\t\t\t</lable>\n\t\t</dd>\n\t</dl>\n</form>\n')])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br")])]),a("h2",{attrs:{id:"css文件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#css文件"}},[s._v("#")]),s._v(" css文件")]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v("/**表单模块**/\n.gic-form\n{\n\tdisplay:block;\n\tfont-size:16px;\n}\n.gic-form .gic-input \n{\n\tdisplay:block;\n}\n.gic-form .gic-input span\n{\n\t\n}\n/**表单模块end**/\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br")])])])}),[],!1,null,null,null);n.default=e.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{365:function(n,s,e){"use strict";e.r(s);var a=e(42),t=Object(a.a)({},(function(){var n=this,s=n.$createElement,e=n._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"editorconfig"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#editorconfig"}},[n._v("#")]),n._v(" editorconfig")]),n._v(" "),e("h2",{attrs:{id:"_1-了解"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_1-了解"}},[n._v("#")]),n._v(" 1.了解")]),n._v(" "),e("hr"),n._v(" "),e("ul",[e("li",[e("p",[n._v("【通配符】")]),n._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v("* 匹配除/之外的任意字符串\n** 匹配任意字符串\n? 匹配任意单个字符\n[name] 匹配name中的任意一个单一字符\n[!name] 匹配不存在name中的任意一个单一字符\n{s1,s2,s3} 匹配给定的字符串中的任意一个(用逗号分隔) \n{num1..num2}  匹配num1到num2之间的任意一个整数, 这里的num1和num2可以为正整数也可以为负整数\n")])]),n._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[n._v("1")]),e("br"),e("span",{staticClass:"line-number"},[n._v("2")]),e("br"),e("span",{staticClass:"line-number"},[n._v("3")]),e("br"),e("span",{staticClass:"line-number"},[n._v("4")]),e("br"),e("span",{staticClass:"line-number"},[n._v("5")]),e("br"),e("span",{staticClass:"line-number"},[n._v("6")]),e("br"),e("span",{staticClass:"line-number"},[n._v("7")]),e("br")])])]),n._v(" "),e("li",[e("p",[n._v("各个属性")]),n._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v("indent_style 设置缩进风格(tab是硬缩进,space为软缩进)\nindent_size 用一个整数定义的列数来设置缩进的宽度,如果indent_style为tab,则此属性默认为 tab_width\ntab_width 用一个整数来设置tab缩进的列数。默认是indent_size\nend_of_line 设置换行符,值为lf、cr和crlf\ncharset 设置编码,值为latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建议使用utf-8-bom\ntrim_trailing_whitespace 设为true表示会去除换行行首的任意空白字符。\ninsert_final_newline 设为true表示使文件以一个空白行结尾\nroot    表示是最顶层的配置文件,发现设为true时,才会停止查找.editorconfig文件 \n")])]),n._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[n._v("1")]),e("br"),e("span",{staticClass:"line-number"},[n._v("2")]),e("br"),e("span",{staticClass:"line-number"},[n._v("3")]),e("br"),e("span",{staticClass:"line-number"},[n._v("4")]),e("br"),e("span",{staticClass:"line-number"},[n._v("5")]),e("br"),e("span",{staticClass:"line-number"},[n._v("6")]),e("br"),e("span",{staticClass:"line-number"},[n._v("7")]),e("br"),e("span",{staticClass:"line-number"},[n._v("8")]),e("br")])])])]),n._v(" "),e("h2",{attrs:{id:"_2-使用"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_2-使用"}},[n._v("#")]),n._v(" 2.使用")]),n._v(" "),e("hr"),n._v(" "),e("blockquote"),n._v(" "),e("p",[n._v("有些编辑器则需要安装editorConfig插件,如ATOM、Sublime、VS Code等")]),n._v(" "),e("ul",[e("li",[e("p",[n._v("项目目录创建 "),e("code",[n._v(".editorconfig")]),n._v(" 文件")]),n._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v("$ touch .editorconfig\n")])]),n._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[n._v("1")]),e("br")])])]),n._v(" "),e("li",[e("p",[e("code",[n._v(".editorconfig")]),n._v(" 常用内容设置:")])])]),n._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v("# editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\nend_of_line = lf\ntrim_trailing_whitespace = true\ninsert_final_newline = true\ntab_width = 2\n\n[*.md]\ntrim_trailing_whitespace = false\n\n[Makefile]\nindent_style = tab\n")])]),n._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[n._v("1")]),e("br"),e("span",{staticClass:"line-number"},[n._v("2")]),e("br"),e("span",{staticClass:"line-number"},[n._v("3")]),e("br"),e("span",{staticClass:"line-number"},[n._v("4")]),e("br"),e("span",{staticClass:"line-number"},[n._v("5")]),e("br"),e("span",{staticClass:"line-number"},[n._v("6")]),e("br"),e("span",{staticClass:"line-number"},[n._v("7")]),e("br"),e("span",{staticClass:"line-number"},[n._v("8")]),e("br"),e("span",{staticClass:"line-number"},[n._v("9")]),e("br"),e("span",{staticClass:"line-number"},[n._v("10")]),e("br"),e("span",{staticClass:"line-number"},[n._v("11")]),e("br"),e("span",{staticClass:"line-number"},[n._v("12")]),e("br"),e("span",{staticClass:"line-number"},[n._v("13")]),e("br"),e("span",{staticClass:"line-number"},[n._v("14")]),e("br"),e("span",{staticClass:"line-number"},[n._v("15")]),e("br"),e("span",{staticClass:"line-number"},[n._v("16")]),e("br"),e("span",{staticClass:"line-number"},[n._v("17")]),e("br")])])])}),[],!1,null,null,null);s.default=t.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{367:function(s,t,a){"use strict";a.r(t);var e=a(42),n=Object(e.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"git-分支管理"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#git-分支管理"}},[s._v("#")]),s._v(" git 分支管理")]),s._v(" "),a("h2",{attrs:{id:"git-分支及操作规范"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#git-分支及操作规范"}},[s._v("#")]),s._v(" git 分支及操作规范")]),s._v(" "),a("ul",[a("li",[s._v("master:主分支,稳定分支,必须保证随时可用于发布")]),s._v(" "),a("li",[s._v("release:预发布分支,如果有此分支,需将分支合并至release解决了冲突后,再将release合到master")]),s._v(" "),a("li",[s._v("dev:开发分支,仅用来发布更新测试环境,需定期将master分支合并至此")]),s._v(" "),a("li",[s._v("feature/xxx(迭代结束或上线时间,如200901,20年9月1日):功能开发分支,须从master分支上开出此分支,开发期间需定期合并master至此,测试时合并至dev更新到测试环境,测试完成后将该分支合并至master,然后删除分支")]),s._v(" "),a("li",[s._v("bugfix:线上bug修复分支,每次修改前需将master合并至此,测试时合并至dev测试,测试完成后再合并至master发布上线")])]),s._v(" "),a("h2",{attrs:{id:"git-log-规范"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#git-log-规范"}},[s._v("#")]),s._v(" git log 规范")]),s._v(" "),a("p",[s._v("建议:")]),s._v(" "),a("ul",[a("li",[s._v("格式:")])]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v("- type: <subject>\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("ul",[a("li",[s._v("type: 说明本次 "),a("code",[s._v("commit")]),s._v(" 的类别")])]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v("add(feat): 增加\n\nupdate: 更新\n\nfix: 修复bug\n\nstyle: 样式调整\n\ntest: 增加测试\n\ndocs: 编写文档\n\nchore:构建过程或辅助工具的变动\n\nrefactor:重构(即不是新增功能,也不是修改bug的代码变动)\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br")])]),a("ul",[a("li",[s._v("subject: "),a("code",[s._v("commit")]),s._v(" 的简短描述")])])])}),[],!1,null,null,null);t.default=n.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{370:function(t,_,r){"use strict";r.r(_);var v=r(42),a=Object(v.a)({},(function(){var t=this,_=t.$createElement,r=t._self._c||_;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"前端升级规范"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#前端升级规范"}},[t._v("#")]),t._v(" 前端升级规范")]),t._v(" "),r("h2",{attrs:{id:"一、什么时间升级"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#一、什么时间升级"}},[t._v("#")]),t._v(" 一、什么时间升级?")]),t._v(" "),r("p",[t._v("● 每周四为各平台前端需求(不涉及后端的纯前端需求)的上线日。")]),t._v(" "),r("p",[t._v("● 优先级:临时的紧急上线 > 随业务组上线 > 周四上线\n"),r("br")]),t._v(" "),r("h2",{attrs:{id:"二、谁来操作升级"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#二、谁来操作升级"}},[t._v("#")]),t._v(" 二、谁来操作升级?")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("~版本")]),t._v(" "),r("th",[t._v("~平台")]),t._v(" "),r("th",[t._v("~ 操作人 ")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("3.0")]),t._v(" "),r("td",[t._v("全部平台")]),t._v(" "),r("td",[t._v("石瑶")])]),t._v(" "),r("tr",[r("td",[t._v("4.0")]),t._v(" "),r("td",[t._v("基础平台(包含运维平台)、移动平台")]),t._v(" "),r("td",[t._v("砂砾")])]),t._v(" "),r("tr",[r("td",[t._v("4.0")]),t._v(" "),r("td",[t._v("业务平台")]),t._v(" "),r("td",[t._v("叮当")])])])]),t._v(" "),r("br"),t._v(" "),r("h2",{attrs:{id:"三、原则"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#三、原则"}},[t._v("#")]),t._v(" 三、原则")]),t._v(" "),r("p",[t._v("上线前、后,均需要经过测试负责人测试。\n"),r("br")]),t._v(" "),r("h2",{attrs:{id:"四、升级通知"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#四、升级通知"}},[t._v("#")]),t._v(" 四、升级通知")]),t._v(" "),r("p",[t._v("● 只要有上线,就要发送"),r("a",{attrs:{href:"https://www.tapd.cn/33025272/documents/show/1133025272001004205",target:"_blank",rel:"noopener noreferrer"}},[t._v("《迭代升级说明》"),r("OutboundLink")],1),t._v("给相关人员,并抄送sj@demogic.com<升级通知组>。")]),t._v(" "),r("p",[t._v("● 由操作升级的人员发出邮件。")])])}),[],!1,null,null,null);_.default=a.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{371:function(e,a,s){"use strict";s.r(a);var t=s(42),n=Object(t.a)({},(function(){var e=this,a=e.$createElement,s=e._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"vue-项目"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#vue-项目"}},[e._v("#")]),e._v(" vue 项目")]),e._v(" "),s("h2",{attrs:{id:"生命周期"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#生命周期"}},[e._v("#")]),e._v(" 生命周期")]),e._v(" "),s("ol",[s("li",[e._v("不在 mounted、created 之类的方法写逻辑,取 ajax 数据,")]),e._v(" "),s("li",[e._v("在 created 里面监听 Bus 事件")])]),e._v(" "),s("h2",{attrs:{id:"vue方法放置顺序"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#vue方法放置顺序"}},[e._v("#")]),e._v(" vue方法放置顺序")]),e._v(" "),s("p",[s("code",[e._v("name->components ->props ->data ->beforeCreate->created ->beforeMount ->mounted->activited ->beforeUpdate->updated->beforeDestroy->destroyed->beforeRouteEnter->beforeRouteUpdate->beforeRouteLeave->metods->filter->computed ->watch")])]),e._v(" "),s("h2",{attrs:{id:"method-自定义方法命名-建议"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#method-自定义方法命名-建议"}},[e._v("#")]),e._v(" method 自定义方法命名(建议)")]),e._v(" "),s("ol",[s("li",[e._v("动宾短语(good:jumpPage、openCarInfoDialog)(bad:go、nextPage、show、open、login)")]),e._v(" "),s("li",[e._v("ajax 方法以 get、post 开头,以 data 结尾(good:getListData、postFormData)(bad:takeData、confirmData、getList、postForm)")]),e._v(" "),s("li",[e._v("事件方法以 on 开头(onTypeChange、onUsernameInput)")]),e._v(" "),s("li",[e._v("尽量使用常用单词开头(set、get、open、close、jump)")]),e._v(" "),s("li",[e._v("驼峰命名(good: getListData)(bad: get_list_data、getlistData)")])]),e._v(" "),s("p",[e._v("为了更好的阅读体验,也是为了避免过渡注释,最好的注释就是让代码自己“说出”自己的作用,即命名要有规律性"),s("br"),e._v("\n例如,用于存储数组的变量以 List作为名字后缀,用于某种信息的对象变量以 Info作为名字后缀,用于判断某种逻辑的变量以 is作为前缀")]),e._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("const namesList = ['xiaoming', 'xiaohong']\nconst userInfo = {\n name: 'John',\n age: 20,\n gender: 'male'\n}\nconst isEven = 10 % 2 === 0\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br"),s("span",{staticClass:"line-number"},[e._v("2")]),s("br"),s("span",{staticClass:"line-number"},[e._v("3")]),s("br"),s("span",{staticClass:"line-number"},[e._v("4")]),s("br"),s("span",{staticClass:"line-number"},[e._v("5")]),s("br"),s("span",{staticClass:"line-number"},[e._v("6")]),s("br"),s("span",{staticClass:"line-number"},[e._v("7")]),s("br")])]),s("h2",{attrs:{id:"vue-组件命名"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#vue-组件命名"}},[e._v("#")]),e._v(" Vue 组件命名")]),e._v(" "),s("p",[e._v("有意义的: 不过于具体,也不过于抽象"),s("br"),e._v("\n简短: 2 到 3 个单词"),s("br"),e._v("\n具有可读性: 以便于沟通交流"),s("br"),e._v("\n组件文件名使用连字符命名:user-list.vue"),s("br"),e._v("\n组件内name属性使用大驼峰命名:{ name: 'UserList' }"),s("br"),e._v("\ntemplate中组件标签使用连字符:"),s("user-list")],1),e._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("\x3c!-- 推荐 --\x3e\n<app-header></app-header>\n<user-list></user-list>\n<range-slider></range-slider>\n\n\x3c!-- 避免 --\x3e\n<btn-group></btn-group>\x3c!-- 虽然简短但是可读性差. 使用 `button-group` 替代 --\x3e\n<ui-slider></ui-slider>\x3c!-- ui 前缀太过于宽泛,在这里意义不明确 --\x3e\n<slider></slider>\x3c!-- 与自定义元素规范不兼容 --\x3e\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br"),s("span",{staticClass:"line-number"},[e._v("2")]),s("br"),s("span",{staticClass:"line-number"},[e._v("3")]),s("br"),s("span",{staticClass:"line-number"},[e._v("4")]),s("br"),s("span",{staticClass:"line-number"},[e._v("5")]),s("br"),s("span",{staticClass:"line-number"},[e._v("6")]),s("br"),s("span",{staticClass:"line-number"},[e._v("7")]),s("br"),s("span",{staticClass:"line-number"},[e._v("8")]),s("br"),s("span",{staticClass:"line-number"},[e._v("9")]),s("br")])]),s("h2",{attrs:{id:"验证组件的props"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#验证组件的props"}},[e._v("#")]),e._v(" 验证组件的props")]),e._v(" "),s("p",[e._v("提供默认值。"),s("br"),e._v("\n使用 type 属性校验类型。"),s("br"),e._v("\nprops的key使用小驼峰命名法。"),s("br"),e._v("\n使用 props 之前先检查该 prop 是否存在。"),s("br"),e._v("\n当prop为多种类型时应该使用数组表示。"),s("br"),e._v("\n在标签中如果prop有多个单词组成,应当使用连字符。")]),e._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v(" \n props: {\n\t size: {\n\t\t type: Number,\n\t\t default:10\n\t },\n\t id: {\n\t\t type: [Number, String],\n\t\t default: ''\n\t }\n }\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br"),s("span",{staticClass:"line-number"},[e._v("2")]),s("br"),s("span",{staticClass:"line-number"},[e._v("3")]),s("br"),s("span",{staticClass:"line-number"},[e._v("4")]),s("br"),s("span",{staticClass:"line-number"},[e._v("5")]),s("br"),s("span",{staticClass:"line-number"},[e._v("6")]),s("br"),s("span",{staticClass:"line-number"},[e._v("7")]),s("br"),s("span",{staticClass:"line-number"},[e._v("8")]),s("br"),s("span",{staticClass:"line-number"},[e._v("9")]),s("br"),s("span",{staticClass:"line-number"},[e._v("10")]),s("br"),s("span",{staticClass:"line-number"},[e._v("11")]),s("br")])]),s("h2",{attrs:{id:"自定义事件名称"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#自定义事件名称"}},[e._v("#")]),e._v(" 自定义事件名称")]),e._v(" "),s("p",[e._v("自定义事件名称,如果有多个单词组成,使用连字符命名法。")]),e._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[e._v("this.$emit('current-change');\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br")])]),s("h2",{attrs:{id:"其他注意事项"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#其他注意事项"}},[e._v("#")]),e._v(" 其他注意事项:")]),e._v(" "),s("ol",[s("li",[e._v("组件的name要写")]),e._v(" "),s("li",[e._v("v-for v-if 避免一起使用 循环 v-for 加key")]),e._v(" "),s("li",[e._v("建议vue组件不要超过400行,既然是组件化开发,那么如果一个组件文件体积太大,存在几十个方法、几十个 data数据,那就说明这个组件大概率包含的功能点太多,是可以被继续细化出多个单一功能的子组件。每一个vue组件首先必须专注于解决一个单一的问题,独立的,可复用的,微小的和可测试的。 如果你的组件做了太多的事或是变得臃肿,将其拆成更小的组件并保持单一的原则。")]),e._v(" "),s("li",[e._v("每个函数不要超过 100行,不要让一个方法函数包含过多的逻辑功能,函数包含过多逻辑,容易混乱,遵循函数功能单一原则")]),e._v(" "),s("li",[e._v("与模板渲染无关的变量不要放在data里")]),e._v(" "),s("li",[e._v("页面计算属性,逻辑过多不要写在template里,用computed")]),e._v(" "),s("li",[e._v("与页面上与业务无关的工具方法应该放在工具方法里")])])])}),[],!1,null,null,null);a.default=n.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{369:function(t,a,s){"use strict";s.r(a);var e=s(42),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"介绍"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#介绍"}},[t._v("#")]),t._v(" 介绍")]),t._v(" "),s("blockquote",[s("p",[t._v("vuepress 搭建一个前端知识库的项目;")])]),t._v(" "),s("h2",{attrs:{id:"_1-文档"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_1-文档"}},[t._v("#")]),t._v(" 1.文档")]),t._v(" "),s("h2",{attrs:{id:"_2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_2"}},[t._v("#")]),t._v(" 2.")])])}),[],!1,null,null,null);a.default=r.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{364:function(t,e,r){"use strict";r.r(e);var a=r(42),o=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"好办项目简介"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#好办项目简介"}},[t._v("#")]),t._v(" 好办项目简介")]),t._v(" "),r("h2",{attrs:{id:"_1-好办-2-0-项目"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#_1-好办-2-0-项目"}},[t._v("#")]),t._v(" 1.好办 2.0 项目")]),t._v(" "),r("blockquote",[r("p",[t._v("最开始开发好办的项目,当时最开始不是我一个开发的,还有一个前端,干了大概一个月走了,产品后来也走了,后端当时是四个人,后来的迭代中基本我一个人负责开发,历时将近三四个月上线")])]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.gicdev.com/haoban-web/#/login",target:"_blank",rel:"noopener noreferrer"}},[t._v("查看 好办 2.0 后台"),r("OutboundLink")],1)])]),t._v(" "),r("h3",{attrs:{id:"说明文档"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#说明文档"}},[t._v("#")]),t._v(" 说明文档")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/office-web/blob/dev/haoban-router-constructor.png",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办后台路由结构图"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/office-web/blob/dev/instructions.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办后台整体使用说明"),r("OutboundLink")],1)])]),t._v(" "),r("h3",{attrs:{id:"上线跟随项目"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#上线跟随项目"}},[t._v("#")]),t._v(" 上线跟随项目")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/office-mobile",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办App webview 项目 - office-mobile"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/haoban-old",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办旧版项目- haoban-old"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/haobanDevOps",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办运维后台项目- haoban-devOps"),r("OutboundLink")],1)])]),t._v(" "),r("p",[r("img",{attrs:{src:"http://git.gicdev.com/office/office-web/raw/master/haoban-router-constructor.png",alt:""}})]),t._v(" "),r("h2",{attrs:{id:"_2-好办-3-0-项目"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#_2-好办-3-0-项目"}},[t._v("#")]),t._v(" 2.好办 3.0 项目")]),t._v(" "),r("blockquote",[r("p",[t._v("基本参照 2.0 ,把应用独立开来,在2.0基础上又增加一些新的应用,开始接入企业微信,后来迭代中增加企业数据这块")])]),t._v(" "),r("h2",{attrs:{id:"_3-好办-4-0-项目"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#_3-好办-4-0-项目"}},[t._v("#")]),t._v(" 3.好办 4.0 项目")]),t._v(" "),r("blockquote",[r("p",[t._v("和 3.0 有些类似,接入企业微信,应用开始使用gic 服务市场应用,增加了商户授权这块")])]),t._v(" "),r("blockquote",[r("blockquote",[r("blockquote",[r("p",[t._v("更多文档参考坚果云---移动组")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); (window.webpackJsonp=window.webpackJsonp||[]).push([[20],{372:function(t,e,r){"use strict";r.r(e);var a=r(42),o=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"好办项目简介"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#好办项目简介"}},[t._v("#")]),t._v(" 好办项目简介")]),t._v(" "),r("h2",{attrs:{id:"_1-好办-2-0-项目"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#_1-好办-2-0-项目"}},[t._v("#")]),t._v(" 1.好办 2.0 项目")]),t._v(" "),r("blockquote",[r("p",[t._v("最开始开发好办的项目,当时最开始不是我一个开发的,还有一个前端,干了大概一个月走了,产品后来也走了,后端当时是四个人,后来的迭代中基本我一个人负责开发,历时将近三四个月上线")])]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.gicdev.com/haoban-web/#/login",target:"_blank",rel:"noopener noreferrer"}},[t._v("查看 好办 2.0 后台"),r("OutboundLink")],1)])]),t._v(" "),r("h3",{attrs:{id:"说明文档"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#说明文档"}},[t._v("#")]),t._v(" 说明文档")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/office-web/blob/dev/haoban-router-constructor.png",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办后台路由结构图"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/office-web/blob/dev/instructions.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办后台整体使用说明"),r("OutboundLink")],1)])]),t._v(" "),r("h3",{attrs:{id:"上线跟随项目"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#上线跟随项目"}},[t._v("#")]),t._v(" 上线跟随项目")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/office-mobile",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办App webview 项目 - office-mobile"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/haoban-old",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办旧版项目- haoban-old"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"http://115.159.76.241/office/haobanDevOps",target:"_blank",rel:"noopener noreferrer"}},[t._v("好办运维后台项目- haoban-devOps"),r("OutboundLink")],1)])]),t._v(" "),r("p",[r("img",{attrs:{src:"http://git.gicdev.com/office/office-web/raw/master/haoban-router-constructor.png",alt:""}})]),t._v(" "),r("h2",{attrs:{id:"_2-好办-3-0-项目"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#_2-好办-3-0-项目"}},[t._v("#")]),t._v(" 2.好办 3.0 项目")]),t._v(" "),r("blockquote",[r("p",[t._v("基本参照 2.0 ,把应用独立开来,在2.0基础上又增加一些新的应用,开始接入企业微信,后来迭代中增加企业数据这块")])]),t._v(" "),r("h2",{attrs:{id:"_3-好办-4-0-项目"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#_3-好办-4-0-项目"}},[t._v("#")]),t._v(" 3.好办 4.0 项目")]),t._v(" "),r("blockquote",[r("p",[t._v("和 3.0 有些类似,接入企业微信,应用开始使用gic 服务市场应用,增加了商户授权这块")])]),t._v(" "),r("blockquote",[r("blockquote",[r("blockquote",[r("p",[t._v("更多文档参考坚果云---移动组")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]);
\ No newline at end of file \ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{328:function(t,e,n){},356:function(t,e,n){"use strict";n(328)},370:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(356),n(42)),p=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=p.exports}}]); (window.webpackJsonp=window.webpackJsonp||[]).push([[3],{329:function(t,e,n){},357:function(t,e,n){"use strict";n(329)},377:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(357),n(42)),p=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=p.exports}}]);
\ No newline at end of file \ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{329:function(e,t,c){},357:function(e,t,c){"use strict";c(329)},361:function(e,t,c){"use strict";c.r(t);var i={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}}},n=(c(357),c(42)),s=Object(n.a)(i,(function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"6d04095e",null);t.default=s.exports}}]); (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{328:function(e,t,c){},356:function(e,t,c){"use strict";c(328)},361:function(e,t,c){"use strict";c.r(t);var i={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}}},n=(c(356),c(42)),s=Object(n.a)(i,(function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"6d04095e",null);t.default=s.exports}}]);
\ No newline at end of file \ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{365:function(s,n,e){"use strict";e.r(n);var a=e(42),t=Object(a.a)({},(function(){var s=this,n=s.$createElement,e=s._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[e("h2",{attrs:{id:"简介"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#简介"}},[s._v("#")]),s._v(" 简介")]),s._v(" "),e("blockquote",[e("p",[s._v("本文档使用 "),e("code",[s._v("VuePress 1.x")]),s._v(" 搭建")])]),s._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[s._v("# 安装\nyarn global add vuepress@next # 或者:npm install -g vuepress@next\n\n# 新建一个 markdown 文件\necho '# Hello VuePress!' > README.md\n\n# 开始写作\nvuepress dev .\n\n# 构建静态文件\nvuepress build .\n")])]),s._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[s._v("1")]),e("br"),e("span",{staticClass:"line-number"},[s._v("2")]),e("br"),e("span",{staticClass:"line-number"},[s._v("3")]),e("br"),e("span",{staticClass:"line-number"},[s._v("4")]),e("br"),e("span",{staticClass:"line-number"},[s._v("5")]),e("br"),e("span",{staticClass:"line-number"},[s._v("6")]),e("br"),e("span",{staticClass:"line-number"},[s._v("7")]),e("br"),e("span",{staticClass:"line-number"},[s._v("8")]),e("br"),e("span",{staticClass:"line-number"},[s._v("9")]),e("br"),e("span",{staticClass:"line-number"},[s._v("10")]),e("br"),e("span",{staticClass:"line-number"},[s._v("11")]),e("br")])])])}),[],!1,null,null,null);n.default=t.exports}}]); (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{364:function(s,n,e){"use strict";e.r(n);var a=e(42),t=Object(a.a)({},(function(){var s=this,n=s.$createElement,e=s._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[e("h2",{attrs:{id:"简介"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#简介"}},[s._v("#")]),s._v(" 简介")]),s._v(" "),e("blockquote",[e("p",[s._v("本文档使用 "),e("code",[s._v("VuePress 1.x")]),s._v(" 搭建")])]),s._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[s._v("# 安装\nyarn global add vuepress@next # 或者:npm install -g vuepress@next\n\n# 新建一个 markdown 文件\necho '# Hello VuePress!' > README.md\n\n# 开始写作\nvuepress dev .\n\n# 构建静态文件\nvuepress build .\n")])]),s._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[s._v("1")]),e("br"),e("span",{staticClass:"line-number"},[s._v("2")]),e("br"),e("span",{staticClass:"line-number"},[s._v("3")]),e("br"),e("span",{staticClass:"line-number"},[s._v("4")]),e("br"),e("span",{staticClass:"line-number"},[s._v("5")]),e("br"),e("span",{staticClass:"line-number"},[s._v("6")]),e("br"),e("span",{staticClass:"line-number"},[s._v("7")]),e("br"),e("span",{staticClass:"line-number"},[s._v("8")]),e("br"),e("span",{staticClass:"line-number"},[s._v("9")]),e("br"),e("span",{staticClass:"line-number"},[s._v("10")]),e("br"),e("span",{staticClass:"line-number"},[s._v("11")]),e("br")])])])}),[],!1,null,null,null);n.default=t.exports}}]);
\ No newline at end of file \ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{366:function(e,t,r){"use strict";r.r(t);var s=r(42),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"文档简介"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#文档简介"}},[e._v("#")]),e._v(" 文档简介")]),e._v(" "),r("p",[e._v("VuePress 由两部分组成:第一部分是一个极简静态网站生成器 (opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。")]),e._v(" "),r("p",[e._v("每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用(SPA),其他的页面则会只在用户浏览到的时候才按需加载。")]),e._v(" "),r("h2",{attrs:{id:"参考"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#参考"}},[e._v("#")]),e._v(" 参考")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.vuepress.cn/guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("vuepress"),r("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]); (window.webpackJsonp=window.webpackJsonp||[]).push([[8],{376:function(e,t,r){"use strict";r.r(t);var s=r(42),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"文档简介"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#文档简介"}},[e._v("#")]),e._v(" 文档简介")]),e._v(" "),r("p",[e._v("VuePress 由两部分组成:第一部分是一个极简静态网站生成器 (opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。")]),e._v(" "),r("p",[e._v("每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用(SPA),其他的页面则会只在用户浏览到的时候才按需加载。")]),e._v(" "),r("h2",{attrs:{id:"参考"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#参考"}},[e._v("#")]),e._v(" 参考")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://www.vuepress.cn/guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("vuepress"),r("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]);
\ No newline at end of file \ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{363:function(t,a,s){"use strict";s.r(a);var e=s(42),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"介绍"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#介绍"}},[t._v("#")]),t._v(" 介绍")]),t._v(" "),s("blockquote",[s("p",[t._v("vuepress 搭建一个前端知识库的项目;")])]),t._v(" "),s("h2",{attrs:{id:"_1-文档"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_1-文档"}},[t._v("#")]),t._v(" 1.文档")]),t._v(" "),s("h2",{attrs:{id:"_2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_2"}},[t._v("#")]),t._v(" 2.")])])}),[],!1,null,null,null);a.default=r.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{363:function(s,a,t){"use strict";t.r(a);var n=t(42),e=Object(n.a)({},(function(){var s=this,a=s.$createElement,t=s._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"javascript-命名规范"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#javascript-命名规范"}},[s._v("#")]),s._v(" JavaScript 命名规范")]),s._v(" "),t("blockquote"),s._v(" "),t("p",[t("a",{attrs:{href:"https://www.zcfy.cc/article/clean-code-javascript-readme-md-at-master-ryanmcdermott-clean-code-javascript-github-2273.html",target:"_blank",rel:"noopener noreferrer"}},[s._v("JavaScript 代码整洁之道"),t("OutboundLink")],1)]),s._v(" "),t("h2",{attrs:{id:"变量"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#变量"}},[s._v("#")]),s._v(" 变量")]),s._v(" "),t("p",[s._v("命名方法:小驼峰式命名法。"),t("br"),s._v("\n命名规范:前缀应当是名词。(函数的名字前缀为动词,以此区分变量和函数)"),t("br"),s._v("\n命名建议:尽量在变量名字中体现所属类型,如:length、count等表示数字类型;而包含name、title表示为字符串类型。")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("// good\nlet maxCount = 10;\nlet tableTitle = 'LoginTable';\n// bad\nlet setCount = 10;\nlet getTitle = 'LoginTable';\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br")])]),t("h2",{attrs:{id:"常量"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#常量"}},[s._v("#")]),s._v(" 常量")]),s._v(" "),t("p",[s._v("仅适用于常量定义,用const进行解构等方式不适用此规范\n命名方法:名称全部大写。\n命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词。")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("const MAX_COUNT = 10;\nconst URL = 'http://www.demogic.com';\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br")])]),t("h2",{attrs:{id:"函数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#函数"}},[s._v("#")]),s._v(" 函数")]),s._v(" "),t("p",[s._v("命名方法:小驼峰式命名法。"),t("br"),s._v("\n命名规范:前缀应当为动词。"),t("br"),s._v("\n命名建议:可使用常见动词约定")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("动词")]),s._v(" "),t("th",[s._v("含义")]),s._v(" "),t("th",[s._v("返回值")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("can")]),s._v(" "),t("td",[s._v("判断是否可执行某个动作(权限)")]),s._v(" "),t("td",[s._v("函数返回一个布尔值。true:可执行;false:不可执行")])]),s._v(" "),t("tr",[t("td",[s._v("has")]),s._v(" "),t("td",[s._v("判断是否含有某个值")]),s._v(" "),t("td",[s._v("函数返回一个布尔值。true:含有此值;false:不含有此值")])]),s._v(" "),t("tr",[t("td",[s._v("is")]),s._v(" "),t("td",[s._v("判断是否为某个值")]),s._v(" "),t("td",[s._v("函数返回一个布尔值。true:为某个值;false:不为某个值")])]),s._v(" "),t("tr",[t("td",[s._v("get")]),s._v(" "),t("td",[s._v("获取某个值")]),s._v(" "),t("td",[s._v("函数返回一个非布尔值")])]),s._v(" "),t("tr",[t("td",[s._v("set")]),s._v(" "),t("td",[s._v("设置某个值")]),s._v(" "),t("td",[s._v("无返回值、返回是否设置成功或者返回链式对象")])]),s._v(" "),t("tr",[t("td",[s._v("load")]),s._v(" "),t("td",[s._v("加载某些数据")]),s._v(" "),t("td",[s._v("无返回值或者返回是否加载完成的结果")])])])]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("// 是否可阅读\nfunction canRead(): boolean {\n return true;\n}\n// 获取名称\nfunction getName(): string {\n return this.name;\n}\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("h2",{attrs:{id:"类-构造函数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#类-构造函数"}},[s._v("#")]),s._v(" 类 & 构造函数")]),s._v(" "),t("p",[s._v("命名方法:大驼峰式命名法,首字母大写。"),t("br"),s._v("\n命名规范:前缀为名称。")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("class Person {\n public name: string;\n constructor(name) {\n this.name = name;\n }\n}\nconst person = new Person('bob');\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br")])]),t("h2",{attrs:{id:"类的成员"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#类的成员"}},[s._v("#")]),s._v(" 类的成员")]),s._v(" "),t("p",[s._v("类的成员包含:"),t("br"),s._v("\n公共属性和方法:跟变量和函数的命名一样。"),t("br"),s._v("\n私有属性和方法:前缀为_(下划线),后面跟公共属性和方法一样的命名方式。")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("class Person {\n private _name: string;\n constructor() { }\n // 公共方法\n getName() {\n return this._name;\n }\n // 公共方法\n setName(name) {\n this._name = name;\n }\n}\nconst person = new Person();\nperson.setName('bob');\nperson.getName(); // -&bob\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br"),t("span",{staticClass:"line-number"},[s._v("9")]),t("br"),t("span",{staticClass:"line-number"},[s._v("10")]),t("br"),t("span",{staticClass:"line-number"},[s._v("11")]),t("br"),t("span",{staticClass:"line-number"},[s._v("12")]),t("br"),t("span",{staticClass:"line-number"},[s._v("13")]),t("br"),t("span",{staticClass:"line-number"},[s._v("14")]),t("br"),t("span",{staticClass:"line-number"},[s._v("15")]),t("br")])])])}),[],!1,null,null,null);a.default=e.exports}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>editorconfig | 前端知识库</title>
<meta name="generator" content="VuePress 1.8.0">
<link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/12.1fc9c8cf.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link router-link-active">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
简介
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link router-link-active">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
简介
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于
</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/front-vuepress/frontend/" aria-current="page" class="sidebar-link">前端开发规范</a></li><li><a href="/front-vuepress/frontend/css.html" class="sidebar-link">CSS 规范</a></li><li><a href="/front-vuepress/frontend/JavaScript.html" class="sidebar-link">JavaScript 命名规范</a></li><li><a href="/front-vuepress/frontend/editorconfig.html" aria-current="page" class="active sidebar-link">editorconfig</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/front-vuepress/frontend/editorconfig.html#_1-了解" class="sidebar-link">1.了解</a></li><li class="sidebar-sub-header"><a href="/front-vuepress/frontend/editorconfig.html#_2-使用" class="sidebar-link">2.使用</a></li></ul></li><li><a href="/front-vuepress/frontend/git.html" class="sidebar-link">git 分支管理</a></li><li><a href="/front-vuepress/frontend/update.html" class="sidebar-link">前端升级规范</a></li><li><a href="/front-vuepress/frontend/vue.html" class="sidebar-link">vue 项目</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="editorconfig"><a href="#editorconfig" class="header-anchor">#</a> editorconfig</h1> <h2 id="_1-了解"><a href="#_1-了解" class="header-anchor">#</a> 1.了解</h2> <hr> <ul><li><p>【通配符】</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>* 匹配除/之外的任意字符串
** 匹配任意字符串
? 匹配任意单个字符
[name] 匹配name中的任意一个单一字符
[!name] 匹配不存在name中的任意一个单一字符
{s1,s2,s3} 匹配给定的字符串中的任意一个(用逗号分隔)
{num1..num2}  匹配num1到num2之间的任意一个整数, 这里的num1和num2可以为正整数也可以为负整数
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div></li> <li><p>各个属性</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>indent_style 设置缩进风格(tab是硬缩进,space为软缩进)
indent_size 用一个整数定义的列数来设置缩进的宽度,如果indent_style为tab,则此属性默认为 tab_width
tab_width 用一个整数来设置tab缩进的列数。默认是indent_size
end_of_line 设置换行符,值为lf、cr和crlf
charset 设置编码,值为latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建议使用utf-8-bom
trim_trailing_whitespace 设为true表示会去除换行行首的任意空白字符。
insert_final_newline 设为true表示使文件以一个空白行结尾
root    表示是最顶层的配置文件,发现设为true时,才会停止查找.editorconfig文件
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br></div></div></li></ul> <h2 id="_2-使用"><a href="#_2-使用" class="header-anchor">#</a> 2.使用</h2> <hr> <blockquote></blockquote> <p>有些编辑器则需要安装editorConfig插件,如ATOM、Sublime、VS Code等</p> <ul><li><p>项目目录创建 <code>.editorconfig</code> 文件</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>$ touch .editorconfig
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div></li> <li><p><code>.editorconfig</code> 常用内容设置:</p></li></ul> <div class="language- line-numbers-mode"><pre class="language-text"><code># editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
tab_width = 2
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tab
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br></div></div></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/front-vuepress/frontend/JavaScript.html" class="prev">
JavaScript 命名规范
</a></span> <span class="next"><a href="/front-vuepress/frontend/git.html">
git 分支管理
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/12.1fc9c8cf.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>git 分支管理 | 前端知识库</title>
<meta name="generator" content="VuePress 1.8.0">
<link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/13.a634acab.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link router-link-active">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
简介
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link router-link-active">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
简介
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于
</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/front-vuepress/frontend/" aria-current="page" class="sidebar-link">前端开发规范</a></li><li><a href="/front-vuepress/frontend/css.html" class="sidebar-link">CSS 规范</a></li><li><a href="/front-vuepress/frontend/JavaScript.html" class="sidebar-link">JavaScript 命名规范</a></li><li><a href="/front-vuepress/frontend/editorconfig.html" class="sidebar-link">editorconfig</a></li><li><a href="/front-vuepress/frontend/git.html" aria-current="page" class="active sidebar-link">git 分支管理</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/front-vuepress/frontend/git.html#git-分支及操作规范" class="sidebar-link">git 分支及操作规范</a></li><li class="sidebar-sub-header"><a href="/front-vuepress/frontend/git.html#git-log-规范" class="sidebar-link">git log 规范</a></li></ul></li><li><a href="/front-vuepress/frontend/update.html" class="sidebar-link">前端升级规范</a></li><li><a href="/front-vuepress/frontend/vue.html" class="sidebar-link">vue 项目</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="git-分支管理"><a href="#git-分支管理" class="header-anchor">#</a> git 分支管理</h1> <h2 id="git-分支及操作规范"><a href="#git-分支及操作规范" class="header-anchor">#</a> git 分支及操作规范</h2> <ul><li>master:主分支,稳定分支,必须保证随时可用于发布</li> <li>release:预发布分支,如果有此分支,需将分支合并至release解决了冲突后,再将release合到master</li> <li>dev:开发分支,仅用来发布更新测试环境,需定期将master分支合并至此</li> <li>feature/xxx(迭代结束或上线时间,如200901,20年9月1日):功能开发分支,须从master分支上开出此分支,开发期间需定期合并master至此,测试时合并至dev更新到测试环境,测试完成后将该分支合并至master,然后删除分支</li> <li>bugfix:线上bug修复分支,每次修改前需将master合并至此,测试时合并至dev测试,测试完成后再合并至master发布上线</li></ul> <h2 id="git-log-规范"><a href="#git-log-规范" class="header-anchor">#</a> git log 规范</h2> <p>建议:</p> <ul><li>格式:</li></ul> <div class="language- line-numbers-mode"><pre class="language-text"><code>- type: &lt;subject&gt;
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><ul><li>type: 说明本次 <code>commit</code> 的类别</li></ul> <div class="language- line-numbers-mode"><pre class="language-text"><code>add(feat): 增加
update: 更新
fix: 修复bug
style: 样式调整
test: 增加测试
docs: 编写文档
chore:构建过程或辅助工具的变动
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br></div></div><ul><li>subject: <code>commit</code> 的简短描述</li></ul></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/front-vuepress/frontend/editorconfig.html" class="prev">
editorconfig
</a></span> <span class="next"><a href="/front-vuepress/frontend/update.html">
前端升级规范
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/13.a634acab.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>前端开发规范 | 前端知识库</title>
<meta name="generator" content="VuePress 1.8.0">
<link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/10.c0302693.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
简介
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
简介
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于
</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/front-vuepress/frontend/" aria-current="page" class="active sidebar-link">前端开发规范</a></li><li><a href="/front-vuepress/frontend/css.html" class="sidebar-link">CSS 规范</a></li><li><a href="/front-vuepress/frontend/JavaScript.html" class="sidebar-link">JavaScript 命名规范</a></li><li><a href="/front-vuepress/frontend/editorconfig.html" class="sidebar-link">editorconfig</a></li><li><a href="/front-vuepress/frontend/git.html" class="sidebar-link">git 分支管理</a></li><li><a href="/front-vuepress/frontend/update.html" class="sidebar-link">前端升级规范</a></li><li><a href="/front-vuepress/frontend/vue.html" class="sidebar-link">vue 项目</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="前端开发规范"><a href="#前端开发规范" class="header-anchor">#</a> 前端开发规范</h1> <blockquote><p>规范的目的是为了编写高质量的代码,让团队成员每天得心情都是愉悦的,大家在一起是快乐的。</p></blockquote> <blockquote><p>记录前端开发中代码规范</p></blockquote></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><!----> <span class="next"><a href="/front-vuepress/frontend/css.html">
CSS 规范
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/10.c0302693.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>前端升级规范 | 前端知识库</title>
<meta name="generator" content="VuePress 1.8.0">
<link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/14.398c66a9.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link router-link-active">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
简介
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link router-link-active">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
简介
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于
</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/front-vuepress/frontend/" aria-current="page" class="sidebar-link">前端开发规范</a></li><li><a href="/front-vuepress/frontend/css.html" class="sidebar-link">CSS 规范</a></li><li><a href="/front-vuepress/frontend/JavaScript.html" class="sidebar-link">JavaScript 命名规范</a></li><li><a href="/front-vuepress/frontend/editorconfig.html" class="sidebar-link">editorconfig</a></li><li><a href="/front-vuepress/frontend/git.html" class="sidebar-link">git 分支管理</a></li><li><a href="/front-vuepress/frontend/update.html" aria-current="page" class="active sidebar-link">前端升级规范</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/front-vuepress/frontend/update.html#一、什么时间升级" class="sidebar-link">一、什么时间升级?</a></li><li class="sidebar-sub-header"><a href="/front-vuepress/frontend/update.html#二、谁来操作升级" class="sidebar-link">二、谁来操作升级?</a></li><li class="sidebar-sub-header"><a href="/front-vuepress/frontend/update.html#三、原则" class="sidebar-link">三、原则</a></li><li class="sidebar-sub-header"><a href="/front-vuepress/frontend/update.html#四、升级通知" class="sidebar-link">四、升级通知</a></li></ul></li><li><a href="/front-vuepress/frontend/vue.html" class="sidebar-link">vue 项目</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="前端升级规范"><a href="#前端升级规范" class="header-anchor">#</a> 前端升级规范</h1> <h2 id="一、什么时间升级"><a href="#一、什么时间升级" class="header-anchor">#</a> 一、什么时间升级?</h2> <p>● 每周四为各平台前端需求(不涉及后端的纯前端需求)的上线日。</p> <p>● 优先级:临时的紧急上线 &gt; 随业务组上线 &gt; 周四上线
<br></p> <h2 id="二、谁来操作升级"><a href="#二、谁来操作升级" class="header-anchor">#</a> 二、谁来操作升级?</h2> <table><thead><tr><th>~版本</th> <th>~平台</th> <th>~ 操作人 </th></tr></thead> <tbody><tr><td>3.0</td> <td>全部平台</td> <td>石瑶</td></tr> <tr><td>4.0</td> <td>基础平台(包含运维平台)、移动平台</td> <td>砂砾</td></tr> <tr><td>4.0</td> <td>业务平台</td> <td>叮当</td></tr></tbody></table> <br> <h2 id="三、原则"><a href="#三、原则" class="header-anchor">#</a> 三、原则</h2> <p>上线前、后,均需要经过测试负责人测试。
<br></p> <h2 id="四、升级通知"><a href="#四、升级通知" class="header-anchor">#</a> 四、升级通知</h2> <p>● 只要有上线,就要发送<a href="https://www.tapd.cn/33025272/documents/show/1133025272001004205" target="_blank" rel="noopener noreferrer">《迭代升级说明》<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>给相关人员,并抄送sj@demogic.com&lt;升级通知组&gt;</p> <p>● 由操作升级的人员发出邮件。</p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/front-vuepress/frontend/git.html" class="prev">
git 分支管理
</a></span> <span class="next"><a href="/front-vuepress/frontend/vue.html">
vue 项目
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/14.398c66a9.js" defer></script>
</body>
</html>
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
<link rel="icon" href="/front-vuepress/favicon.ico"> <link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库"> <meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.247a3952.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.5bcad825.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/9.68c73906.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.547ecaa9.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.6244719b.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.6a7e13a1.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.1815b13d.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.6391a0d0.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.77a548c8.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.7964fd10.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.43b9788c.js"> <link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/16.f476b293.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.247a3952.css"> <link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head> </head>
<body> <body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" aria-current="page" class="nav-link router-link-exact-active router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
...@@ -22,6 +24,8 @@ ...@@ -22,6 +24,8 @@
关于 关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> </a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" aria-current="page" class="nav-link router-link-exact-active router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
...@@ -29,6 +33,6 @@ ...@@ -29,6 +33,6 @@
</a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/about/" class="nav-link">
关于 关于
</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/front-vuepress/guide/" aria-current="page" class="active sidebar-link">介绍</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/front-vuepress/guide/#_1-文档" class="sidebar-link">1.文档</a></li><li class="sidebar-sub-header"><a href="/front-vuepress/guide/#_2" class="sidebar-link">2.</a></li></ul></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="介绍"><a href="#介绍" class="header-anchor">#</a> 介绍</h1> <blockquote><p>vuepress 搭建一个前端知识库的项目;</p></blockquote> <h2 id="_1-文档"><a href="#_1-文档" class="header-anchor">#</a> 1.文档</h2> <h2 id="_2"><a href="#_2" class="header-anchor">#</a> 2.</h2></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div> </a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/front-vuepress/guide/" aria-current="page" class="active sidebar-link">介绍</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/front-vuepress/guide/#_1-文档" class="sidebar-link">1.文档</a></li><li class="sidebar-sub-header"><a href="/front-vuepress/guide/#_2" class="sidebar-link">2.</a></li></ul></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="介绍"><a href="#介绍" class="header-anchor">#</a> 介绍</h1> <blockquote><p>vuepress 搭建一个前端知识库的项目;</p></blockquote> <h2 id="_1-文档"><a href="#_1-文档" class="header-anchor">#</a> 1.文档</h2> <h2 id="_2"><a href="#_2" class="header-anchor">#</a> 2.</h2></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.5bcad825.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/9.68c73906.js" defer></script> <script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/16.f476b293.js" defer></script>
</body> </body>
</html> </html>
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
<link rel="icon" href="/front-vuepress/favicon.ico"> <link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库"> <meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.247a3952.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.5bcad825.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/10.547ecaa9.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/11.6244719b.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.6a7e13a1.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.1815b13d.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.6391a0d0.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.77a548c8.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.7964fd10.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.43b9788c.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.68c73906.js"> <link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/17.fab97534.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.247a3952.css"> <link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head> </head>
<body> <body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -22,6 +24,8 @@ ...@@ -22,6 +24,8 @@
关于 关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> </a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -88,6 +92,6 @@ ...@@ -88,6 +92,6 @@
</a> </a>
</span></p></div> </main></div><div class="global-ui"></div></div> </span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.5bcad825.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/10.547ecaa9.js" defer></script> <script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/17.fab97534.js" defer></script>
</body> </body>
</html> </html>
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
<link rel="icon" href="/front-vuepress/favicon.ico"> <link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库"> <meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.247a3952.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.5bcad825.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/11.6244719b.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.547ecaa9.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.6a7e13a1.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.1815b13d.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.6391a0d0.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.77a548c8.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.7964fd10.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.43b9788c.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.68c73906.js"> <link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/18.80c852bd.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.247a3952.css"> <link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head> </head>
<body> <body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -22,6 +24,8 @@ ...@@ -22,6 +24,8 @@
关于 关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> </a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -37,6 +41,6 @@ ...@@ -37,6 +41,6 @@
</a> </a>
</span></p></div> </main></div><div class="global-ui"></div></div> </span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.5bcad825.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/11.6244719b.js" defer></script> <script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/18.80c852bd.js" defer></script>
</body> </body>
</html> </html>
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
<link rel="icon" href="/front-vuepress/favicon.ico"> <link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库"> <meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.247a3952.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.5bcad825.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/12.6a7e13a1.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.547ecaa9.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.6244719b.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.1815b13d.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.6391a0d0.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.77a548c8.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.7964fd10.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.43b9788c.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.68c73906.js"> <link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/19.8a49b651.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.247a3952.css"> <link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head> </head>
<body> <body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -22,6 +24,8 @@ ...@@ -22,6 +24,8 @@
关于 关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> </a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link router-link-active">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -33,6 +37,6 @@ ...@@ -33,6 +37,6 @@
<a href="/front-vuepress/haoban/2.haoban3.0.html" class="prev"> <a href="/front-vuepress/haoban/2.haoban3.0.html" class="prev">
好办 3.0 好办 3.0
</a></span> <!----></p></div> </main></div><div class="global-ui"></div></div> </a></span> <!----></p></div> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.5bcad825.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/12.6a7e13a1.js" defer></script> <script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/19.8a49b651.js" defer></script>
</body> </body>
</html> </html>
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
<link rel="icon" href="/front-vuepress/favicon.ico"> <link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库"> <meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.247a3952.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.5bcad825.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/13.1815b13d.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.547ecaa9.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.6244719b.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.6a7e13a1.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.6391a0d0.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.77a548c8.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.7964fd10.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.43b9788c.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.68c73906.js"> <link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/20.861900e5.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/7.3dc91026.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.247a3952.css"> <link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head> </head>
<body> <body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" class="home-link router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" aria-current="page" class="nav-link router-link-exact-active router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -22,6 +24,8 @@ ...@@ -22,6 +24,8 @@
关于 关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link"> </a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" class="nav-link">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" aria-current="page" class="nav-link router-link-exact-active router-link-active"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -33,6 +37,6 @@ ...@@ -33,6 +37,6 @@
</a> </a>
</span></p></div> </main></div><div class="global-ui"></div></div> </span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.5bcad825.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/13.1815b13d.js" defer></script> <script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/20.861900e5.js" defer></script>
</body> </body>
</html> </html>
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
<link rel="icon" href="/front-vuepress/favicon.ico"> <link rel="icon" href="/front-vuepress/favicon.ico">
<meta name="description" content="前端知识库"> <meta name="description" content="前端知识库">
<link rel="preload" href="/front-vuepress/assets/css/0.styles.247a3952.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.5bcad825.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/7.7964fd10.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.547ecaa9.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.6244719b.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.6a7e13a1.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.1815b13d.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.6391a0d0.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.77a548c8.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.43b9788c.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.68c73906.js"> <link rel="preload" href="/front-vuepress/assets/css/0.styles.abc88622.css" as="style"><link rel="preload" href="/front-vuepress/assets/js/app.fc78f24f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/2.45b9916f.js" as="script"><link rel="preload" href="/front-vuepress/assets/js/7.3dc91026.js" as="script"><link rel="prefetch" href="/front-vuepress/assets/js/10.c0302693.js"><link rel="prefetch" href="/front-vuepress/assets/js/11.25403e95.js"><link rel="prefetch" href="/front-vuepress/assets/js/12.1fc9c8cf.js"><link rel="prefetch" href="/front-vuepress/assets/js/13.a634acab.js"><link rel="prefetch" href="/front-vuepress/assets/js/14.398c66a9.js"><link rel="prefetch" href="/front-vuepress/assets/js/15.281444ad.js"><link rel="prefetch" href="/front-vuepress/assets/js/16.f476b293.js"><link rel="prefetch" href="/front-vuepress/assets/js/17.fab97534.js"><link rel="prefetch" href="/front-vuepress/assets/js/18.80c852bd.js"><link rel="prefetch" href="/front-vuepress/assets/js/19.8a49b651.js"><link rel="prefetch" href="/front-vuepress/assets/js/20.861900e5.js"><link rel="prefetch" href="/front-vuepress/assets/js/3.0cb1ab3d.js"><link rel="prefetch" href="/front-vuepress/assets/js/4.ea3e8443.js"><link rel="prefetch" href="/front-vuepress/assets/js/5.5fd3c55b.js"><link rel="prefetch" href="/front-vuepress/assets/js/6.706caab8.js"><link rel="prefetch" href="/front-vuepress/assets/js/8.27f906d5.js"><link rel="prefetch" href="/front-vuepress/assets/js/9.8ef7e0de.js">
<link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.247a3952.css"> <link rel="stylesheet" href="/front-vuepress/assets/css/0.styles.abc88622.css">
</head> </head>
<body> <body>
<div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" aria-current="page" class="home-link router-link-exact-active router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" aria-current="page" class="nav-link router-link-exact-active router-link-active"> <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/front-vuepress/" aria-current="page" class="home-link router-link-exact-active router-link-active"><!----> <span class="site-name">前端知识库</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-vuepress/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -22,6 +24,8 @@ ...@@ -22,6 +24,8 @@
关于 关于
</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" aria-current="page" class="nav-link router-link-exact-active router-link-active"> </a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-vuepress/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
主页 主页
</a></div><div class="nav-item"><a href="/front-vuepress/frontend/" class="nav-link">
前端规范
</a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/haoban/" class="nav-link">
好办项目 好办项目
</a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link"> </a></div><div class="nav-item"><a href="/front-vuepress/guide/" class="nav-link">
...@@ -48,6 +52,6 @@ vuepress build . ...@@ -48,6 +52,6 @@ vuepress build .
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div></div> <div class="footer"> </code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div></div> <div class="footer">
MIT Licensed | Copyright © 2019-present fairyly MIT Licensed | Copyright © 2019-present fairyly
</div></main></div><div class="global-ui"></div></div> </div></main></div><div class="global-ui"></div></div>
<script src="/front-vuepress/assets/js/app.5bcad825.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/7.7964fd10.js" defer></script> <script src="/front-vuepress/assets/js/app.fc78f24f.js" defer></script><script src="/front-vuepress/assets/js/2.45b9916f.js" defer></script><script src="/front-vuepress/assets/js/7.3dc91026.js" defer></script>
</body> </body>
</html> </html>
# JavaScript 命名规范
>
[JavaScript 代码整洁之道](https://www.zcfy.cc/article/clean-code-javascript-readme-md-at-master-ryanmcdermott-clean-code-javascript-github-2273.html)
## 变量
命名方法:小驼峰式命名法。
命名规范:前缀应当是名词。(函数的名字前缀为动词,以此区分变量和函数)
命名建议:尽量在变量名字中体现所属类型,如:length、count等表示数字类型;而包含name、title表示为字符串类型。
```
// good
let maxCount = 10;
let tableTitle = 'LoginTable';
// bad
let setCount = 10;
let getTitle = 'LoginTable';
```
## 常量
仅适用于常量定义,用const进行解构等方式不适用此规范
命名方法:名称全部大写。
命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词。
```
const MAX_COUNT = 10;
const URL = 'http://www.demogic.com';
```
## 函数
命名方法:小驼峰式命名法。
命名规范:前缀应当为动词。
命名建议:可使用常见动词约定
| 动词 | 含义 | 返回值 |
| ------------ | ------------ | ------------ |
| can | 判断是否可执行某个动作(权限) |函数返回一个布尔值。true:可执行;false:不可执行 |
| has | 判断是否含有某个值 |函数返回一个布尔值。true:含有此值;false:不含有此值 |
| is | 判断是否为某个值 | 函数返回一个布尔值。true:为某个值;false:不为某个值 |
| get | 获取某个值 | 函数返回一个非布尔值 |
| set | 设置某个值 | 无返回值、返回是否设置成功或者返回链式对象 |
| load | 加载某些数据 | 无返回值或者返回是否加载完成的结果 |
```
// 是否可阅读
function canRead(): boolean {
return true;
}
// 获取名称
function getName(): string {
return this.name;
}
```
## 类 &amp; 构造函数
命名方法:大驼峰式命名法,首字母大写。
命名规范:前缀为名称。
```
class Person {
public name: string;
constructor(name) {
this.name = name;
}
}
const person = new Person('bob');
```
## 类的成员
类的成员包含:
公共属性和方法:跟变量和函数的命名一样。
私有属性和方法:前缀为_(下划线),后面跟公共属性和方法一样的命名方式。
```
class Person {
private _name: string;
constructor() { }
// 公共方法
getName() {
return this._name;
}
// 公共方法
setName(name) {
this._name = name;
}
}
const person = new Person();
person.setName('bob');
person.getName(); // -&bob
```
# 前端开发规范
>规范的目的是为了编写高质量的代码,让团队成员每天得心情都是愉悦的,大家在一起是快乐的。
>记录前端开发中代码规范
# CSS 规范
>element-ui 里面的index.css 改过一些样式 所以新拉的项目要记得覆盖index.css
## 1.CSS的书写顺序
结构性属性:
display,position, left, top, right float,margin, padding....
表现性属性:
background, border font...
```
<!-- display 放在最前面 -->
display:block;
<!-- position -->
position: relative;
<!-- position 进行定位的属性 -->
top: 100px;
<!-- 宽高 -->
width: 100px;
line-height: 20px;
<!-- margin padding -->
margin: 10px;
padding: 10px;
<!-- font -->
font-size: 20px;
font-weight: 700;
<!-- border -->
border: 1px solid red;
border-radius: 4px;
<!-- background -->
background-color: pink;
<!-- z-index -->
z-index: 10;
```
## 2.BEM 命名
BEM代表块(Block),元素(Element),修饰符(Modifier)。
[BEM介绍](https://blog.csdn.net/love_lovelove/article/details/79462952)
组件库的通用组件强制要求使用BEM
## 3.css规范
1. id 驼峰 PageOne
2. class 以"-"间隔 page-one
3. 尽量避免把标签作为选择器
4. 选择器尽可能的精确,避免出现中文拼音类名
5. 减少使用ID作为选择器
6. 避免使用!important
7. 在css中注释要表明,分模块来标明,比如头部用/*****头部start*****/和/*****头部end*****/,目的是便于修改样式时进行查找。同样的js 也要以事件源发生的事件进行命名。
8. 禁止在html文件使用`<style></style>`
9. 名称首单词要与插件或者模块相关,例如时间插件:.date-(单词)
10. 缩写属性
```
//不推荐
font-family: palatino, georgia, serif;
font-size: 100%;
line-height: 1.6;
//推荐
font: 100%/1.6 palatino, georgia, serif;
```
11. 兼容多个浏览器时,将标准属性写在底部。
-moz-border-radius: 15px; /* Firefox */
-webkit-border-radius: 15px; /* Safari和Chrome */
border-radius: 15px; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 *//标准属性
12. css文件 一个样式一行
```
// 不推荐
.gic-btn {font-size:15px;}
// 推荐
.gic-btn
{
font-size:15px;
}
```
12. css每一个样式都需要“;”结尾,后期压缩css需要断句,例如:
```
.btn
{
font-size:14px;//结尾
}
```
13. 尽量css 路径,但路径不宜过长 3层内为宜
## html文件
```
<form class="gic-form">
<dl class="gic-group">
<dd class="gic-input">
<label>
<span>名称:</span>
<span><input type="text" value="" /></input></span>
</lable>
</dd>
</dl>
</form>
```
## css文件
```
/**表单模块**/
.gic-form
{
display:block;
font-size:16px;
}
.gic-form .gic-input
{
display:block;
}
.gic-form .gic-input span
{
}
/**表单模块end**/
```
\ No newline at end of file
# editorconfig
## 1.了解
----------
- 【通配符】
```
* 匹配除/之外的任意字符串
** 匹配任意字符串
? 匹配任意单个字符
[name] 匹配name中的任意一个单一字符
[!name] 匹配不存在name中的任意一个单一字符
{s1,s2,s3} 匹配给定的字符串中的任意一个(用逗号分隔)
{num1..num2}  匹配num1到num2之间的任意一个整数, 这里的num1和num2可以为正整数也可以为负整数
```
- 各个属性
```
indent_style 设置缩进风格(tab是硬缩进,space为软缩进)
indent_size 用一个整数定义的列数来设置缩进的宽度,如果indent_style为tab,则此属性默认为 tab_width
tab_width 用一个整数来设置tab缩进的列数。默认是indent_size
end_of_line 设置换行符,值为lf、cr和crlf
charset 设置编码,值为latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建议使用utf-8-bom
trim_trailing_whitespace 设为true表示会去除换行行首的任意空白字符。
insert_final_newline 设为true表示使文件以一个空白行结尾
root    表示是最顶层的配置文件,发现设为true时,才会停止查找.editorconfig文件
```
## 2.使用
----------
>
有些编辑器则需要安装editorConfig插件,如ATOM、Sublime、VS Code等
- 项目目录创建 `.editorconfig` 文件
```
$ touch .editorconfig
```
- `.editorconfig` 常用内容设置:
```
# editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
tab_width = 2
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tab
```
\ No newline at end of file
# git 分支管理
## git 分支及操作规范
- master:主分支,稳定分支,必须保证随时可用于发布
- release:预发布分支,如果有此分支,需将分支合并至release解决了冲突后,再将release合到master
- dev:开发分支,仅用来发布更新测试环境,需定期将master分支合并至此
- feature/xxx(迭代结束或上线时间,如200901,20年9月1日):功能开发分支,须从master分支上开出此分支,开发期间需定期合并master至此,测试时合并至dev更新到测试环境,测试完成后将该分支合并至master,然后删除分支
- bugfix:线上bug修复分支,每次修改前需将master合并至此,测试时合并至dev测试,测试完成后再合并至master发布上线
## git log 规范
建议:
- 格式:
```
- type: <subject>
```
- type: 说明本次 `commit` 的类别
```
add(feat): 增加
update: 更新
fix: 修复bug
style: 样式调整
test: 增加测试
docs: 编写文档
chore:构建过程或辅助工具的变动
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
```
- subject: `commit` 的简短描述
\ No newline at end of file
# 前端升级规范
## 一、什么时间升级?
● 每周四为各平台前端需求(不涉及后端的纯前端需求)的上线日。
● 优先级:临时的紧急上线 > 随业务组上线 > 周四上线
<br/>
## 二、谁来操作升级?
|~版本|~平台|~&nbsp;操作人&nbsp;|
| -- | -- | -- |
|3.0|全部平台 |石瑶 |
|4.0|基础平台(包含运维平台)、移动平台 |砂砾 |
|4.0|业务平台 |叮当 |
<br/>
## 三、原则
上线前、后,均需要经过测试负责人测试。
<br/>
## 四、升级通知
● 只要有上线,就要发送[《迭代升级说明》](https://www.tapd.cn/33025272/documents/show/1133025272001004205)给相关人员,并抄送sj@demogic.com&lt;升级通知组&gt;
● 由操作升级的人员发出邮件。
# vue 项目
## 生命周期
1. 不在 mounted、created 之类的方法写逻辑,取 ajax 数据,
2. 在 created 里面监听 Bus 事件
## vue方法放置顺序
`name->components ->props ->data ->beforeCreate->created ->beforeMount ->mounted->activited ->beforeUpdate->updated->beforeDestroy->destroyed->beforeRouteEnter->beforeRouteUpdate->beforeRouteLeave->metods->filter->computed ->watch`
## method 自定义方法命名(建议)
1. 动宾短语(good:jumpPage、openCarInfoDialog)(bad:go、nextPage、show、open、login)
2. ajax 方法以 get、post 开头,以 data 结尾(good:getListData、postFormData)(bad:takeData、confirmData、getList、postForm)
3. 事件方法以 on 开头(onTypeChange、onUsernameInput)
4. 尽量使用常用单词开头(set、get、open、close、jump)
5. 驼峰命名(good: getListData)(bad: get_list_data、getlistData)
为了更好的阅读体验,也是为了避免过渡注释,最好的注释就是让代码自己“说出”自己的作用,即命名要有规律性
例如,用于存储数组的变量以 List作为名字后缀,用于某种信息的对象变量以 Info作为名字后缀,用于判断某种逻辑的变量以 is作为前缀
```
const namesList = ['xiaoming', 'xiaohong']
const userInfo = {
name: 'John',
age: 20,
gender: 'male'
}
const isEven = 10 % 2 === 0
```
## Vue 组件命名
有意义的: 不过于具体,也不过于抽象
简短: 2 到 3 个单词
具有可读性: 以便于沟通交流
组件文件名使用连字符命名:user-list.vue
组件内name属性使用大驼峰命名:{ name: 'UserList' }
template中组件标签使用连字符:<user-list></user-list>
```
<!-- 推荐 -->
<app-header></app-header>
<user-list></user-list>
<range-slider></range-slider>
<!-- 避免 -->
<btn-group></btn-group><!-- 虽然简短但是可读性差. 使用 `button-group` 替代 -->
<ui-slider></ui-slider><!-- ui 前缀太过于宽泛,在这里意义不明确 -->
<slider></slider><!-- 与自定义元素规范不兼容 -->
```
## 验证组件的props
提供默认值。
使用 type 属性校验类型。
props的key使用小驼峰命名法。
使用 props 之前先检查该 prop 是否存在。
当prop为多种类型时应该使用数组表示。
在标签中如果prop有多个单词组成,应当使用连字符。
```
props: {
size: {
type: Number,
default:10
},
id: {
type: [Number, String],
default: ''
}
}
```
## 自定义事件名称
自定义事件名称,如果有多个单词组成,使用连字符命名法。
```
this.$emit('current-change');
```
## 其他注意事项:
1. 组件的name要写
2. v-for v-if 避免一起使用 循环 v-for 加key
3. 建议vue组件不要超过400行,既然是组件化开发,那么如果一个组件文件体积太大,存在几十个方法、几十个 data数据,那就说明这个组件大概率包含的功能点太多,是可以被继续细化出多个单一功能的子组件。每一个vue组件首先必须专注于解决一个单一的问题,独立的,可复用的,微小的和可测试的。 如果你的组件做了太多的事或是变得臃肿,将其拆成更小的组件并保持单一的原则。
4. 每个函数不要超过 100行,不要让一个方法函数包含过多的逻辑功能,函数包含过多逻辑,容易混乱,遵循函数功能单一原则
5. 与模板渲染无关的变量不要放在data里
6. 页面计算属性,逻辑过多不要写在template里,用computed
7. 与页面上与业务无关的工具方法应该放在工具方法里
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment