Vue中在编写组件mixins和extend的选择

在编写组件库中,有很多功能用extend和mixins都可实现其功能,怎么选择,有啥场景需要注意?

阅读 5.6k
2 个回答
const mixins = {
  created () {
    console.log('mixins created')
  }
}
const mixins2 = {
  created () {
    console.log('mixins2 created')
  }
}
const extend = {
  created () {
    console.log('extends created')
  }
}
export default {
  mixins: [mixins, mixins2],
  extends: extend,
  created () {
    console.log('组件 created')
  }
}

纠正下楼上的答主,钩子函数extends的优先应该是优先于mixins

clipboard.png
调用的顺序

补充一点,,
extends只能继承一个
mixins可以多个

其实官方文档些的很清楚了,extends接受对象,mixins接受数组

你说的是组件中的extends与mixins吧?

其实他两的效果差不多。只不过是有优先级的区别:

  • mixins里面的钩子要比组件本身的优先级高,比如都有created钩子,vue会先调用mixins里面的created然后调用组件本身的created

  • extends继承来的方法优先级是在组件本身之后的。

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