1. 程式人生 > 程式設計 >vue 監聽視窗變化對頁面部分元素重新渲染操作

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

問題

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

用vue-router重新路由到當前頁面,頁面是不進行重新整理的

採用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',methods: {
  reload() {
   // 重新渲染
   this.render = false
   this.$nextTick(() => {
    this.render = true
   })
  }
 }
})

補充知識:vue同一個路由,但引數發生變化,頁面不重新整理的問題(vue監聽路由引數變化重新渲染頁面)

我就廢話不多說了,大家還是直接看程式碼吧~

watch: {
 $route: function(newVal,oldVal) {
  console.log(oldVal); //oldVa 上一次url
  console.log(newVal); //newVal 這一次的url
  if (newVal != oldVal) {
   this.loading();//重新呼叫載入函式
  }
 }
}

以上這篇vue 監聽視窗變化對頁面部分元素重新渲染操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。