亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Vue中mounted鉤子函數(shù)獲取節(jié)點高度出錯

Bowman_han / 1467人閱讀

摘要:問題是當(dāng)我在鉤子函數(shù)中獲取的時候,在新開的頁簽中打開頁面,會得到錯誤的,但是在當(dāng)前頁面刷新,就不會有問題。解決方案給圖片加上屬性,并在那個組件里的鉤子函數(shù)中寫,這里的是用的,兩個組件中事件響應(yīng)的辦法,不懂或者感興趣的可以點這里。

遇到的問題

最近在開發(fā)一個Vue的項目,好幾個頁面都有用到一個 頁面樓層滑動的組件,我就直接封裝成了一個,但是遇到一個bug,就是我需要得到這個組件的offsetTop,然后頁面滾動到這個位置的時候,就設(shè)置position屬性為fixed,讓他固定在屏幕上。問題是當(dāng)我在mounted鉤子函數(shù)中獲取offsetTop的時候,在新開的頁簽中打開頁面,會得到錯誤的offsetTop,但是在當(dāng)前頁面刷新,就不會有問題。

定位問題

后來查到問題,就是加載的問題,新窗口打開圖片,默認(rèn)是沒有帶緩存的,圖片是GET請求,是異步的,js運行的肯定比圖片GET要快,所以當(dāng)執(zhí)行mounted鉤子函數(shù)的時候,圖片還沒有全部加載完,這時候就會得到一個錯誤的offsetTop。

解決方案

給圖片加上ref屬性,并在那個組件里的mounted鉤子函數(shù)中寫,

this.$refs.img.onload = ()=>{
    Bus.$emit("loadImgSuccess")
}

這里的Bus是用的EventBus,兩個組件中事件響應(yīng)的辦法,不懂或者感興趣的可以點這里EventBus。
需要得到offsetTop的組件里面

Bus.$on("loadImgSuccess", () => {
    var offsetTop = this.$refs.dom.offsetTop  
})

這時候就可以確認(rèn)每次不管是頁面新打開還是當(dāng)前頁刷新都可以得到正確的offsetTop。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/95060.html

相關(guān)文章

  • Vue 生命周期詳解

    摘要:的鉤子函數(shù)會在組件停用時被調(diào)用。是在構(gòu)造函數(shù)中的聲明的變量執(zhí)行鉤子函數(shù)執(zhí)行執(zhí)行鉤子函數(shù)執(zhí)行鉤子函數(shù)刷新前根據(jù)對中的進行排序。 Vue 生命周期詳解 Vue 生命周期流程 最開始,用戶使用 new Vue() 創(chuàng)建根 Vue 實例,或者 Vue 實例化子組件都會調(diào)用_init方法(我們將這兩種實例都稱為vm): function Vue(options) { //Vue 構(gòu)...

    snowLu 評論0 收藏0
  • Vue實戰(zhàn)-菜單欄,商品展示數(shù)據(jù)交互(8)

    摘要:上篇我們將菜單欄,商品展示結(jié)構(gòu)完成,本次我們?yōu)檫@兩個部分接入數(shù)據(jù)。菜單欄接入數(shù)據(jù)導(dǎo)入組件,定義需要的數(shù)據(jù)格式導(dǎo)入滾動組件導(dǎo)入商品頁面準(zhǔn)備需要的數(shù)據(jù)初始化組件。 上篇我們將菜單欄,商品展示結(jié)構(gòu)完成,本次我們?yōu)檫@兩個部分接入數(shù)據(jù)。 showImg(https://segmentfault.com/img/bVbu2JW?w=312&h=421); 菜單欄接入數(shù)據(jù) 導(dǎo)入組件,定義需要的數(shù)據(jù)格...

    chnmagnus 評論0 收藏0
  • Vue父子組件生命周期執(zhí)行順序初探

    摘要:結(jié)論父子組件生命周期鉤子的執(zhí)行順序遵循從外到內(nèi),然后再從內(nèi)到外,不管嵌套幾層深,也遵循這個規(guī)律。組件化的設(shè)計思路大抵相同,中父子組件生命周期鉤子執(zhí)行順序,具體沒做探究,但是值得一提的是父組件的也是晚于子組件執(zhí)行的。 如今前端框架都流行組件化,頁面元素都可以使用組件進行高度概括,那么處理組件之間的關(guān)系就如同處理頁面架構(gòu)一樣重要。正確理解組件之間的關(guān)系,才能讓代碼按照我們與預(yù)料方式工作。最...

    Yumenokanata 評論0 收藏0
  • 另辟蹊徑:vue單頁面,多路由,前進刷新,后退不刷新

    摘要:如何添加這個條件,判斷用戶是否刷新了頁面呢我們知道,當(dāng)使用后,只有第一次進入后會觸發(fā)鉤子函數(shù),再次進入就不再執(zhí)行了。 目的:vue-cli構(gòu)建的vue單頁面應(yīng)用,某些特定的頁面,實現(xiàn)前進刷新,后退不刷新,類似app般的用戶體驗。注: 此處的刷新特指當(dāng)進入此頁面時,觸發(fā)ajax請求,向服務(wù)器獲取數(shù)據(jù)。不刷新特指當(dāng)進入此頁面時,不觸發(fā)ajax請求,而是使用之前緩存的數(shù)據(jù),以便減少服務(wù)器請求...

    Ocean 評論0 收藏0
  • 你想要的——vue源碼分析(2)

    摘要:本次分析的版本是。的實例化由上一章我們了解了類的定義,本章主要分析用戶實例化類之后,框架內(nèi)部做了具體的工作。所以我們先看看的構(gòu)造函數(shù)里面定義了什么方法。這個文件聲明了類的構(gòu)造函數(shù),構(gòu)造函數(shù)中直接調(diào)用了實例方法來初始化的實例,并傳入?yún)?shù)。 背景 Vue.js是現(xiàn)在國內(nèi)比較火的前端框架,希望通過接下來的一系列文章,能夠幫助大家更好的了解Vue.js的實現(xiàn)原理。本次分析的版本是Vue.js2...

    objc94 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<