exercises.md 1.5 KB
Newer Older
Z
zhaoss 已提交
1 2
# 路由模式

Z
zhaoss 已提交
3
 <div style="color: pink;font-size:22px;font-weight:700">小常识:</div>
Z
zhaoss 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<br>

**hash模式**
vue-router默认的是hash模式.
hash模式,是指url尾巴后的#号以及后面的字符.hash也被称为锚点,本身是用来做页面定位的.
hash虽然出现在url中,但不会被包括在http请求中,对后端完全没有影响,因此改变hash值不会重新加载页面

**history模式**
history模主要是通过history Api的pushState()和replaceState()两个方法来实现的.pushState()可以改变url地址且不会发送请求,replaceState()可以读取历史记录栈,还可以对浏览器记录进行修改
以上两个方法可以修改历史状态,下面三个方法可以切换(定位)历史状态


```javascript
history.go(-2);//后退两次
history.go(2);//前进两次
history.back(); //后退
hsitory.forward(); //前进
```

**abstract模式**

适用于所有JavaScript环境,例如服务器端使用Node.js。如果没有浏览器API,路由器将自动被强制进入此模式。

<br>

Z
zhaoss 已提交
29
 <div style="color: #8E7CC3;font-size:22px;font-weight:700">小测试:</div>
Z
zhaoss 已提交
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

根据上方小常识,以下关于路由模式的说法不正确的是?<br/><br/>

## 答案

路由有两种模式分别是hash模式和history模式

## 选项

### A

使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载

### B

hash模式,会去掉路径中的 “#”

### C

history模式包括back、forward、go三个方法