组合式函数(Composables)解决了mixins的哪些痛点?

举报
青年码农 发表于 2022/08/26 22:45:19 2022/08/26
【摘要】 点击上方“青年码农”关注 回复“源码”获取各类源码,软件 Vue3 中新增了“组合式函数”(Composables),它是一个利用 Vue 的组合式 API 来封装和复用有状态逻辑的函数。功能类似 Vue2 的 mixins,但又有所不同。 先看看 Vue2 中的 mixins 混入的使用 官方介绍:...

点击上方“青年码农”关注

回复“源码”获取各类源码,软件

Vue3 中新增了“组合式函数”(Composables),它是一个利用 Vue 的组合式 API 来封装和复用有状态逻辑的函数。功能类似 Vue2 的 mixins,但又有所不同。

先看看 Vue2 中的 mixins 混入的使用

8a53aaf4dc7430343aa2cca63c2a7a8f.png

官方介绍:混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。可以这么理解,混入可以是组件的任意部分(生命周期, data等)。

哪个组件使用就在哪个组件引入

fdc67b88418a1075d38ee7bcedca3d42.png

通过上面我们可以很直观的看出 mixins 的问题

  1. 追溯

    当使用了多个 mixins 时, property 来自哪个 mixins 变得不清晰,这使追溯实现和理解组件行为变得困难。

  2. 重名

    多个 mixins 叠加在一起的时候,配置项如果有重名,后面的就会覆盖前面的,但你并不知道谁被覆盖。

  3. 耦合

    多个 mixins 需要依赖共享的 property 键名来进行相互作用,这使得它们隐性地耦合在一起。

我们在看看“组合式函数”(Composables)的使用

2b73363ddc7611d78657914ee6f5a6d3.png

注意:组合式函数约定用驼峰命名法命名,并以“use”作为开头。

使用

3d4e46ce60957a6ccb2bd51c3758825d.png

即使引用多个,依然清晰,

  1. 追溯

    当使用了多个 mixins 时, 追溯来源清晰明了

  2. 重名

    命名冲突会直接提示命名重复了的异常

  3. 耦合

    隐式的跨 minxin交流,引用了重复变量直接会提示

  4. TS

    更好的TS支持

如上所见,有状态逻辑的函数,移到一个外部函数中去,并返回需要暴露的状态。组件变得非常的简洁干净,页面逻辑也一目了然。

官方文档:

https://cn.vuejs.org/guide/reusability/composables.html

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/126535514

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。