vue-router路由复用后页面没有刷新

摘要:
Vue路由器提供页面路由功能,可用于构建单页面应用程序。当使用vue路由器的动态路由匹配时,url会发生变化,但页面没有任何动态问题。记录它。动态路由匹配url已更改,但组件未更改,因为vue重用了该组件。因为两条路由都渲染相同的组件,所以重用比销毁和重新创建更有效。

vue-router提供了页面路由功能,可以用来构建单页面应用,在使用vue-router的动态路由匹配的时候,遇到了url变化了,但是页面却没有任何动静的问题,记录一下。

动态路由匹配url变化了,但是组件没有变化是因为vue进行了组件复用,因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。所以我们需要手动进行数据刷新。

一、使用watch来监听当前的路由变化,从而实现数据刷新。

import { watch } from "vue";
import router from "./router";

export default {
setup() {
// vue2
// watch: {
// $route(to, from) {
// // 对路由变化作出响应...
// }
// }

// vue3
watch(router.currentRoute, () => {
console.log("路由发生了变化");
});
}
};

也可以使用2.2中新加的beforeRouteUpdate路由守卫:

export default {
setup() {

},
beforeRouteUpdate((to, from, next) => {
// 不要在这里调用next
// 通过to来判断是否重载数据
console.log("路由发生了变化");
}),
}

以上就是vue3中使用vue-router-next来处理动态路由变化导致页面不刷新的方法。

二、在layout.vue,给路由增加时间时间戳。

<div class="main-box">
      <transition name="fade" mode="out-in">
        <router-view :key="new Date().getTime()"></router-view>
      </transition>
    </div>

了解更多

免责声明:文章转载自《vue-router路由复用后页面没有刷新》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AFNetworking的详细解析DenseFusion代码复现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

苹果CMSv10_全站伪静态规则教程_宝塔Linux系统

苹果CMS又名MacCMS,是大多视频站长常用的视频网管理程序。 苹果CMS网站为了加强收录优化SEO,做静态的链接是最理想的。 伪静态有利于搜索引擎优化,更好的获得排名。 但是生成静态页面则会占用服务器大量的磁盘,以及影响服务器的运行速度。尤其是轻量配置的新站长,是极其不愿意看到的。 开始正题: 一、宝塔后台设置伪静态规则 填充宝塔伪静态规则:宝塔面板-...

angular 路由跳转以及传参的几种方式

通过域名跳转的方式获取参数(http://localhost:4200/second/110?productId=1&title=moon) 这种方式配置路由,其中:id是必需的参数,其它的是可配的,写在?后面: { path: 'second/:id', component: SecondComponent }, 通过ts代码跳转: this...

vue路由传参以及接收参数的几种方法

vue路由传参方式可以划分为params传参、query传参和url字符串拼接,首先需要知道路由跳转并传参的方式(声明式导航和编程式导航)以及接收路由参数的方法 一、路由跳转并传参的方法 1、声明式导航 不带参跳转 对应的地址为/foo <router-link to="/foo">Go to Foo</router-link>...

通过internet网络唤醒主机的方法

原文: https://xungejiang.com/2017/12/09/wake-on-lan/ https://www.depicus.com/wake-on-lan/woli 最近在实验室想控制家里的电脑。控制很容易, TeamViewer 就好啦。但是白天家里没人,没人帮我开电脑,于是找到了 WOL 这种方法。 DELL台式机要在bios里面关闭...

angular-cli小白入门选集

1 安装与使用 首先确保安装了nodejs。 npm i angular-cli -g。 ng-cli的全局关键字为ng。 创建新项目:ng new projectName [options]。 创建组件:ng g component componentName。 启动server:ng server,默认端口4200。 打包:ng build --p...

Vue搭建脚手架2

Vue2.0搭建Vue脚手架(vue-cli) 在网上找了很多的搭建脚手架教程,但都不求甚解。终于找到2个比较好的教程,读者可对比阅读1和2,在这里分享给大家,希望对初学者有所帮助。ps:高手请绕道。 1.使用npm全局安装vue-cli(前提是你已经安装了nodejs,否则你连npm都用不了),在cmd中输入一下命令 npm install --glo...