以更好的方式使用VueMixins

Mixin 组件在项目中经常被用来重用一些业务逻辑,但它们有一些不确定的细微差别,这在项目开发中越来越明显。我偶尔也会遇到这种情况,它们会给代码库的重构或新功能的开发带来困难。

作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。成都创新互联提供从前期的网站品牌分析策划、网站设计、成都网站建设、成都做网站、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。

在介绍我的方法之前,我想先介绍一下使用mixins的优点和缺点。

优点

  • 扩展了代码重用的DRY原则。我们可以在不同的组件中重复使用相同的业务逻辑。
  • 我们可以把 mixin 作为一个全局性的 mixin,与所有的组件共享上下文。

缺点

  • 使用mixins的组件的逻辑不透明。
  • 可重写的上下文,我们必须注意不要因为相同的名称覆盖一些Mixin的方法,getter或数据;

缺点并不是避免使用 mixins 的一个关键原因,但我们应该了解它们。建议使用基于这些技巧的方式来减少缺点所带来的影响。

在 method、getter、value和 props 名字开头使用前缀。它展示了 mixin 相关的功能。使用这个技巧可以让我们轻松地分离组件 props 和 mixin props。例如:$_<(prop|method|value)>。

export default {
props: {
$impressionsMixin_page: {
type: Number,
required: true
},
$impressionsMixin_listingId: {
type: Number,
required: true
},
$impressionsMixin_itemId: {
type: Number,
required: true
}
},
data() {
return {
$impressionsMixin_observer: null,
$impressionsMixin_timeout: null,
$impressionsMixin_eventObject: null
};
},
methods: {
$impressionsMixin_getObserverOptions() {
// ...
},
$impressionsMixin_setImpressionObserver() {
// ...
},
$impressionsMixin_resetImpressionObserver() {
// ...
},
$impressionsMixin_logImpression() {
// ...
}
}
};

在父组件中这样使用:


我不喜欢在全局mixin中使用前缀。通常,这些方法和值的名称是明确的,并且它们的功能不会在项目的其他部分重复,所以不需要为它们添加前缀。

export default {
config() {
// ...
},
user() {
// ...
},
isMobile() {
// ...
},
isTablet() {
// ...
},
isDesktop() {
// ...
}
};

该方式的优点:

  • Mixins的方法或属性可以方便地被IDE自动完成使用。
  • 使用前缀可以避免组件的方法意外覆盖mixin方法和属性。
  • 大项目中的开发者对组件代码的透明和方便的阅读。

总结

Mixin是一个有用的工具,但它会使我们的项目特别是在大项目中变得更加复杂、不灵活和不透明。使用这种方法是一种很好的实践,可以更加明确mixin含义并避免一些由于不明确导致的bug。

作者:knaagar 译者:前端小智

来源:medium 原文:https://medium.com/@artem.holinka/use-vue-js-mixins-in-a-better-way-11e4ff774763。

分享标题:以更好的方式使用VueMixins
标题网址:http://www.shufengxianlan.com/qtweb/news5/67955.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联