vue项目同个页面进行操作,路由只刷新一次问题

在APP.vue里弄一个开关

<template>
//APP.vue文件代码
  <router-view v-if="RouterRefresh"></router-view>
</template>
<script lang="ts">
import { defineComponent,provide } from 'vue'
export default defineComponent({
  name: 'App',
//给其他地方调用这个方法
  provide(){
        return{
          //被调用的方法和名称
           Refresh: this.Refresh
        }
    },
  data() {
    return {
      locale:zhCN,
      RouterRefresh: true
    }
  },
  methods: {

    Refresh(){
     //调用时先把路由关闭再进行打开
      this.RouterRefresh = false
      this.$nextTick(function(){
         this.RouterRefresh = true
      })
    }
  }
})
</script>

在其他组件路由跳转时使用

<template>
<div id="header">
      <a-menu-item v-for="item in menu" :key="item.path" @click="toLink(item.path)">
        <div>{{item.meta.title[locale]}}</div>
      </a-menu-item>
  </div>
</div>
</template>
<script lang="ts" setup>
import { computed, inject } from 'vue'
import { useRouter } from 'vue-router'
//引入APP.vue文件命名Refresh调用的方法
const Refreshs = inject('Refresh')
const { locale } = useI18n()
const toLink = (value) =>{
  router.push(value)
  //路由跳转时调用APP.vue文件命名Refresh这个方法进行路由刷新
  Refreshs()
}
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值