I have following kind of code:
<div>
<compA />
<compB />
</div>
How do I make sure that first compA
is rendered only after it compB
is rendered.
Why I want is I have some dependency on few elements of compA
, and style of compB
depends on presence of those elements.
Why in details:
I have some complex UI design, where one box will become fixed when you scroll. SO It will not go above the screen when you scroll, it will be fixed once you start scrolling and it start touching the header. So I am using jquery-visible to find if a div
with a particular id
is visible on the screen, if it is not visible, I change the style and make that box fixed. Following code should give the idea what I am doing:
methods: {
onScroll () {
if ($('#divId').visible(false, false, 'vertical')) { // This is div from the compA, so I want to make sure it is rendered first and it is visible
this.isFixed = false
} else {
this.isFixed = true
}
}
},
mounted () {
window.addEventListener('scroll', this.onScroll() }
},
destroyed () {
window.removeEventListener('scroll', this.onScroll)
}
I dont want to make those in same component as one reason is it dont make sense as the nature of these components, and other I use compA
at many places, while compB
is specific to only one page. Also layout of these does not allow me to make compB
child of compA
as suggested in comments.
Any suggestions are welcome.