vue中的混入

news/2024/7/10 0:58:33 标签: vue

混入

基础

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

案例:

    <div id="father">
        <my-cmp></my-cmp>
    </div>
    
    <script>
        var mixin = {
            data(){
                return {
                    msg:"我是混入数据"
                }
            }
        }

        Vue.component('my-cmp', {
            mixins: [mixin],
            template: `
            <div>{{ this.msg }}</div>
            `
        })
        
        let vm=new Vue({
            mixins: [mixin],
            created(){
                console.log(this.msg);;
            },
            el:"#father",
        })
    </script>

在这里插入图片描述
可以看到不管是vue的实例化对象还是组件,绑定了mixin后都可以直接调用mixin的数据,而且还是通过this来调用的,说明数据完全绑定进了它们内部

选项合并

当组件和混入对象含有同名选项时,这些选项会以恰当的方式进行“合并”。

合并数据,以组件数据优先:

var mixin = {
  data () {
    return {
      msg: 'hello',
    }
  }
}
new Vue({
  mixins: [mixin],
  data: {
    msg: 'goodbye',
  },
  created: function () {
    console.log(this.msg)
})

合并钩子函数,将合并为一个数组。先调用混入对象的钩子,再调用组件自身钩子。
由此也可以检验出,钩子函数是特殊的存在,每个组件、混入对象、实例对象都有自己的生命周期,所以也就有了各自的钩子函数,在使用它们时,它们各自的钩子函数都会执行。
所以不会像上面的data属性一样,混入对象的数据如果和组件、vue实例相同时会被覆盖

var mixin = {
  created () {
    console.log('混入对象钩子')
  }
}

new Vue({
  el: '#app',
  mixins: [mixin],
  created () {
    console.log('组件钩子')
  }
})

全局混入

混入也可以进行全局注册。使用时格外小心!一旦使用全局混入,它将影响每一个之后创建的 Vue 实例。使用恰当时,这可以用来为自定义选项注入处理逻辑。

// 为自定义的选项 'myOption' 注入一个处理器。
Vue.mixin({
  created () {
    var myOption = this.$options.myOption
    if (myOption) {
      console.log(myOption)
    }
  }
})

http://www.niftyadmin.cn/n/1570146.html

相关文章

python就业前景如何_未来几年Python就业前景如何

众所周知&#xff0c;Python语言简洁、功能强大&#xff0c;被看做是人工智能时代最佳的编程语言。然而golang语言的出现正在威胁Python的地位&#xff0c;试图取代Python成为机器学习以及AI的主流编程语言。 未来几年Python就业前景依旧广阔 Python使用广泛&#xff0c;且用途…

windows部署的时候中get可以 post 不行_微信小程序与云服务器沟通,学会这2招,你可以拥有自己的小程序...

上期文章我们分享了如何使用PythonFlaskTornadoNginx部署自己的web服务器&#xff0c;待我们部署完自己的小程序后&#xff0c;如何使用微信开发&#xff0c;或者头条开发自己的小程序&#xff1f;小程序如何跟服务费打交道&#xff0c;本期文章带你看http 的get 与post 方法ht…

node基础之global全局对象与文件I / O

global全局对象 global中常用的方法 settimeout 延时器 setImmediate&#xff08;和延时器的效果差不多&#xff0c;但有本质区别&#xff09; setinterval 计时器 注意&#xff1a;以上三个和我们在浏览器端有所不同 node中返回的是一个对象而浏览器中返回的是一个数字 ** …

python的类变量和成员变量用法_Python 类变量和成员变量

Python 类变量和成员变量 类与对象的方法 我们已经讨论了类与对象的功能部分&#xff0c;现在我们来看一下它的数据部分。事实上&#xff0c;它们只是与类和对象的名称空间 绑定 的普通变量&#xff0c;即这些名称只在这些类与对象的前提下有效。 有两种类型的 域 ——类的变量…

node的文件流的读取和写入

作用 nodeJS中的流最大的作用是&#xff1a;读取大文件的过程中&#xff0c;不会一次性的读入到内存中。每次只会读取数据源的一个数据块。然后后续过程中可以立即处理该数据块(数据处理完成后会进入垃圾回收机制)。而不用等待所有的数据。 这么做的原因&#xff1a;因为浏览…

pyqt5 textbrowser显示print语句输出_return语句

在Python中函数的返回值是函数重要的组成部分。函数主要用于实现程序的部分功能&#xff0c;我们可以将函数执行后的结果返回给程序做出进一步的操作。return语句主要用于退出函数&#xff0c;选择性地向调用方返回一个表达式。不带参数值的return语句默认返回None。隐式返回每…

mysql简单的增删改查

增&#xff08;insert&#xff09; 直接插入单行数据&#xff1a; 格式&#xff1a;insert into "表名" values (值1、值2、值3。。。) 这中方法是当需要给全部列都插入数据时使用 对应列名插入单行数据&#xff1a; 格式&#xff1a; insert into book(列名1、列名…

kali桌面显示出来_关于电脑桌面以及任务栏的3个常见问题,这回答详细且专业!...

“去邻居家玩时着见他家电脑的桌面很漂亮&#xff0c;它们是怎么完成的呀&#xff1f;”对桌面背景进行一定的设置你就可以完成。桌面背景就是用户打开计算机进人 Windows XP操作系统后所出现的桌面背景颜色或图片。你可以选择单一的颜色作为桌面的背景&#xff0c;也可以选择类…