vue进入页面执行的钩子函数_vue的钩子函数

本文介绍了Vue中四个关键的生命周期钩子函数:beforeCreate、created、beforeMount和mounted,详细解释了它们在Vue实例创建和挂载过程中的作用。在beforeCreate和created阶段,数据已初始化但未挂载到DOM;mounted阶段表示组件已经挂载到DOM。文章还提到了Vue的nextTick方法,用于在DOM更新后执行回调,确保数据正确渲染。
摘要由CSDN通过智能技术生成

钩子函数

通过上述测试我们可以知道

在beforecreate阶段,对浏览器来说,整个渲染流程尚未开始或者说准备开始,对vue来说,实例尚未被初始化,data observer和 event/watcher也还未被调用,在此阶段,对data、methods或文档节点的调用现在无法得到正确的数据。

在created阶段,对浏览器来说,渲染整个HTML文档时,dom节点、css规则树与js文件被解析后,但是没有进入被浏览器render过程,上述资源是尚未挂载在页面上,也就是在vue生命周期中对应的created 阶段,实例已经被初始化,但是还没有挂载至$el上,所以我们无法获取到对应的节点,但是此时我们是可以获取到vue中data与methods中的数据的

在beforecreate阶段,实际上与created阶段类似,节点尚未挂载,但是依旧可以获取到data与methods中的数据。

在mounted阶段,对浏览器来说,已经完成了dom与css规则树的render,并完成对render tree进行了布局,而浏览器收到这一指令,调用渲染器的paint()在屏幕上显示,而对于vue来说,在mounted阶段,vue的template成功挂载在$el中,此时一个完整的页面已经能够显示在浏览器中,所以在这个阶段,即可以调用节点了(关于这一点,在笔者测试中,在mounted方法中打断点然后run,依旧能够在浏览器中看到整体的页面)。

以上参考自https://segmentfault.com/a/1190000020058583?utm_source=tag-newest

nextTick(),是将回调函数延迟在下一次dom更新数据后调用,简单的理解是:当数据更新了,在dom中渲染后,自动执行该函数new Vue({

el: '#app',

data: {

totalMoney: 0,

productList: []

},

filters: {

},

mounted: function() {

//这个是钩子函数

//如果cartView函数要执行,必须先执行钩子函数

//这个钩子函数完成了对cratView函数的调用

//应该注意的是,使用mounted 并不能保证钩子函数中的 this.$el 在 document 中。为此还应该引入 Vue.nextTick/vm.$nextTick

this.$nextTick(function () {

this.cartView()

})

})

},

methods: {

//这个是要执行的函数

cartView: function() {

var _this = this;

this.$http.get("data/cartData.json", {"id": 123}).then(function(res) {

_this.productList = res.body.result.list;

_this.totalMoney = res.body.result.totalMoney;

});

}

}

}

});

这段代码参考自https://www.cnblogs.com/zxyzm/p/10644961.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值