【问题标题】:Nuxt add parameters without page and without reload the pageNuxt 添加参数无需页面且无需重新加载页面
【发布时间】:2019-05-10 09:17:13
【问题描述】:
【问题讨论】:
标签:
vue.js
routes
nuxt.js
【解决方案1】:
您不能使用$route 或$router 更改网址,它会设置新的html5 历史状态并重新加载页面。因此,要在不重新加载的情况下更改 url,history.replaceState 可以完成这项工作。在您的页面或组件中:
methods: {
onClickComplete() {
if (!process.server) { // I'm not sure it's necessary
history.replaceState({}, null, window.location + '?filter=complete') // or use your own application logic: globalSiteUrl, $route... or queryString some vars...
}
}
}
【解决方案3】:
首先创建这个辅助函数
export function getAbsoluteUrl(to) {
const path = $nuxt.$router.resolve(to).href
return window.location.origin + path
}
这是我的标签的示例
watch: {
tab(value) {
if (!process.server) {
const url = getAbsoluteUrl({
params: { ...this.$route.params, activeTab: value }
})
history.replaceState({}, null, url) // or use your own application logic: globalSiteUrl, $route... or queryString some vars...
}
}
},