Vue.js:组件 vs. 插件 vs. Mixins

标签 vue.js vuejs2

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

  • Vue 组件
  • Vue 插件
  • Vue 混合

最佳答案

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

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

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


使用取决于您要实现的目标。路由和状态管理之类的东西非常适合插件,因为它允许您在不设置 Prop 或监听器的情况下影响/监听整个应用程序的变化。但是您不会将它们用于特定于组件的功能,因为它们会污染您的应用。

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

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

如果您是 Vue 的新手,我建议您不要使用 mixins,暂缓使用插件,并花时间使用组件实现功能,如果您要创建可重用的组件,请使用作用域插槽. https://v2.vuejs.org/v2/guide/components-slots.html

关于Vue.js:组件 vs. 插件 vs. Mixins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50474317/

相关文章:

html - 如何使用css在所有方向上旋转图像

vue.js - 如何在 Nuxt 3 中启用reactivityTransform?

vue.js - 在 Vue 的递归组件中传递作用域槽

javascript - vue拼接方法如何去掉商品名?

vue.js - v-for 使用大括号查找

javascript - 如何在 Vue 转换开始之前读取大小并移动隐藏元素?

javascript - VueJS : How To Detect Environment

javascript - 悬停时弹出特定元素

javascript - 有没有办法在 Vue JS 的列表渲染(v-for)中使用条件渲染

javascript - Vue 组件不更新函数数据