美文网首页
2021-10-22-🦜🦜 vue-router 同一个页面地址

2021-10-22-🦜🦜 vue-router 同一个页面地址

作者: 华山派首席大弟子 | 来源:发表于2021-10-22 15:34 被阅读0次

vue-router 同一个页面地址栏参数改变(比如文章的发布和编辑是同一个页面),不会触发vue的created或者mounted钩子,所以数据不会重新渲染。

解决办法有两种:

1:监听地址栏变化(watch),这是vue-router官方给出的解决办法。
监听路由变化,把初始化的方法重新写到监听的方法里面执行

watch: {
    '$route' (to, from) {
        this.getData(this.$route.query.id)
    }
}
 
methods: {
    async getData (id) {
      // 按照id获取数据
      const { data: { result } } = await this.$http.get('getShowList', {
        params: { id }
      })
      this.dataList = result
    }
}

2、给router-view加个唯一的key,来保证路由切换时都会重新渲染触发钩子了


<template>
    <div id="main" class="app-main">
        <transition :name="transitionName">
            <router-view class="router-box" :key="key"></router-view>
        </transition>
    </div>
</template>
<script>
    export default {
        computed:{
            key() {
               return this.$route.name?this.$route.name+ +new Date():this.$route+ +new Date()
            }
        }
    };
</script>

第二种方法,页面每次切换都会跑到顶部,需要配合 scroll处理

相关文章

  • 2021-10-22-🦜🦜 vue-router 同一个页面地址

    vue-router 同一个页面地址栏参数改变(比如文章的发布和编辑是同一个页面),不会触发vue的create...

  • vue路由

    vue路由--- SPA应用,单页面应用vue-resouce 交互vue-router 路由根据不同url地址...

  • Vue-Router实现前端页面缓存

    一、使用情景 在使用Vue开发单页面应用时,我们通常会使用Vue-Router进行页面导航,Vue-Router在...

  • 2018-07-22

    关于vue-router的简单小结 1 如果有多个页面使用同一个组件,当你路径跳转后,那些定义在生命周期中的钩子函...

  • 一个vue+express+nodejs爬虫构建的伪整站移动书城

    项目地址:点击 预览地址:点击 api地址:点击 爬虫地址:点击 技术栈:vue + vue-router + v...

  • 6.webpack下使用 vue-router

    在vue组件页面中,集成vue-router路由模块 vue-router官网 先贴上main.js的完整代码: ...

  • 基于vue多入口项目升级webpack4实践

    项目背景简介 多页面应用,每个页面独立entry,单个页面内使用vue-router 基于vue,使用vue-lo...

  • 地址页面

    创建购物车地址前端页面,src/views/Address.vue中 src/router/index.js中添加...

  • cnode社区

    面试要点:(单页应用重点在vue-router) 单页应用,页面只有一个 APP组件; vue-router实现页...

  • VUE复习笔记27(路由)

    官方路由 对于大多数的单页面应用,都推荐使用官方的 vue-router,更多细节可以看 vue-router 文...

网友评论

      本文标题:2021-10-22-🦜🦜 vue-router 同一个页面地址

      本文链接:https://www.haomeiwen.com/subject/ffthaltx.html