其他分享
首页 > 其他分享> > Vue 组件局部刷新

Vue 组件局部刷新

作者:互联网

Vue中对数据进行增删改查的操作之后, 希望页面显示的是我们操作之后最新的数据, 为了避免重新做axios请求, 此时用到组件的刷新是很方便的了, 以下便是我做项目中总结的组件局部刷新的方法:

    第一步 : 在 app.vue 中定义全局方法:如下

<template>
  <div id="app">
    <router-view v-if="isRouterAlive"/>    //通过v-if来控制容器的出现与消失
  </div>
</template>

<script>
export default {
  name: 'App',
  provide(){
    return {
      reload:this.reload
    }
  },
  data(){
    return{
      isRouterAlive: true
    }
  },
  methods: {
   reload () {
     this.isRouterAlive = false
     this.$nextTick(() => (this.isRouterAlive = true))
   }   
 }
}
</script>

我们定义了全局的方法 reload( ); 原理就是通过控制组件容器的出现与消失, 达到重新渲染的效果 , 从而实现我们的目的;

  第二步:在全局中定义了刷新的方法, 接下来就是要引入到需要刷新的组件中:

<script>
import axios from "axios";
export default {
  inject:["reload"],
  name: "StoreServiceProjectManagement",
  data() {
    return {
      
    }
  },
  mounted() {
    this.reload();
  }
};
</script>

通过 inject 方法引入到需要的组件中, 直接this.reload() 调用这个方法即可.

那么这样就成功了,亲测有用哦!

标签:Vue,return,isRouterAlive,reload,axios,刷新,组件
来源: https://www.cnblogs.com/momeak/p/10540986.html