国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue單頁緩存存在的問題及解決方案(小結)

2024-05-06 15:29:29
字體:
來源:轉載
供稿:網友

1.css同名覆蓋,解決方法:父組件加上scoped

<style lang="scss" scoped> @import './unbind.scss'</style>

子組件同名樣式加上deep

 /deep/ .tabs-row {  .items-wrp{   padding-left: .34rem;  }  .item {   margin:0 .12rem .16rem 0;  } }

2.事件全局綁定

綁在window或document或body上的事件,切換到下一個頁面同樣會被觸發,需要銷毀,也防止內存泄漏,全局綁定的事件如果是公用組件慎用off().on(),因為可能引用的其他的組件全局綁定的事件被移除

destroyed:返回的時候會觸發,防止返回到上一頁時window上scroll被觸發,官網上是推薦在beforeDestroy做事件移除或者新增DOM或移動DOM操作

deactivated:前進到新頁面時會觸發,防止進入下一頁時window上scroll被觸發

activated:被緩存的頁面激活,即返回時被觸發,created此時不會被觸發,重新綁定事件

 activated () {  // 不直接綁定scroll,此處有限制  this.bindEvent() }, destroyed () {  $(window).off('scroll', this.handleScrollFn) }, deactivated () {  $(window).off('scroll', this.handleScrollFn) },

3.音頻續播

當音頻在還在播放時,跳轉到新的頁面,此時音頻仍在播放,解決方法:前進到新頁面會觸發deactivated鉤子,此時暫停音頻播放

deactivated () {  // 前進時暫停音頻播放  this.pauseAudio() },methods: {  pauseAudio () {   this.$refs.audioPlayer && this.$refs.audioPlayer.togglePlay()  }}

當音頻在還在播放時,返回上一頁,此時音頻仍在播放,解決方法:返回會觸發destroyed鉤子里邊關閉音頻播放器

destroyed () {  this.closeMini() //關閉音頻播放器 },methods: {  closeMini () {   this.mode = -1   this.play = false   if (this.player) {    this.player.pause()   }   this.$emit('callback', 'close')  },}

4.微信分享數據未更新

當返回上一頁時,分享的數據沒有更新,需要在激活的鉤子里再次讀取之前存的分享數據

 activated () {  // 單頁緩存分享數據重置  this.setShare(this.shareCache)  window.addEventListener('scroll', this.finishReading) }, methods: {  setShare (opt) {   if (!opt) return   baike.setShare && baike.setShare(opt)  //存該頁的分享數據   this.shareCache = opt   },}

5.router.afterEach里上報pv時url未更新

在導航守衛afterEach里邊上報,但是被觸發時url還未更新,導致上報的參數有誤,解決方法:通過to,from得到下一頁,上一頁的地址

var referrer = !from.name ? document.referrer :     `${location.origin}${from.fullPath}` // 通過from.name判斷刷新 var curUrl = `${location.origin}${to.fullPath}` || ''

6.hash改變時并不會觸發router的守衛

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 龙岩市| 清新县| 清苑县| 海宁市| 互助| 赤峰市| 庆阳市| 长武县| 巴楚县| 景谷| 乌鲁木齐县| 龙门县| 泰宁县| 富锦市| 宁武县| 延寿县| 咸阳市| 山西省| 原阳县| 镇原县| 台北市| 宁夏| 英德市| 平南县| 都兰县| 合阳县| 凯里市| 阳西县| 永登县| 卢氏县| 永安市| 云和县| 蓬安县| 应城市| 庐江县| 广东省| 会同县| 郴州市| 虞城县| 阿拉尔市| 浠水县|