vue.js - Vue.js:组件 vs. 插件 vs. Mixins
问题描述
以下之间究竟有什么区别(何时使用什么):
- Vue 组件
- Vue 插件
- Vue 混合
解决方案
组件是元素。它们就像用于构建应用程序或 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
推荐阅读
- python - Python pandas 试图计算字数
- php - PHP / HTML是否可以使用户上传文件不是强制性的
- java - 这个人使用哪个带有 2 个参数的 random() 库?
- mongodb - mongodb map-reduce 返回错误值
- typescript - 如何在 Typescript 中跟踪 null?
- flutter - Flutter如何在listview builder中添加搜索功能
- c# - Unity 自定义编辑器 Raycast 在实例化对象后无法正常工作
- java - 同时使用 QuerydslBinderCustomizer 和 @QueryInit 的问题
- jquery - 如何在使用 Jquery UI 可排序的 jquery ajax 中传递帖子 ID?
- sql-server - MSSQL土耳其字符问题,我无法正确显示记录