关于vue混入(mixin)的解读

 更新时间:2022年10月18日 08:35:14   作者:小铁匠95  
这篇文章主要介绍了关于vue混入(mixin)的解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue混入(mixin)的解读

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

1.钩子函数

混入对象的钩子将在组件自身钩子之前调用。

 //  minxin.js
const mixin = {
  data() {
    return{
      msg1: '我是混入内容1',
      msg2: '我是混入内容2'
    }
  },
  created() {
    console.log(this.msg3)
  }
}
export default mixin;
</script>
...
// 页面组件
<template>
  <div class="header">
    <h1></h1>
  </div>
</template>
<script>
import mixin from './mixins/mixin'
export default {
  mixins: [mixin],
  name: 'Header',
  data(){
    return{
      msg1: '我是组件内容1',
      msg3: '我是组件内容2'
    }
  },
  created() {
      console.log(this.msg2)
      console.log(this.msg1)
  },
}
</script>
  
    // 我是组件内容2
    // 我是混入内容2
    // 我是组件内容1

2.普通方法合并

当混合值为对象的选项时,例如 methods、components、directive,将被混合为同一个对象,两个对象键名冲突时,取组件对象的键值对。

<body>
    <div id="app"></div>
</body>
<script src="./vue.js"></script>
<script>
    var Mixins = {
        methods: {
            mixin: function() {
                console.log('MixinOne')
            },
            mixinTwo: function () {
                console.log('MixinTwo')
            }
        }
    }
    new Vue({
        el: '#app',
        mixins: [Mixins],
        methods: {
            mixin: function () {
                console.log('component')
            }
        },
        mounted() {
            this.mixin()
            this.mixinTwo()
        }
    })
    
    // component
    // MixinTwo
</script>

3.局部混入

在componnets目录下新建mixins文件夹,并在mixins目录下创建一个mixin.js文件,代码如下:

const mixin = {
  data() {
    return {
      msg: "hello"
    }
  },
  methods: {
    mixinMethod() {
      console.log(this.msg + ',这是mixin混入方法')
    }
  }
}
export default mixin;

在需要的页面中引入:

<template>
    <div>{{msg}}</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
    mixins: [mixin],
    data() {
        return {
        }
    }
    mounted() {
        this.mixinMethod()
    }
}
// hello,这是mixin混入的方法

4.全局混入

在main.js加入以下代码

Vue.mixin({
  data() {
    return {
      msg: 'hello'
    }
  },
  methods: {
    mixinMethod() {
      console.log(this.msg+',这是mixin混入的方法')
    }
  }
})

在组件中直接引用:

<template>
    <div>{{msg}}</div>
</template>
<script>
export default {
    data() {
        return {
        }
    }
    mounted() {
        this.mixinMethod()
    }
}
// hello,这是mixin混入的方法
</script>

vue中mixin混入注意事项

1.页面和mixin的created都会执行,先执行mixin的,再执行当前页面的;

2.当前页面可以访问mixin的data和methods;

3.mixin里的方法可以调用页面的data和methods;

4.可以在当前页面改变mixin里的data

注意:当本组件与mixin有同名方法或同名数据时,优先调用本组件的方法或数据,混入的部分失效 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue编程三部曲之模型树优化示例

    Vue编程三部曲之模型树优化示例

    这篇文章主要为大家介绍了Vue编程三部曲之模型树优化示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Vue中控制v-for循环次数的实现方法

    Vue中控制v-for循环次数的实现方法

    今天小编就为大家分享一篇Vue中控制v-for循环次数的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 通过html文件来使用Vue的单文件组件形式详解

    通过html文件来使用Vue的单文件组件形式详解

    这篇文章主要介绍了通过html文件来使用Vue的单文件组件形式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • vue中Echarts图表宽度没占满的问题

    vue中Echarts图表宽度没占满的问题

    这篇文章主要介绍了vue中Echarts图表宽度没占满的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vue操作select获取option值方式

    vue操作select获取option值方式

    文章介绍了在Vue中操作select元素并实时获取选中的option值的方法,通过使用`@change`事件并传递参数,可以实现动态获取选中的值
    2025-01-01
  • Vue 3.0自定义指令的使用入门

    Vue 3.0自定义指令的使用入门

    在 Vue 的项目中,我们经常会遇到 v-if、v-show、v-for 或 v-model 这些内置指令,它们为我们提供了不同的功能。除了使用这些内置指令之外,Vue 也允许注册自定义指令。接下来,将使用Vue 3官方文档自定义指令章节中使用的示例,来一步步揭开自定义指令背后的秘密。
    2021-05-05
  • vue 为什么要封装全局组件引入

    vue 为什么要封装全局组件引入

    这篇文章主要介绍了vue为什么要封装全局组件引入,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-07-07
  • 如何在vue-cli中使用css-loader实现css module

    如何在vue-cli中使用css-loader实现css module

    这篇文章主要介绍了如何在vue-cli中使用css-loader实现css module,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2021-01-01
  • vantUI 获得piker选中值的自定义ID操作

    vantUI 获得piker选中值的自定义ID操作

    这篇文章主要介绍了vantUI 获得piker选中值的自定义ID操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue-simple-verify实现滑动验证码功能

    vue-simple-verify实现滑动验证码功能

    登录页面经常会需要滑动验证码的情况,使用vue插件vue-simple-verify就可以轻松实现,下面小编给大家分享vue-simple-verify实现滑动验证码功能,感兴趣的朋友一起看看吧
    2024-06-06

最新评论