From c04879af1a1cd2f6a2230c19b4b619a7d3d29158 Mon Sep 17 00:00:00 2001
From: pipe <1173882893@qq.com>
Date: Wed, 10 Mar 2021 15:55:46 +0800
Subject: [PATCH 01/30] =?UTF-8?q?=E5=A2=9E=E5=8A=A0vue?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/.vuepress/config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 235a3ee..7da5b7c 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -51,7 +51,7 @@ module.exports = {
},
{
title: "VUE",
- children: ["/vueguide/"],
+ children: ["/vueguide/","/vueguide/rendermechanism"],
},
{
title: "CSS3",
--
Gitee
From 9e77b2b6de11c6661f4b1d921344c49bf7dd59df Mon Sep 17 00:00:00 2001
From: Leocat81 <35863352+Leocat81@users.noreply.github.com>
Date: Thu, 11 Mar 2021 00:05:41 +0800
Subject: [PATCH 02/30] =?UTF-8?q?=E8=A1=A5=E5=85=85es?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/.vuepress/config.js | 2 +-
.../dist/assets/img/search.83621669.svg | 1 -
docs/.vuepress/dist/assets/js/3.cdd1a97e.js | 1 -
docs/README.md | 7 +
docs/README.vue | 48 -------
docs/assets/2.png | Bin 0 -> 5047 bytes
docs/guide/ArrowDifNomal.md | 135 ++++++++++++++++++
docs/vueguide/rendermechanism.md | 1 +
8 files changed, 144 insertions(+), 51 deletions(-)
delete mode 100644 docs/.vuepress/dist/assets/img/search.83621669.svg
delete mode 100644 docs/.vuepress/dist/assets/js/3.cdd1a97e.js
create mode 100644 docs/README.md
delete mode 100644 docs/README.vue
create mode 100644 docs/assets/2.png
create mode 100644 docs/guide/ArrowDifNomal.md
create mode 100644 docs/vueguide/rendermechanism.md
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 7da5b7c..2badff9 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -47,7 +47,7 @@ module.exports = {
{
title: "ECMAScript",
collapsable: true,
- children: ["/guide/", "/guide/a", "/guide/prototype"],
+ children: ["/guide/", "/guide/a", "/guide/prototype","guide/ArrowDifNomal"],
},
{
title: "VUE",
diff --git a/docs/.vuepress/dist/assets/img/search.83621669.svg b/docs/.vuepress/dist/assets/img/search.83621669.svg
deleted file mode 100644
index 03d8391..0000000
--- a/docs/.vuepress/dist/assets/img/search.83621669.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/docs/.vuepress/dist/assets/js/3.cdd1a97e.js b/docs/.vuepress/dist/assets/js/3.cdd1a97e.js
deleted file mode 100644
index 18c377e..0000000
--- a/docs/.vuepress/dist/assets/js/3.cdd1a97e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{392:function(t,e,n){"use strict";n.d(e,"d",(function(){return i})),n.d(e,"a",(function(){return a})),n.d(e,"i",(function(){return s})),n.d(e,"f",(function(){return u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return c})),n.d(e,"b",(function(){return h})),n.d(e,"e",(function(){return p})),n.d(e,"k",(function(){return f})),n.d(e,"l",(function(){return d})),n.d(e,"c",(function(){return v})),n.d(e,"j",(function(){return m}));n(80),n(41),n(393),n(199),n(120),n(79),n(117),n(118),n(42),n(119),n(59);var i=/#.*$/,r=/\.(md|html)$/,a=/\/$/,s=/^[a-z]+:/i;function o(t){return decodeURI(t).replace(i,"").replace(r,"")}function u(t){return s.test(t)}function l(t){return/^mailto:/.test(t)}function c(t){return/^tel:/.test(t)}function h(t){if(u(t))return t;var e=t.match(i),n=e?e[0]:"",r=o(t);return a.test(r)?t:r+".html"+n}function p(t,e){var n=decodeURIComponent(t.hash),r=function(t){var e=t.match(i);if(e)return e[0]}(e);return(!r||n===r)&&o(t.path)===o(e)}function f(t,e,n){if(u(e))return{type:"external",path:e};n&&(e=function(t,e,n){var i=t.charAt(0);if("/"===i)return t;if("?"===i||"#"===i)return e+t;var r=e.split("/");n&&r[r.length-1]||r.pop();for(var a=t.replace(/^\//,"").split("/"),s=0;s3&&void 0!==arguments[3]?arguments[3]:1;if("string"==typeof e)return f(n,e,i);if(Array.isArray(e))return Object.assign(f(n,e[0],i),{title:e[1]});var a=e.children||[];return 0===a.length&&e.path?Object.assign(f(n,e.path,i),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,initialOpenGroupIndex:e.initialOpenGroupIndex,children:a.map((function(e){return t(e,n,i,r+1)})),collapsable:!1!==e.collapsable}}(t,r,l)})):[]}return[]}function g(t){var e=v(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map((function(e){return{type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}}))}]}function v(t){var e;return(t=t.map((function(t){return Object.assign({},t)}))).forEach((function(t){2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)})),t.filter((function(t){return 2===t.level}))}function m(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},393:function(t,e,n){"use strict";var i=n(124),r=n(9),a=n(5),s=n(16),o=n(126),u=n(127);i("match",1,(function(t,e,n){return[function(e){var n=s(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,n):new RegExp(e)[t](String(n))},function(t){var i=n(e,t,this);if(i.done)return i.value;var s=r(t),l=String(this);if(!s.global)return u(s,l);var c=s.unicode;s.lastIndex=0;for(var h,p=[],f=0;null!==(h=u(s,l));){var d=String(h[0]);p[f]=d,""===d&&(s.lastIndex=o(l,a(s.lastIndex),c)),f++}return 0===f?null:p}]}))},394:function(t,e,n){},395:function(t,e,n){"use strict";var i=n(0),r=n(83).trim;i({target:"String",proto:!0,forced:n(420)("trim")},{trim:function(){return r(this)}})},396:function(t,e,n){var i=n(7),r=n(2),a=n(81),s=n(129),o=n(8).f,u=n(35).f,l=n(122),c=n(125),h=n(200),p=n(14),f=n(1),d=n(29).set,g=n(82),v=n(4)("match"),m=r.RegExp,b=m.prototype,_=/a/g,k=/a/g,x=new m(_)!==_,C=h.UNSUPPORTED_Y;if(i&&a("RegExp",!x||C||f((function(){return k[v]=!1,m(_)!=_||m(k)==k||"/a/i"!=m(_,"i")})))){for(var $=function(t,e){var n,i=this instanceof $,r=l(t),a=void 0===e;if(!i&&r&&t.constructor===$&&a)return t;x?r&&!a&&(t=t.source):t instanceof $&&(a&&(e=c.call(t)),t=t.source),C&&(n=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var o=s(x?new m(t,e):m(t,e),i?this:b,$);return C&&n&&d(o,{sticky:n}),o},L=function(t){t in $||o($,t,{configurable:!0,get:function(){return m[t]},set:function(e){m[t]=e}})},y=u(m),w=0;y.length>w;)L(y[w++]);b.constructor=$,$.prototype=b,p(r,"RegExp",$)}g("RegExp")},397:function(t,e,n){},398:function(t,e,n){},399:function(t,e,n){},400:function(t,e,n){},401:function(t,e,n){},402:function(t,e,n){},403:function(t,e){t.exports=function(t){return null==t}},404:function(t,e,n){},405:function(t,e,n){},406:function(t,e,n){},407:function(t,e,n){},408:function(t,e,n){},409:function(t,e,n){},417:function(t,e,n){"use strict";n.r(e);n(114);var i=n(392),r={name:"SidebarGroup",components:{DropdownTransition:n(418).a},props:["item","open","collapsable","depth"],beforeCreate:function(){this.$options.components.SidebarLinks=n(417).default},methods:{isActive:i.e}},a=(n(432),n(22)),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("RouterLink",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,"sidebar-depth":t.item.sidebarDepth,"initial-open-group-index":t.item.initialOpenGroupIndex,depth:t.depth+1}}):t._e()],1)],1)}),[],!1,null,null,null).exports;n(433),n(79);function o(t,e,n,i,r){var a={props:{to:e,activeClass:"",exactActiveClass:""},class:{active:i,"sidebar-link":!0}};return r>2&&(a.style={"padding-left":r+"rem"}),t("RouterLink",a,n)}function u(t,e,n,r,a){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||s>a?null:t("ul",{class:"sidebar-sub-headers"},e.map((function(e){var l=Object(i.e)(r,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[o(t,n+"#"+e.slug,e.title,l,e.level-1),u(t,e.children,n,r,a,s+1)])})))}var l={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,r=n.$page,a=(n.$site,n.$route),s=n.$themeConfig,l=n.$themeLocaleConfig,c=e.props,h=c.item,p=c.sidebarDepth,f=Object(i.e)(a,h.path),d="auto"===h.type?f||h.children.some((function(t){return Object(i.e)(a,h.basePath+"#"+t.slug)})):f,g="external"===h.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,h.path,h.title||h.path):o(t,h.path,h.title||h.path,d),v=[r.frontmatter.sidebarDepth,p,l.sidebarDepth,s.sidebarDepth,1].find((function(t){return void 0!==t})),m=l.displayAllHeaders||s.displayAllHeaders;return"auto"===h.type?[g,u(t,h.children,h.basePath,a,v)]:(d||m)&&h.headers&&!i.d.test(h.path)?[g,u(t,Object(i.c)(h.headers),h.path,a,v)]:g}};n(434);function c(t,e){if("group"===e.type){var n=e.path&&Object(i.e)(t,e.path),r=e.children.some((function(e){return"group"===e.type?c(t,e):"page"===e.type&&Object(i.e)(t,e.path)}));return n||r}return!1}var h={name:"SidebarLinks",components:{SidebarGroup:s,SidebarLink:Object(a.a)(l,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth","initialOpenGroupIndex"],data:function(){return{openGroupIndex:this.initialOpenGroupIndex||0}},watch:{$route:function(){this.refreshIndex()}},created:function(){this.refreshIndex()},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(i.e)(this.$route,t.regularPath)}}},p=Object(a.a)(h,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,(function(e,i){return n("li",{key:i},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:i===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(i)}}}):n("SidebarLink",{attrs:{"sidebar-depth":t.sidebarDepth,item:e}})],1)})),0):t._e()}),[],!1,null,null,null);e.default=p.exports},418:function(t,e,n){"use strict";var i={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},r=(n(424),n(22)),a=Object(r.a)(i,(function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},419:function(t,e,n){"use strict";n(394)},420:function(t,e,n){var i=n(1),r=n(84);t.exports=function(t){return i((function(){return!!r[t]()||"
"!="
"[t]()||r[t].name!==t}))}},421:function(t,e,n){"use strict";var i,r=n(0),a=n(23).f,s=n(5),o=n(121),u=n(16),l=n(123),c=n(28),h="".endsWith,p=Math.min,f=l("endsWith");r({target:"String",proto:!0,forced:!!(c||f||(i=a(String.prototype,"endsWith"),!i||i.writable))&&!f},{endsWith:function(t){var e=String(u(this));o(t);var n=arguments.length>1?arguments[1]:void 0,i=s(e.length),r=void 0===n?i:p(s(n),i),a=String(t);return h?h.call(e,a,r):e.slice(r-a.length,r)===a}})},422:function(t,e,n){"use strict";n(397)},423:function(t,e,n){"use strict";n(398)},424:function(t,e,n){"use strict";n(399)},425:function(t,e,n){"use strict";n(400)},426:function(t,e,n){"use strict";n(401)},427:function(t,e,n){"use strict";n(402)},428:function(t,e,n){"use strict";n(404)},429:function(t,e,n){var i=n(43),r=n(20),a=n(36);t.exports=function(t){return"string"==typeof t||!r(t)&&a(t)&&"[object String]"==i(t)}},430:function(t,e,n){"use strict";n(405)},431:function(t,e,n){"use strict";n(406)},432:function(t,e,n){"use strict";n(407)},433:function(t,e,n){"use strict";var i=n(0),r=n(12).find,a=n(115),s=!0;"find"in[]&&Array(1).find((function(){s=!1})),i({target:"Array",proto:!0,forced:s},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),a("find")},434:function(t,e,n){"use strict";n(408)},435:function(t,e,n){"use strict";n(409)},446:function(t,e,n){"use strict";n.r(e);n(206),n(114),n(116);var i=n(392),r={name:"NavLink",props:{item:{required:!0}},computed:{link:function(){return Object(i.b)(this.item.link)},exact:function(){var t=this;return this.$site.locales?Object.keys(this.$site.locales).some((function(e){return e===t.link})):"/"===this.link},isNonHttpURI:function(){return Object(i.g)(this.link)||Object(i.h)(this.link)},isBlankTarget:function(){return"_blank"===this.target},isInternal:function(){return!Object(i.f)(this.link)&&!this.isBlankTarget},target:function(){return this.isNonHttpURI?null:this.item.target?this.item.target:Object(i.f)(this.link)?"_blank":""},rel:function(){return this.isNonHttpURI||!1===this.item.rel?null:this.item.rel?this.item.rel:this.isBlankTarget?"noopener noreferrer":null}},methods:{focusoutAction:function(){this.$emit("focusout")}}},a=n(22),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isInternal?n("RouterLink",{staticClass:"nav-link",attrs:{to:t.link,exact:t.exact},nativeOn:{focusout:function(e){return t.focusoutAction(e)}}},[t._v("\n "+t._s(t.item.text)+"\n")]):n("a",{staticClass:"nav-link external",attrs:{href:t.link,target:t.target,rel:t.rel},on:{focusout:t.focusoutAction}},[t._v("\n "+t._s(t.item.text)+"\n "),t.isBlankTarget?n("OutboundLink"):t._e()],1)}),[],!1,null,null,null).exports,o={name:"Home",components:{NavLink:s},computed:{data:function(){return this.$page.frontmatter},actionLink:function(){return{link:this.data.actionLink,text:this.data.actionText}}}},u=(n(419),Object(a.a)(o,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"home",attrs:{"aria-labelledby":null!==t.data.heroText?"main-title":null}},[n("header",{staticClass:"hero"},[t.data.heroImage?n("img",{attrs:{src:t.$withBase(t.data.heroImage),alt:t.data.heroAlt||"hero"}}):t._e(),t._v(" "),null!==t.data.heroText?n("h1",{attrs:{id:"main-title"}},[t._v("\n "+t._s(t.data.heroText||t.$title||"Hello")+"\n ")]):t._e(),t._v(" "),null!==t.data.tagline?n("p",{staticClass:"description"},[t._v("\n "+t._s(t.data.tagline||t.$description||"Welcome to your VuePress site")+"\n ")]):t._e(),t._v(" "),t.data.actionText&&t.data.actionLink?n("p",{staticClass:"action"},[n("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()]),t._v(" "),t.data.features&&t.data.features.length?n("div",{staticClass:"features"},t._l(t.data.features,(function(e,i){return n("div",{key:i,staticClass:"feature"},[n("h2",[t._v(t._s(e.title))]),t._v(" "),n("p",[t._v(t._s(e.details))])])})),0):t._e(),t._v(" "),n("Content",{staticClass:"theme-default-content custom"}),t._v(" "),t.data.footer?n("div",{staticClass:"footer"},[t._v("\n "+t._s(t.data.footer)+"\n ")]):t._e()],1)}),[],!1,null,null,null).exports),l=(n(207),n(395),n(59),n(119),n(42),n(393),n(41),n(201),n(202),n(120),n(80),n(396),n(198),n(79),n(199),n(421),n(204)),c=n.n(l),h=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c()(e,"title","");return c()(e,"frontmatter.tags")&&(i+=" ".concat(e.frontmatter.tags.join(" "))),n&&(i+=" ".concat(n)),p(t,i)},p=function(t,e){var n=function(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")},i=new RegExp("[^\0-]"),r=t.split(/\s+/g).map((function(t){return t.trim()})).filter((function(t){return!!t}));if(i.test(t))return r.some((function(t){return e.toLowerCase().indexOf(t)>-1}));var a=t.endsWith(" ");return new RegExp(r.map((function(t,e){return r.length!==e+1||a?"(?=.*\\b".concat(n(t),"\\b)"):"(?=.*\\b".concat(n(t),")")})).join("")+".+","gi").test(e)},f={name:"SearchBox",data:function(){return{query:"",focused:!1,focusIndex:0,placeholder:void 0}},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var t=this.query.trim().toLowerCase();if(t){for(var e=this.$site.pages,n=this.$site.themeConfig.searchMaxSuggestions||5,i=this.$localePath,r=[],a=0;a=n);a++){var s=e[a];if(this.getPageLocalePath(s)===i&&this.isSearchable(s))if(h(t,s))r.push(s);else if(s.headers)for(var o=0;o=n);o++){var u=s.headers[o];u.title&&h(t,s,u.title)&&r.push(Object.assign({},s,{path:s.path+"#"+u.slug,header:u}))}}return r}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},mounted:function(){this.placeholder=this.$site.themeConfig.searchPlaceholder||"",document.addEventListener("keydown",this.onHotkey)},beforeDestroy:function(){document.removeEventListener("keydown",this.onHotkey)},methods:{getPageLocalePath:function(t){for(var e in this.$site.locales||{})if("/"!==e&&0===t.path.indexOf(e))return e;return"/"},isSearchable:function(t){var e=null;return null===e||(e=Array.isArray(e)?e:new Array(e)).filter((function(e){return t.path.match(e)})).length>0},onHotkey:function(t){t.srcElement===document.body&&["s","/"].includes(t.key)&&(this.$refs.input.focus(),t.preventDefault())},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex "+t._s(e.header.title))]):t._e()])])})),0):t._e()])}),[],!1,null,null,null).exports),g=(n(423),Object(a.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-button",on:{click:function(e){return t.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{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"}})])])}),[],!1,null,null,null).exports),v=n(58),m=(n(203),n(418)),b=n(205),_=n.n(b),k={name:"DropdownLink",components:{NavLink:s,DropdownTransition:m.a},props:{item:{required:!0}},data:function(){return{open:!1}},computed:{dropdownAriaLabel:function(){return this.item.ariaLabel||this.item.text}},watch:{$route:function(){this.open=!1}},methods:{setOpen:function(t){this.open=t},isLastItemOfArray:function(t,e){return _()(e)===t},handleDropdown:function(){0===event.detail&&this.setOpen(!this.open)}}},x=(n(425),{name:"NavLinks",components:{NavLink:s,DropdownLink:Object(a.a)(k,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dropdown-wrapper",class:{open:t.open}},[n("button",{staticClass:"dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:t.handleDropdown}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow down"})]),t._v(" "),n("button",{staticClass:"mobile-dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:function(e){return t.setOpen(!t.open)}}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow",class:t.open?"down":"right"})]),t._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],staticClass:"nav-dropdown"},t._l(t.item.items,(function(e,i){return n("li",{key:e.link||i,staticClass:"dropdown-item"},["links"===e.type?n("h4",[t._v("\n "+t._s(e.text)+"\n ")]):t._e(),t._v(" "),"links"===e.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},t._l(e.items,(function(i){return n("li",{key:i.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:i},on:{focusout:function(n){t.isLastItemOfArray(i,e.items)&&t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0):n("NavLink",{attrs:{item:e},on:{focusout:function(n){t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0)])],1)}),[],!1,null,null,null).exports},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},nav:function(){var t=this,e=this.$site.locales;if(e&&Object.keys(e).length>1){var n=this.$page.path,i=this.$router.options.routes,r=this.$site.themeConfig.locales||{},a={text:this.$themeLocaleConfig.selectText||"Languages",ariaLabel:this.$themeLocaleConfig.ariaLabel||"Select language",items:Object.keys(e).map((function(a){var s,o=e[a],u=r[a]&&r[a].label||o.lang;return o.lang===t.$lang?s=n:(s=n.replace(t.$localeConfig.path,a),i.some((function(t){return t.path===s}))||(s=a)),{text:u,link:s}}))};return[].concat(Object(v.a)(this.userNav),[a])}return this.userNav},userLinks:function(){return(this.nav||[]).map((function(t){return Object.assign(Object(i.j)(t),{items:(t.items||[]).map(i.j)})}))},repoLink:function(){var t=this.$site.themeConfig.repo;return t?/^https?:/.test(t)?t:"https://github.com/".concat(t):null},repoLabel:function(){if(this.repoLink){if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;for(var t=this.repoLink.match(/^https?:\/\/[^/]+/)[0],e=["GitHub","GitLab","Bitbucket"],n=0;nMath.abs(n)&&Math.abs(e)>40&&(e>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),G=Object(a.a)(W,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"theme-container",class:t.pageClasses,on:{touchstart:t.onTouchStart,touchend:t.onTouchEnd}},[t.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":t.toggleSidebar}}):t._e(),t._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(e){return t.toggleSidebar(!1)}}}),t._v(" "),n("Sidebar",{attrs:{items:t.sidebarItems},on:{"toggle-sidebar":t.toggleSidebar},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("sidebar-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("sidebar-bottom")]},proxy:!0}],null,!0)}),t._v(" "),t.$page.frontmatter.home?n("Home"):n("Page",{attrs:{"sidebar-items":t.sidebarItems},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("page-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("page-bottom")]},proxy:!0}],null,!0)})],1)}),[],!1,null,null,null);e.default=G.exports}}]);
\ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..04db77a
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,7 @@
+---
+home: true
+heroImage: /img/panda4.png
+heroText: Hi,我是pipe
+tagline: 欢迎大家来到我的博客
+actionText: 开始阅读 →
+actionLink: /guide/
\ No newline at end of file
diff --git a/docs/README.vue b/docs/README.vue
deleted file mode 100644
index 23af65f..0000000
--- a/docs/README.vue
+++ /dev/null
@@ -1,48 +0,0 @@
----
-navbar: false
-sidebar: false
----
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/assets/2.png b/docs/assets/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..0dd86fa86c05eb5684f4c2fecf1e1edfd1335741
GIT binary patch
literal 5047
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箭头函数
+
+ ```js
+ let addUser=()=>{
+ console.log("添加一个用户")
+ }
+ ```
+ 普通函数
+
+ ```js
+function addUser(){
+ console.log("添加一个用户")
+ }
+ ```
+- 区别1:箭头函数使用箭头命名,普通函数中没有。
+
+- 区别2:箭头函数都为匿名函数,普通函数可以为匿名函数,也可以为具体名函数。
+
+- 区别3:箭头函数不能用于构造函数(不可以使用new) ,普通函数可以。
+
+``` JS
+let FunConstructor = () => {
+ console.log('lll');
+}
+
+let fc = new FunConstructor();
+```
+
+
+- 区别4:箭头函数不绑定`arguments`,取而代之用rest参数...解决(`arguments` 是一个对应于传递给函数的参数的类数组对象。)
+
+```JS
+function A(a){
+ console.log(arguments);
+}
+A(1,2,3,4,5,8); // [1, 2, 3, 4, 5, 8, callee: ƒ, Symbol(Symbol.iterator): ƒ]
+
+
+let B = (b)=>{
+ console.log(arguments);
+}
+B(2,92,32,32); // Uncaught ReferenceError: arguments is not defined
+
+
+let C = (...c) => {
+ console.log(c);
+}
+C(3,82,32,11323); // [3, 82, 32, 11323]
+```
+## 箭头函数中this指向问题详解
+- 区别5:箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值
+
+``` JS
+var obj = {
+ a: 10,
+ b: () => {
+ console.log(this.a); // undefined
+ console.log(this); // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}
+ },
+ c: function() {
+ console.log(this.a); // 10
+ console.log(this); // {a: 10, b: ƒ, c: ƒ}
+ }
+}
+obj.b();
+obj.c();
+```
+例子1
+
+``` JS
+var name = 'window';
+
+var A = {
+ name: 'A',
+ sayHello: function(){
+ var s = () => console.log(this.name)
+ return s//返回箭头函数s
+ }
+}
+
+var sayHello = A.sayHello();
+sayHello();// 输出A
+
+var B = {
+ name: 'B';
+}
+
+sayHello.call(B); //还是A
+sayHello.call(); //还是A
+
+```
+例子2
+
+OK,这样就做到了永远指向A对象了,我们再根据“该函数所在的作用域指向的对象”来分析一下:
+
+- 该函数所在的作用域:箭头函数s 所在的作用域是sayHello,因为sayHello是一个函数。(该函数所指的为箭头函数,只有函数才有作用域(也就是sayHello),也就是箭头函数所在的函数this即为箭头函数的this)
+- 作用域指向的对象:A.sayHello指向的对象是A。
+- 所以箭头函数s 中this就是指向A啦 ~~
+
+下面看一个错误例子
+
+```js
+var A = {
+ name: 'A',
+ sayHello:{
+ name: 'B',
+ print:()=>{
+ console.log(this.name);
+ }
+ }
+}
+var name='c'
+A.sayHello.print() //输出为 "c"
+```
+例子3
+为什么这里既没有输出B,也没有输出A呢,请记住上面那句话,该函数所在作用域指向的对象。在这个例子中,箭头函数所在的作用域既非sayHello,也非A,因为他们都不是函数,非函数是没有作用域的,this只能用在函数中,对象中是没有this的。这里箭头函数所在的作用域为window(在浏览器中),故输出为“c"。
+
+
+总结:箭头函数this在定义时就已经确定了,不会更改了。箭头函数this永远为该函数所在作用域指向的对象(结合上面例子仔细理解这句话)
+
+
diff --git a/docs/vueguide/rendermechanism.md b/docs/vueguide/rendermechanism.md
new file mode 100644
index 0000000..e88ab06
--- /dev/null
+++ b/docs/vueguide/rendermechanism.md
@@ -0,0 +1 @@
+### vue 渲染机制
--
Gitee
From bea19dc2a70bf9f7691911a318bd8772704c93d7 Mon Sep 17 00:00:00 2001
From: Leocat81 <35863352+Leocat81@users.noreply.github.com>
Date: Thu, 11 Mar 2021 23:40:31 +0800
Subject: [PATCH 03/30] reduce
---
docs/.vuepress/config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 2badff9..e1ebe69 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -47,7 +47,7 @@ module.exports = {
{
title: "ECMAScript",
collapsable: true,
- children: ["/guide/", "/guide/a", "/guide/prototype","guide/ArrowDifNomal"],
+ children: ["/guide/", "/guide/a", "/guide/prototype","guide/ArrowDifNomal","guide/reduce"],
},
{
title: "VUE",
--
Gitee
From 58bec99b0244cb9d0b8c28b4a82920bd71f6c447 Mon Sep 17 00:00:00 2001
From: Leocat81 <35863352+Leocat81@users.noreply.github.com>
Date: Thu, 11 Mar 2021 23:41:06 +0800
Subject: [PATCH 04/30] reduce
---
docs/guide/reduce.md | 142 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 142 insertions(+)
create mode 100644 docs/guide/reduce.md
diff --git a/docs/guide/reduce.md b/docs/guide/reduce.md
new file mode 100644
index 0000000..6594940
--- /dev/null
+++ b/docs/guide/reduce.md
@@ -0,0 +1,142 @@
+# reduce 函数
+
+## 语法
+
+```js
+array.reduce(function (total, currentValue, currentIndex, arr),initialValue )
+```
+
+## 参数解析
+
+| 参数 | 描述 |
+| ------------ | :------------------------------------: |
+| total | 必需。初始值, 或者计算结束后的返回值。 |
+| currentValue | 必需。当前元素 |
+| currentIndex | 可选。当前元素的索引 |
+| arr | 可选。当前元素所属的数组对象。 |
+| initialValue | 可选。传递给函数的初始值 |
+
+## 简单用法
+
+- 数组求和,求积。
+
+```JS
+let names = [1,2,3,4];
+
+let sum=names.reduce((pre,cur)=> pre+cur) //数组求和
+let mul=names.reduce((pre,cur)=>pre*cur) //数组求积
+let sum2=names.reduce((pre,cur)=> pre+cur,5) // 传递给函数初始值为5 故为5+1+2+3+4+5
+let mul2=names.reduce((pre,cur)=>pre*cur,5) // 传递给函数初始值为5 故为5*1*2*3*4*5
+
+console.log(sum); // 10
+console.log(mul); // 24
+console.log(sum2); // 15
+console.log(mul2); // 120
+```
+
+例子1
+
+## 高级用法
+
+(1) 计算数组中每个元素出现的次数
+
+```ts
+let strArr: Array = ["a", "b", "c", "a", "b", "c", "c", "d"];
+
+interface LabelledValue {
+ [index: string]: number;
+}
+
+let countStrNum: object = strArr.reduce((pre: LabelledValue, cur: string) => {
+ if (cur in pre) {
+ pre[cur]++;
+ } else {
+ pre[cur] = 1;
+ }
+ return pre;
+}, {});
+console.log(JSON.stringify(countStrNum)); // {"a":2,"b":2,"c":3,"d":1}
+```
+
+(2) 数组去重
+
+```ts
+let arr: number[] = [1, 2, 3, 4, 4, 1];
+let newArr: Array = arr.reduce((pre: Array, cur: number) => {
+ // 方法一:使用push
+ if (!pre.includes(cur)) {
+ pre.push(cur);
+ }
+ return pre;
+ // 方法二:使用concat
+ // if (!pre.includes(cur)) {
+ // return pre.concat(cur);
+ // } else {
+ // return pre;
+ // }
+}, []);
+console.log(newArr); // [1,2,3,4]
+```
+
+(3)将二维数组转化为一维
+
+```ts
+let arr: Array = [
+ [0, 1],
+ [2, 3],
+ [4, 5],
+];
+let newArr: Array = arr.reduce(
+ (pre: Array, cur: Array) => {
+ return pre.concat(cur);
+ }
+);
+console.log(newArr); // [0, 1, 2, 3, 4, 5]
+```
+
+(4)将多维数组转化为一维
+
+```ts
+let arr: any = [
+ [0, 1],
+ [2, 3],
+ [4, [5, 6, 7]],
+];
+const newArr: any = function(arr: any) {
+ return arr.reduce((pre: any, cur: any) => {
+ return pre.concat(Array.isArray(cur) ? newArr(cur) : cur);
+ }, []);
+};
+console.log(newArr(arr));
+```
+
+(5) 对象里的属性求和
+
+```JS
+var result = [
+ {
+ subject: 'math',
+ score: 10
+ },
+ {
+ subject: 'chinese',
+ score: 20
+ },
+ {
+ subject: 'english',
+ score: 30
+ }
+];
+
+var sum = result.reduce(function(prev, cur) {
+ return cur.score + prev;
+}, 0);
+console.log(sum) //60
+```
+
+
--
Gitee
From 6b56c0d6b746d8d0ffa2e1605e59d80530d5582c Mon Sep 17 00:00:00 2001
From: Leocat81 <35863352+Leocat81@users.noreply.github.com>
Date: Thu, 11 Mar 2021 23:42:50 +0800
Subject: [PATCH 05/30] add env
---
package.json | 2 ++
1 file changed, 2 insertions(+)
diff --git a/package.json b/package.json
index 311f3da..a66e929 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,8 @@
"description": "",
"main": "index.js",
"scripts": {
+ "start":"npm docs:dev",
+ "build":"npm run docs:build",
"docs:dev": "vuepress dev docs --temp .temp",
"docs:build": "vuepress build docs"
},
--
Gitee
From 286bfe13d1c591071f3ba899314731f210d2c326 Mon Sep 17 00:00:00 2001
From: pipe <1173882893@qq.com>
Date: Fri, 12 Mar 2021 15:33:18 +0800
Subject: [PATCH 06/30] add emoji
---
README.md | 10 +++++-----
docs/.vuepress/config.js | 23 ++++++++++++++++++++---
docs/guide/DataHijacking.md | 3 +++
docs/httpguide/README.md | 8 ++++++++
package.json | 2 +-
5 files changed, 37 insertions(+), 9 deletions(-)
create mode 100644 docs/guide/DataHijacking.md
create mode 100644 docs/httpguide/README.md
diff --git a/README.md b/README.md
index 3110252..d890cd6 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,14 @@
-# blog_vuecode
+# ❤️ ❤️ blog_vuecode
-#### 介绍
+#### ✨✨✨ 介绍 ✨✨✨
使用 vuepress 构建的个人博客。
-#### 运行
+#### ⚡⚡⚡ 运行 ⚡⚡⚡
1.npm install
2.npm run docs:dev
-#### 打包
+#### ⛄ ⛄ ⛄ 打包 ⛄ ⛄ ⛄
-npm run docs:build 111111
+npm run docs:build
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index e1ebe69..5ee0a94 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -37,6 +37,12 @@ module.exports = {
["vuepress-plugin-gotop-plus"],
],
themeConfig: {
+ lastUpdated: 'Last Updated',
+ // 假定是 GitHub. 同时也可以是一个完整的 GitLab URL
+ repo: 'https://gitee.com/pipepandafeng/blog_vuecode',
+ // 自定义仓库链接文字。默认从 `themeConfig.repo` 中自动推断为
+ // "GitHub"/"GitLab"/"Bitbucket" 其中之一,或是 "Source"。
+ repoLabel: '查看源码',
// nav : [
// { text: '接口定义', link: '/apiword' },
// { text: '接口字段定义', link: '/api' },
@@ -47,16 +53,27 @@ module.exports = {
{
title: "ECMAScript",
collapsable: true,
- children: ["/guide/", "/guide/a", "/guide/prototype","guide/ArrowDifNomal","guide/reduce"],
+ children: [
+ "/guide/",
+ "/guide/a",
+ "/guide/prototype",
+ "guide/ArrowDifNomal",
+ "guide/reduce",
+ "guide/DataHijacking"
+ ],
},
{
title: "VUE",
- children: ["/vueguide/","/vueguide/rendermechanism"],
+ children: ["/vueguide/", "/vueguide/rendermechanism"],
},
- {
+ {
title: "CSS3",
children: ["/css3guide/"],
},
+ {
+ title: "http协议",
+ children: ["/httpguide/"],
+ },
],
sidebarDepth: 1,
},
diff --git a/docs/guide/DataHijacking.md b/docs/guide/DataHijacking.md
new file mode 100644
index 0000000..470242b
--- /dev/null
+++ b/docs/guide/DataHijacking.md
@@ -0,0 +1,3 @@
+# 简单模拟数据劫持
+
+
diff --git a/docs/httpguide/README.md b/docs/httpguide/README.md
new file mode 100644
index 0000000..f5f78aa
--- /dev/null
+++ b/docs/httpguide/README.md
@@ -0,0 +1,8 @@
+# 状态码 401 和 403 区别
+
+| 状态码 | 状态码英文名称 | 描述 |
+| ------ | :------------: | :--------------------------------------------: |
+| 401 | Unauthorized | 请求要求用户的身份认证 |
+| 403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
+
+总结:401 未过服务端身份认证,403 过了身份认证,但是用户无权限操作。
diff --git a/package.json b/package.json
index a66e929..d2c7965 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
"description": "",
"main": "index.js",
"scripts": {
- "start":"npm docs:dev",
+ "start":"npm run docs:dev",
"build":"npm run docs:build",
"docs:dev": "vuepress dev docs --temp .temp",
"docs:build": "vuepress build docs"
--
Gitee
From 0f4126f918657c5b9b3567d92a321a1c38bd7e07 Mon Sep 17 00:00:00 2001
From: pipe <1173882893@qq.com>
Date: Fri, 12 Mar 2021 15:38:39 +0800
Subject: [PATCH 07/30] update emoji
---
README.md | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
index d890cd6..9028a50 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,17 @@
-# ❤️ ❤️ blog_vuecode
+# ❤️ blog_vuecode ❤️
-#### ✨✨✨ 介绍 ✨✨✨
+#### 介绍
-使用 vuepress 构建的个人博客。
+
+✨使用 vuepress 构建的个人博客。✨
-#### ⚡⚡⚡ 运行 ⚡⚡⚡
+#### 运行
-1.npm install
-2.npm run docs:dev
+
+⚡1.npm install⚡
+⚡2.npm run docs:dev⚡
-#### ⛄ ⛄ ⛄ 打包 ⛄ ⛄ ⛄
+#### 打包
-npm run docs:build
+
+⛄npm run docs:build⛄
--
Gitee
From e63d99d1b955c9a5859dd9304f9316c13649da66 Mon Sep 17 00:00:00 2001
From: pipe <1173882893@qq.com>
Date: Fri, 12 Mar 2021 15:40:53 +0800
Subject: [PATCH 08/30] update
---
README.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 9028a50..195cd79 100644
--- a/README.md
+++ b/README.md
@@ -14,4 +14,8 @@
#### 打包
-⛄npm run docs:build⛄
+⛄
+
+`npm run docs:build`
+
+⛄
--
Gitee
From b4aed14430ab6bc4c5f7360a4d19f8b5ab6c3cbb Mon Sep 17 00:00:00 2001
From: pipe <1173882893@qq.com>
Date: Fri, 12 Mar 2021 15:42:28 +0800
Subject: [PATCH 09/30] update
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index 195cd79..1086a73 100644
--- a/README.md
+++ b/README.md
@@ -19,3 +19,5 @@
`npm run docs:build`
⛄
+
+欢迎大家在评论区留下自己的意见,博主会第一时间回答。
\ No newline at end of file
--
Gitee
From e2247d92d1fe2bf0f249fec9c38439f8db0d2206 Mon Sep 17 00:00:00 2001
From: Leocat81 <35863352+Leocat81@users.noreply.github.com>
Date: Sun, 14 Mar 2021 00:07:58 +0800
Subject: [PATCH 10/30] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=8A=AB=E6=8C=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/assets/datahijack.png | Bin 0 -> 2787 bytes
docs/assets/datahijack2.png | Bin 0 -> 2460 bytes
docs/guide/DataHijacking.md | 194 ++++++++++++++++++++++++++++++++++++
3 files changed, 194 insertions(+)
create mode 100644 docs/assets/datahijack.png
create mode 100644 docs/assets/datahijack2.png
diff --git a/docs/assets/datahijack.png b/docs/assets/datahijack.png
new file mode 100644
index 0000000000000000000000000000000000000000..a84508184d617f28d912c81dc995f6989fadd35b
GIT binary patch
literal 2787
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
literal 0
HcmV?d00001
diff --git a/docs/guide/DataHijacking.md b/docs/guide/DataHijacking.md
index 470242b..a735e16 100644
--- a/docs/guide/DataHijacking.md
+++ b/docs/guide/DataHijacking.md
@@ -1,3 +1,197 @@
# 简单模拟数据劫持
+在实现简单模拟数据劫持之前,让我们先来了解一下 ECMAScript 对象的属性类型
+## 对象的属性类型
+
+ECMAScript 中有两种属性:数据属性和访问器属性。
+
+### 一 : 数据属性
+
+数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有 4 个描述其行为的特性。
+
+- [[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为 true。
+- [[Enumberable]]:表示能否通过 for-in 循环返回属性。默认值为 true。
+- [[Writable]]:表示能否修改属性的值。默认值为 true。
+- [[Value]]:包含这个属性的数据值。读取属性值的时候,从这个位置读;写入属性值的时候,把新值保存在这个位置。默认值为 undefined。
+
+要修改属性默认的特性,必须使用 ES5 的 Object.defineProperty()方法。
+
+```JS {3-4}
+let person = {}
+Object.defineProperty(person, 'name', {
+
+ configurable:false, // 不能删除该属性,不能修改属性的特性,不能访问访问器属性
+ writable:false, // 不能进行赋值操作
+ value:'Niko'
+
+})
+console.log(person.name); // 'Niko'
+delete person.name // 因为configurable为false, 在删除属性操作 非严格模式下不会发生任何操作,在严格模式下报错
+console.log(person.name); // 'Niko'
+
+console.log(person.name); // 'Niko'
+ person.name='Simple' // 因为writable为false, 故赋值操作在非严格模式下不会发生任何操作,在严格模式下报错
+console.log(person.name); // 'Niko'
+
+```
+
+Object.defineProperty()方法可以被调用多次,但是把 configurable 特性设置为 false 之后就会有限制了。见下面例子:
+
+```js {3,8}
+let person = {};
+Object.defineProperty(person, "name", {
+ configurable: false,
+ value: "Niko",
+});
+// 抛出错误
+Object.defineProperty(person, "name", {
+ configurable: true,
+ value: "Niko",
+});
+```
+
+在调用 Object.defineProperty()方法创建一个新的属性时,如果不指定,configurable,Enumberable,Writable 特性的默认值都是 false。
+
+### 二 :访问器属性
+
+访问器属性不包含数据值;它们包含一对 getter 和 setter 函数(不过,这两个函数都不是必需的)。在读取访问器属性时,会调用 getter 函数,这个函数负责返回有效的值;在写入访问器属性时,会调用 setter 函数并传入新值,这个函数负责决定如何处理数据。访问器属性有如下 4 个特性。
+
+- [[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为 true。
+- [[Enumberable]]:表示能否通过 for-in 循环返回属性。默认值为 true。
+- [[Get]]:在读取属性时调用的函数。默认值为 undefined。
+- [[Set]]:在写入属性时调用的函数。默认值为 undefined。
+
+访问器属性不能直接定义,必须使用 Object.defineProperty()来定义。请看下面的例子。
+
+```JS
+var book = {
+ _year: 2004,
+ edition: 1
+};
+
+Object.defineProperty(book, "year", {
+ get: function() {
+ return this._year;
+ },
+ set: function(newValue) {
+ if (newValue > 2004) {
+ this._year = newValue;
+ this.edition += newValue - 2004;
+ }
+ }
+});
+
+book.year = 2005;
+alert(book.edition); //2
+```
+
+定义多个属性
+
+```JS
+var book = {};
+
+Object.defineProperties(book, {
+ _year: {
+ writable: true,
+ value: 2004
+ },
+ edition: {
+ writable: true,
+ value: 1
+ },
+ year: {
+ get: function() {
+ return this._year;
+ },
+ set: function() {
+ if (newValue > 2004) {
+ this._year = newValue;
+ this.edition += newValue - 2004;
+ }
+ }
+ }
+});
+```
+
+## 数据劫持
+
+经过以上简单介绍对象的属性类型和 Object.defineProperty()方法,相信大家都已经想到了数据劫持实现方法了,实际就是使用对象访问器属性的 getter 和 setter 函数对数据变化进行拦截通知,下面直接上代码。
+
+```ts
+let obj = {
+ name: "xiaoli",
+ likes: ["speak", "dance"],
+};
+
+// 遍历对象所有属性,给每个属性绑定拦截器
+function observe(obj: any) {
+ Object.keys(obj).forEach((element) => {
+ reactive(obj, element, obj[element]);
+ });
+}
+
+// 定义一个拦截器,劫持数据的变化并通知。
+function reactive(obj: object, key: string, value: string | Array) {
+ Object.defineProperty(obj, key, {
+ get: function() {
+ console.log("获取参数");
+ return value;
+ },
+ set: function(newVal) {
+ console.log("设置参数");
+ value = newVal;
+ },
+ });
+}
+observe(obj);
+obj.name = "xiaowang"; // 这里进行的赋值操作,故见下图"设置参数"出现一次
+console.log(JSON.stringify(obj)); // 这里进行的读取操作,故见下图"获取参数"出现两次
+```
+
+
+
+总结:以上即为简单的数据劫持模型
+
+
+
+特别注意:setter 函数不能劫持到以下几种情况
+
+1:不能检测以下数组的变动
+
+- 当你利用索引直接设置一个数组项时 例如 `arr[indexOfItem] = newValue`
+- 当你修改数组的长度时,例如:`arr.length = newLength`
+
+TODO: 查阅资料,补充其他情况。
+
+以上面例子举例:
+
+```js
+observe(obj);
+obj.likes[0] = "read"; // 这里实际只进入了getter,没有进入setter 故下图
+console.log(JSON.stringify(obj));
+```
+
+
+
+
--
Gitee
From 98c89258cab0a6cd56facd51d5a377b2b4e591f6 Mon Sep 17 00:00:00 2001
From: Leocat81 <35863352+Leocat81@users.noreply.github.com>
Date: Sun, 14 Mar 2021 22:18:29 +0800
Subject: [PATCH 11/30] =?UTF-8?q?1.=E5=8A=A0=E5=BC=BASEO=202.=E5=90=AF?=
=?UTF-8?q?=E5=8A=A8=E7=9C=8B=E6=9D=BF=E5=A8=98=203.=E8=A1=A5=E5=85=85es?=
=?UTF-8?q?=E5=92=8Cvue?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/.vuepress/config.js | 27 ++++--
docs/.vuepress/public/img/logoweb.png | Bin 0 -> 10458 bytes
.../live2d/hibiki/assets/exp/f01.exp.json | 1 +
.../live2d/hibiki/assets/exp/f02.exp.json | 1 +
.../live2d/hibiki/assets/exp/f03.exp.json | 1 +
.../live2d/hibiki/assets/exp/f04.exp.json | 1 +
.../live2d/hibiki/assets/exp/f05.exp.json | 1 +
.../live2d/hibiki/assets/exp/f06.exp.json | 1 +
.../live2d/hibiki/assets/hibiki.model.json | 1 +
.../live2d/hibiki/assets/hibiki.physics.json | 1 +
.../assets/moc/hibiki.2048/texture_00.png | Bin 0 -> 229656 bytes
.../live2d/hibiki/assets/moc/hibiki.moc | Bin 0 -> 151282 bytes
.../live2d/hibiki/assets/mtn/hibiki_01.mtn | 27 ++++++
.../live2d/hibiki/assets/mtn/hibiki_02.mtn | 27 ++++++
.../live2d/hibiki/assets/mtn/hibiki_03.mtn | 27 ++++++
.../live2d/hibiki/assets/mtn/hibiki_04.mtn | 27 ++++++
.../live2d/hibiki/assets/mtn/hibiki_05.mtn | 27 ++++++
.../live2d/hibiki/assets/mtn/idle_01.mtn | 28 ++++++
.../live2d/hibiki/assets/mtn/idle_02.mtn | 28 ++++++
.../live2d/hibiki/assets/mtn/idle_03.mtn | 28 ++++++
.../live2d/hibiki/assets/mtn/idle_04.mtn | 28 ++++++
docs/.vuepress/styles/index.styl | 11 +++
docs/README.md | 7 +-
docs/css3guide/README.md | 2 +-
docs/guide/ArrowDifNomal.md | 2 +-
docs/guide/DataHijacking.md | 2 +-
docs/guide/README.md | 2 +-
docs/guide/lowcopyAnddeepCopy.md | 83 ++++++++++++++++++
docs/guide/reduce.md | 4 +-
docs/vueguide/ComputedDifWatch.md | 18 ++++
docs/vueguide/README.md | 4 +-
package-lock.json | 63 +++++++++++++
package.json | 8 +-
33 files changed, 469 insertions(+), 19 deletions(-)
create mode 100644 docs/.vuepress/public/img/logoweb.png
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/exp/f01.exp.json
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/exp/f02.exp.json
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/exp/f03.exp.json
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/exp/f04.exp.json
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/exp/f05.exp.json
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/exp/f06.exp.json
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/hibiki.model.json
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/hibiki.physics.json
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/moc/hibiki.2048/texture_00.png
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/moc/hibiki.moc
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/hibiki_01.mtn
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/hibiki_02.mtn
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/hibiki_03.mtn
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/hibiki_04.mtn
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/hibiki_05.mtn
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/idle_01.mtn
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/idle_02.mtn
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/idle_03.mtn
create mode 100644 docs/.vuepress/public/live2d/hibiki/assets/mtn/idle_04.mtn
create mode 100644 docs/.vuepress/styles/index.styl
create mode 100644 docs/guide/lowcopyAnddeepCopy.md
create mode 100644 docs/vueguide/ComputedDifWatch.md
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 5ee0a94..d47a4da 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -1,11 +1,27 @@
+const autometa_options = {
+ site: {
+ name: 'pipe blog',
+ twitter: 'pipe',
+ },
+ author: {
+ name : '司俊峰',
+ twitter: 'pipe',
+ },
+ canonical_base: 'http://pipepandafeng.gitee.io/pipe_blog',
+};
module.exports = {
base: "/pipe_blog/",
- title: "笔记", // 设置网站标题
+ title: "pipe blog", // 设置网站标题
description: "欢迎来到我的博客",
+ head: [
+ ['link', { rel: 'icon', href: '/img/panda4.png' }]
+ ],
markdown: {
lineNumbers: true,
},
plugins: [
+ [ 'autometa', autometa_options ],
+ 'vuepress-plugin-baidu-autopush',
/* 两个插件只能选一个 */
[
"vuepress-plugin-helper-live2d",
@@ -14,7 +30,7 @@ module.exports = {
log: true,
live2d: {
// 是否启用(关闭请设置为false)(default: true)
- enable: false,
+ enable: true,
// 模型名称(default: hibiki)>>>取值请参考:
// https://github.com/JoeyBling/hexo-theme-yilia-plus/wiki/live2d%E6%A8%A1%E5%9E%8B%E5%8C%85%E5%B1%95%E7%A4%BA
model: "hibiki",
@@ -37,7 +53,7 @@ module.exports = {
["vuepress-plugin-gotop-plus"],
],
themeConfig: {
- lastUpdated: 'Last Updated',
+ lastUpdated: 'Last Updated',
// 假定是 GitHub. 同时也可以是一个完整的 GitLab URL
repo: 'https://gitee.com/pipepandafeng/blog_vuecode',
// 自定义仓库链接文字。默认从 `themeConfig.repo` 中自动推断为
@@ -59,12 +75,13 @@ module.exports = {
"/guide/prototype",
"guide/ArrowDifNomal",
"guide/reduce",
- "guide/DataHijacking"
+ "guide/DataHijacking",
+ "guide/lowcopyAnddeepCopy"
],
},
{
title: "VUE",
- children: ["/vueguide/", "/vueguide/rendermechanism"],
+ children: ["/vueguide/", "/vueguide/rendermechanism","/vueguide/ComputedDifWatch"],
},
{
title: "CSS3",
diff --git a/docs/.vuepress/public/img/logoweb.png b/docs/.vuepress/public/img/logoweb.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed708bfe77fd81edd9a5bca4c73c6579608b8490
GIT binary patch
literal 10458
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
literal 0
HcmV?d00001
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/exp/f01.exp.json b/docs/.vuepress/public/live2d/hibiki/assets/exp/f01.exp.json
new file mode 100644
index 0000000..39cca25
--- /dev/null
+++ b/docs/.vuepress/public/live2d/hibiki/assets/exp/f01.exp.json
@@ -0,0 +1 @@
+{"type":"Live2D Expression","fade_in":500,"fade_out":500}
\ No newline at end of file
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/exp/f02.exp.json b/docs/.vuepress/public/live2d/hibiki/assets/exp/f02.exp.json
new file mode 100644
index 0000000..ac70bd4
--- /dev/null
+++ b/docs/.vuepress/public/live2d/hibiki/assets/exp/f02.exp.json
@@ -0,0 +1 @@
+{"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_FORM","val":-1},{"id":"PARAM_BROW_R_FORM","val":-1},{"id":"PARAM_MOUTH_FORM","val":0,"def":1}]}
\ No newline at end of file
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/exp/f03.exp.json b/docs/.vuepress/public/live2d/hibiki/assets/exp/f03.exp.json
new file mode 100644
index 0000000..62376ac
--- /dev/null
+++ b/docs/.vuepress/public/live2d/hibiki/assets/exp/f03.exp.json
@@ -0,0 +1 @@
+{"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_X","val":-0.42},{"id":"PARAM_BROW_R_X","val":-0.42},{"id":"PARAM_BROW_L_ANGLE","val":0.62},{"id":"PARAM_BROW_R_ANGLE","val":0.68},{"id":"PARAM_BROW_L_FORM","val":-1},{"id":"PARAM_BROW_R_FORM","val":-1},{"id":"PARAM_MOUTH_FORM","val":0.15,"def":1}]}
\ No newline at end of file
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/exp/f04.exp.json b/docs/.vuepress/public/live2d/hibiki/assets/exp/f04.exp.json
new file mode 100644
index 0000000..9c446c6
--- /dev/null
+++ b/docs/.vuepress/public/live2d/hibiki/assets/exp/f04.exp.json
@@ -0,0 +1 @@
+{"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_Y","val":0.39},{"id":"PARAM_BROW_R_Y","val":0.33},{"id":"PARAM_BROW_L_ANGLE","val":0.19},{"id":"PARAM_BROW_R_ANGLE","val":0.19},{"id":"PARAM_BROW_L_FORM","val":1},{"id":"PARAM_BROW_R_FORM","val":1},{"id":"PARAM_MOUTH_FORM","val":0.31,"def":1}]}
\ No newline at end of file
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/exp/f05.exp.json b/docs/.vuepress/public/live2d/hibiki/assets/exp/f05.exp.json
new file mode 100644
index 0000000..bd07c50
--- /dev/null
+++ b/docs/.vuepress/public/live2d/hibiki/assets/exp/f05.exp.json
@@ -0,0 +1 @@
+{"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_Y","val":-0.25},{"id":"PARAM_BROW_R_Y","val":-0.25},{"id":"PARAM_BROW_L_ANGLE","val":0.54},{"id":"PARAM_BROW_R_ANGLE","val":0.59},{"id":"PARAM_BROW_L_FORM","val":-0.42},{"id":"PARAM_BROW_R_FORM","val":-0.45},{"id":"PARAM_MOUTH_FORM","val":0.79,"def":1},{"id":"PARAM_TERE","val":1}]}
\ No newline at end of file
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/exp/f06.exp.json b/docs/.vuepress/public/live2d/hibiki/assets/exp/f06.exp.json
new file mode 100644
index 0000000..4b1b7ce
--- /dev/null
+++ b/docs/.vuepress/public/live2d/hibiki/assets/exp/f06.exp.json
@@ -0,0 +1 @@
+{"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_ANGLE","val":0.1},{"id":"PARAM_BROW_R_ANGLE","val":0.16},{"id":"PARAM_BROW_L_FORM","val":-0.51},{"id":"PARAM_BROW_R_FORM","val":-0.51},{"id":"PARAM_MOUTH_FORM","val":0.5,"def":1}]}
\ No newline at end of file
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/hibiki.model.json b/docs/.vuepress/public/live2d/hibiki/assets/hibiki.model.json
new file mode 100644
index 0000000..0b2e549
--- /dev/null
+++ b/docs/.vuepress/public/live2d/hibiki/assets/hibiki.model.json
@@ -0,0 +1 @@
+{"version":"Sample 1.0.0","model":"moc/hibiki.moc","textures":["moc/hibiki.2048/texture_00.png"],"motions":{"null":[{"file":"mtn/hibiki_01.mtn","sound":"snd/hibiki_01.mp3"},{"file":"mtn/hibiki_02.mtn","sound":"snd/hibiki_02.mp3"},{"file":"mtn/hibiki_03.mtn","sound":"snd/hibiki_03.mp3"},{"file":"mtn/hibiki_04.mtn","sound":"snd/hibiki_04.mp3"},{"file":"mtn/hibiki_05.mtn","sound":"snd/hibiki_05.mp3"}],"idle":[{"file":"mtn/idle_01.mtn"},{"file":"mtn/idle_02.mtn"},{"file":"mtn/idle_03.mtn"},{"file":"mtn/idle_04.mtn"}]},"expressions":[{"name":"f01.mtn","file":"exp/f01.exp.json"},{"name":"f02.mtn","file":"exp/f02.exp.json"},{"name":"f03.mtn","file":"exp/f03.exp.json"},{"name":"f04.mtn","file":"exp/f04.exp.json"},{"name":"f05.mtn","file":"exp/f05.exp.json"},{"name":"f06.mtn","file":"exp/f06.exp.json"}],"physics":"hibiki.physics.json"}
\ No newline at end of file
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/hibiki.physics.json b/docs/.vuepress/public/live2d/hibiki/assets/hibiki.physics.json
new file mode 100644
index 0000000..95fd95b
--- /dev/null
+++ b/docs/.vuepress/public/live2d/hibiki/assets/hibiki.physics.json
@@ -0,0 +1 @@
+{"type":"Live2D Physics","physics_hair":[{"lebel":"HAIR_FRONT","setup":{"length":0.1,"regist":0.3,"mass":0.1},"src":[{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":0.5},{"id":"PARAM_BODY_ANGLE_Z","ptype":"angle","scale":2.4,"weight":0.5},{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":2},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":2}],"targets":[{"id":"PARAM_HAIR_FRONT","ptype":"angle","scale":0.025,"weight":1}]},{"lebel":"HAIR_BACK","setup":{"length":0.3,"regist":0.8,"mass":0.3},"src":[{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":0.5},{"id":"PARAM_BODY_ANGLE_Z","ptype":"angle","scale":2.4,"weight":0.5},{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":1},{"id":"PARAM_ANGLE_Y","ptype":"angle","scale":0.8,"weight":1}],"targets":[{"id":"PARAM_HAIR_BACK","ptype":"angle","scale":0.025,"weight":1}]},{"lebel":"RIBBON","setup":{"length":0.2,"regist":0.5,"mass":0.1},"src":[{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":1},{"id":"PARAM_BODY_ANGLE_Z","ptype":"angle","scale":2.4,"weight":1}],"targets":[{"id":"PARAM_RIBBON","ptype":"angle","scale":0.022,"weight":1}]}]}
\ No newline at end of file
diff --git a/docs/.vuepress/public/live2d/hibiki/assets/moc/hibiki.2048/texture_00.png b/docs/.vuepress/public/live2d/hibiki/assets/moc/hibiki.2048/texture_00.png
new file mode 100644
index 0000000000000000000000000000000000000000..aea42bd2247e2f32e04f479ae5860210ed1cb045
GIT binary patch
literal 229656
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