首页 > 解决方案 > Vue.js:组件 vs. 插件 vs. Mixins

问题描述

以下之间究竟有什么区别(何时使用什么):

标签: vue.jsvuejs2

解决方案


组件是元素。它们就像用于构建应用程序或 UI 的功能块和布局块。组件可以扩展,这样做会使用原始组件的各个方面,同时让您能够添加其他功能。

与扩展现有组件类似,您可以使用 mixin,这很像您要扩展的组件,但它为现有组件添加了功能。

插件添加了任何组件都可以访问的顶级功能。


使用取决于您要达到的目标。诸如路由和状态管理之类的东西非常适合插件,因为它允许您影响/侦听整个应用程序的更改,而无需设置道具或侦听器。但是您不会将它们用于特定于组件的功能,因为它们会污染您的应用程序。

Mixins 是一个有争议的特性,有些人认为不应该使用它。这个想法是组件包装或高阶组件可以以更健壮的方式实现。更多信息在这里:( https://reactjs.org/blog/2016/07/13/mixins-considered-harmful.html

这些组件是构建 vue 应用程序的基础,因此您无法绕过使用它们,但有一些方法可以让您从它们中获得更多收益。Vue 允许使用插槽,这有助于覆盖一些功能,而反应社区更喜欢高阶组件。

如果你对 Vue 比较陌生,我建议你不要使用 mixins,推迟使用插件,然后花时间使用组件来实现功能,如果你正在创建可重用的组件,请使用作用域插槽。 https://vuejs.org/v2/guide/components-slots.html


推荐阅读