vue-router 导航到相同的路由并重新运行挂载钩子 [英] vue-router navigate to the same route and re-run mounted hook

查看:38
本文介绍了vue-router 导航到相同的路由并重新运行挂载钩子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用路由器链接导航到当前路由并重新运行挂载钩子?

HTML

<script src="https://unpkg.com/vue/dist/vue.min.js"></script><script src="https://unpkg.com/vue-router"></script><!-- 应用程序--><div id="应用程序"><导航><router-link :to="{ name: 'home' }" 准确的>首页</router-link><router-link :to="{ name: 'about' }" @click.native.prevent="router.push({ name: 'about' })">关于</router-link></nav><router-view :key="$route.fullPath"></router-view>

JS

console.clear()console.log('是的!我们使用的是 Vue 版本', Vue.version)Vue.use(VueRouter)常量首页 = {模板:`<h1>家</h1>`,}const 关于 = {模板:`<h1>{{new Date()}}</h1>`,安装(){console.log('挂载')}}const 路由 = [{ path: '/', name: 'home', component: Home },{ path: '/about', name: 'about', 组件: About },]const 路由器 = 新的 VueRouter({路线,})//新建 VueJS 实例var app = new Vue({//根DOM元素的CSS选择器el: '#app',//将路由器注入应用程序路由器,})

在上面的示例中,如果我导航到关于",它会显示新日期的时间戳并记录已安装".但是,如果我已经在/about 上,单击 about 链接什么也不做.我想在点击关于"时重新运行整个组件生命周期,即使我已经点击了它.

解决方案

每当用户单击您的关于页面时,您都需要更改 <router-view> 元素中的键,即将强制安装钩子: