Javascript 在呈现子组件后启动方法

Javascript 在呈现子组件后启动方法,javascript,vue.js,lifecycle,Javascript,Vue.js,Lifecycle,我在父组件中使用v-if来有条件地渲染子组件。 即使子级不应该呈现,装载的函数仍然会被执行,并在控制台中导致错误 当呈现子组件时,如何确保在启动方法时呈现子组件 就我而言,我使用的是自动对焦: mounted: function () { // Autofocus input on load. this.$nextTick(() => this.$refs.input.focus()); }, 下一个复选框中出现错误:“TypeError:\u此.

我在父组件中使用
v-if
来有条件地渲染子组件。 即使子级不应该呈现,装载的函数仍然会被执行,并在控制台中导致错误

当呈现子组件时,如何确保在启动方法时呈现子组件

就我而言,我使用的是自动对焦:

mounted: function () {
        // Autofocus input on load.
        this.$nextTick(() => this.$refs.input.focus());
    },
下一个复选框中出现错误:“TypeError:\u此.$refs.input未定义”

console.log(此.$refs.input)提供对象:

<input class="form-control" data-v-661f7e55="" type="text" autocomplete="off">

试试这个

<input class="form-control" ref="input" type="text" autocomplete="off">

mounted(){
      this.$nextTick(() => this.$refs.input.focus())
    }

安装的(){
this.$nextTick(()=>this.$refs.input.focus())
}

这对我来说很好。ref用于注册对元素或子组件的引用。

问题是,当子组件处于v-if=“false”状态时,mounted仍然会执行事件。这一行代码应该在子组件在屏幕上呈现后执行。所以这是在子组件中还是在父组件中?它在子组件中。