Why is it designed as below? it will cause history.replaceState method to be called #3447
Labels
contribution welcome
fixed on 4.x
This issue has been already fixed on the v4 but exists in v3
improvement
Uh oh!
There was an error while loading. Please reload this page.
Version
3.4.9
Reproduction link
https://vesaas.com/?a=1&b=2&a=2
Steps to reproduce
input https://vesaas.com/?a=1&b=2&a=2 into webBroswer . then it becomes to https://vesaas.com/?a=1&a=2&b=2
What is expected?
do not trigger history.replaceState called
What is actually happening?
history.replaceState was called.
src/history/html5.js
ensureURL (push?: boolean) { if (getLocation(this.base) !== this.current.fullPath) { const current = cleanPath(this.base this.current.fullPath) push ? pushState(current) : replaceState(current) } }
src/util/query.js
`function parseQuery (query: string): Dictionary {
const res = {}
query = query.trim().replace(/^(?|#|&)/, '')
if (!query) {
return res
}
query.split('&').forEach(param => {
const parts = param.replace(/\ /g, ' ').split('=')
const key = decode(parts.shift())
const val = parts.length > 0
? decode(parts.join('='))
: null
})
return res
}`
The text was updated successfully, but these errors were encountered: