vue 監聽窗口變化對頁面部分元素重新渲染


問題

在處理頁面重新渲染時通常的做法是:

  1. 用vue-router重新路由到當前頁面,頁面是不進行刷新的
  2. 采用window.reload(),或者router.go(0)刷新時,整個瀏覽器進行了重新加載,閃爍,體驗不好

使用 v-if 重新渲染部分組件或容器

需要重新渲染的內容

<div v-if="render">
  ...
</div>

vue 監聽窗口大小發生改變

使用 window.addEventListener() 添加 resize 事件監聽窗口變化

new Vue({
  el: '#app',
  data() {
    return { render: true }
  },
  mounted() {
    window.addEventListener('resize', this.reload)
  },
  beforeDestroy() {
    window.removeEventListener('resize', this.reload)
  },
  methods: {
    reload() {
      // 重新渲染
      this.render = false
      this.$nextTick(() => {
        this.render = true
      })
    }
  }
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM