vue 監(jiān)聽窗口變化對頁面部分元素重新渲染操作
問題
在處理頁面重新渲染時通常的做法是:
用vue-router重新路由到當(dāng)前頁面,頁面是不進行刷新的
采用window.reload(),或者router.go(0)刷新時,整個瀏覽器進行了重新加載,閃爍,體驗不好
使用 v-if 重新渲染部分組件或容器
需要重新渲染的內(nèi)容
<div v-if="render"> ... </div>
vue 監(jiān)聽窗口大小發(fā)生改變
使用 window.addEventListener() 添加 resize 事件監(jiān)聽窗口變化
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
})
}
}
})
補充知識:vue同一個路由,但參數(shù)發(fā)生變化,頁面不刷新的問題(vue監(jiān)聽路由參數(shù)變化重新渲染頁面)
我就廢話不多說了,大家還是直接看代碼吧~
watch: {
$route: function(newVal, oldVal) {
console.log(oldVal); //oldVa 上一次url
console.log(newVal); //newVal 這一次的url
if (newVal != oldVal) {
this.loading();//重新調(diào)用加載函數(shù)
}
}
}
以上這篇vue 監(jiān)聽窗口變化對頁面部分元素重新渲染操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue如何通過id從列表頁跳轉(zhuǎn)到對應(yīng)的詳情頁
這篇文章主要介紹了vue如何通過id從列表頁跳轉(zhuǎn)到對應(yīng)的詳情頁 ,需要的朋友可以參考下2018-05-05
Vue項目打包(build)時,自動打以時間命名的壓縮包方式
這篇文章主要介紹了Vue項目打包(build)時,自動打以時間命名的壓縮包方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10

