Vue组件渲染后的事件

15 浏览
0 Comments

Vue组件渲染后的事件

在Vue中是否有一个在元素重新渲染后触发的事件?我有一个更新的对象,它会导致模板更新。在更新后,我想触发一个事件来运行一个jQuery函数。代码如下:

模板部分:

template: `

{{blogPost.title}}

`,

props: ["blogid"],

data: function () {

return blogPageData;

},

mounted: function () {

const blogid = jQuery("#blogPage").attr("blogid");

if (this.authdata.roles.indexOf("Administrator") !== -1) {

this.isAdmin = true;

}

this.getBlogPost(blogid);

},

methods: {

getBlogPost: function (blogid) {

var element = this;

$.ajax({

url: `/api/blog/${blogid}`,

type: "get",

headers: headers,

success: function (data) {

if (data === undefined) {

window.location.replace("/blog");

} else {

element.isDetails = true;

element.blogPost = data;

}

},

error: function (data) {

window.location.replace("/blog");

errorData.error = data.responseText;

}

});

}

},

watch: {

blogPost: function () {

console.log(this.blogPost);

jQuery("pre").each((i, e) => {

hljs.highlightBlock(e);

});

}

}

如你所见,我尝试使用watch事件,但是当watch事件触发时,我的页面还没有更新。但是blogPost已经被更改了,但是Vue正在渲染页面。我知道我可以通过添加setTimeout来解决这个问题,但我更喜欢一种更简洁的方法。

0