Vue.js中使用Mixins步奏详解

这次给大家带来Vue.js中使用Mixins步奏详解,Vue.js中使用Mixins的注意事项有哪些,下面就是实战案例,一起来看一下。

一个很常见的场景: 有两个非常相似的组件, 它们拥有非常相似的基本功能, 但是它们之间又有足够的不同的地方, 该如何选择呢? 我们是应该将它们分成两个完全不同的组件呢? 还是创建一个基础组件, 然后定义足够多的props以方便区分使用场景?

这两种方式都不是完美的: 如果你将它们分成两个完全不同的组件, 在需求变化(功能变化)时, 可能会增加需要同时修改两个组件的风险, 这违反了”DRY”的前提. 另一方面, 太多的props很快会让人变得凌乱, 并且, 迫使维护人员, 甚至是你自己, 要首先理解这些props的上下文才能使用它, 这会让人非常失望.

Vue的Mixins是非常实用的编程方式, 因为最终实用的编程是通过不断减少运动部件(moving parts)使代码变得容易理解. (关于这一点, Michael Feathers有一个很好的引用). 一个mixin允许你封装一个功能, 以便你能在整个应用程序中的不同组件中使用它. 如果mixin被正确的创建, 它们是纯粹的–它们不会修改或更改函数的作用范围(scope)之外的内容, 因此, 您可以在多个地方执行它们, 并且只要输入值相同, 总是能非常可靠得得到相同的结果. 这真的非常强大.

认识Mixins

混合 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。

栗子

假设我们有一些不同的组件, 它们的工作是切换状态boolean, 一个模态(modal)和一个提示(tooltip). 这些tooltips和modals没有很多共同之处, 除了这个功能: 它们看起来不一样, 它们使用起来也不尽相同, 但是它们的逻辑是相似的 .

//modalconst Modal = { template: '#modal', data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }} //tooltipconst Tooltip = { template: '#tooltip', data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }}

登录后复制

我们可以从中提取逻辑, 并创建可以复用的部分:

const toggle = { data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }} const Modal = { template: '#modal', mixins: [toggle]}; const Tooltip = { template: '#tooltip', mixins: [toggle]};

登录后复制

duang — 一个小而简单的:chestnut:让我们知道了Mixins对于封装一些可复用的功能如此有趣、方便、实用。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

以上就是Vue.js中使用Mixins步奏详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2771445.html

(0)
上一篇 2025年3月8日 12:57:55
下一篇 2025年2月19日 03:00:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS面向对象的使用详解

    这次给大家带来JS面向对象的使用详解,JS面向对象使用的注意事项有哪些,下面就是实战案例,一起来看一下。 数据类型 在JavaScript中,数据类型分为两类: 原始类型 保存一些简单数据,如true,5等。JavaScript共有5中原始…

    编程技术 2025年3月8日
    200
  • clipboard.js实现复制功能步奏详解

    这次给大家带来clipboard.js实现复制功能步奏详解,clipboard.js实现复制功能的注意事项有哪些,下面就是实战案例,一起来看一下。 最近在工作中有一个需求,就是需要使用一个按钮实现相应内容的复制。在网上找了很多解决方案,最后…

    编程技术 2025年3月8日
    200
  • 用requireJS添加返回顶部功能

    这次给大家带来用requireJS添加返回顶部功能,用requireJS添加返回顶部功能的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例讲述了requireJS模块化实现返回顶部功能的方法。分享给大家供大家参考,具体如下: 引用…

    编程技术 2025年3月8日
    200
  • AngularJS注册表单验证的步奏详解

    这次给大家带来AngularJS注册表单验证的步奏详解,AngularJS注册表单验证的注意事项有哪些,下面就是实战案例,一起来看一下。 //email验证 $(function(){ //input标签获取焦点/失去焦点时调用方法 $(“…

    编程技术 2025年3月8日
    200
  • Node.js往MySQL大量注入数据

    这次给大家带来Node.js往MySQL大量注入数据,Node.js往MySQL大量注入数据的Node.js有哪些,下面就是实战案例,一起来看一下。 1.数据库连接 var mysql = require(‘mysql’);// 数据库信息…

    编程技术 2025年3月8日
    200
  • 原生JS做出一个音乐播放器

    这次给大家带来原生JS做出一个音乐播放器,原生JS做出一个音乐播放器的注意事项有哪些,下面就是实战案例,一起来看一下。 前  言          最近在复习JS,觉得音乐播放器是个挺有意思的东西,今天就来用我们最原生的JS写一个小小的音乐…

    编程技术 2025年3月8日
    200
  • JavaScript面向对象与this指向(附代码)

    这次给大家带来JavaScript面向对象与this指向(附代码),使用JavaScript面向对象与this指向的注意事项有哪些,下面就是实战案例,一起来看一下。 我们的程序语言经历了从“面向机器”、到“面向过程”、再到“面向对象”的一个…

    编程技术 2025年3月8日
    200
  • 在JS中实现继承有哪几种方式

    这次给大家带来在JS中实现继承有哪几种方式,在JS中实现继承的注意事项有哪些,下面就是实战案例,一起来看一下。 我们都知道,面向对象的三大特征——封装、继承、多态。 封装无非就是属性和方法的私有化,所以我们JS中提供了私有属性和私有方法。 …

    编程技术 2025年3月8日
    200
  • JS中多态使用详解

    这次给大家带来JS中多态使用详解,JS中多态使用的注意事项有哪些,下面就是实战案例,一起来看一下。  多态在面向对象编程语言中是十分重要的。在JAVA中是通过继承来得到多态的效果。如下: public abstract class Anim…

    编程技术 2025年3月8日
    200
  • vue.js渐进式框架使用详解

    这次给大家带来vue.js渐进式框架使用详解,vue.js渐进式框架使用详解的注意事项有哪些,下面就是实战案例,一起来看一下。 Vue.js是一套构建用户界面(user interface)的渐进式框架。与其他重量级框架不同的是,Vue 从…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论