如何在mounted-Vue.js期间在嵌套子组件中获取div
打开页面时滚动到元素时出现问题。这就像滚动到锚。我通过道具将div id发送到嵌套的子组件。在mounted上,我调用一个方法scrollToSection,其中我有滚动逻辑如何在mounted-Vue.js期间在嵌套子组件中获取div,vue.js,scroll,Vue.js,Scroll,打开页面时滚动到元素时出现问题。这就像滚动到锚。我通过道具将div id发送到嵌套的子组件。在mounted上,我调用一个方法scrollToSection,其中我有滚动逻辑 props: { section: String }, mounted() { this.scrollToSection(); }, methods: { scrollToSection () { if (this.section != null) { const options = {
props: {
section: String
},
mounted() {
this.scrollToSection();
},
methods: {
scrollToSection () {
if (this.section != null) {
const options = {
force: true,
easing: 'ease-in',
};
VueScrollTo.scrollTo(`#${this.section}`, 100, options);
}
}
}
在这一点上,子组件不呈现DOM,document.getElementById(this.section)返回null。但在父组件中,我有权访问该div。
你知道如何解决这个问题吗?方法nextTick不起作用。也有同样的问题,我需要访问嵌套组件中的映像,我必须等待映像加载到嵌套组件中,方法是添加一个
@load
事件侦听器,该侦听器向父级发出加载的事件,因此我知道它已经准备好并执行我的操作
如果nextTick
不起作用,您也可以这样做,只需在子组件的挂载挂钩上发出一个就绪事件,并在就绪时执行滚动
//Child component
mounted(){
this.$emit('ready');
}
_
//Parent component
...
<child-component @ready="scrollToSection()" />
...
MyDiv.scrollIntoView({ block: "start", behavior: 'smooth' });