javascript - 更改 View /组件但不更改 url

标签 javascript vue.js vuejs2 vue-router

我正在使用 404 错误页面功能,我可以使用它:

const router = new VueRouter({
  routes: [
        // ...
        {
            path: '*',
            component: NotFound,
            name: '404',
            meta: {page_title: 'Vuejs&Material Demo | 404 NOT FOUND'}
        },
    ]
});

// ... not found something

this.$router.push({name: '404'});

上面的问题是url也改变了,但我只想改变 View (组件)。

当一个简单的拼写错误重定向到 http://example.com/404 时,我觉得非常烦人,它让我再次输入网址或从浏览器自动填充中转到,无论哪种方式我都不喜欢。

我想知道是否有某种方法/逻辑可以有这样的东西:https://www.facebook.com/sdfsd/sfsdf/asfasfsafastgtgregre .

底线,我想要改变 View ,但不改变网址。

有没有任何 vue/vue-router 方法可以做到这一点?

最佳答案

这有点 hacky,但您可以通过路由器的 history 对象的 updateRoute 方法更新路由:

let route = this.$router.match({ name: '404' });
this.$router.history.updateRoute(route);

关于javascript - 更改 View /组件但不更改 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47101126/

相关文章:

javascript - 为什么这个 Vue 计算属性不是响应式的?

javascript - 以编程方式将验证规则附加到表单字段

javascript - 防止实时表上传的双重事件功能

javascript - 如何在 Node 中通过 http 管道流检测客户端关闭连接?

javascript - 仅将 HighChart yAxis 的最小值最大值设置为特定系列

javascript - 为动态对象定义编写更清晰的代码

javascript - vue/vuetify 动态修改 v-text-field 属性

javascript - 不使用 Object.create 创建具有 null 原型(prototype)的 javascript 对象

javascript - 带有包裹的Vue SSR(服务器端渲染)?

css - 如何仅使用 Vue.js 更改背景颜色的样式