• vue项目如何(友好的)刷新当前页


    1.场景

    在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求。

    2.遇到的问题

    1. 用vue-router重新路由到当前页面,页面是不进行刷新的

    2.采用window.reload(),或者router.go(0)刷新时,整个浏览器进行了重新加载,闪烁,体验不好

    3.解决方法

    provide / inject 组合

    作用:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。

    App.vue:

    声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载

    <template>
      <div id="app">
        <router-view v-if="isRouterAlive"></router-view>
      </div>
    </template>
    
    <script>
      export default {
        name: 'App',
        provide(){
          return{
            reload:this.reload,
          }
        },
        data(){
          return{
            isRouterAlive:true,
          }
        },
        methods:{
          reload(){
            this.isRouterAlive = false ;
            this.$nextTick(function(){
              this.isRouterAlive = true ;
            })
          }
        }
      }
    </script>

    tableList.vue:

    在页面注入App.vue组件提供(provide)的 reload 依赖,在逻辑完成之后(删除或添加...),直接this.reload()调用,即可刷新当前页面。

    export default {
        inject:['reload'],//注入reload方法
        data() {
            return{}
        },
        methods:{
            add(){
             .then(res => {
              if (res.err_code == 0) {   //数据请求成功后
                this.reload() //调用reload方法刷新当前页面
              }
            })
            .catch(res => {
              console.log(res);
            });
            }
        }
    }
  • 相关阅读:
    ios-UserDefaults
    ios-滚动视图滚动取消键盘
    ios-获取商店已上线app信息
    ios-WKWebView 拨打电话
    ios-获取通讯录 姓名和电话
    ios-model数据结构
    ios-改变button四个角的弧度
    ios-高德、百度后台定位并上传服务器
    ios-系统警告框 跳转到设置里面
    Java精讲:生产者-消费者
  • 原文地址:https://www.cnblogs.com/penghewen-cnblogs/p/12061582.html
Copyright © 2020-2023  润新知