只是一个简单的问题.
你能强迫Vue.js重新加载/重新计算一切吗?如果是这样,怎么样?
在不重新加载整个页面的情况下,我需要在 vue 应用程序中再次重新加载当前路由(仅重新加载组件)。
我在 vue 路由器中有一条路径,如下所示,
{
path: "/dashboard",
name: "dashboard",
component: loadView("Dashboard"),
},
Run Code Online (Sandbox Code Playgroud)
当用户点击 Dashboard 导航项时,用户将被重定向到带有 vue router 编程导航的 Dashboard 页面
this.$router.push({ name: "dashboard" });
Run Code Online (Sandbox Code Playgroud)
但是当用户已经在仪表板路线中并且用户再次单击仪表板导航项时,没有任何反应。我认为这是 vue 路由器的默认行为。但我需要强制重新加载仪表板组件(不是刷新整个页面)。
由于路由器未更新,我无法使用 beforeRouteUpdate。我也尝试过像 beforeEach 这样的全局前守卫。但它也不起作用。
如何在不重新加载整个页面的情况下强制重新加载仪表板组件?
我正在使用 Vue 3 <keep-alive>。当我不使用:key它时,它会缓存(按预期不正确地跨越不同的 URL)。
通过增加
<router-view :key="$route.fullPath" v-slot="{ Component }">
<keep-alive>
<component :is="Component" />
</keep-alive>
</router-view>
Run Code Online (Sandbox Code Playgroud)
我认为,如果缓存键不存在,它只会进行 API 调用,这样当我转到不同的路线并返回时,它不会进行第二次 api 调用。
但是当我:key="$route.fullPath"现在添加时,即使我重新访问相同的 URL,它每次都会进行 API 调用?
我有一个带有 Login.vue 和 Home.vue 文件的应用程序。因为我将管理 HTML 网站转换为 vue 3 应用程序,所以我的 javascript 仅适用于页面重新加载。创建应用程序时,我选择为 SPA 添加路由器,也许我不应该这样做。到目前为止,视图正在工作,除非我从登录重定向到主页而不重新加载。由于它不会重新加载,因此我的导航栏或任何依赖于 JS 的功能将无法工作。如何通过页面重新加载从登录重定向到主页?目前,我有以下代码,但仍然无法工作。
this.$router.push({
path: "/admin/home",
reload: true
});
Run Code Online (Sandbox Code Playgroud)