原生js 设置子组件中的 class ,父组件如何监听vue是否渲染完成
时间: 2024-03-20 08:04:15 浏览: 173
如果你想在父组件中监听子组件是否渲染完成,可以使用`$nextTick()`方法来实现。
在父组件中,你可以使用`$nextTick()`方法来等待子组件渲染完成。然后,你可以访问子组件的DOM元素,并设置它的class。
下面是一个例子:
```javascript
// 父组件
Vue.component('parent-component', {
template: `
<div>
<child-component ref="child"></child-component>
</div>
`,
mounted() {
// 在下次DOM更新循环结束后执行
this.$nextTick(function() {
// 获取子组件的DOM元素
var childElement = this.$refs.child.$el;
// 设置子组件的class
childElement.classList.add('my-class');
});
}
});
// 子组件
Vue.component('child-component', {
template: '<div>子组件</div>'
});
```
在上面的例子中,我们在父组件中使用了`$nextTick()`方法来等待子组件渲染完成。然后,我们通过`this.$refs.child.$el`访问了子组件的DOM元素,并设置了它的class。
请注意,`$nextTick()`方法是异步的,因此它不会阻塞代码的执行。如果你需要在子组件渲染完成后立即执行某些操作,你可以将这些操作放在回调函数中。
阅读全文