亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

在vue.js渲染完界面之后如何再調(diào)用函數(shù)

 更新時(shí)間:2022年07月02日 09:14:18   作者:ruanhongbiao  
這篇文章主要介紹了在vue.js渲染完界面之后如何再調(diào)用函數(shù)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue.js渲染完界面后調(diào)用函數(shù)

在使用vue.js框架的時(shí)候,有時(shí)候會(huì)希望在頁(yè)面渲染完成之后,再執(zhí)行函數(shù)方法來(lái)處理初始化相關(guān)的操作,如果只處理頁(yè)面位置、寬或者高時(shí),必須要在頁(yè)面完全渲染之后才可以,頁(yè)面沒(méi)有加載完成之前,獲取到的寬高不準(zhǔn)確。

使用過(guò)jquery的都知道,有個(gè)ready方法可以使用,但vue.js則需要結(jié)合watch和nextTick方法來(lái)使用。

1.下面開(kāi)始介紹下

在頁(yè)面加載一個(gè)數(shù)據(jù)列表完成之后,頁(yè)面自動(dòng)滾動(dòng)定位到中間某個(gè)列表元素,需要在列表數(shù)據(jù)渲染完成,計(jì)算列表高度,再控制定位到指定行。

首先介紹下一開(kāi)始嘗試沒(méi)有生效的方案,這也是大家最容易出現(xiàn)錯(cuò)誤的地方,vue.js提供的mounted函數(shù),表示掛載到實(shí)例上去之后調(diào)用該鉤子。

2.運(yùn)行之后

發(fā)現(xiàn)mounted執(zhí)行的時(shí)候,獲取到的height值不對(duì),打個(gè)斷點(diǎn)也可以發(fā)現(xiàn),此時(shí)頁(yè)面沒(méi)有渲染完成,列表塊還是一片空白

3.此時(shí)查詢官方api文檔發(fā)現(xiàn)

有一個(gè)nextTick方法,意思是在下次 DOM 更新循環(huán)結(jié)束之后執(zhí)行延遲回調(diào)。

在修改數(shù)據(jù)之后立即使用這個(gè)方法,獲取更新后的 DOM。

使用之后發(fā)現(xiàn),還是不能解決我所需要的效果

4.繼續(xù)查詢api文檔發(fā)現(xiàn)

watch方法,用于觀察Vue實(shí)例上的數(shù)據(jù)變動(dòng)。

對(duì)應(yīng)一個(gè)對(duì)象,鍵是觀察表達(dá)式,值是對(duì)應(yīng)回調(diào),再次嘗試,運(yùn)行后發(fā)現(xiàn)還是不行

5.最終把watch和nextTick組合一起

watch:{ ? ?
	showList:function(){ ? ? ? ?
	this.goPrice(0); ? ?
}}

showList對(duì)應(yīng)表格頁(yè)面的綁定變量

<tr v-for="(item,index) in showList">

6.運(yùn)行后發(fā)現(xiàn)

已經(jīng)達(dá)到了預(yù)期的效果

最后說(shuō)明下,有時(shí)候我們會(huì)想到使用setTimeout的方式來(lái)實(shí)現(xiàn),使用這種方式需要設(shè)置個(gè)超時(shí)執(zhí)行時(shí)間,由于渲染時(shí)間無(wú)法確定,有快有慢,就會(huì)出現(xiàn)不穩(wěn)定的現(xiàn)象。

vue渲染完成事件

vue里面本身帶有兩個(gè)回調(diào)函數(shù)

  • 一個(gè)是`Vue.nextTick(callback)`,當(dāng)數(shù)據(jù)發(fā)生變化,更新后執(zhí)行回調(diào)。
  • 另一個(gè)是`Vue.$nextTick(callback)`,當(dāng)dom發(fā)生變化,更新后執(zhí)行的回調(diào)。

栗子:

...
<ul id="demo">
? ? <li v-for="item in list">{{item}}</div>
</ul>
...
new Vue({
? ? el:'#demo',
? ? data:{
? ? ? ? list=[0,1,2,3,4,5,6,7,8,9,10]
? ? },
? ? methods:{
? ? ? ? push:function(){
? ? ? ? ? ? this.list.push(11);
? ? ? ? ? ? this.nextTick(function(){
? ? ? ? ? ? ? ? alert('數(shù)據(jù)已經(jīng)更新')
? ? ? ? ? ? });
? ? ? ? ? ? this.$nextTick(function(){
? ? ? ? ? ? ? ? alert('v-for渲染已經(jīng)完成')
? ? ? ? ? ? })
? ? ? ? }
? ? }
})

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決vue內(nèi)存溢出報(bào)錯(cuò)的問(wèn)題

    解決vue內(nèi)存溢出報(bào)錯(cuò)的問(wèn)題

    這篇文章主要介紹了解決vue內(nèi)存溢出報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 基于Vue2x的圖片預(yù)覽插件的示例代碼

    基于Vue2x的圖片預(yù)覽插件的示例代碼

    本篇文章主要介紹了基于Vue2x的圖片預(yù)覽插件的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Vue中video標(biāo)簽如何實(shí)現(xiàn)不靜音自動(dòng)播放

    Vue中video標(biāo)簽如何實(shí)現(xiàn)不靜音自動(dòng)播放

    最近在做大屏展示需要在一開(kāi)始播放引導(dǎo)視頻,產(chǎn)生自動(dòng)播放需求,下面這篇文章主要給大家介紹了關(guān)于Vue中video標(biāo)簽如何實(shí)現(xiàn)不靜音自動(dòng)播放的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue中beforeRouteLeave實(shí)現(xiàn)頁(yè)面回退不刷新的示例代碼

    vue中beforeRouteLeave實(shí)現(xiàn)頁(yè)面回退不刷新的示例代碼

    這篇文章主要介紹了vue中beforeRouteLeave實(shí)現(xiàn)頁(yè)面回退不刷新的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Vue項(xiàng)目啟動(dòng)報(bào)錯(cuò)解決方法大全

    Vue項(xiàng)目啟動(dòng)報(bào)錯(cuò)解決方法大全

    這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目啟動(dòng)報(bào)錯(cuò)解決方法的相關(guān)資料,文中通過(guò)圖文將解決的過(guò)程介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Vue2.0實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能 exif.js實(shí)現(xiàn)圖片上傳功能

    Vue2.0實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能 exif.js實(shí)現(xiàn)圖片上傳功能

    這篇文章主要為大家詳細(xì)介紹了Vue2.0實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能,以及圖片上傳功能引用exif.js,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Vue.js 使用AntV X6的示例步驟

    Vue.js 使用AntV X6的示例步驟

    X6 是 AntV 旗下的圖編輯引擎,提供了一系列開(kāi)箱即用的交互組件和簡(jiǎn)單易用的節(jié)點(diǎn)定制能力,方便我們快速搭建流程圖、DAG 圖、ER 圖等圖應(yīng)用。接下來(lái)就看看vue如何使用它
    2021-05-05
  • 簡(jiǎn)單聊一聊Vue3組件更新過(guò)程

    簡(jiǎn)單聊一聊Vue3組件更新過(guò)程

    我們不光要學(xué)會(huì)Vue的組件化實(shí)現(xiàn)過(guò)程,還要懂得組件數(shù)據(jù)發(fā)生變化,更新組件的過(guò)程,這篇文章主要給大家介紹了關(guān)于Vue3組件更新過(guò)程的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 淺談vue-router 路由傳參的方法

    淺談vue-router 路由傳參的方法

    這篇文章主要介紹了淺談vue-router 路由傳參的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • vue父子組件傳值以及單向數(shù)據(jù)流問(wèn)題詳解

    vue父子組件傳值以及單向數(shù)據(jù)流問(wèn)題詳解

    大家應(yīng)該都知道父組件可以向子組件通過(guò)屬性形式傳遞參數(shù),傳遞的參數(shù)也可以隨時(shí)隨意修改;但子組件不能修改父組件傳遞過(guò)來(lái)的參數(shù),所以下面這篇文章主要給大家介紹了關(guān)于vue父子組件傳值以及單向數(shù)據(jù)流問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2021-09-09

最新評(píng)論