vue路由名字不变,仅query发生变化,点击返回页面不重新渲染
2018-11-17 21:25
615 查看
版权声明: https://blog.csdn.net/xiasohuai/article/details/84192947
方式一:可以用watch+vuex
[code]watch: { '$route': function (to, from) { // 我这里还是用了Vuex,不过应该不影响理解 this.$store.dispatch('updateActiveTemplateId', this.$route.query.templateId) // 通过更新Vuex中的store的数据,让数据发生变化 this.getTemplateById() } },
方式二:可以使用watch+时间戳的方法(此方法,即使统一路由名+同一query,点击时也会重新渲染页面,发送请求)
个人喜欢这一种,因为,他是在主页面Home.vue加的,而不是在每个页面需要的页面加
[code]<template> <div id="home"> <top class="header" v-if="$store.state.isHeader"></top> <article> <router-view :key="activeDate"/> </article> <bottom class="footer" v-if="$store.state.isFooter"></bottom> </div> </template>
[code]watch: { $route: { handler() { this.activeDate=new Date().getTime() }, immediate: true } },
方式三:导航守卫中的组件守卫(这个是针对某个组件的)
[code]beforeRouteUpdate (to, from, next) { // 在当前路由改变,但是该组件被复用时调用 // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候, // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。 // 可以访问组件实例 `this` },
vue-router官方地址:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#%E7%BB%84%E4%BB%B6%E5%86%85%E7%9A%84%E5%AE%88%E5%8D%AB
阅读更多
相关文章推荐
- vue 刷新之后 嵌套路由不变 重新渲染页面的方法
- vue-router 如何在当前路由下重新点击当前路由的router-link实现刷新 组件重新渲染
- vue移动端项目中返回上一路由页面、根据当前路由信息控制返回键的显示与隐藏
- 解决vue 路由变化页面数据不刷新的问题
- vue使用watch 观察路由变化,重新获取内容
- Vue 路由切换时页面内容没有重新加载
- 从点击url到返回页面中间,发生了什么?
- IOS下 用vue开发前端项目 点击返回 页面出现空白
- Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
- 【vue】——使用watch 观察路由变化,重新获取内容
- Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面
- ionic back 返回按钮不正常显示&&二级路由点击返回按钮失效无法返回到上一级页面的问题
- VueJs无法检测到数组的变化(数组变了没有重新渲染页面)
- [置顶] 在vue路由变化的时候,改变页面的title
- vue修改对象的属性值后页面不重新渲染的实例
- 解决vue-router嵌套路由(子路由)在history模式下刷新无法渲染页面的问题
- vue使用watch 观察路由变化,重新获取内容
- 详解Vue路由History mode模式中页面无法渲染的原因及解决
- android app 返回桌面后再次点击app图标启动 不要重新载入启动页面
- vue路由只变化参数页面组件不更新问题