Vue 2 Mixin 混入

这篇具有很好参考价值的文章主要介绍了Vue 2 Mixin 混入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

混入(Mixins)是一种在Vue组件中重用代码的方式。它允许你定义一些可复用的选项对象,然后将这些选项合并到不同的组件中。混入可以用于在多个组件之间共享逻辑、方法、生命周期钩子等。

示例:

<!DOCTYPE html>
<html>

<head>
    <title>Vue mixin demo</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <my-component></my-component>
    </div>
    <script>
        // 定义一个混入对象
        const myMixin = {
            data() {
                return {
                    message: 'Hello from mixin!'
                }
            },
            methods: {
                greet() {
                    console.log(this.message)
                }
            }
        }

        Vue.component('my-component', {
            mixins: [myMixin],
            template: '<div>{{message}}</div>',
            created() {
                this.greet()
            }
        })
        var vm = new Vue({
            el: '#app',
        });
    </script>
</body>

</html>

选项合并

当组件和混入对象的选项同名时,数据对象data中同名选项以组件的优先,进行递归合并;同名钩子函数则会被合并为数组,它们都会执行,且混入对象的钩子函数先执行。

对于methods、components、directives这些值为对象的选项,同名键的合并例子如下:

<!DOCTYPE html>
<html>

<head>
    <title>Vue mixin demo</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>

<body>
    <div id="app">
    </div>
    <script>
        const mixin = {
            methods: {
                greet() {
                    console.log('Hello from Mixin!');
                },
                sayHello() {
                    console.log('Mixin says hello!');
                },
            }
        };

        var Component = Vue.extend({
            methods: {
                greet() {
                    console.log('Hello from extend!');
                },
                sayHello() {
                    console.log('extend says hello!');
                },
                sayGoodbye() {
                    console.log('extend says goodbye!');
                }
            }
        });

        new Component({
            mixins: [mixin],
            methods: {
                greet() {
                    console.log('Hello from component!');
                },
            },
            created() {
                this.greet();        // Output: Hello from component!
                this.sayHello();     // Output: Mixin says hello!
                this.sayGoodbye();   // Output: extend says goodbye!
            }
        });

    </script>
</body>

</html>

由上面得出选项合并优先级:new Component > mixins > Vue.extend。


全局混入

全局混入会影响每一个Vue实例

使用Vue.mixin({})方法创建全局混入。

尽量避免使用全局混入,这样会导致逻辑分散、代码难以阅读、维护困难


自定义选项合并策略

下面是一个示例:

const customMergeStrategies=Vue.config.optionMergeStrategies
customMergeStrategies.customOption=function(parentVal,childVal){
    if(!childVal) return parentVal
    if(!parentVal) return childVal
    //合并逻辑,可根据需要修改
    return parentVal.concat(childVal)
}

关键是了解Vue.config.optionMergeStrategies的作用,它用于帮助我们自定义某个选项的合并策略函数,该函数第一个参数是父组件的该选项值,第二个参数是子组件的该选项值。文章来源地址https://www.toymoban.com/news/detail-659795.html

到了这里,关于Vue 2 Mixin 混入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue(标签属性:ref、配置项:props、混入mixin、插件、样式属性:scroped)

    前面提及到了标签属性:keys 这里将了解ref:打标识 正常布置脚手架并创建入口文件main.js引入组件 给一个按钮获取上方的dom的方法,方法中使用什么进行获取dom元素 是使用获取id方法给标签设置id,直接操作dom?  错误❌ 既然原生js可以给dom添加id,那么Vue也有类似的标识方

    2024年02月02日
    浏览(21)
  • uniapp开发中基于vue的混入(mixin) 实现微信小程序全局【发送给朋友】、【分享到朋友圈】、【复制链接】

    一、在开发微信小程序的时候,发现【发送给朋友】、【分享到朋友圈】、【复制链接】功能,灰色不可用。 很常见的功能,但是这几个功能,并不是你项目建起来了就有的。 1.【发送给朋友】使用 onShareAppMessage 这个方法 如果你的小程序,发现他的【转发给朋友】的按钮时

    2024年01月17日
    浏览(38)
  • vue3混入mixins

    Vue中混入的作用是分发组建中可复用的功能 新建mixins文件夹,新建mixins.ts文件 在文件中引用 注意:二者的函数复用,但是数据不共享

    2024年02月13日
    浏览(38)
  • Vue Mixin 代码重用与逻辑共享

    在当今Web开发领域中,构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架,正是为了满足这些需求而诞生。它采用了MVVM架构模式,并通过数据驱动和组件化的方式,使我们能够更轻松地构建出优雅而高效的Web应用程序。

    2024年01月17日
    浏览(39)
  • vue-Mixin-复用代码片段

    在软件开发中,代码复用是一个重要的原则,它可以帮助我们避免重复的代码,提高代码的可维护性和可读性。在Vue.js中,我们可以使用mixins来复用代码片段。Mixin可以包含任何组件选项。当组件使用Mixin时,所有Mixin对象的选项将被混入到该组件的选项中。 Mixin对象可以包含

    2024年01月22日
    浏览(28)
  • 说说你对vue的mixin的理解,有什么应用场景?

    Mixin 是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问 mixin 类的方法而不必成为其子类 Mixin 类通常作为功能模块使用,在需要该功能时“混入”,有利于代码复用又避免了多继承的复杂 先来看一下官方定义 mixin (混入),提供了一种非常灵活的方式,来

    2024年03月09日
    浏览(52)
  • Vue项目如何配置、切换主题颜色(mixin + scss方式,简单高效)

    但图多 基本样式: 红色主题: 蓝色主题: 看到这里,是不是有人已经开始安耐不住了 ?😏 一. 首先,引入scss依赖(node-sass, sass-loader) 二.项目样式文件目录介绍 1.此处我将项目中的公共样式文件放到了 src/style目录下,其中 index.scss是以供全局使用的一些基本样式,在main

    2024年02月04日
    浏览(30)
  • uniapp-vue3语法实现小程序全局分享(setup,mixin)

    随着vue3的普及uniapp官方也支持了vue3语法的编写 相信大家在开发过程中肯定碰到过小程序所有页面都要开启分享功能的需求;指定的页面(如:文章详情页)有单独的配置,而非单独配置的页面(如:付费的订单详情页)都是统一跳转到首页 我的做法如下: 此时小程序所有页的分

    2024年01月21日
    浏览(40)
  • Vue2-配置脚手架、分析脚手架、render函数、ref属性、props配置项、mixin配置项、scoped样式、插件

    🥔:总有一段付出了没有回报的日子 是在扎根 更多Vue知识请点击——Vue.js Vue CLI(Vue Command Line Interface)Vue脚手架,Vue官方提供的标准化开发工具(开发平台) 安装node.js——可以查看此教程 第一步:输入命令npm config set registry=http://registry.npm.taobao.org 配置镜像站,全局安装

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包