Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

文档内容校验 (#433) #427

Open
wants to merge 64 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
25ad994
docs: update vue.md
qiufeihong2018 Apr 7, 2024
b488876
Merge branch 'febobo:master' into master
qiufeihong2018 Apr 7, 2024
7e39017
docs: update spa.md
qiufeihong2018 Apr 7, 2024
afff55c
docs: update spa.md
qiufeihong2018 Apr 7, 2024
81767da
docs: update first_page_time.md
qiufeihong2018 Apr 10, 2024
686cd51
docs: update first_page_time.md
qiufeihong2018 Apr 10, 2024
713db6e
docs: update data_object_add_attrs.md
qiufeihong2018 Apr 10, 2024
29cd10a
docs: update communication.md
qiufeihong2018 Apr 11, 2024
14c693f
docs: update communication.md
qiufeihong2018 Apr 11, 2024
c344753
docs: update communication.md
qiufeihong2018 Apr 11, 2024
08b8f1e
docs: update communication.md
qiufeihong2018 Apr 11, 2024
1f5563d
docs: update communication.md
qiufeihong2018 Apr 11, 2024
07da59b
fix: css部分属性继承错别字 #429
qiufeihong2018 Apr 11, 2024
fc25e4e
fix: 错别字修改-想改为相 #419
qiufeihong2018 Apr 11, 2024
cabeddd
docs: update nexttick.md
qiufeihong2018 Apr 12, 2024
ade63d5
docs: update mixin.md
qiufeihong2018 Apr 12, 2024
fe1a3a0
docs: update slot.md
qiufeihong2018 Apr 12, 2024
32cbfa8
docs: update slot.md
qiufeihong2018 Apr 12, 2024
0855738
docs: update slot.md
qiufeihong2018 Apr 12, 2024
f2328f2
docs: update docs/vue/modifier.md
qiufeihong2018 Apr 15, 2024
35397b6
docs: update docs/vue/filter.md
qiufeihong2018 Apr 15, 2024
d6a91b1
docs: update docs/vue/vnode.md
qiufeihong2018 Apr 15, 2024
fcc89e2
docs: update docs/vue/vnode.md
qiufeihong2018 Apr 16, 2024
50a5798
docs: update docs/vue/vnode.md
qiufeihong2018 Apr 16, 2024
2cbbdc2
docs: update docs/vue/vnode.md
qiufeihong2018 Apr 16, 2024
9577923
docs: update docs/vue/vnode.md
qiufeihong2018 Apr 16, 2024
ec66a70
docs: update docs/vue/axios.md
qiufeihong2018 Apr 16, 2024
788af24
docs: update docs/vue/axios.md
qiufeihong2018 Apr 16, 2024
517fe14
docs: update docs/vue/axiosCode.md
qiufeihong2018 Apr 16, 2024
c672d9d
docs: update docs/vue/cors.md
qiufeihong2018 Apr 17, 2024
caf2a7a
docs: update docs/vue/vue3_vue2.md
qiufeihong2018 Apr 18, 2024
39b8095
docs: update docs/vue3/composition.md
qiufeihong2018 Apr 18, 2024
9643fda
docs: update docs/vue3/modal_component.md
qiufeihong2018 Apr 18, 2024
c08dba1
fix: resolve array demo
qiufeihong2018 Apr 19, 2024
16e8ec4
docs: update docs/es6/array.md
qiufeihong2018 Apr 19, 2024
4196676
docs: update docs/es6/object.md
qiufeihong2018 Apr 19, 2024
f25de4e
docs: update docs/es6/module.md
qiufeihong2018 Apr 22, 2024
c648b08
docs: update docs/JavaScript/data_type.md
qiufeihong2018 Apr 23, 2024
6b10968
docs: update docs/JavaScript/string_api.md
qiufeihong2018 Apr 23, 2024
b3cf495
docs: update docs/JavaScript/copy.md
qiufeihong2018 Apr 23, 2024
d29cc63
docs: update docs/JavaScript/closure.md
qiufeihong2018 Apr 23, 2024
f3f6319
docs: update docs/JavaScript/inherit.md
qiufeihong2018 Apr 23, 2024
54c8052
docs: update docs/JavaScript/event_Model.md
qiufeihong2018 Apr 23, 2024
94f9d12
docs: update docs/JavaScript/bind_call_apply.md
qiufeihong2018 Apr 24, 2024
ef2b2e8
docs: update docs/JavaScript/loss_accuracy.md
qiufeihong2018 Apr 30, 2024
00d1975
docs: update docs/JavaScript/visible.md
qiufeihong2018 Apr 30, 2024
bb02fe0
docs: update security.md
qiufeihong2018 May 1, 2024
66900d0
docs: update docs/React/React.md
qiufeihong2018 May 1, 2024
cead635
docs: update docs/React/Real DOM_Virtual DOM.md
qiufeihong2018 May 2, 2024
9f0908f
docs: update life cycle.md
qiufeihong2018 May 2, 2024
efc7aad
docs: update docs/React/state_props.md
qiufeihong2018 May 8, 2024
897df65
docs: update docs/React/super()_super(props).md
qiufeihong2018 May 8, 2024
18d2c33
docs: update docs/React/super()_super(props).md
qiufeihong2018 May 8, 2024
f61b937
docs: update docs/React/Building components.md
qiufeihong2018 May 8, 2024
062dacd
docs: update docs/React/redux.md
qiufeihong2018 May 8, 2024
0003754
docs: update docs/React/React Router model.md
qiufeihong2018 May 8, 2024
bc0da25
docs: update docs/React/Fiber.md
qiufeihong2018 May 9, 2024
178943b
docs: update docs/React/Fiber.md
qiufeihong2018 May 9, 2024
47fc2c4
docs: update docs/webpack/performance.md
qiufeihong2018 Jun 4, 2024
fee7884
docs: update docs/webpack/performance.md
qiufeihong2018 Jun 4, 2024
5c55d2a
docs: update docs/JavaScript/closure.md
qiufeihong2018 Jun 25, 2024
1c92b7e
docs: update docs/JavaScript/event_Model.md
qiufeihong2018 Jun 25, 2024
d350986
docs: update docs/JavaScript/event_Model.md
qiufeihong2018 Jun 25, 2024
cbd7d17
docs: update docs/css/selector.md
qiufeihong2018 Jun 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/JavaScript/ajax.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

- 构建请求所需的数据内容,并通过` XMLHttpRequest` 对象的 `send()` 方法发送给服务器端

- 通过 `XMLHttpRequest` 对象提供的 `onreadystatechange` 事件监听服务器端你的通信状态
- 通过 `XMLHttpRequest` 对象提供的 `onreadystatechange` 事件监听服务器端的通信状态

- 接受并处理服务端向客户端响应的数据结果

Expand Down Expand Up @@ -68,10 +68,10 @@ xhr.open(method, url, [async][, user][, password])

- `async`:布尔值,表示是否异步执行操作,默认为`true`

- `user`: 可选的用户名用于认证用途;默认为`null
- `user`: 可选的用户名用于认证用途;默认为`null`


- `password`: 可选的密码用于认证用途,默认为`null
- `password`: 可选的密码用于认证用途,默认为`null`



Expand Down
2 changes: 1 addition & 1 deletion docs/JavaScript/bind_call_apply.md
Original file line number Diff line number Diff line change
Expand Up @@ -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` 则是立即执行

Expand Down
6 changes: 3 additions & 3 deletions docs/JavaScript/cache.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## 一、方式

`javaScript`本地缓存的方法我们主要讲述以下四种:
`JavaScript`本地缓存的方法我们主要讲述以下四种:

- cookie
- sessionStorage
Expand Down Expand Up @@ -43,15 +43,15 @@ Path=/docs # /docs/Web/ 下的资源会带 Cookie 首部

- 标记为 `Secure `的 `Cookie `只应通过被`HTTPS`协议加密过的请求发送给服务端

通过上述,我们可以看到`cookie`又开始的作用并不是为了缓存而设计出来,只是借用了`cookie`的特性实现缓存
通过上述,我们可以看到`cookie`开始的作用并不是为了缓存而设计出来,只是借用了`cookie`的特性实现缓存

关于`cookie`的使用如下:

```js
document.cookie = '名字=值';
```

关于`cookie`的修改,首先要确定`domain`和`path`属性都是相同的才可以,其中有一个不同得时候都会创建出一个新的`cookie`
关于`cookie`的修改,首先要确定`domain`和`path`属性都是相同的才可以,其中有一个不同的时候都会创建出一个新的`cookie`

```js
Set-Cookie:name=aa; domain=aa.net; path=/ # 服务端设置
Expand Down
8 changes: 4 additions & 4 deletions docs/JavaScript/closure.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -98,7 +98,7 @@ const getTwentyWidthArea = getArea(20)
下面举个例子:

```js
var Counter = (function() {
var makeCounter = (function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
Expand All @@ -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();
Expand Down
2 changes: 1 addition & 1 deletion docs/JavaScript/copy.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ var obj = {
console.log('fx is a great girl')
}
}
var newObj = Object.assign({}, fxObj);
var newObj = Object.assign({}, obj);
```


Expand Down
2 changes: 1 addition & 1 deletion docs/JavaScript/data_type.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

引用类型数据存放在堆中,每个堆内存对象都有对应的引用地址指向它,引用地址存放在栈中。
Expand Down
14 changes: 7 additions & 7 deletions docs/JavaScript/event_Model.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,18 +151,18 @@ 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);
```

#### 特性

- 可以在一个`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);
```

- 执行时机
Expand Down Expand Up @@ -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);
```
2 changes: 1 addition & 1 deletion docs/JavaScript/event_loop.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
14 changes: 7 additions & 7 deletions docs/JavaScript/inherit.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class Truck extends Car{

## 二、实现方式

下面给出`JavaScripy`常见的继承方式:
下面给出`JavaScript`常见的继承方式:

- 原型链继承

Expand All @@ -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]
```
Expand All @@ -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
```

可以看到,父类原型对象中一旦存在父类之前自己定义的方法,那么子类将无法继承这些方法
Expand All @@ -136,7 +136,7 @@ console.log(child.getName()); // 会报错

### 组合继承

前面我们讲到两种继承方式,各有优缺点。组合继承则将前两种方式继承起来
前面我们讲到两种继承方式,各有优缺点。组合继承则将前两种方式结合起来

```js
function Parent3 () {
Expand Down
2 changes: 1 addition & 1 deletion docs/JavaScript/loss_accuracy.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@

![](https://static.vue-js.com/37007090-86f4-11eb-ab90-d9ae814b240d.png)

前面讲到,`javaScript`存储方式是双精度浮点数,其长度为8个字节,即64位比特
前面讲到,`JavaScript`存储方式是双精度浮点数,其长度为8个字节,即64位比特

64位比特又可分为三个部分:

Expand Down
2 changes: 1 addition & 1 deletion docs/JavaScript/memory_leak.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Javascript 具有自动垃圾回收机制(GC:Garbage Collecation),也就

`JavaScript`最常用的垃圾收回机制

当变量进入执行环境是,就标记这个变量为“进入环境“。进入环境的变量所占用的内存就不能释放,当变量离开环境时,则将其标记为“离开环境“
当变量进入执行环境时,就标记这个变量为“进入环境“。进入环境的变量所占用的内存就不能释放,当变量离开环境时,则将其标记为“离开环境“

垃圾回收程序运行的时候,会标记内存中存储的所有变量。然后,它会将所有在上下文中的变量,以及被在上下文中的变量引用的变量的标记去掉

Expand Down
2 changes: 1 addition & 1 deletion docs/JavaScript/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ eval("UNTRUSTED")

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求

利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目
利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的

一个典型的CSRF攻击有着如下的流程:

Expand Down
4 changes: 4 additions & 0 deletions docs/JavaScript/string_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
6 changes: 3 additions & 3 deletions docs/JavaScript/this.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ function person() {
console.log(person()); //Jenny
```

上述代码输出`Jenny`,原因是调用函数的对象在游览器中位`window`,因此`this`指向`window`,所以输出`Jenny`
上述代码输出`Jenny`,原因是调用函数的对象在浏览器中为`window`,因此`this`指向`window`,所以输出`Jenny`

注意:

Expand Down Expand Up @@ -159,7 +159,7 @@ var obj = new test();
obj.x // 1
```

上述代码之所以能过输出1,是因为`new`关键字改变了`this`的指向
上述代码之所以能够输出1,是因为`new`关键字改变了`this`的指向

这里再列举一些特殊情况:

Expand Down Expand Up @@ -222,7 +222,7 @@ obj.m.apply(obj) // 1

## 三、箭头函数

在 ES6 的语法中还提供了箭头函语法,让我们在代码书写时就能确定 `this` 的指向(编译时绑定)
在 ES6 的语法中还提供了箭头函数语法,让我们在代码书写时就能确定 `this` 的指向(编译时绑定)

举个例子:

Expand Down
2 changes: 1 addition & 1 deletion docs/JavaScript/visible.md
Original file line number Diff line number Diff line change
Expand Up @@ -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; // 被观察者
Expand Down
2 changes: 1 addition & 1 deletion docs/React/Binding events.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
2 changes: 1 addition & 1 deletion docs/React/Building components.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ function HelloComponent(props) /* context */{

有状态的组件也就是组件内部存在维护的数据,在类创建的方式中通过`this.state`进行访问

当调用`this.setState`修改组件的状态时,组价会再次会调用`render()`方法进行重新渲染
当调用`this.setState`修改组件的状态时,组件会再次会调用`render()`方法进行重新渲染

通过继承`React.Component`创建一个时钟示例如下:

Expand Down
6 changes: 3 additions & 3 deletions docs/React/Fiber.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

`JavaScript `引擎和页面渲染引擎两个线程是互斥的,当其中一个线程执行时,另一个线程只能挂起等待

如果 `JavaScript` 线程长时间地占用了主线程,那么渲染层面的更新就不得不长时间地等待,界面长时间不更新,会导致页面响应度变差,用户可能会感觉到卡顿
如果 `JavaScript` 线程长时间地占用了主线程,那么渲染层面的更新就不得不长时间地等待,界面长时间不更新,会导致页面响应速度变差,用户可能会感觉到卡顿

而这也正是 `React 15` 的 `Stack Reconciler `所面临的问题,当 `React `在渲染组件时,从开始到渲染完成整个过程是一气呵成的,无法中断

Expand All @@ -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(一个链表),对应两个队列,这都是为找到被中断的任务,重新执行

Expand Down
2 changes: 1 addition & 1 deletion docs/React/High order components.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export default (WrappedComponent) => {

这里需要注意的是,高阶组件可以传递所有的`props`,但是不能传递`ref`

如果向一个高阶组件添加`refe`引用,那么`ref` 指向的是最外层容器组件实例的,而不是被包裹的组件,如果需要传递`refs`的话,则使用`React.forwardRef`,如下:
如果向一个高阶组件添加`ref`引用,那么`ref` 指向的是最外层容器组件实例的,而不是被包裹的组件,如果需要传递`refs`的话,则使用`React.forwardRef`,如下:

```jsx
function withLogging(WrappedComponent) {
Expand Down
2 changes: 1 addition & 1 deletion docs/React/React Router model.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ export default App;

## HashRouter

`HashRouter`包裹了整应用
`HashRouter`包裹了整个应用

通过`window.addEventListener('hashChange',callback)`监听`hash`值的变化,并传递给其嵌套的组件

Expand Down
2 changes: 1 addition & 1 deletion docs/React/React Router.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export default function App() {

### Link、NavLink

通常路径的跳转是使用`Link`组件,最终会被渲染成`a`元素,其中属性`to`代替`a`标题的`href`属性
通常路径的跳转是使用`Link`组件,最终会被渲染成`a`元素,其中属性`to`代替`a`标签的`href`属性

`NavLink`是在`Link`基础之上增加了一些样式属性,例如组件被选中时,发生样式变化,则可以设置`NavLink`的一下属性:

Expand Down
2 changes: 1 addition & 1 deletion docs/React/React refs.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

- 传入字符串,使用时通过 this.refs.传入的字符串的格式获取对应的元素
- 传入对象,对象是通过 React.createRef() 方式创建出来,使用时获取到创建的对象中存在 current 属性就是对应的元素
- 传入函数,该函数会在 DOM 被挂载时进行回调,这个函数会传入一个 元素对象,可以自己保存,使用时,直接拿到之前保存的元素对象即可
- 传入函数,该函数会在 DOM 被挂载时进行回调,这个函数会传入一个元素对象,可以自己保存,使用时,直接拿到之前保存的元素对象即可
- 传入hook,hook是通过 useRef() 方式创建,使用时通过生成hook对象的 current 属性就是对应的元素


Expand Down
2 changes: 1 addition & 1 deletion docs/React/React.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ React,用于构建用户界面的 JavaScript 库,只提供了 UI 层面的

使用虚拟 `DOM` 来有效地操作 `DOM`,遵循从高阶组件到低阶组件的单向数据流

帮助我们将界面成了各个独立的小块,每一个块就是组件,这些组件之间可以组合、嵌套,构成整体页面
帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合、嵌套,构成整体页面

`react` 类组件使用一个名为 `render()` 的方法或者函数组件`return`,接收输入的数据并返回需要展示的内容

Expand Down
2 changes: 1 addition & 1 deletion docs/React/Real DOM_Virtual DOM.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ const vDom = React.createElement(

- 简单方便:如果使用手动操作真实 `DOM` 来完成页面,繁琐又容易出错,在大规模应用下维护起来也很困难

- 性能方面:使用 Virtual DOM,能够有效避免真实 DOM 数频繁更新,减少多次引起重绘与回流,提高性能
- 性能方面:使用 Virtual DOM,能够有效避免真实 DOM 频繁更新,减少多次引起重绘与回流,提高性能
- 跨平台:React 借助虚拟 DOM,带来了跨平台的能力,一套代码多端运行

缺点:
Expand Down
2 changes: 1 addition & 1 deletion docs/React/Redux Middleware.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

那么如果需要支持异步操作,或者支持错误处理、日志监控,这个过程就可以用上中间件

`Redux`中,中间件就是放在就是在`dispatch`过程,在分发`action`进行拦截处理,如下图:
`Redux`中,中间件就是放在`dispatch`过程,在分发`action`进行拦截处理,如下图:

![](https://static.vue-js.com/57edf750-e699-11eb-ab90-d9ae814b240d.png)

Expand Down
2 changes: 1 addition & 1 deletion docs/React/class_function component.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`

Expand Down
2 changes: 1 addition & 1 deletion docs/React/communication.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ class Parent extends React.Component {
</PriceContext.Provider>
```

如果想要获取`Provider`传递的数据,可以通过`Consumer`组件或者或者使用`contextType`属性接收,对应分别如下:
如果想要获取`Provider`传递的数据,可以通过`Consumer`组件或者使用`contextType`属性接收,对应分别如下:

```jsx
class MyClass extends React.Component {
Expand Down
Loading
Loading