iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >讨论vue中混入mixin的应用
  • 573
分享到

讨论vue中混入mixin的应用

2024-04-02 19:04:59 573人浏览 薄情痞子
摘要

混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本

混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

即 mixin 在引入组件之后,会将组件内部的内容如data、method等属性与父组件相应内容进行合并。相当于在引入后,父组件的各种属性方法都被扩充了。

比如在两个不同的组件的组件中调用sayHi方法,需要重复定义,倘若方法比较复杂,代码将更加冗余,但使用mixins 就相对比较简单了。

首先在 mixin.js 文件中定义一个混入对象:


let mixin = {
  data () {
    return {
      userName: 'mixin'
    }
  },
  created () {
    this.sayHello()
  },
  methods: {
    sayHello () {
      console.log(`${this.userName}, welcome`)
    }
  }
}

export default mixin

然后定义两个组件,分别在组件中引入:


<script>
    import mixin from '../mixin'

    export default {
      mixins: [mixin]
    }
</script>

则两个组件的打印结果都为:

如果在两个组件 data 中定义了各自的 userName,则打印结果会引用各自组件中的 userName

如果在两个组件的 methods 中重复定义了相同的方法,则 mixin 中的方法会被覆盖

给其中一个组件定义自己的 userName 和 sayHi 方法:


<script>
    import mixin from '../mixin'

    export default {
      mixins: [mixin],
      data() {
        return {
          userName: 'BComponent'
        }
      },
      created () {
          this.sayHello()
      },
      methods: {
        sayHello () {
          console.log(`Hi, ${this.userName}`)
        }
      }
    }
</script>

则打印结果:

这有点像注册了一个 vue 公共方法,可以在多个组件中使用。还有一点类似于在原型对象中注册方法,并且可以定义相同函数名的方法进行覆盖。

混入也可以进行全局注册,但一般情况下不会全局使用,因为会污染 vue 实例。

我一般在项目中会这样用,比如在多个组件中有用到通用选择器,选项是:是,否,可以使用 mixin 来添加一个统一的字典项过滤器,来实现选项的回显。

1. 首先创建一个 Dictionary.js 文件,用于保存字典项对应的含义,并将其暴露出去:


export const COMMON_SELECT = [
    { code: 0, label: '是'},
    { code: 1, label: '否'}
];

注:此处创建的 Dictionary.js 文件,也可以在页面渲染的时候拿来循环选项,具体代码如下:


import { COMMON_SELECT } from '../constants/Dictionary.js'

export default {
    data() {
        return {
            comSelectOptions: COMMON_SELECT
        }
    }
}

<select v-mode="selStatus">
    <el-option v-for="item in comSelectOptions" :key="item.code" :label="item.label" :value="item.code"></el-option>
</select>

2.然后再创建一个 filter.js 文件,保存自定义的过滤函数:


import { COMMON_SELECT } from '../constants/Dictionary.js'

export default {
  filters: {
    comSelectFilter: (value) => {
      const target = COMMON_SELECT.filter(item => {
        return item.code === value
      })
      return target.length ? target[0].label : value
    }
  }
}

3.最后在 main.js 中一次性引入 filter 方法:


import filter from './mixin/filter'
Vue.mixin(filter)

欧了,这样我们就可以在任一组件中随意使用了


<template>
    <div>
        ....
        {{ status | comSelectFilter }}
        ....
    </div>  
</template>

以上就是讨论vue中混入mixin的应用的详细内容,更多关于vue中混入mixin的应用的资料请关注编程网其它相关文章!

--结束END--

本文标题: 讨论vue中混入mixin的应用

本文链接: https://www.lsjlt.com/news/125646.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 讨论vue中混入mixin的应用
    混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本...
    99+
    2024-04-02
  • vue中混入mixin的应用实例
    这篇文章主要介绍了vue中混入mixin的应用实例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用...
    99+
    2023-06-15
  • Vue中mixin混入怎么用
    这篇文章主要介绍了Vue中mixin混入怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 局部混入<template>  <...
    99+
    2023-06-25
  • Vue中混入mixin的用法介绍
    目录基础使用选项合并自定义合并规则全局混入总结什么是混入? 混入通过注入配置项到vue实例用来提升复用性 基础使用 const myMixin = { creat...
    99+
    2022-11-13
    Vue mixin Vue 混入
  • vue cli 局部混入mixin和全局混入mixin的过程
    目录局部混入mixin和全局混入mixin应用场景1、局部混入mixin2、全局混入mixinmixins的使用方法和注意点局部混入mixin和全局混入mixin 应用场景 两个组件...
    99+
    2024-04-02
  • Vue中Mixin混入的示例分析
    这篇文章给大家分享的是有关Vue中Mixin混入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 什么是Mixin?想要使用一个事物或者工具,我们首要先了解它是什么,这样我们才好对症下药。其实Mixi...
    99+
    2023-06-29
  • vue混入mixin使用特点
    目录什么是混入创建Mixins使用Mixins在组件(Home.vue)中使用mounted生命周期钩子选项合并可复用性全局混入注意什么是混入 混入 (mixin) : 是一种分发V...
    99+
    2022-12-22
    vue混入mixin vue混入mixin原理
  • 关于vue混入(mixin)的解读
    目录vue混入(mixin)的解读1.钩子函数2.普通方法合并3.局部混入4.全局混入vue中mixin混入注意事项vue混入(mixin)的解读 混入(mixin)提供了一种非常灵...
    99+
    2022-11-13
    vue混入mixin vue混入 vue mixin
  • vue混入mixin的介绍及理解
    目录一、mixin是什么二、使用场景三、原理分析四、mixin的理解一、mixin是什么 mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而...
    99+
    2022-11-13
    vue mixin vue mixin原理
  • python中Mixin混入类如何使用
    这篇文章主要讲解了“python中Mixin混入类如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中Mixin混入类如何使用”吧!前言最近在看sanic的源码,发现有很多M...
    99+
    2023-07-02
  • vuejs中怎么使用mixin局部混入与全局混入
    这篇文章主要介绍“vuejs中怎么使用mixin局部混入与全局混入”,在日常操作中,相信很多人在vuejs中怎么使用mixin局部混入与全局混入问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vuejs中怎么使...
    99+
    2023-06-30
  • vuejs中使用mixin局部混入/全局混入的方法详解
    目录前言需求什么是mixin全局混入几个重要的疑问选项合并生命周期函数data数据冲突方法名冲突mixin的优缺点1.变量名来源不明确2. 多个mixins的生命周期会合并融合到一起...
    99+
    2024-04-02
  • python 中Mixin混入类的使用方法详解
    目录前言Mixin 与继承的区别总结前言 最近在看sanic的源码,发现有很多Mixin的类,大概长成这个样子 class BaseSanic(    RouteMixin,  ...
    99+
    2024-04-02
  • 深入讨论import在Vue中的意义和用法
    在Vue中,import是一种常见的关键字,用于引入其他模块或文件的内容。这种方式可以大幅简化代码,避免需要写冗长的代码来实现相同的功能。本文将深入讨论import在Vue中的意义和用法。引入单个组件在Vue的单文件组件中,我们可能会需要引...
    99+
    2023-05-14
  • 讨论Vue画布的使用场景和应用
    Vue是一种流行的JavaScript框架,可以帮助开发者构建响应式、灵活的Web应用程序。Vue框架的一个有用的特性是它提供了一个可以用于创建自定义组件的功能。如果你正在寻找一种方式来创建可视化图形表示,那么Vue的Canvas功能就是一...
    99+
    2023-05-14
  • vue3的mixin混入使用方法是什么
    本篇内容主要讲解“vue3的mixin混入使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3的mixin混入使用方法是什么”吧!vue 2 中采用选项式API 如: ...
    99+
    2023-06-21
  • vue中的mixins混入使用方法
    目录mixinsmixins理解使用方法全局混入局部混入mixins的使用方法的复用方法的覆盖合并生命周期mixins 混合 (mixins) 是一种分发 Vue 组件中可复用功能的...
    99+
    2024-04-02
  • vue中的mixins怎么混入使用
    这篇文章主要介绍了vue中的mixins怎么混入使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue中的mixins怎么混入使用文章都会有所收获,下面我们一起来看看吧。作用用简单的话去概括就是一种分发vue...
    99+
    2023-06-30
  • vue中混入mixins的使用方法
    目录前言使用方法总结前言 Vue中有一个设置项叫做混入 (mixins), 它的使用是用来做代码复用的。同时, 这个mixins 也分为局部混入和全局混入 vue中的解释是这样的,如...
    99+
    2024-04-02
  • 如何进行vue中mixin的使用
    这期内容当中小编将会给大家带来有关如何进行vue中mixin的使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。vue之mixin的使用作用:在引入组件之后,则是将组件内部的内容如data等方法、meth...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作