Skip to content

Commit 8e30c34

Browse files
committed
fix alias for / path (fix vuejs#1427)
1 parent 27ced43 commit 8e30c34

File tree

3 files changed

+31
-13
lines changed

3 files changed

+31
-13
lines changed

examples/route-alias/app.js

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import VueRouter from 'vue-router'
33

44
Vue.use(VueRouter)
55

6+
const Root = { template: '<div>root</div>' }
67
const Home = { template: '<div><h1>Home</h1><router-view></router-view></div>' }
78
const Foo = { template: '<div>foo</div>' }
89
const Bar = { template: '<div>bar</div>' }
@@ -15,6 +16,7 @@ const router = new VueRouter({
1516
mode: 'history',
1617
base: __dirname,
1718
routes: [
19+
{ path: '/root', component: Root, alias: '/root-alias' },
1820
{ path: '/home', component: Home,
1921
children: [
2022
// absolute alias
@@ -42,6 +44,10 @@ new Vue({
4244
<div id="app">
4345
<h1>Route Alias</h1>
4446
<ul>
47+
<li><router-link to="/root-alias">
48+
/root-alias (renders /root)
49+
</router-link></li>
50+
4551
<li><router-link to="/foo">
4652
/foo (renders /home/foo)
4753
</router-link></li>

src/create-route-map.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,14 @@ function addRouteRecord (
116116
path: alias,
117117
children: route.children
118118
}
119-
addRouteRecord(pathList, pathMap, nameMap, aliasRoute, parent, record.path)
119+
addRouteRecord(
120+
pathList,
121+
pathMap,
122+
nameMap,
123+
aliasRoute,
124+
parent,
125+
record.path || '/' // matchAs
126+
)
120127
})
121128
}
122129

test/e2e/specs/route-alias.js

+17-12
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,46 @@ module.exports = {
33
browser
44
.url('http://localhost:8080/route-alias/')
55
.waitForElementVisible('#app', 1000)
6-
.assert.count('li a', 6)
6+
.assert.count('li a', 7)
77
// assert correct href with base
8-
.assert.attributeContains('li:nth-child(1) a', 'href', '/route-alias/foo')
9-
.assert.attributeContains('li:nth-child(2) a', 'href', '/route-alias/home/bar-alias')
10-
.assert.attributeContains('li:nth-child(3) a', 'href', '/route-alias/baz')
11-
.assert.attributeContains('li:nth-child(4) a', 'href', '/route-alias/home/baz-alias')
12-
.assert.attributeEquals('li:nth-child(5) a', 'href', 'http://localhost:8080/route-alias/home')
13-
.assert.attributeContains('li:nth-child(6) a', 'href', '/route-alias/home/nested-alias/foo')
8+
.assert.attributeContains('li:nth-child(1) a', 'href', '/root-alias')
9+
.assert.attributeContains('li:nth-child(2) a', 'href', '/route-alias/foo')
10+
.assert.attributeContains('li:nth-child(3) a', 'href', '/route-alias/home/bar-alias')
11+
.assert.attributeContains('li:nth-child(4) a', 'href', '/route-alias/baz')
12+
.assert.attributeContains('li:nth-child(5) a', 'href', '/route-alias/home/baz-alias')
13+
.assert.attributeEquals('li:nth-child(6) a', 'href', 'http://localhost:8080/route-alias/home')
14+
.assert.attributeContains('li:nth-child(7) a', 'href', '/route-alias/home/nested-alias/foo')
1415

1516
.click('li:nth-child(1) a')
17+
.assert.urlEquals('http://localhost:8080/route-alias/root-alias')
18+
.assert.containsText('.view', 'root')
19+
20+
.click('li:nth-child(2) a')
1621
.assert.urlEquals('http://localhost:8080/route-alias/foo')
1722
.assert.containsText('.view', 'Home')
1823
.assert.containsText('.view', 'foo')
1924

20-
.click('li:nth-child(2) a')
25+
.click('li:nth-child(3) a')
2126
.assert.urlEquals('http://localhost:8080/route-alias/home/bar-alias')
2227
.assert.containsText('.view', 'Home')
2328
.assert.containsText('.view', 'bar')
2429

25-
.click('li:nth-child(3) a')
30+
.click('li:nth-child(4) a')
2631
.assert.urlEquals('http://localhost:8080/route-alias/baz')
2732
.assert.containsText('.view', 'Home')
2833
.assert.containsText('.view', 'baz')
2934

30-
.click('li:nth-child(4) a')
35+
.click('li:nth-child(5) a')
3136
.assert.urlEquals('http://localhost:8080/route-alias/home/baz-alias')
3237
.assert.containsText('.view', 'Home')
3338
.assert.containsText('.view', 'baz')
3439

35-
.click('li:nth-child(5) a')
40+
.click('li:nth-child(6) a')
3641
.assert.urlEquals('http://localhost:8080/route-alias/home')
3742
.assert.containsText('.view', 'Home')
3843
.assert.containsText('.view', 'default')
3944

40-
.click('li:nth-child(6) a')
45+
.click('li:nth-child(7) a')
4146
.assert.urlEquals('http://localhost:8080/route-alias/home/nested-alias/foo')
4247
.assert.containsText('.view', 'Home')
4348
.assert.containsText('.view', 'nested foo')

0 commit comments

Comments
 (0)