1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/test/integration
tangye ad5431b4ae
should not change method to replaceState unless asPath is the same (#6033)
original code in `/lib/router/router.js`
```
  urlIsNew (pathname, query) {
    return this.pathname !== pathname || !shallowEquals(query, this.query)
  }
```
the urlIsNew compare `this.pathname` to an argument `pathname`
the invokers:
```
    // If asked to change the current URL we should reload the current page
    // (not location.reload() but reload getInitialProps and other Next.js stuffs)
    // We also need to set the method = replaceState always
    // as this should not go into the history (That's how browsers work)
    if (!this.urlIsNew(asPathname, asQuery)) {
      method = 'replaceState'
    }
```
the parameter here is `asPathname` destructured from `asPath`

so here is a problem when we reuse a single page rendered in two asPaths

pages/a.js
```
<>
  <Link href='/a'><a>goto a</a></Link>
  <Link href='/a' as='/b'><a>goto b</a></Link>
</>
```
If we navigate to page /a, then click 'goto b', actually the history is replaced, not pushed.
It is expected that history could be correctly pushed and popped as long as the browser url is changed.
2019-01-11 15:44:25 -06:00
..
app-aspath Fix linter (#5350) 2018-10-20 17:00:01 +02:00
app-document Fix #5674 Append crossOrigin on the client side too, add config option for crossOrigin (#5873) 2018-12-13 01:05:21 +01:00
babel Fix linter (#5350) 2018-10-20 17:00:01 +02:00
basic should not change method to replaceState unless asPath is the same (#6033) 2019-01-11 15:44:25 -06:00
cli Remove node-args in favor of NODE_OPTIONS environment variable (#5910) 2018-12-17 19:17:29 +01:00
config Added WebSocket arg to allow manually setting port (#5963) 2019-01-01 01:07:10 +01:00
custom-server Use correct default for query (#5851) 2018-12-10 23:40:26 +01:00
dist-dir Fix linter (#5350) 2018-10-20 17:00:01 +02:00
export fix: update correct path to use when exporting 404 page (#5470) 2018-11-03 01:19:41 +01:00
filesystempublicroutes use native http instead of micro (#5706) 2018-11-19 16:36:18 +01:00
ondemand Implement websockets based on-demand-entries ping (#4508) 2018-12-14 12:25:59 +01:00
page-extensions Fix linter (#5350) 2018-10-20 17:00:01 +02:00
production Make sure 404 is rendered (#5880) 2018-12-13 19:46:16 +01:00
production-config Add test for generateBuildId (#5816) 2018-12-04 16:42:25 +01:00
serverless Export render instead of default for serverless target (#5979) 2019-01-02 14:59:28 +01:00
size-limit Upgrade React from 16.4.2 to 16.6.3 (#5861) 2018-12-11 22:10:55 +01:00
with-router Fix linter (#5350) 2018-10-20 17:00:01 +02:00