Vue在页面数据渲染完成之后的调用方法
在使用Vue框架的时候,有时候需要在Vue在页面数据渲染完成之后调用方法,不然获取不到准确的数据,特别是在获取列表的高度的时候,由于数据没有加载完,获取不到准确的高度。之前在使用jquery的时候,有ready可以帮助我们实现,但是Vue不存在此类方法,我们需要结合watch和this.$nextTick()来实现。
nextTick:在下次 DOM 更新循环结束之后执行延迟回调。
watch:用于观察Vue实例上的数据变动。对应一个对象,键是观察表达式,值是对应回调。
之前我是这样子使用nextTick的:
mounted:{
this.$nextTick(function(){
/方法
})
}
经测试发现实现不了所需要的效果,只有结构,没有数据,即获取不到想要的高度
后发现需要结合watch监听某个属性:
watch:{
asyncArray:function()
this.$nextTick(function(){
//方法
});
}
}
经测试可用!
以上这篇Vue在页面数据渲染完成之后的调用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
时间: 2018-09-09
最近在做一个vue项目,用的是官方推荐的axios请求数据,数据结构是一级对象嵌套二级对象,发现一级对象数据渲染不报错,二级数据渲染报错.很是郁闷!data函数如下 export default { name: 'hello', data() { return { card:{} } } } 返回的数据如下: { "object":{ "subObject":"123", ... } } 报错的原因是在data函数return的card里没有二级
vue里面本身带有两个回调函数: 一个是`Vue.nextTick(callback)`,当数据发生变化,更新后执行回调. 另一个是`Vue.$nextTick(callback)`,当dom发生变化,更新后执行的回调. 栗子: ...
- {{item}}