provide + reload 实现vue 不刷新浏览器,页面自刷新

Posted blueswithchenxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了provide + reload 实现vue 不刷新浏览器,页面自刷新相关的知识,希望对你有一定的参考价值。

// 修改vue APP.vue文件
    <template>
        <div id="app">
            // 先将router-view 添加v-if或者v-show方法 通过控制显示和隐藏起到刷新页面的效果
            <router-view v-if="isRouterAlive" />
        </div>
    <template>
    <script>
        export default 
            provide() 
                return 
                    // 调用下面reload 的方法
                    reload: this.reload
                ;
            ,
            data() 
                // 初始化isRouterAlive
                return 
                    isRouterAlive: true
                ;
            
            methods: 
                reload() 
                    this.isRouterAlive = false;
                    this.$nextTick(function() 
                        this.isRouterAlive = true;
                    )
                
            
        
    </script>
    

        // 上面是在app.vue文件里面修改的东西  下面教的是每个页面怎么使用这个方法
        // 后缀名为.vue的文件内容 是由 <template> <script> <style> 三部分组成  我们只需要在script里面添加  inject: ["reload"]   然后在我写的代码倒数第8行添加的   this.reload() 这个方法就可以起到刷新页面的效果了
    <template>

    </template>
    <script>
        export default 
            inject: ["reload"],  //  不要忘记写这个
            data() 
                return 
            ,
            methods: 
                // 比方说我这个是页面的编辑方法,编辑完之后,点击 这时我需要重新刷新一下页面
                editDemo() 
                    // 如果看不懂我这个方法 可以去看看我自己封装的axios 链接这里:  https://www.cnblogs.com/blueswithchenxing/p/11119094.html
                    var res = this.$http.request(
                        // 这是请求的路径(路径的两边我用的不是单引号 而是 键盘esc / 键盘tab 按钮 下面 / 上面 的那个点 )
                        url: `/hhgjdshfsdf`,
                        data: 
                            //写你向后台传的数据
                        
                    )
                    .then(function(res) 
                        var data = res.data;
                        if (data.status === 200) 
                            //这里写你需要的根据后台返回的数据赋值等操作  写完之后加 this.reload()  这个方法就可以了

                            this.reload(); //重新刷新页面的方法  哪个方法需要哪里调用就可以了
                        
                    )
                
            
        
    </script>
    <style></style>

 

以上是关于provide + reload 实现vue 不刷新浏览器,页面自刷新的主要内容,如果未能解决你的问题,请参考以下文章

vue中的页面刷新问题

vue中使用provide和inject刷新当前路由(页面)

Vue 实现页面刷新

vue 刷新页面的三种方法

Vue无感知刷新页面

vue项目刷新当前页面