From 25ad99481cc840f5f301b789019c9ceadbc52cdb Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Sun, 7 Apr 2024 10:43:12 +0800
Subject: [PATCH 01/63] docs: update vue.md
---
docs/vue/vue.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/docs/vue/vue.md b/docs/vue/vue.md
index 03f48d86..b32e28f2 100644
--- a/docs/vue/vue.md
+++ b/docs/vue/vue.md
@@ -73,7 +73,11 @@ Vue.js(/vjuː/,或简称为Vue)是一个用于创建用户界面的开源J
### 组件化
-1.什么是组件化一句话来说就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在`Vue`中每一个`.vue`文件都可以视为一个组件2.组件化的优势
+1.什么是组件化
+
+一句话来说就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在`Vue`中每一个`.vue`文件都可以视为一个组件
+
+2.组件化的优势
- 降低整个系统的耦合度,在保持接口不变的情况下,我们可以替换不同的组件快速完成需求,例如输入框,可以替换为日历、时间、范围等组件作具体的实现
- 调试方便,由于整个系统是通过组件组合起来的,在出现问题的时候,可以用排除法直接移除组件,或者根据报错的组件快速定位问题,之所以能够快速定位,是因为每个组件之间低耦合,职责单一,所以逻辑会比分析整个系统要简单
From 7e3901771aa723435802702d4ef5d74c3ff28500 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Sun, 7 Apr 2024 14:28:48 +0800
Subject: [PATCH 02/63] docs: update spa.md
---
docs/vue/spa.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/docs/vue/spa.md b/docs/vue/spa.md
index 8fbc5841..ce29781d 100644
--- a/docs/vue/spa.md
+++ b/docs/vue/spa.md
@@ -40,7 +40,6 @@ SPA(single-page application),翻译过来就是单页应用`SPA`是一种
- 不利于搜索引擎的抓取
- 首次渲染速度相对较慢
--
## 三、实现一个SPA
From afff55cf07141910599363986182aa62135a19a0 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Sun, 7 Apr 2024 14:31:56 +0800
Subject: [PATCH 03/63] docs: update spa.md
---
docs/vue/spa.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/spa.md b/docs/vue/spa.md
index ce29781d..d8704d1d 100644
--- a/docs/vue/spa.md
+++ b/docs/vue/spa.md
@@ -88,7 +88,7 @@ miniRouter.push('/page2') // page2
##### history模式
-`history` 模式核心借用 `HTML5 history api`,`api` 提供了丰富的 `router` 相关属性先了解一个几个相关的api
+`history` 模式核心借用 `HTML5 history api`,`api` 提供了丰富的 `router` 相关属性先了解几个相关的api
- `history.pushState` 浏览器历史纪录添加记录
- `history.replaceState`修改浏览器历史纪录中当前纪录
From 81767da88668e86da9a51ef526f1f88a09045d29 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 10 Apr 2024 11:19:54 +0800
Subject: [PATCH 04/63] docs: update first_page_time.md
---
docs/vue/first_page_time.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/first_page_time.md b/docs/vue/first_page_time.md
index 2ccefba9..ce001f4a 100644
--- a/docs/vue/first_page_time.md
+++ b/docs/vue/first_page_time.md
@@ -49,7 +49,7 @@ performance.getEntriesByName("first-contentful-paint")[0].startTime
常见的几种SPA首屏优化方式
-- 减小入口文件积
+- 减小入口文件体积
- 静态资源本地缓存
- UI框架按需加载
- 图片资源的压缩
From 686cd51ef2442061d00f7845a5f27ea539d622ae Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 10 Apr 2024 11:27:52 +0800
Subject: [PATCH 05/63] docs: update first_page_time.md
---
docs/vue/first_page_time.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/first_page_time.md b/docs/vue/first_page_time.md
index ce001f4a..e53358a0 100644
--- a/docs/vue/first_page_time.md
+++ b/docs/vue/first_page_time.md
@@ -140,7 +140,7 @@ minChunks: 3
拆完包之后,我们再用`gzip`做一下压缩 安装`compression-webpack-plugin`
```js
-cnmp i compression-webpack-plugin -D
+cnpm i compression-webpack-plugin -D
```
在`vue.congig.js`中引入并修改`webpack`配置
From 713db6e24e2138d14e838dfa88e40a1620328821 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 10 Apr 2024 11:37:18 +0800
Subject: [PATCH 06/63] docs: update data_object_add_attrs.md
---
docs/vue/data_object_add_attrs.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/data_object_add_attrs.md b/docs/vue/data_object_add_attrs.md
index 8bae2856..91d93018 100644
--- a/docs/vue/data_object_add_attrs.md
+++ b/docs/vue/data_object_add_attrs.md
@@ -9,7 +9,7 @@
定义一个`p`标签,通过`v-for`指令进行遍历
-然后给`botton`标签绑定点击事件,我们预期点击按钮时,数据新增一个属性,界面也 新增一行
+然后给`button`标签绑定点击事件,我们预期点击按钮时,数据新增一个属性,界面也 新增一行
```html
From 29cd10a560ff4db7cdf2c9872027acbbdd0630f8 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 11 Apr 2024 11:21:09 +0800
Subject: [PATCH 07/63] docs: update communication.md
---
docs/vue/communication.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/docs/vue/communication.md b/docs/vue/communication.md
index cc5740b3..cd236e97 100644
--- a/docs/vue/communication.md
+++ b/docs/vue/communication.md
@@ -52,15 +52,15 @@
`Children.vue`
```js
-props:{
- // 字符串形式
- name:String // 接收的类型参数
- // 对象形式
- age:{
- type:Number, // 接收的类型为数值
- defaule:18, // 默认值为18
- require:true // age属性必须传递
- }
+props: {
+ // 字符串形式
+ name: String // 接收的类型参数
+ // 对象形式
+ age: {
+ type: Number, // 接收的类型为数值
+ default: 18, // 默认值为18
+ require: true // age属性必须传递
+ }
}
```
From 14c693ff3d8d2209733654d8c67a019fa75cb030 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 11 Apr 2024 11:22:19 +0800
Subject: [PATCH 08/63] docs: update communication.md
---
docs/vue/communication.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/communication.md b/docs/vue/communication.md
index cd236e97..e99aa076 100644
--- a/docs/vue/communication.md
+++ b/docs/vue/communication.md
@@ -76,7 +76,7 @@ props: {
- 子组件通过`$emit触发`自定义事件,`$emit`第二个参数为传递的数值
- 父组件绑定监听器获取到子组件传递过来的参数
-`Chilfen.vue`
+`Children.vue`
```js
this.$emit('add', good)
From c344753039547156c70adfae834cacc214b4f107 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 11 Apr 2024 11:23:46 +0800
Subject: [PATCH 09/63] docs: update communication.md
---
docs/vue/communication.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/communication.md b/docs/vue/communication.md
index e99aa076..a452b640 100644
--- a/docs/vue/communication.md
+++ b/docs/vue/communication.md
@@ -111,7 +111,7 @@ this.$refs.foo // 获取子组件实例,通过子组件实例我们就能
`Bus.js`
```js
-// 创建一个中央时间总线类
+// 创建一个中央事件总线类
class Bus {
constructor() {
this.callbacks = {}; // 存放事件的名字
From 08b8f1e1c3738acceac70ee02369c4ae3bfdf3b3 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 11 Apr 2024 11:25:26 +0800
Subject: [PATCH 10/63] docs: update communication.md
---
docs/vue/communication.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/communication.md b/docs/vue/communication.md
index a452b640..a9c4e994 100644
--- a/docs/vue/communication.md
+++ b/docs/vue/communication.md
@@ -147,7 +147,7 @@ this.$bus.$on('foo', this.handle)
### $parent 或$ root
-- 通过共同祖辈`$parent`或者`$root`搭建通信桥连
+- 通过共同祖辈`$parent`或者`$root`搭建通信桥梁
兄弟组件
From 1f5563d5badbe44606b409ef21533d29b8364e4f Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 11 Apr 2024 11:28:37 +0800
Subject: [PATCH 11/63] docs: update communication.md
---
docs/vue/communication.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/communication.md b/docs/vue/communication.md
index a9c4e994..1e5438ca 100644
--- a/docs/vue/communication.md
+++ b/docs/vue/communication.md
@@ -217,7 +217,7 @@ inject:['foo'] // 获取到祖先组件传递过来的值
- `state`用来存放共享变量的地方
- `getter`,可以增加一个`getter`派生状态,\(相当于`store`中的计算属性),用来获得共享变量的值
- `mutations`用来存放修改`state`的方法。
-- `actions`也是用来存放修改state的方法,不过`action`是在`mutations`的基础上进行。常用来做一些异步操作
+- `actions`也是用来存放修改state的方法,不过`actions`是在`mutations`的基础上进行。常用来做一些异步操作
### 小结
From 07da59bda8c25a684fa8086ae874d0968bb8dfdb Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 11 Apr 2024 21:22:01 +0800
Subject: [PATCH 12/63] =?UTF-8?q?fix:=20css=E9=83=A8=E5=88=86=E5=B1=9E?=
=?UTF-8?q?=E6=80=A7=E7=BB=A7=E6=89=BF=E9=94=99=E5=88=AB=E5=AD=97=20#429?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/css/selector.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/css/selector.md b/docs/css/selector.md
index 58e31132..8cd4ed4d 100644
--- a/docs/css/selector.md
+++ b/docs/css/selector.md
@@ -216,7 +216,7 @@ cursor:箭头可以变成需要的形状
- a 标签的字体颜色不能被继承
-- h1-h6标签字体的大下也是不能被继承的
+- h1-h6标签字体的大小也是不能被继承的
From fc25e4e57ae0ca615431067de86733a3f507f939 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 11 Apr 2024 21:23:26 +0800
Subject: [PATCH 13/63] =?UTF-8?q?fix:=20=E9=94=99=E5=88=AB=E5=AD=97?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9-=E6=83=B3=E6=94=B9=E4=B8=BA=E7=9B=B8=20#419?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/vue/ssr.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/ssr.md b/docs/vue/ssr.md
index 0919eaa5..4fafe7e1 100644
--- a/docs/vue/ssr.md
+++ b/docs/vue/ssr.md
@@ -56,7 +56,7 @@
SSR主要解决了以下两种问题:
-- seo:搜索引擎优先爬取页面`HTML`结构,使用`ssr`时,服务端已经生成了和业务想关联的`HTML`,有利于`seo`
+- seo:搜索引擎优先爬取页面`HTML`结构,使用`ssr`时,服务端已经生成了和业务相关联的`HTML`,有利于`seo`
- 首屏呈现渲染:用户无需等待页面所有`js`加载完成就可以看到页面视图(压力来到了服务器,所以需要权衡哪些用服务端渲染,哪些交给客户端)
但是使用`SSR`同样存在以下的缺点:
From cabeddd8e6692df3ba3cd8d562f16f7812dc953e Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Fri, 12 Apr 2024 10:26:17 +0800
Subject: [PATCH 14/63] docs: update nexttick.md
---
docs/vue/nexttick.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/nexttick.md b/docs/vue/nexttick.md
index a02dd2c8..d1779059 100644
--- a/docs/vue/nexttick.md
+++ b/docs/vue/nexttick.md
@@ -51,7 +51,7 @@ console.log(vm.$el.textContent) // 原始值
等待同一事件循环中的所有数据变化完成之后,会将队列中的事件拿来进行处理,进行`DOM`的更新
-#### 为什么要有nexttick
+#### 为什么要有nextTick
举个例子
```js
From ade63d51aa897a64ffac3b40631bbf577eca84d6 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Fri, 12 Apr 2024 10:37:26 +0800
Subject: [PATCH 15/63] docs: update mixin.md
---
docs/vue/mixin.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/mixin.md b/docs/vue/mixin.md
index 8a508bed..45e9678c 100644
--- a/docs/vue/mixin.md
+++ b/docs/vue/mixin.md
@@ -165,7 +165,7 @@ export function initMixin (Vue: GlobalAPI) {
}
```
-主要是调用`merOptions`方法
+主要是调用`mergeOptions`方法
源码位置:/src/core/util/options.js
From fe1a3a09345ec059fa149d89293aaf7860608dd1 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Fri, 12 Apr 2024 10:50:08 +0800
Subject: [PATCH 16/63] docs: update slot.md
---
docs/vue/slot.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/slot.md b/docs/vue/slot.md
index a9c76405..89ea2977 100644
--- a/docs/vue/slot.md
+++ b/docs/vue/slot.md
@@ -20,7 +20,7 @@
2
```
-`template`不会展示到页面中,需要用先获取它的引用,然后添加到`DOM`中,
+`template`不会展示到页面中,需要先获取它的引用,然后添加到`DOM`中,
```js
customElements.define('element-details',
From 32cbfa864b7d9d1e98a08ba5d7e8e025cffbf54a Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Fri, 12 Apr 2024 10:51:22 +0800
Subject: [PATCH 17/63] docs: update slot.md
---
docs/vue/slot.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/slot.md b/docs/vue/slot.md
index 89ea2977..49e24b2a 100644
--- a/docs/vue/slot.md
+++ b/docs/vue/slot.md
@@ -49,7 +49,7 @@ customElements.define('element-details',
## 二、使用场景
-通过插槽可以让用户可以拓展组件,去更好地复用组件和对其做定制化处理
+通过插槽可以让用户拓展组件,去更好地复用组件和对其做定制化处理
如果父组件在使用到一个复用组件的时候,获取这个组件在不同的地方有少量的更改,如果去重写组件是一件不明智的事情
From 0855738c0d5797d9eba96adbd5c6e8faec4fdbf4 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Fri, 12 Apr 2024 14:55:26 +0800
Subject: [PATCH 18/63] docs: update slot.md
---
docs/vue/slot.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/vue/slot.md b/docs/vue/slot.md
index 49e24b2a..c2dd67b5 100644
--- a/docs/vue/slot.md
+++ b/docs/vue/slot.md
@@ -55,11 +55,11 @@ customElements.define('element-details',
通过`slot`插槽向组件内部指定位置传递内容,完成这个复用组件在不同场景的应用
-比如布局组件、表格列、下拉选、弹框显示内容等
+比如布局组件、表格列、下拉选择框、弹框显示内容等
## 三、分类
-`slot`可以分来以下三种:
+`slot`可以分为以下三种:
- 默认插槽
- 具名插槽
@@ -192,7 +192,7 @@ with(this){return _c('div',[_t("default",[_v("我是默认内容")])],2)}
})
```
-`_v`表示穿件普通文本节点,`_t`表示渲染插槽的函数
+`_v`表示创建普通文本节点,`_t`表示渲染插槽的函数
渲染插槽函数`renderSlot`(做了简化)
From f2328f2c6e3698e4bbd41b04f06567885c8c1179 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Mon, 15 Apr 2024 11:05:08 +0800
Subject: [PATCH 19/63] docs: update docs/vue/modifier.md
---
docs/vue/keepalive.md | 4 ++--
docs/vue/modifier.md | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/vue/keepalive.md b/docs/vue/keepalive.md
index 7f918a6d..954d56d9 100644
--- a/docs/vue/keepalive.md
+++ b/docs/vue/keepalive.md
@@ -23,7 +23,7 @@
```
-使用`includes`和`exclude`:
+使用`include`和`exclude`:
```go
@@ -51,7 +51,7 @@
## 二、使用场景
-使用原则:当我们在某些场景下不需要让页面重新加载时我们可以使用`keepalive`
+使用原则:当我们在某些场景下不需要让页面重新加载时我们可以使用`keep-alive`
举个栗子:
diff --git a/docs/vue/modifier.md b/docs/vue/modifier.md
index 1f639ad3..a397ff59 100644
--- a/docs/vue/modifier.md
+++ b/docs/vue/modifier.md
@@ -185,11 +185,11 @@ Vue.config.keyCodes.f2 = 113
v-bind修饰符主要是为属性进行操作,用来分别有如下:
-- async
+- sync
- prop
- camel
-#### async
+#### sync
能对`props`进行一个双向绑定
@@ -214,7 +214,7 @@ func2(){
}
```
-使用`async`需要注意以下两点:
+使用`sync`需要注意以下两点:
- 使用`sync`的时候,子组件传递的事件名格式必须为`update:value`,其中`value`必须与子组件中`props`中声明的名称完全一致
From 35397b6cdc319d6809db1cf28dc8d4cd99159f2e Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Mon, 15 Apr 2024 11:30:21 +0800
Subject: [PATCH 20/63] docs: update docs/vue/filter.md
---
docs/vue/filter.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/vue/filter.md b/docs/vue/filter.md
index 6f9311e5..514a9848 100644
--- a/docs/vue/filter.md
+++ b/docs/vue/filter.md
@@ -93,7 +93,7 @@ new Vue({
### 小结:
-- 部过滤器优先于全局过滤器被调用
+- 局部过滤器优先于全局过滤器被调用
- 一个表达式可以使用多个过滤器。过滤器之间需要用管道符“|”隔开。其执行顺序从左往右
@@ -108,7 +108,7 @@ new Vue({
Vue.filter('toThousandFilter', function (value) {
if (!value) return ''
value = value.toString()
- return .replace(str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g, '$1,')
+ return value.replace(str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g, '$1,')
})
```
From d6a91b19947cde77a83b3fafa62179c6aa36486c Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Mon, 15 Apr 2024 19:09:23 +0800
Subject: [PATCH 21/63] docs: update docs/vue/vnode.md
---
docs/vue/vnode.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/vnode.md b/docs/vue/vnode.md
index fb3c42f4..c6c96918 100644
--- a/docs/vue/vnode.md
+++ b/docs/vue/vnode.md
@@ -8,7 +8,7 @@
实际上它只是一层对真实`DOM`的抽象,以`JavaScript` 对象 (`VNode` 节点) 作为基础的树,用对象的属性来描述节点,最终可以通过一系列操作使这棵树映射到真实环境上
-在`Javascript`对象中,虚拟`DOM` 表现为一个 `Object `对象。并且最少包含标签名 (`tag`)、属性 (`attrs`) 和子元素对象 (`children`) 三个属性,不同框架对这三个属性的名命可能会有差别
+在`Javascript`对象中,虚拟`DOM` 表现为一个 `Object `对象。并且最少包含标签名 (`tag`)、属性 (`attrs`) 和子元素对象 (`children`) 三个属性,不同框架对这三个属性的命名可能会有差别
创建虚拟`DOM`就是为了更好将虚拟的节点渲染到页面视图中,所以虚拟`DOM`对象的节点与真实`DOM`的属性一一照应
From fcc89e296eb0ac73b0ff0493ffddf250de11d189 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 16 Apr 2024 10:56:43 +0800
Subject: [PATCH 22/63] docs: update docs/vue/vnode.md
---
docs/vue/vnode.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/vnode.md b/docs/vue/vnode.md
index c6c96918..3bffdcdf 100644
--- a/docs/vue/vnode.md
+++ b/docs/vue/vnode.md
@@ -214,7 +214,7 @@ export function _createElement(
}
if (normalizationType === ALWAYS_NORMALIZE) {
children = normalizeChildren(children)
- } else if ( === SIMPLE_NORMALIZE) {
+ } else if (normalizationType === SIMPLE_NORMALIZE) {
children = simpleNormalizeChildren(children)
}
// 创建VNode
From 50a579813b7e2aee7541fe7d14d2763dd766198a Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 16 Apr 2024 15:57:50 +0800
Subject: [PATCH 23/63] docs: update docs/vue/vnode.md
---
docs/vue/vnode.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/vnode.md b/docs/vue/vnode.md
index 3bffdcdf..2f7c18d1 100644
--- a/docs/vue/vnode.md
+++ b/docs/vue/vnode.md
@@ -95,7 +95,7 @@ export default class VNode {
constructor (
tag?: string,
data?: VNodeData,
- children?: ?Array,
+ children?: Array,
text?: string,
elm?: Node,
context?: Component,
From 2cbbdc211cc589bed21e91bf7256b844b1081887 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 16 Apr 2024 15:59:56 +0800
Subject: [PATCH 24/63] docs: update docs/vue/vnode.md
---
docs/vue/vnode.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/vnode.md b/docs/vue/vnode.md
index 2f7c18d1..41cb95b6 100644
--- a/docs/vue/vnode.md
+++ b/docs/vue/vnode.md
@@ -129,7 +129,7 @@ export default class VNode {
this.raw = false
/*静态节点标志*/
this.isStatic = false
- /*是否作为跟节点插入*/
+ /*是否作为根节点插入*/
this.isRootInsert = true
/*是否为注释节点*/
this.isComment = false
From 9577923ebac985a13c5de57172a54f1caf290fb7 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 16 Apr 2024 16:10:56 +0800
Subject: [PATCH 25/63] docs: update docs/vue/vnode.md
---
docs/vue/vnode.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/vnode.md b/docs/vue/vnode.md
index 41cb95b6..bdf84542 100644
--- a/docs/vue/vnode.md
+++ b/docs/vue/vnode.md
@@ -252,7 +252,7 @@ if (normalizationType === ALWAYS_NORMALIZE) {
无论是`simpleNormalizeChildren`还是`normalizeChildren`都是对`children`进行规范(使`children` 变成了一个类型为 `VNode` 的 `Array`),这里就不展开说了
-规范化`children`的源码位置在:src/core/vdom/helpers/normalzie-children.js
+规范化`children`的源码位置在:src/core/vdom/helpers/normalize-children.js
在规范化`children`后,就去创建`VNode`
From ec66a707ff283a1bfe63738067b85bd1dcb35bb7 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 16 Apr 2024 16:42:28 +0800
Subject: [PATCH 26/63] docs: update docs/vue/axios.md
---
docs/vue/axios.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/axios.md b/docs/vue/axios.md
index f39e88b4..c9d67936 100644
--- a/docs/vue/axios.md
+++ b/docs/vue/axios.md
@@ -10,7 +10,7 @@
### 特性
-- 从浏览器中创建 `XMLHttpRequests`
+- 从浏览器中创建 `XMLHttpRequest`
- 从 `node.js` 创建 `http`请求
- 支持 `Promise` API
- 拦截请求和响应
From 788af24b544f18dce97d6c1d6df5daae6d75bb1f Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 16 Apr 2024 16:58:08 +0800
Subject: [PATCH 27/63] docs: update docs/vue/axios.md
---
docs/vue/axios.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/axios.md b/docs/vue/axios.md
index c9d67936..ee049b53 100644
--- a/docs/vue/axios.md
+++ b/docs/vue/axios.md
@@ -135,7 +135,7 @@ axios('http://localhost:3000/data', {
请求拦截器: 根据请求的请求头设定,来决定哪些请求可以访问
-响应拦截器: 这块就是根据 后端`返回来的状态码判定执行不同业务
+响应拦截器: 这块就是根据 后端 返回来的状态码判定执行不同业务
From 517fe1483e5a8bfcdc1f03aab0f5d9331fb2d9f1 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 16 Apr 2024 17:20:55 +0800
Subject: [PATCH 28/63] docs: update docs/vue/axiosCode.md
---
docs/vue/axiosCode.md | 2 +-
docs/vue/ssr.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/vue/axiosCode.md b/docs/vue/axiosCode.md
index e510397c..84ed052c 100644
--- a/docs/vue/axiosCode.md
+++ b/docs/vue/axiosCode.md
@@ -228,7 +228,7 @@ class Axios {
执行语句`axios.interceptors.response.use`和`axios.interceptors.request.use`的时候,实现获取`axios`实例上的`interceptors`对象,然后再获取`response`或`request`拦截器,再执行对应的拦截器的`use`方法
-把`Axios`上的方法和属性搬到`request`过去
+把`Axios`上的方法和属性搬到`request`中去
```js
function CreateAxiosFn() {
diff --git a/docs/vue/ssr.md b/docs/vue/ssr.md
index 4fafe7e1..6df1fa46 100644
--- a/docs/vue/ssr.md
+++ b/docs/vue/ssr.md
@@ -44,7 +44,7 @@
>
> 服务器渲染的 Vue.js 应用程序也可以被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务器和客户端上运行
-我们从上门解释得到以下结论:
+我们从上面解释得到以下结论:
- `Vue SSR`是一个在`SPA`上进行改良的服务端渲染
- 通过`Vue SSR`渲染的页面,需要在客户端激活才能实现交互
From c672d9d761ec6f8ecc2add4cf8d1bc4fc37d5ec6 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 17 Apr 2024 17:01:21 +0800
Subject: [PATCH 29/63] docs: update docs/vue/cors.md
---
docs/vue/cors.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue/cors.md b/docs/vue/cors.md
index 87554e4d..625bf0a3 100644
--- a/docs/vue/cors.md
+++ b/docs/vue/cors.md
@@ -69,7 +69,7 @@ ps: `Access-Control-Allow-Origin` 设置为*其实意义不大,可以说是形
在`vue.config.js`文件,新增以下代码
```js
-amodule.exports = {
+module.exports = {
devServer: {
host: '127.0.0.1',
port: 8084,
From caf2a7a00d003b0844facd9f20daf34ea7405995 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 18 Apr 2024 10:55:59 +0800
Subject: [PATCH 30/63] docs: update docs/vue/vue3_vue2.md
---
docs/vue/vue3_vue2.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/vue/vue3_vue2.md b/docs/vue/vue3_vue2.md
index 90039a17..44d5660e 100644
--- a/docs/vue/vue3_vue2.md
+++ b/docs/vue/vue3_vue2.md
@@ -36,7 +36,7 @@
- 更高效的组件初始化
-- `undate`性能提高1.3~2倍
+- `update`性能提高1.3~2倍
- `SSR`速度提高了2~3倍
@@ -254,7 +254,7 @@ export default {
- 来自 `mixin` 的 `data` 选项现在可简单地合并
- `attribute` 强制策略已更改
- 一些过渡 `class` 被重命名
-- 组建 watch 选项和实例方法 `$watch`不再支持以点分隔的字符串路径。请改用计算属性函数作为参数。
+- 组件 watch 选项和实例方法 `$watch`不再支持以点分隔的字符串路径。请改用计算属性函数作为参数。
- `` 没有特殊指令的标记 (`v-if/else-if/else`、`v-for` 或 `v-slot`) 现在被视为普通元素,并将生成原生的 `` 元素,而不是渲染其内部内容。
- 在` Vue 2.x` 中,应用根容器的 `outerHTML` 将替换为根组件模板 (如果根组件没有模板/渲染选项,则最终编译为模板)。`Vue 3.x` 现在使用应用容器的 `innerHTML`,这意味着容器本身不再被视为模板的一部分。
From 39b8095e37ba7858ce8c7b47473b8e206454b566 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 18 Apr 2024 11:34:02 +0800
Subject: [PATCH 31/63] docs: update docs/vue3/composition.md
---
docs/vue3/composition.md | 2 +-
docs/vue3/goal.md | 4 ++--
docs/vue3/performance.md | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/vue3/composition.md b/docs/vue3/composition.md
index 11b7789c..4475ee47 100644
--- a/docs/vue3/composition.md
+++ b/docs/vue3/composition.md
@@ -92,7 +92,7 @@ function useCount() {
}
```
-组件上中使用`count`
+组件中使用`count`
```js
export default defineComponent({
diff --git a/docs/vue3/goal.md b/docs/vue3/goal.md
index 83a16d46..8a8bba3f 100644
--- a/docs/vue3/goal.md
+++ b/docs/vue3/goal.md
@@ -123,7 +123,7 @@ function useMouse(){
### 性能
-`vue3`是从什么哪些方面对性能进行进一步优化呢?
+`vue3`是从哪些方面对性能进行进一步优化呢?
- 体积优化
- 编译优化
@@ -193,7 +193,7 @@ default {
在`vue2`中,我们是通过`mixin`实现功能混合,如果多个`mixin`混合,会存在两个非常明显的问题:命名冲突和数据来源不清晰
-而通过`composition`这种形式,可以将一些复用的代码抽离出来作为一个函数,只要的使用的地方直接进行调用即可
+而通过`composition`这种形式,可以将一些复用的代码抽离出来作为一个函数,只要使用的地方直接进行调用即可
同样是上文的获取鼠标位置的例子
diff --git a/docs/vue3/performance.md b/docs/vue3/performance.md
index a8315e27..47d647b9 100644
--- a/docs/vue3/performance.md
+++ b/docs/vue3/performance.md
@@ -154,7 +154,7 @@ export function render(_ctx, _cache, $props, $setup, $data, $options) {
当静态内容大到一定量级时候,会用`createStaticVNode`方法在客户端去生成一个static node,这些静态`node`,会被直接`innerHtml`,就不需要创建对象,然后根据对象渲染
```js
-div>
+
你好
From 9643fdaf18bd53263304b10ac143c8fb2d978186 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 18 Apr 2024 20:44:10 +0800
Subject: [PATCH 32/63] docs: update docs/vue3/modal_component.md
---
docs/vue3/modal_component.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/vue3/modal_component.md b/docs/vue3/modal_component.md
index 68c53422..45bd3a05 100644
--- a/docs/vue3/modal_component.md
+++ b/docs/vue3/modal_component.md
@@ -12,7 +12,7 @@
这时候就没必要写两个组件,只需要根据传入的参数不同,组件显示不同内容即可
-这样,下次开发相同界面程序时就可以写更少的代码,意义着更高的开发效率,更少的 `Bug `和更少的程序体积
+这样,下次开发相同界面程序时就可以写更少的代码,意味着更高的开发效率,更少的 `Bug `和更少的程序体积
From c08dba1ed57dae810d1b064696a88ab63693438e Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Fri, 19 Apr 2024 15:09:33 +0800
Subject: [PATCH 33/63] fix: resolve array demo
---
docs/es6/array.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/es6/array.md b/docs/es6/array.md
index d34cdb2c..b8ef02d6 100644
--- a/docs/es6/array.md
+++ b/docs/es6/array.md
@@ -64,7 +64,7 @@ const arr3 = ['d', 'e'];
const arr1 = ['a', 'b',[1,2]];
const arr2 = ['c'];
const arr3 = [...arr1,...arr2]
-arr[1][0] = 9999 // 修改arr1里面数组成员值
+arr1[2][0] = 9999 // 修改arr1里面数组成员值
console.log(arr[3]) // 影响到arr3,['a','b',[9999,2],'c']
```
From 16e8ec420f51a8608418c9ce0732f909c552066c Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Fri, 19 Apr 2024 15:29:43 +0800
Subject: [PATCH 34/63] docs: update docs/es6/array.md
---
docs/es6/array.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/es6/array.md b/docs/es6/array.md
index b8ef02d6..2563036c 100644
--- a/docs/es6/array.md
+++ b/docs/es6/array.md
@@ -281,6 +281,7 @@ for (let [index, elem] of ['a', 'b'].entries()) {
console.log(index, elem);
}
// 0 "a"
+// 1 "b"
```
From 4196676d775c28d851921c7d05a42b92d159fda8 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Fri, 19 Apr 2024 21:31:33 +0800
Subject: [PATCH 35/63] docs: update docs/es6/object.md
---
docs/es6/function.md | 2 +-
docs/es6/object.md | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/es6/function.md b/docs/es6/function.md
index 08c7fcc7..cb934658 100644
--- a/docs/es6/function.md
+++ b/docs/es6/function.md
@@ -50,7 +50,7 @@ function foo({x, y = 5} = {}) {
foo() // undefined 5
```
-参数默认值应该是函数的尾参数,如果不是非尾部的参数设置默认值,实际上这个参数是没发省略的
+参数默认值应该是函数的尾参数,如果不是非尾部的参数设置默认值,实际上这个参数是没法省略的
```javascript
function f(x = 1, y) {
diff --git a/docs/es6/object.md b/docs/es6/object.md
index 2d2400f0..dee22dd4 100644
--- a/docs/es6/object.md
+++ b/docs/es6/object.md
@@ -174,7 +174,7 @@ ES6 一共有 5 种方法可以遍历对象的属性。
- Object.keys(obj):返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名
-- Object.getOwnPropertyNames(obj):回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名
+- Object.getOwnPropertyNames(obj):返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名
- Object.getOwnPropertySymbols(obj):返回一个数组,包含对象自身的所有 Symbol 属性的键名
@@ -184,7 +184,7 @@ ES6 一共有 5 种方法可以遍历对象的属性。
- 首先遍历所有数值键,按照数值升序排列
- 其次遍历所有字符串键,按照加入时间升序排列
-- 最后遍历所有 Symbol 键,按照加入时间升序排
+- 最后遍历所有 Symbol 键,按照加入时间升序排列
```js
Reflect.ownKeys({ [Symbol()]:0, b:0, 10:0, 2:0, a:0 })
From f25de4ea7ec07a86e0ce6744d8afb1e73dc50fde Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Mon, 22 Apr 2024 11:33:24 +0800
Subject: [PATCH 36/63] docs: update docs/es6/module.md
---
docs/es6/module.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/es6/module.md b/docs/es6/module.md
index 6770957e..d2546920 100644
--- a/docs/es6/module.md
+++ b/docs/es6/module.md
@@ -207,7 +207,7 @@ a.foo = 'hello'; // 合法操作
a = {}; // Syntax Error : 'a' is read-only;
```
-不过建议即使能修改,但我们不建议。因为修改之后,我们很难差错
+不过建议即使能修改,但我们不建议。因为修改之后,我们很难排错
`import`后面我们常接着`from`关键字,`from`指定模块文件的位置,可以是相对路径,也可以是绝对路径
From c648b08e9ae302de3b827f0f49859711065a3bf6 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 23 Apr 2024 10:46:20 +0800
Subject: [PATCH 37/63] docs: update docs/JavaScript/data_type.md
---
docs/JavaScript/data_type.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/JavaScript/data_type.md b/docs/JavaScript/data_type.md
index 4826a322..575c6867 100644
--- a/docs/JavaScript/data_type.md
+++ b/docs/JavaScript/data_type.md
@@ -261,7 +261,7 @@ console.log(a); // 10值
var obj1 = {}
var obj2 = obj1;
obj2.name = "Xxx";
-console.log(obj1.name); // xxx
+console.log(obj1.name); // Xxx
```
引用类型数据存放在堆中,每个堆内存对象都有对应的引用地址指向它,引用地址存放在栈中。
From 6b10968eb6be49dc14f87f1f7a58a6bca15992f6 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 23 Apr 2024 11:14:14 +0800
Subject: [PATCH 38/63] docs: update docs/JavaScript/string_api.md
---
docs/JavaScript/string_api.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/docs/JavaScript/string_api.md b/docs/JavaScript/string_api.md
index 0f06fb08..f3985107 100644
--- a/docs/JavaScript/string_api.md
+++ b/docs/JavaScript/string_api.md
@@ -217,6 +217,10 @@ console.log(pos); // 1
接收两个参数,第一个参数为匹配的内容,第二个参数为替换的元素(可用函数)
+其中一个、多个或所有匹配的 pattern 被替换为 replacement。pattern 可以是字符串或 RegExp,replacement 可以是字符串或一个在每次匹配时调用的函数。
+
+如果 pattern 是字符串,则只会替换第一个匹配项。原始的字符串不会改变。
+
```js
let text = "cat, bat, sat, fat";
let result = text.replace("at", "ond");
From b3cf4950f11c755cc94fa8c0049bbf3fa239eb31 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 23 Apr 2024 11:30:58 +0800
Subject: [PATCH 39/63] docs: update docs/JavaScript/copy.md
---
docs/JavaScript/copy.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/JavaScript/copy.md b/docs/JavaScript/copy.md
index 26c35841..7b03369f 100644
--- a/docs/JavaScript/copy.md
+++ b/docs/JavaScript/copy.md
@@ -61,7 +61,7 @@ var obj = {
console.log('fx is a great girl')
}
}
-var newObj = Object.assign({}, fxObj);
+var newObj = Object.assign({}, obj);
```
From d29cc6387817a37820c1b9c7c12c757bded846df Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 23 Apr 2024 14:14:50 +0800
Subject: [PATCH 40/63] docs: update docs/JavaScript/closure.md
---
docs/JavaScript/closure.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/JavaScript/closure.md b/docs/JavaScript/closure.md
index 23cc19aa..ed8b053b 100644
--- a/docs/JavaScript/closure.md
+++ b/docs/JavaScript/closure.md
@@ -68,7 +68,7 @@ document.getElementById('size-16').onclick = size16;
function getArea(width, height) {
return width * height
}
-// 如果我们碰到的长方形的宽老是10
+// 如果我们碰到的长方形的宽高是10
const area1 = getArea(10, 20)
const area2 = getArea(10, 30)
const area3 = getArea(10, 40)
From f3f6319238da92721f1958eeffefeee6b43e94a4 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 23 Apr 2024 16:07:37 +0800
Subject: [PATCH 41/63] docs: update docs/JavaScript/inherit.md
---
docs/JavaScript/inherit.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/docs/JavaScript/inherit.md b/docs/JavaScript/inherit.md
index 353c1848..bbc56f44 100644
--- a/docs/JavaScript/inherit.md
+++ b/docs/JavaScript/inherit.md
@@ -62,7 +62,7 @@ class Truck extends Car{
## 二、实现方式
-下面给出`JavaScripy`常见的继承方式:
+下面给出`JavaScript`常见的继承方式:
- 原型链继承
@@ -88,15 +88,15 @@ class Truck extends Car{
function Child() {
this.type = 'child2';
}
- Child1.prototype = new Parent();
+ Child.prototype = new Parent();
console.log(new Child())
```
上面代码看似没问题,实际存在潜在问题
```js
-var s1 = new Child2();
-var s2 = new Child2();
+var s1 = new Child();
+var s2 = new Child();
s1.play.push(4);
console.log(s1.play, s2.play); // [1,2,3,4]
```
@@ -119,13 +119,13 @@ Parent.prototype.getName = function () {
}
function Child(){
- Parent1.call(this);
+ Parent.call(this);
this.type = 'child'
}
let child = new Child();
console.log(child); // 没问题
-console.log(child.getName()); // 会报错
+console.log(child.getName()); // 会报错 Uncaught TypeError: child.getName is not a function
```
可以看到,父类原型对象中一旦存在父类之前自己定义的方法,那么子类将无法继承这些方法
@@ -136,7 +136,7 @@ console.log(child.getName()); // 会报错
### 组合继承
-前面我们讲到两种继承方式,各有优缺点。组合继承则将前两种方式继承起来
+前面我们讲到两种继承方式,各有优缺点。组合继承则将前两种方式结合起来
```js
function Parent3 () {
From 54c805255e588f58579e736f449e8e819355c57d Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 23 Apr 2024 19:42:41 +0800
Subject: [PATCH 42/63] docs: update docs/JavaScript/event_Model.md
---
docs/JavaScript/event_Model.md | 10 +++++-----
docs/JavaScript/this.md | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/docs/JavaScript/event_Model.md b/docs/JavaScript/event_Model.md
index 97827e42..65a31fa2 100644
--- a/docs/JavaScript/event_Model.md
+++ b/docs/JavaScript/event_Model.md
@@ -151,8 +151,8 @@ removeEventListener(eventType, handler, useCapture)
```js
var btn = document.getElementById('.btn');
-btn.addEventListener(‘click’, showMessage, false);
-btn.removeEventListener(‘click’, showMessage, false);
+btn.addEventListener('click', showMessage, false);
+btn.removeEventListener('click', showMessage, false);
```
#### 特性
@@ -160,9 +160,9 @@ btn.removeEventListener(‘click’, showMessage, false);
- 可以在一个`DOM`元素上绑定多个事件处理器,各自并不会冲突
```js
-btn.addEventListener(‘click’, showMessage1, false);
-btn.addEventListener(‘click’, showMessage2, false);
-btn.addEventListener(‘click’, showMessage3, false);
+btn.addEventListener('click', showMessage1, false);
+btn.addEventListener('click', showMessage2, false);
+btn.addEventListener('click', showMessage3, false);
```
- 执行时机
diff --git a/docs/JavaScript/this.md b/docs/JavaScript/this.md
index faa670b1..f57aafc6 100644
--- a/docs/JavaScript/this.md
+++ b/docs/JavaScript/this.md
@@ -85,7 +85,7 @@ function person() {
console.log(person()); //Jenny
```
-上述代码输出`Jenny`,原因是调用函数的对象在游览器中位`window`,因此`this`指向`window`,所以输出`Jenny`
+上述代码输出`Jenny`,原因是调用函数的对象在浏览器中为`window`,因此`this`指向`window`,所以输出`Jenny`
注意:
@@ -159,7 +159,7 @@ var obj = new test();
obj.x // 1
```
-上述代码之所以能过输出1,是因为`new`关键字改变了`this`的指向
+上述代码之所以能够输出1,是因为`new`关键字改变了`this`的指向
这里再列举一些特殊情况:
@@ -222,7 +222,7 @@ obj.m.apply(obj) // 1
## 三、箭头函数
-在 ES6 的语法中还提供了箭头函语法,让我们在代码书写时就能确定 `this` 的指向(编译时绑定)
+在 ES6 的语法中还提供了箭头函数语法,让我们在代码书写时就能确定 `this` 的指向(编译时绑定)
举个例子:
From 94f9d12a47a97409d7159c61fb3b79bf16939308 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 24 Apr 2024 18:52:23 +0800
Subject: [PATCH 43/63] docs: update docs/JavaScript/bind_call_apply.md
---
docs/JavaScript/ajax.md | 4 ++--
docs/JavaScript/bind_call_apply.md | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/JavaScript/ajax.md b/docs/JavaScript/ajax.md
index 55fa0071..686ceb54 100644
--- a/docs/JavaScript/ajax.md
+++ b/docs/JavaScript/ajax.md
@@ -68,10 +68,10 @@ xhr.open(method, url, [async][, user][, password])
- `async`:布尔值,表示是否异步执行操作,默认为`true`
-- `user`: 可选的用户名用于认证用途;默认为`null
+- `user`: 可选的用户名用于认证用途;默认为`null`
-- `password`: 可选的密码用于认证用途,默认为`null
+- `password`: 可选的密码用于认证用途,默认为`null`
diff --git a/docs/JavaScript/bind_call_apply.md b/docs/JavaScript/bind_call_apply.md
index cc36c05b..d416810a 100644
--- a/docs/JavaScript/bind_call_apply.md
+++ b/docs/JavaScript/bind_call_apply.md
@@ -117,7 +117,7 @@ fn(1,2) // this指向window
从上面可以看到,`apply`、`call`、`bind`三者的区别在于:
- 三者都可以改变函数的`this`对象指向
-- 三者第一个参数都是`this`要指向的对象,如果如果没有这个参数或参数为`undefined`或`null`,则默认指向全局`window`
+- 三者第一个参数都是`this`要指向的对象,如果没有这个参数或参数为`undefined`或`null`,则默认指向全局`window`
- 三者都可以传参,但是`apply`是数组,而`call`是参数列表,且`apply`和`call`是一次性传入参数,而`bind`可以分为多次传入
- `bind `是返回绑定this之后的函数,`apply `、`call` 则是立即执行
From ef2b2e82eb16dcdfbf4685ed01171851b91c7e35 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 30 Apr 2024 13:08:05 +0800
Subject: [PATCH 44/63] docs: update docs/JavaScript/loss_accuracy.md
---
docs/JavaScript/cache.md | 6 +++---
docs/JavaScript/loss_accuracy.md | 2 +-
docs/JavaScript/memory_leak.md | 2 +-
docs/css/dp_px_dpr_ppi.md | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/JavaScript/cache.md b/docs/JavaScript/cache.md
index 43f89cec..9c131803 100644
--- a/docs/JavaScript/cache.md
+++ b/docs/JavaScript/cache.md
@@ -4,7 +4,7 @@
## 一、方式
-`javaScript`本地缓存的方法我们主要讲述以下四种:
+`JavaScript`本地缓存的方法我们主要讲述以下四种:
- cookie
- sessionStorage
@@ -43,7 +43,7 @@ Path=/docs # /docs/Web/ 下的资源会带 Cookie 首部
- 标记为 `Secure `的 `Cookie `只应通过被`HTTPS`协议加密过的请求发送给服务端
-通过上述,我们可以看到`cookie`又开始的作用并不是为了缓存而设计出来,只是借用了`cookie`的特性实现缓存
+通过上述,我们可以看到`cookie`开始的作用并不是为了缓存而设计出来,只是借用了`cookie`的特性实现缓存
关于`cookie`的使用如下:
@@ -51,7 +51,7 @@ Path=/docs # /docs/Web/ 下的资源会带 Cookie 首部
document.cookie = '名字=值';
```
-关于`cookie`的修改,首先要确定`domain`和`path`属性都是相同的才可以,其中有一个不同得时候都会创建出一个新的`cookie`
+关于`cookie`的修改,首先要确定`domain`和`path`属性都是相同的才可以,其中有一个不同的时候都会创建出一个新的`cookie`
```js
Set-Cookie:name=aa; domain=aa.net; path=/ # 服务端设置
diff --git a/docs/JavaScript/loss_accuracy.md b/docs/JavaScript/loss_accuracy.md
index 25d4b8ac..cca6e7b1 100644
--- a/docs/JavaScript/loss_accuracy.md
+++ b/docs/JavaScript/loss_accuracy.md
@@ -41,7 +41,7 @@

-前面讲到,`javaScript`存储方式是双精度浮点数,其长度为8个字节,即64位比特
+前面讲到,`JavaScript`存储方式是双精度浮点数,其长度为8个字节,即64位比特
64位比特又可分为三个部分:
diff --git a/docs/JavaScript/memory_leak.md b/docs/JavaScript/memory_leak.md
index 7ddce37b..1693bdc6 100644
--- a/docs/JavaScript/memory_leak.md
+++ b/docs/JavaScript/memory_leak.md
@@ -47,7 +47,7 @@ Javascript 具有自动垃圾回收机制(GC:Garbage Collecation),也就
`JavaScript`最常用的垃圾收回机制
-当变量进入执行环境是,就标记这个变量为“进入环境“。进入环境的变量所占用的内存就不能释放,当变量离开环境时,则将其标记为“离开环境“
+当变量进入执行环境时,就标记这个变量为“进入环境“。进入环境的变量所占用的内存就不能释放,当变量离开环境时,则将其标记为“离开环境“
垃圾回收程序运行的时候,会标记内存中存储的所有变量。然后,它会将所有在上下文中的变量,以及被在上下文中的变量引用的变量的标记去掉
diff --git a/docs/css/dp_px_dpr_ppi.md b/docs/css/dp_px_dpr_ppi.md
index 2bd1c7d9..c93b8df5 100644
--- a/docs/css/dp_px_dpr_ppi.md
+++ b/docs/css/dp_px_dpr_ppi.md
@@ -59,7 +59,7 @@ px会受到下面的因素的影响而变化:
设备独立像素(Device Independent Pixel):与设备无关的逻辑像素,代表可以通过程序控制使用的虚拟像素,是一个总体概念,包括了CSS像素
-在`javaScript`中可以通过`window.screen.width/ window.screen.height` 查看
+在`JavaScript`中可以通过`window.screen.width/ window.screen.height` 查看
比如我们会说“电脑屏幕在 2560x1600分辨率下不适合玩游戏,我们把它调为 1440x900”,这里的“分辨率”(非严谨说法)指的就是设备独立像素
From 00d197525227fb72927e42ca921b58f13a85d824 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 30 Apr 2024 17:05:37 +0800
Subject: [PATCH 45/63] docs: update docs/JavaScript/visible.md
---
docs/JavaScript/visible.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/JavaScript/visible.md b/docs/JavaScript/visible.md
index 28a4f02a..69473777 100644
--- a/docs/JavaScript/visible.md
+++ b/docs/JavaScript/visible.md
@@ -163,7 +163,7 @@ const callback = function(entries, observer) {
entries.forEach(entry => {
entry.time; // 触发的时间
entry.rootBounds; // 根元素的位置矩形,这种情况下为视窗位置
- entry.boundingClientRect; // 被观察者的位置举行
+ entry.boundingClientRect; // 被观察者的位置矩形
entry.intersectionRect; // 重叠区域的位置矩形
entry.intersectionRatio; // 重叠区域占被观察者面积的比例(被观察者不是矩形时也按照矩形计算)
entry.target; // 被观察者
From bb02fe028dd978c0f2729dd97a436ede09277d59 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 1 May 2024 20:07:37 +0800
Subject: [PATCH 46/63] docs: update security.md
---
docs/JavaScript/security.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/JavaScript/security.md b/docs/JavaScript/security.md
index 4526d4e0..584710b2 100644
--- a/docs/JavaScript/security.md
+++ b/docs/JavaScript/security.md
@@ -167,7 +167,7 @@ eval("UNTRUSTED")
CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求
-利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目
+利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的
一个典型的CSRF攻击有着如下的流程:
From 66900d023c4693f735b095ed802e790c65a59d1d Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 1 May 2024 20:46:06 +0800
Subject: [PATCH 47/63] docs: update docs/React/React.md
---
docs/React/React.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/React/React.md b/docs/React/React.md
index 53b05290..517ac04e 100644
--- a/docs/React/React.md
+++ b/docs/React/React.md
@@ -10,7 +10,7 @@ React,用于构建用户界面的 JavaScript 库,只提供了 UI 层面的
使用虚拟 `DOM` 来有效地操作 `DOM`,遵循从高阶组件到低阶组件的单向数据流
-帮助我们将界面成了各个独立的小块,每一个块就是组件,这些组件之间可以组合、嵌套,构成整体页面
+帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合、嵌套,构成整体页面
`react` 类组件使用一个名为 `render()` 的方法或者函数组件`return`,接收输入的数据并返回需要展示的内容
From cead635e358bd7578acd7f0ee139d6729544a4a7 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 2 May 2024 22:58:20 +0800
Subject: [PATCH 48/63] docs: update docs/React/Real DOM_Virtual DOM.md
---
docs/React/Real DOM_Virtual DOM.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/React/Real DOM_Virtual DOM.md b/docs/React/Real DOM_Virtual DOM.md
index bdd4308f..6e9cdcb9 100644
--- a/docs/React/Real DOM_Virtual DOM.md
+++ b/docs/React/Real DOM_Virtual DOM.md
@@ -79,7 +79,7 @@ const vDom = React.createElement(
- 简单方便:如果使用手动操作真实 `DOM` 来完成页面,繁琐又容易出错,在大规模应用下维护起来也很困难
-- 性能方面:使用 Virtual DOM,能够有效避免真实 DOM 数频繁更新,减少多次引起重绘与回流,提高性能
+- 性能方面:使用 Virtual DOM,能够有效避免真实 DOM 频繁更新,减少多次引起重绘与回流,提高性能
- 跨平台:React 借助虚拟 DOM,带来了跨平台的能力,一套代码多端运行
缺点:
From 9f0908f4ec76798fd37d34b70b49ce39c7fd16ee Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 2 May 2024 23:11:36 +0800
Subject: [PATCH 49/63] docs: update life cycle.md
---
docs/React/life cycle.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/React/life cycle.md b/docs/React/life cycle.md
index bad7f9c3..8a32efb3 100644
--- a/docs/React/life cycle.md
+++ b/docs/React/life cycle.md
@@ -131,7 +131,7 @@ componentDidUpdate(prevProps, prevState, snapshot) {
## componentWillUnmount
-此方法用于组件卸载前,清理一些注册是监听事件,或者取消订阅的网络请求等
+此方法用于组件卸载前,清理一些注册时的监听事件,或者取消订阅的网络请求等
一旦一个组件实例被卸载,其不会被再次挂载,而只可能是被重新创建
From efc7aad054cdd5ff2c70e3a3c38900f4571a8ffd Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 8 May 2024 14:34:14 +0800
Subject: [PATCH 50/63] docs: update docs/React/state_props.md
---
docs/React/state_props.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/React/state_props.md b/docs/React/state_props.md
index d7c0438f..3eadb21c 100644
--- a/docs/React/state_props.md
+++ b/docs/React/state_props.md
@@ -66,7 +66,7 @@ const element =
;
上述 `name` 属性与 `onNameChanged` 方法都能在子组件的 `props` 变量中访问
-在子组件中,`props` 在内部不可变的,如果想要改变它看,只能通过外部组件传入新的 `props` 来重新渲染子组件,否则子组件的 `props` 和展示形式不会改变
+在子组件中,`props` 在内部不可变的,如果想要改变它,只能通过外部组件传入新的 `props` 来重新渲染子组件,否则子组件的 `props` 和展示形式不会改变
## 三、区别
From 897df65b4eba1107db66de88007e938aa3a153b6 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 8 May 2024 14:37:23 +0800
Subject: [PATCH 51/63] docs: update docs/React/super()_super(props).md
---
docs/React/super()_super(props).md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/React/super()_super(props).md b/docs/React/super()_super(props).md
index 37651637..687fe5a7 100644
--- a/docs/React/super()_super(props).md
+++ b/docs/React/super()_super(props).md
@@ -19,7 +19,7 @@ class sup {
class sub extends sup {
constructor(name, age) {
- super(name); // super代表的事父类的构造函数
+ super(name); // super代表的是父类的构造函数
this.age = age;
}
@@ -49,7 +49,7 @@ jack.printAge(); //输出 : 20
class sub extends sup {
constructor(name, age) {
this.age = age;
- super(name); // super代表的事父类的构造函数
+ super(name); // super代表的是父类的构造函数
}
}
```
From 18d2c33edb129438f9a5b979136dd42937da9485 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 8 May 2024 15:13:30 +0800
Subject: [PATCH 52/63] docs: update docs/React/super()_super(props).md
---
docs/React/Binding events.md | 2 +-
docs/React/super()_super(props).md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/React/Binding events.md b/docs/React/Binding events.md
index a3ad2577..616f6f0c 100644
--- a/docs/React/Binding events.md
+++ b/docs/React/Binding events.md
@@ -39,7 +39,7 @@ class ShowAlert extends React.Component {
### render方法中使用bind
-如果使用一个类组件,在其中给某个组件/元素一个`onClick`属性,它现在并会自定绑定其`this`到当前组件,解决这个问题的方法是在事件函数后使用`.bind(this)`将`this`绑定到当前组件中
+如果使用一个类组件,在其中给某个组件/元素一个`onClick`属性,它现在会自动绑定其`this`到当前组件,解决这个问题的方法是在事件函数后使用`.bind(this)`将`this`绑定到当前组件中
```jsx
class App extends React.Component {
diff --git a/docs/React/super()_super(props).md b/docs/React/super()_super(props).md
index 687fe5a7..38fc55d5 100644
--- a/docs/React/super()_super(props).md
+++ b/docs/React/super()_super(props).md
@@ -33,7 +33,7 @@ jack.printName(); //输出 : jack
jack.printAge(); //输出 : 20
```
-在上面的例子中,可以看到通过 `super` 关键字实现调用父类,`super` 代替的是父类的构建函数,使用 `super(name)` 相当于调用 `sup.prototype.constructor.call(this,name)`
+在上面的例子中,可以看到通过 `super` 关键字实现调用父类,`super` 代替的是父类的构造函数,使用 `super(name)` 相当于调用 `sup.prototype.constructor.call(this,name)`
如果在子类中不使用 `super`,关键字,则会引发报错,如下:
From f61b937ab5c019c5808a3050c11c99f79093953d Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 8 May 2024 16:38:42 +0800
Subject: [PATCH 53/63] docs: update docs/React/Building components.md
---
docs/React/Building components.md | 2 +-
docs/React/High order components.md | 2 +-
docs/React/React refs.md | 2 +-
docs/React/class_function component.md | 2 +-
docs/React/communication.md | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/React/Building components.md b/docs/React/Building components.md
index e8791370..154985b4 100644
--- a/docs/React/Building components.md
+++ b/docs/React/Building components.md
@@ -73,7 +73,7 @@ function HelloComponent(props) /* context */{
有状态的组件也就是组件内部存在维护的数据,在类创建的方式中通过`this.state`进行访问
-当调用`this.setState`修改组件的状态时,组价会再次会调用`render()`方法进行重新渲染
+当调用`this.setState`修改组件的状态时,组件会再次会调用`render()`方法进行重新渲染
通过继承`React.Component`创建一个时钟示例如下:
diff --git a/docs/React/High order components.md b/docs/React/High order components.md
index e160a43a..86ed25b6 100644
--- a/docs/React/High order components.md
+++ b/docs/React/High order components.md
@@ -57,7 +57,7 @@ export default (WrappedComponent) => {
这里需要注意的是,高阶组件可以传递所有的`props`,但是不能传递`ref`
-如果向一个高阶组件添加`refe`引用,那么`ref` 指向的是最外层容器组件实例的,而不是被包裹的组件,如果需要传递`refs`的话,则使用`React.forwardRef`,如下:
+如果向一个高阶组件添加`ref`引用,那么`ref` 指向的是最外层容器组件实例的,而不是被包裹的组件,如果需要传递`refs`的话,则使用`React.forwardRef`,如下:
```jsx
function withLogging(WrappedComponent) {
diff --git a/docs/React/React refs.md b/docs/React/React refs.md
index a9663e2d..91ac616a 100644
--- a/docs/React/React refs.md
+++ b/docs/React/React refs.md
@@ -16,7 +16,7 @@
- 传入字符串,使用时通过 this.refs.传入的字符串的格式获取对应的元素
- 传入对象,对象是通过 React.createRef() 方式创建出来,使用时获取到创建的对象中存在 current 属性就是对应的元素
-- 传入函数,该函数会在 DOM 被挂载时进行回调,这个函数会传入一个 元素对象,可以自己保存,使用时,直接拿到之前保存的元素对象即可
+- 传入函数,该函数会在 DOM 被挂载时进行回调,这个函数会传入一个元素对象,可以自己保存,使用时,直接拿到之前保存的元素对象即可
- 传入hook,hook是通过 useRef() 方式创建,使用时通过生成hook对象的 current 属性就是对应的元素
diff --git a/docs/React/class_function component.md b/docs/React/class_function component.md
index 2f28d105..5a211582 100644
--- a/docs/React/class_function component.md
+++ b/docs/React/class_function component.md
@@ -210,7 +210,7 @@ class ProfilePage extends React.Component {
}
```
-两者看起来实现功能是一致的,但是在类组件中,输出`this.props.user`,`Props `在 `React `中是不可变的所以它永远不会改变,但是 `this` 总是可变的,以便您可以在 `render` 和生命周期函数中读取新版本
+两者看起来实现功能是一致的,但是在类组件中,输出`this.props.user`,`Props `在 `React `中是不可变的,所以它永远不会改变,但是 `this` 总是可变的,以便您可以在 `render` 和生命周期函数中读取新版本
因此,如果我们的组件在请求运行时更新。`this.props` 将会改变。`showMessage `方法从“最新”的 `props` 中读取 `user`
diff --git a/docs/React/communication.md b/docs/React/communication.md
index 36fe7ee4..3440b884 100644
--- a/docs/React/communication.md
+++ b/docs/React/communication.md
@@ -156,7 +156,7 @@ class Parent extends React.Component {
```
-如果想要获取`Provider`传递的数据,可以通过`Consumer`组件或者或者使用`contextType`属性接收,对应分别如下:
+如果想要获取`Provider`传递的数据,可以通过`Consumer`组件或者使用`contextType`属性接收,对应分别如下:
```jsx
class MyClass extends React.Component {
From 062dacd23223779da692c67d468c02b14b231a57 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 8 May 2024 18:52:32 +0800
Subject: [PATCH 54/63] docs: update docs/React/redux.md
---
docs/React/import css.md | 10 ++++++----
docs/React/redux.md | 4 ++--
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/docs/React/import css.md b/docs/React/import css.md
index 3a86a0b1..5cfe6104 100644
--- a/docs/React/import css.md
+++ b/docs/React/import css.md
@@ -68,7 +68,9 @@ export default Test;
上面可以看到,`css`属性需要转换成驼峰写法
-这种方式优点:
+这种方式
+
+优点:
- 内联样式, 样式之间不会有冲突
- 可以动态获取当前state中的状态
@@ -133,7 +135,7 @@ export default class App extends PureComponent {
将`css`文件作为一个模块引入,这个模块中的所有`css`,只作用于当前组件。不会影响当前组件的后代组件
-这种方式是`webpack`特工的方案,只需要配置`webpack`配置文件中`modules:true`即可
+这种方式是`webpack`特有的方案,只需要配置`webpack`配置文件中`modules:true`即可
```jsx
import React, { PureComponent } from 'react';
@@ -235,8 +237,8 @@ export default Test;
通过上面四种样式的引入,可以看到:
-- 在组件内直接使用`css`该方式编写方便,容易能够根据状态修改样式属性,但是大量的演示编写容易导致代码混乱
-- 组件中引入 .css 文件符合我们日常的编写习惯,但是作用域是全局的,样式之间会层叠
+- 在组件内直接使用`css`该方式编写方便,容易能够根据状态修改样式属性,但是大量的样式编写容易导致代码混乱
+- 组件中引入 .css 文件符合我们日常的编写习惯,但是作用域是全局的,样式之间会重叠
- 引入.module.css 文件能够解决局部作用域问题,但是不方便动态修改样式,需要使用内联的方式进行样式的编写
- 通过css in js 这种方法,可以满足大部分场景的应用,可以类似于预处理器一样样式嵌套、定义、修改状态等
diff --git a/docs/React/redux.md b/docs/React/redux.md
index 6cba6e9a..fb1a1c77 100644
--- a/docs/React/redux.md
+++ b/docs/React/redux.md
@@ -35,7 +35,7 @@
整个流程就是借书的用户需要先存在,然后需要借书,需要一句话来描述借什么书,图书馆管理员听到后需要查一下记录本,了解图书的位置,最后图书馆管理员会把这本书给到这个借书人
-转换为代码是,`React Components` 需要获取一些数据, 然后它就告知 `Store` 需要获取数据,这就是就是 `Action Creactor` , `Store` 接收到之后去 `Reducer` 查一下, `Reducer` 会告诉 `Store` 应该给这个组件什么数据
+转换为代码是,`React Components` 需要获取一些数据, 然后它就告知 `Store` 需要获取数据,这就是 `Action Creactor` , `Store` 接收到之后去 `Reducer` 查一下, `Reducer` 会告诉 `Store` 应该给这个组件什么数据
@@ -173,7 +173,7 @@ store.dispatch({
- createStore可以帮助创建 store
- store.dispatch 帮助派发 action , action 会传递给 store
- store.getState 这个方法可以帮助获取 store 里边所有的数据内容
-- store.subscrible 方法订阅 store 的改变,只要 store 发生改变, store.subscrible 这个函数接收的这个回调函数就会被执行
+- store.subscribe 方法订阅 store 的改变,只要 store 发生改变, store.subscribe 这个函数接收的这个回调函数就会被执行
## 参考文献
From 0003754cae993a3d5c67e85cbbc01febf170a1d4 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 8 May 2024 19:15:46 +0800
Subject: [PATCH 55/63] docs: update docs/React/React Router model.md
---
docs/React/React Router model.md | 2 +-
docs/React/React Router.md | 2 +-
docs/React/Redux Middleware.md | 2 +-
docs/React/how to use redux.md | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/React/React Router model.md b/docs/React/React Router model.md
index bc5e9772..74167f65 100644
--- a/docs/React/React Router model.md
+++ b/docs/React/React Router model.md
@@ -76,7 +76,7 @@ export default App;
## HashRouter
-`HashRouter`包裹了整应用,
+`HashRouter`包裹了整个应用,
通过`window.addEventListener('hashChange',callback)`监听`hash`值的变化,并传递给其嵌套的组件
diff --git a/docs/React/React Router.md b/docs/React/React Router.md
index 5078f63e..2b1c0d06 100644
--- a/docs/React/React Router.md
+++ b/docs/React/React Router.md
@@ -112,7 +112,7 @@ export default function App() {
### Link、NavLink
-通常路径的跳转是使用`Link`组件,最终会被渲染成`a`元素,其中属性`to`代替`a`标题的`href`属性
+通常路径的跳转是使用`Link`组件,最终会被渲染成`a`元素,其中属性`to`代替`a`标签的`href`属性
`NavLink`是在`Link`基础之上增加了一些样式属性,例如组件被选中时,发生样式变化,则可以设置`NavLink`的一下属性:
diff --git a/docs/React/Redux Middleware.md b/docs/React/Redux Middleware.md
index 6544bea3..655b9e7a 100644
--- a/docs/React/Redux Middleware.md
+++ b/docs/React/Redux Middleware.md
@@ -12,7 +12,7 @@
那么如果需要支持异步操作,或者支持错误处理、日志监控,这个过程就可以用上中间件
-`Redux`中,中间件就是放在就是在`dispatch`过程,在分发`action`进行拦截处理,如下图:
+`Redux`中,中间件就是放在`dispatch`过程,在分发`action`进行拦截处理,如下图:

diff --git a/docs/React/how to use redux.md b/docs/React/how to use redux.md
index ecf4dd01..288e8f82 100644
--- a/docs/React/how to use redux.md
+++ b/docs/React/how to use redux.md
@@ -45,7 +45,7 @@
`connect`方法将`store`上的`getState `和 `dispatch `包装成组件的`props`
-导入`conect`如下:
+导入`connect`如下:
```js
import { connect } from "react-redux";
From bc0da256348aa7c683d733e854666e9ffd8b99b7 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 9 May 2024 17:30:48 +0800
Subject: [PATCH 56/63] docs: update docs/React/Fiber.md
---
docs/React/Fiber.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/React/Fiber.md b/docs/React/Fiber.md
index f98e2c96..0ee72efa 100644
--- a/docs/React/Fiber.md
+++ b/docs/React/Fiber.md
@@ -7,7 +7,7 @@
`JavaScript `引擎和页面渲染引擎两个线程是互斥的,当其中一个线程执行时,另一个线程只能挂起等待
-如果 `JavaScript` 线程长时间地占用了主线程,那么渲染层面的更新就不得不长时间地等待,界面长时间不更新,会导致页面响应度变差,用户可能会感觉到卡顿
+如果 `JavaScript` 线程长时间地占用了主线程,那么渲染层面的更新就不得不长时间地等待,界面长时间不更新,会导致页面响应速度变差,用户可能会感觉到卡顿
而这也正是 `React 15` 的 `Stack Reconciler `所面临的问题,当 `React `在渲染组件时,从开始到渲染完成整个过程是一气呵成的,无法中断
From 178943b8d9a288b326545068b5a2fc376ba2d02f Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Thu, 9 May 2024 17:40:24 +0800
Subject: [PATCH 57/63] docs: update docs/React/Fiber.md
---
docs/React/Fiber.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/React/Fiber.md b/docs/React/Fiber.md
index 0ee72efa..6c672afd 100644
--- a/docs/React/Fiber.md
+++ b/docs/React/Fiber.md
@@ -21,11 +21,11 @@
## 二、是什么
-React Fiber 是 Facebook 花费两年余时间对 React 做出的一个重大改变与优化,是对 React 核心算法的一次重新实现。从Facebook在 React Conf 2017 会议上确认,React Fiber 在React 16 版本发布
+React Fiber 是 Facebook 花费两年多的时间对 React 做出的一个重大改变与优化,是对 React 核心算法的一次重新实现。从Facebook在 React Conf 2017 会议上确认,React Fiber 在React 16 版本发布
在`react`中,主要做了以下的操作:
-- 为每个增加了优先级,优先级高的任务可以中断低优先级的任务。然后再重新,注意是重新执行优先级低的任务
+- 为每个任务增加了优先级,优先级高的任务可以中断低优先级的任务。然后再重新执行,注意是重新执行优先级低的任务
- 增加了异步任务,调用requestIdleCallback api,浏览器空闲的时候执行
- dom diff树变成了链表,一个dom对应两个fiber(一个链表),对应两个队列,这都是为找到被中断的任务,重新执行
From 47fc2c459bc09cc9a02f19337c5281a9c0d542f5 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 4 Jun 2024 11:34:18 +0800
Subject: [PATCH 58/63] docs: update docs/webpack/performance.md
---
docs/webpack/performance.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/webpack/performance.md b/docs/webpack/performance.md
index 9a46f0d3..77265ebb 100644
--- a/docs/webpack/performance.md
+++ b/docs/webpack/performance.md
@@ -201,7 +201,7 @@ module: {
`Tree Shaking` 是一个术语,在计算机中表示消除死代码,依赖于`ES Module`的静态语法分析(不执行任何的代码,可以明确知道模块的依赖关系)
-在`webpack`实现`Trss shaking`有两种不同的方案:
+在`webpack`实现`Tree shaking`有两种不同的方案:
- usedExports:通过标记某些函数是否被使用,之后通过Terser来进行优化的
- sideEffects:跳过整个模块/文件,直接查看该文件是否有副作用
From fee788452b15f85944fd88b1876c842b8a245d69 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 4 Jun 2024 12:48:52 +0800
Subject: [PATCH 59/63] docs: update docs/webpack/performance.md
---
docs/http/HTTPS.md | 2 +-
docs/http/UDP_TCP.md | 2 +-
docs/webpack/improve_build.md | 2 +-
docs/webpack/performance.md | 4 ++--
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/http/HTTPS.md b/docs/http/HTTPS.md
index 58af2e6e..4b59ffaa 100644
--- a/docs/http/HTTPS.md
+++ b/docs/http/HTTPS.md
@@ -70,7 +70,7 @@
-上述的方法解决了数据加密,在网络传输过程中,数据有可能被篡改,并且黑客可以伪造身份发布公钥,如果你获取到假的公钥,那么混合加密也并无多大用处,你的数据扔被黑客解决
+上述的方法解决了数据加密,在网络传输过程中,数据有可能被篡改,并且黑客可以伪造身份发布公钥,如果你获取到假的公钥,那么混合加密也并无多大用处,你的数据仍被黑客解决
因此,在上述加密的基础上仍需加上完整性、身份验证的特性,来实现真正的安全,实现这一功能则是摘要算法
diff --git a/docs/http/UDP_TCP.md b/docs/http/UDP_TCP.md
index b6244fda..a9bc166c 100644
--- a/docs/http/UDP_TCP.md
+++ b/docs/http/UDP_TCP.md
@@ -65,7 +65,7 @@ TCP(Transmission Control Protocol),传输控制协议,是一种可靠、
| 拥塞控制 | 慢开始、拥塞避免、快重传、快恢复 | 无 |
| 传输效率 | 慢 | 快 |
-- TCP 是面向连接的协议,建立连接3次握手、断开连接四次挥手,UDP是面向无连接,数据传输前后不连接连接,发送端只负责将数据发送到网络,接收端从消息队列读取
+- TCP 是面向连接的协议,建立连接3次握手、断开连接四次挥手,UDP是面向无连接,数据传输前后不连接,发送端只负责将数据发送到网络,接收端从消息队列读取
- TCP 提供可靠的服务,传输过程采用流量控制、编号与确认、计时器等手段确保数据无差错,不丢失。UDP 则尽可能传递数据,但不保证传递交付给对方
- TCP 面向字节流,将应用层报文看成一串无结构的字节流,分解为多个TCP报文段传输后,在目的站重新装配。UDP协议面向报文,不拆分应用层报文,只保留报文边界,一次发送一个报文,接收方去除报文首部后,原封不动将报文交给上层应用
diff --git a/docs/webpack/improve_build.md b/docs/webpack/improve_build.md
index b12270f1..537175e7 100644
--- a/docs/webpack/improve_build.md
+++ b/docs/webpack/improve_build.md
@@ -112,7 +112,7 @@ module.exports = {
### 使用 DLLPlugin 插件
-`DLL`全称是 动态链接库,是为软件在winodw种实现共享函数库的一种实现方式,而Webpack也内置了DLL的功能,为的就是可以共享,不经常改变的代码,抽成一个共享的库。这个库在之后的编译过程中,会被引入到其他项目的代码中
+`DLL`全称是 动态链接库,是为软件在windows中实现共享函数库的一种实现方式,而Webpack也内置了DLL的功能,为的就是可以共享,不经常改变的代码,抽成一个共享的库。这个库在之后的编译过程中,会被引入到其他项目的代码中
使用步骤分成两部分:
diff --git a/docs/webpack/performance.md b/docs/webpack/performance.md
index 77265ebb..0a4c7380 100644
--- a/docs/webpack/performance.md
+++ b/docs/webpack/performance.md
@@ -242,7 +242,7 @@ module.exports = {
如果有些文件需要保留,可以设置为数组的形式
```js
-"sideEffecis":[
+"sideEffects":[
"./src/util/format.js",
"*.css" // 所有的css文件
]
@@ -288,7 +288,7 @@ module.exports = {
默认情况下,所有的`JavaScript`代码(业务代码、第三方依赖、暂时没有用到的模块)在首页全部都加载,就会影响首页的加载速度
-代码分离可以分出出更小的`bundle`,以及控制资源加载优先级,提供代码的加载性能
+代码分离可以分出更小的`bundle`,以及控制资源加载优先级,提供代码的加载性能
这里通过`splitChunksPlugin`来实现,该插件`webpack`已经默认安装和集成,只需要配置即可
From 5c55d2a53d9d14ad805daf5363e0c7f06ef1de85 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 25 Jun 2024 17:54:58 +0800
Subject: [PATCH 60/63] docs: update docs/JavaScript/closure.md
---
docs/JavaScript/closure.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/JavaScript/closure.md b/docs/JavaScript/closure.md
index ed8b053b..0636fb6c 100644
--- a/docs/JavaScript/closure.md
+++ b/docs/JavaScript/closure.md
@@ -98,7 +98,7 @@ const getTwentyWidthArea = getArea(20)
下面举个例子:
```js
-var Counter = (function() {
+var makeCounter = (function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
@@ -116,8 +116,8 @@ var Counter = (function() {
}
})();
-var Counter1 = makeCounter();
-var Counter2 = makeCounter();
+var Counter1 = makeCounter;
+var Counter2 = makeCounter;
console.log(Counter1.value()); /* logs 0 */
Counter1.increment();
Counter1.increment();
From 1c92b7e9d38cfa1574a5e851a8047aa38e665f9d Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 25 Jun 2024 20:37:22 +0800
Subject: [PATCH 61/63] docs: update docs/JavaScript/event_Model.md
---
docs/JavaScript/event_Model.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/JavaScript/event_Model.md b/docs/JavaScript/event_Model.md
index 65a31fa2..05792701 100644
--- a/docs/JavaScript/event_Model.md
+++ b/docs/JavaScript/event_Model.md
@@ -247,6 +247,6 @@ detachEvent(eventType, handler)
```js
var btn = document.getElementById('.btn');
-btn.attachEvent(‘onclick’, showMessage);
-btn.detachEvent(‘onclick’, showMessage);
+btn.attachEvent('onclick', showMessage);
+btn.detachEvent('onclick', showMessage);
```
\ No newline at end of file
From d3509864d6cc1d6952633d10932d3c389e9e1109 Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Tue, 25 Jun 2024 21:29:10 +0800
Subject: [PATCH 62/63] docs: update docs/JavaScript/event_Model.md
---
docs/JavaScript/ajax.md | 2 +-
docs/JavaScript/event_loop.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/JavaScript/ajax.md b/docs/JavaScript/ajax.md
index 686ceb54..6bd67091 100644
--- a/docs/JavaScript/ajax.md
+++ b/docs/JavaScript/ajax.md
@@ -34,7 +34,7 @@
- 构建请求所需的数据内容,并通过` XMLHttpRequest` 对象的 `send()` 方法发送给服务器端
-- 通过 `XMLHttpRequest` 对象提供的 `onreadystatechange` 事件监听服务器端你的通信状态
+- 通过 `XMLHttpRequest` 对象提供的 `onreadystatechange` 事件监听服务器端的通信状态
- 接受并处理服务端向客户端响应的数据结果
diff --git a/docs/JavaScript/event_loop.md b/docs/JavaScript/event_loop.md
index 07a84f99..d2212d55 100644
--- a/docs/JavaScript/event_loop.md
+++ b/docs/JavaScript/event_loop.md
@@ -218,7 +218,7 @@ console.log('script end')
1. 执行整段代码,遇到 `console.log('script start')` 直接打印结果,输出 `script start`
2. 遇到定时器了,它是宏任务,先放着不执行
-3. 遇到 `async1()`,执行 `async1` 函数,先打印 `async1 start`,下面遇到` await `怎么办?先执行 `async2`,打印 `async2`,然后阻塞下面代码(即加入微任务列表),跳出去执行同步代码
+3. 遇到 `async1()`,执行 `async1` 函数,先打印 `async1 start`,下面遇到` await `怎么办?先执行 `async2`,打印 `async2`,然后阻塞下面代码(即加入微任务列表),跳出去执行同步代码。await 关键字在 async 函数内部确实会阻塞进一步的代码执行,但 await 后面跟随的 async 函数(即 async2())的执行是立即的,直到 async2() 函数内部的所有同步代码执行完毕并返回一个 Promise(在这个例子中是隐式的,因为 async 函数总是返回 Promise)。然后,await 会等待这个 Promise 解析(resolve)或拒绝(reject),而不是将 async2() 的执行本身放入微任务队列。
4. 跳到 `new Promise` 这里,直接执行,打印 `promise1`,下面遇到 `.then()`,它是微任务,放到微任务列表等待执行
5. 最后一行直接打印 `script end`,现在同步代码执行完了,开始执行微任务,即 `await `下面的代码,打印 `async1 end`
6. 继续执行下一个微任务,即执行 `then` 的回调,打印 `promise2`
From cbd7d176db89f1d9a6be784f87f220e80402833d Mon Sep 17 00:00:00 2001
From: qiufeihong2018 <15058301288@163.com>
Date: Wed, 26 Jun 2024 13:51:44 +0800
Subject: [PATCH 63/63] docs: update docs/css/selector.md
---
docs/css/selector.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/css/selector.md b/docs/css/selector.md
index 8cd4ed4d..7ffc34b2 100644
--- a/docs/css/selector.md
+++ b/docs/css/selector.md
@@ -167,7 +167,7 @@ font-variant:偏大或偏小的字体
```css
text-indent:文本缩进
-text-align:文本水平对刘
+text-align:文本水平对齐
line-height:行高
word-spacing:增加或减少单词间的空白
letter-spacing:增加或减少字符间的空白