vue组件的初始化应该在组件内部还是父组件调用?

新手上路,请多包涵
  1. 比如说现在有一个下拉框组件,它需要初始化里面的内容。组件内部有个init方法可以获取内容数据。

应该在父组件上用$refs.xxx.init()调用,还是子组件直接在created或mounted里调用?
($refs.xxx.init()调用的话,用异步函数父组件可以知道什么时候初始化结束,而直接created中执行,也可以通过$emit自定义事件让父组件知道初始化结束)

这两者有什么优劣吗?

  1. 假设父组件里除了A这个下拉框组件,还有另外一个B组件也需要初始化,父组件需要等两个子组件都初始化结束后进行后续操作,如果A和B两个组件都是在父组件上(通过$refs.xxx.init())调用各自的init方法,实现起来很简单。

但是如果都是在各自的created上初始化并用$emit抛出,父组件应该怎么判断两个子组件都初始化完了呢?
(父组件内部定义一个计数器,在捕获到事件触发时+1吗?然后2的时候执行后续操作?)

我不知道自己的思路是不是有问题,求指正

阅读 2.4k
1 个回答

在子组件中的 mounted 里调用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题