vue 監(jiān)聽窗口變化對頁面部分元素重新渲染操作
問題
在處理頁面重新渲染時通常的做法是:
用vue-router重新路由到當(dāng)前頁面,頁面是不進(jìn)行刷新的
采用window.reload(),或者router.go(0)刷新時,整個瀏覽器進(jìn)行了重新加載,閃爍,體驗不好
使用 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 }) } }})
補(bǔ)充知識: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)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Java8內(nèi)存模型PermGen Metaspace實(shí)例解析2. python如何實(shí)現(xiàn)word批量轉(zhuǎn)HTML3. python excel和yaml文件的讀取封裝4. python3實(shí)現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)5. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個IP代理模塊6. moment轉(zhuǎn)化時間戳出現(xiàn)Invalid Date的問題及解決7. 關(guān)于 Android WebView 的內(nèi)存泄露問題8. Docker鏡像管理常用操作代碼示例9. Python中內(nèi)建模塊collections如何使用10. 詳解docker pull 下來的鏡像都存到了哪里
