0
点赞
收藏
分享

微信扫一扫

Vue -- Mixin混入(一)

什么是Mixin混入

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

使用Mixin混入data

首先定义Minxin

	const myMixin = {
            data(){
                return {
                    num: 1
                }
            }
        };

然后使用mixins,在组件中使用之前定义好的myMixin

		const app = Vue.createApp({
            data(){
                return {
                    num: 2
                }
            },
            mixins:[myMixin],
            template:`<div>{{num}}</div>`
        })

打开浏览器页面渲染出组件的data数据。

在这里插入图片描述

将组件的data注释后,页面才渲染出Mixin混入的数据。

在这里插入图片描述

结论:==组件 data 优先级高于 Mixin 混入的 data==

使用Mixin混入钩子

在之前定义好的myMixin,写上钩子created,并在控制台输出:mixin created

            created(){
                console.log("mixin created");
            }

在组件上也写上钩子created,并在控制台输出:created

            created(){
                console.log("created");
            }

控制台输出:

在这里插入图片描述 结论:==先执行 Mixin 的钩子,再执行组件里的钩子==

使用Mixin混入方法

首先在组件模板绑定点击事件

template:`<div @click="handleClick">{{num}}</div>`

然后在Mixin和组件中写入响应事件的方法

	  //myMixin
      methods:{
                handleClick(){
                    console.log("mixin handleClick");
                }
            },
		//组件
        methods:{
                handleClick(){
                    console.log("handleClick");
                }
            },

打开浏览器触发点击事件控制台输出:handleClick

在这里插入图片描述

将组件的方法注释后,再次触发点击事件,控制台输出:mixin handleClick

在这里插入图片描述

结论:==组件 methods方法 优先级高于 Mixin 混入的 methods方法==

总结

Mixin: 将多个组件相同的逻辑,抽离出来复用;

使用Mixin混入data: 组件 data 优先级高于 Mixin 混入的 data;

使用Mixin混入钩子: 先执行 Mixin 的钩子,再执行组件里的钩子;

使用Mixin混入方法: 组件 methods方法 优先级高于 Mixin 混入的 methods方法

结语

本文到此结束

如果大家还有什么其他想法,欢迎在评论区交流!

举报

相关推荐

0 条评论