永发信息网

怎样保证js在页面元素渲染完后再执行?

答案:1  悬赏:0  手机版
解决时间 2021-02-25 12:56
怎样保证js在页面元素渲染完后再执行?
最佳答案
vue.js则需要结合watch和nextTick方法来使用。具体方法如下。
具体步骤:
1.在页面加载一个数据列表完成之后,页面自动滚动定位到中间某个列表元素,需要在列表数据渲染完成,计算列表高度,再控制定位到指定行。首先介绍下一开始尝试没有生效的方案,这也是大家最容易出现错误的地方,vue.js提供的mounted函数,表示挂载到实例上去之后调用该钩子。

2.运行之后,发现mounted执行的时候,获取到的height值不对,打个断点也可以发现,此时页面没有渲染完成,列表块还是一片空白。

3.此时查询官方api文档发现,有一个nextTick方法,意思是在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。使用之后发现,还是不能解决我所需要的效果。

4.继续查询api文档发现,watch方法,用于观察Vue实例上的数据变动。对应一个对象,键是观察表达式,值是对应回调,再次尝试,运行后发现还是不行。

5.最终把watch和nextTick组合一起
watch:{    showList:function(){        this.goPrice(0);    }}
showList对应表格页面的绑定变量


6.运行后发现,已经达到了预期的效果。

7.最后说明下,有时候我们会想到使用setTimeout的方式来实现,使用这种方式需要设置个超时执行时间,由于渲染时间无法确定,有快有慢,就会出现不稳定的现象。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女人第一眼见我说好面熟什么意思?
送鸡毛信的小英雄 是谁?
在西式甜点制作及装饰时,经常用于撒的主要装
左邻·右舍营盘路店地址在什么地方,想过去办
烘干洗衣机使用年限是短是多少年?家用型的洗
煌记鱼锅我想知道这个在什么地方
0,6平方毫米铜线在220伏交流电压时最大电流是
第一次做产检大概要多少钱
上海机电学院与上海电力学院哪个好些?
“史实”、“史论”、“史识”是构成史学的“
做寿司用那种普通的紫菜可以吗?
《锦绣未央》四大美人角色介绍 四大美人谁最
宏盛锦盟保安服务公司在什么地方啊,我要过去
怎么用Xilisoft iPod Rip往ipod传歌
问道提升五行相性的药品名及合成材料?
推荐资讯
细胞核主要通过核膜还是核孔进行物质交换
福田时代领航骑士3360重车挂四档开到50车就发
我是信用黑名单,有车有房,急需几万元,谁能
n条直线相交于一点,可构成多少对对顶角?
我是不是得了阴虱?
跟浪有关的成语
国际fidic索赔,争端和仲裁与国内的区别
当角1=角2时,角3与角4是具有怎样大小关系的角
为什么我连自己家里的wifi时,网络总是在连了
铁力市森林植物病虫害防治检疫站地址在哪,我
瀚海阑干白丈冰里的瀚海是什么意思
本人个体工商户,做生意的,每月银行流水二十
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?