• <abbr id="chdyf"></abbr>
    <ruby id="chdyf"><acronym id="chdyf"><meter id="chdyf"></meter></acronym></ruby>
    <bdo id="chdyf"></bdo>
    <dfn id="chdyf"><menu id="chdyf"></menu></dfn>
    1. <menuitem id="chdyf"></menuitem><strong id="chdyf"><menu id="chdyf"></menu></strong>

      <rt id="chdyf"><menu id="chdyf"></menu></rt>
      成人小说一区二区三区,伊人精品成人久久综合全集观看,久久HEZYO色综合,中文字幕精品人妻熟女,影音先锋成人网站,我要看免费一级毛片,中国女人做爰A片,中文字幕av久久爽Av

      vue項目刷新當前頁面的幾種方式

      2019-11-4    seo達人

      在vue項目中,經常會遇到需要刷新當前頁面的需求。

      因為vue-router判斷如果路由沒有變化,是不會刷新頁面獲取數據的。



      方式1:go(0)和reload()

      通過location.reload()或是this.$router.go(0)兩種強制刷新方式,相當于按F5,會出現瞬間白屏,體驗差,不推薦。



      方式2:定義一個空白路由頁面,路由跳轉到該空白頁后立馬跳回當前頁,實現路由刷新。

      在router路由表中定義一個空白路由,



       // 強制刷新當前頁所用的中間跳轉頁

         {

              path: '/redirect/:path*',

              component: () => import('@/views/redirect/index')

        }



      寫一個空白路由組件



      //redirect/index

      <script>

      export default {

        created() {

          const { params, query } = this.$route

          const { path } = params

          this.$router.replace({ path: '/' + path, query })

        },

        render: function(h) {

          return h() // avoid warning message

        }

      }

      </script>





      在需要刷新的頁面使用



      refresh() {

            // 刷新當前路由

            const { fullPath } = this.$route

            this.$router.replace({

              path: '/redirect' + fullPath

            })

          }



      這種方式,基本上能夠應付絕大多數情況,推薦使用。

      但是,有時候,有一些極端情況下,這種刷新不起作用,而又不想用第一種那種毛子般的簡單粗暴的方式的話,下面的方式可以選擇使用。



      方式3:provede/inject 方式

      vue官方文檔說了,這個依賴注入方式是給插件開發使用的,普通應用中不推薦使用。

      但是,效果卻很好。

      app.vue修改



      <template>

        <div id="app">

          <router-view v-if="isRouterAlive" />

        </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>





      使用的時候:

      demo.vue



      <template>

        <div class="container">

        xxx

        </div>

      </template>



      <script>

      export default {

        inject: ['reload], // 依賴注入

        name: 'Demo',

        computed: {

          message() {

            return '抱歉,您訪問的頁面地址有誤或者該頁面不存在...'

          }

        },

        methods: {

        handleReload() {

        this.reload() // 直接在需要刷新的方法中調用這個reload()

      }

        }

      }

      </script>



      <style lang="scss" scoped>

      </style>



      原理就是通過依賴注入的方式,在頂部app通過v-if的顯示隱藏來強制切換顯示,以此來讓vue重新渲染整個頁面,app中通過provide方式定義的reload方法,在它的后代組件中,無論嵌套多深,都能夠觸發調用這個方法。具體說明查看官方文檔。


      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://m.wtxcl.cn

      存檔

      主站蜘蛛池模板: 中文字幕无码不卡免费视频| 日本三码电影在线| 日本在线一区二区国产| 无码1245| 最新中文字幕在线| 婷婷久久综合九色综合97最多收藏| 国产日韩欧美黄色片免费观看| 国产高清亚洲精品91| 黄色综合| 国产精品无码永久免费A片| 在线中文字幕一区二区| 九九成人精品| 亚洲AV无码之国产精品网址蜜芽 | 国内精品一区二区三区最新| 国产成人无码精品一区在线观看| 精品久久一区| 日韩中文av在线| 91精品国产色综合久久不| 天天干天天射天天操| 日韩乱码av| 精品一区二区三区色噜噜| 日韩极品视频在线观看免费| www.黄| 花蝴蝶6高清电视剧资源| 资溪县| 亚洲精品国产A久久久久久| 欧美色熟妇| av中文在线天堂| 国产剧情福利AV一区二区| 亚洲制服丝袜在线| 懂色av,蜜臀AV粉嫩av| 兴业县| 日韩精品 电影一区 亚洲高清| 成人亚洲精品一区二区三区嫩花| 亚洲高清av一区二区三区| 国产%20欧美%20亚洲%20中文字幕| 成人无码小视频在线观看| 中文字幕丝袜制服| 亚洲天堂高清| 丰县| 国内精品一区视频在线播放|