首頁  >  文章  >  web前端  >  vue混入的相關操作介紹(附範例)

vue混入的相關操作介紹(附範例)

不言
不言轉載
2019-03-26 10:42:072709瀏覽

這篇文章帶給大家的內容是關於vue混入的相關操作介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

定義:混入是一種分發Vue元件中可重複使用功能非常靈活的方式。混入物件可以包含任意組件選項。當組件使用混入物件時,所有混入物件的選項將被混入該元件本身的選項。

範例:

//定义一个混入对象
var myMixin={
    created:function(){
        this.hello();
    },
    methods:{
        hello:function(){
            console.log('hello from mixin');
        }
    }
}
//定义一个使用混入对象的组件
var Component = Vue.extend({
    mixins:[myMixin]
})
var component = new Component();=>hello from mixin

選項合併

當元件和混入物件含有同名選項時,這些選項將以恰當的方式混合。
例如,資料物件在內部會進行遞迴合併,在和元件的資料發生衝突時以元件資料優先。

var mixin ={
    data:function(){
        return{
            messageL:'hello',
            foo:'abc'
        }
    },
    created(){
        console.log('混入对象的钩子被调用')
    }
}
new Vue({
    mixins:[mixin],
    data:function(){
        return{
            message:'goodbye',
            bar:'def
        }
    },
    created:function(){
        console.log('组件钩子被调用')
        console.log(this.$data);
        // => { message: "goodbye", foo: "abc", bar: "def" }
    }
})

值為物件的選項,例如methods,components和directives,將被混合為同一個物件。兩個物件鍵名衝突時,取組件物件的鍵值對。

var mixin={
    methods:{
        foo:function(){
            console.log('foo')
        },
        conflicting:function(){
            console.log('from mixin')
        }
    }
}
var vm = new Vue({
    mixins:[mixin],
    methods:{
        bar:function(){
            console.log('bar')
        },
        conflicting:function(){
            console.log('from self')
        }
    }
})
vm.foo()//foo
vm.bar()//bar
vm.conflicting()//form self

全域混入

也可以全域註冊混入物件。注意使用!一旦使用全域混入對象,將會影響到所有之後所建立的Vue實例。使用恰當時,可以為自訂物件注入處理邏輯。

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

謹慎使用全域混入對象,因為會影響到每個單獨建立Vue實例(包括第三方模板)。大多數情況下,只應應用於自訂選項,就像上面範例一樣。也可以將其用作Plugins以避免產生重複作用。

自訂選項合併策略

自訂選項將使用預設策略,即簡單的覆寫已有值。如果想要讓自訂選項以自訂邏輯合併,可以為Vue.config.optionMergeStrategies新增一個函數:

Vue.config.optionMergeStrategies.myOption=function(toVal,fromVal){
    return mergedVal
}

對於大多數物件選項,可以使用methods的合併策略:

var strategies = Vue.config.optionMergeStrategies;
strategies.myOption = strategies.methods

這篇文章到這裡就已經全部結束了,更多其他精彩內容可以關注PHP中文網的JavaScript影片教學欄位!

以上是vue混入的相關操作介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多