vue.js - Vue - 将所有 Prop 保留在一个大型 mixin 中是否更好

标签 vue.js

我有一个组件库,我想在其中标准化 Prop 、组件等。

关于将 props/methods/other mixins/etx 合并到一个更大的 mixin 中的想法

  1. 所有属性名称都相同
  2. 删除重构时的重复代码,将组件从本地 props/methods/compulated/调整为“全局”
  3. 并非所有组件都需要 mixin 中包含的每条数据 - 第 4 点
  4. tree shake 会删除 Rollup 上未使用的代码吗?
  5. 这是个好主意吗?

最佳答案

如果您的组件库不限于使用 Vue 2,您可能需要查看 Vue Composition API在不同组件之间共享功能(方法+ react 状态)。

Mixin 可能不是您真正想要使用的,因为您会丢失有关哪些功能/ Prop /方法真正将放入组件中的信息,而无需重新检查 mixin 代码。当 Vue 在运行时合并组件选项时,您也可能会遇到问题。查看这些帖子以获取更多信息: https://css-tricks.com/how-the-vue-composition-api-replaces-vue-mixins/ https://reactjs.org/blog/2016/07/13/mixins-considered-harmful.html

至于共享 props:我昨天在 Vuetify 的创建者 John Leider 的演讲中看到的(但尚未尝试过!)是创建一个返回您想要的 props 的函数在组件之间重用。然后,您只需在 props 定义中调用所述函数并使用展开运算符即可。

关于vue.js - Vue - 将所有 Prop 保留在一个大型 mixin 中是否更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64710196/

相关文章:

vue.js - vue 语言服务器 : Elements in iteration expect to have 'v-bind:key' directives

laravel - 在 vuejs spa 和 laravel api 中谷歌登录

vue.js - VueJS 路由器守卫实现访问控制机制

javascript - Vuex Getter 未定义

vue.js - 通过迭代创建菜单时出现问题

javascript - Vue如何使用get方法

vue.js - 未找到 Sass 相关模块?

javascript - VUE 中数组的数据表

typescript - Vue 增强类型 - XYZ 在类型上不存在

vue.js - 为什么 console.log 在 Vue.js 中不起作用?