ホームページ  >  記事  >  ウェブフロントエンド  >  vue ミキシングの関連操作の紹介 (例付き)

vue ミキシングの関連操作の紹介 (例付き)

不言
不言転載
2019-03-26 10:42:072650ブラウズ

この記事では、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" }
    }
})

メソッド、コンポーネント、ディレクティブなど、値がオブジェクトであるオプションは、同じオブジェクトに混在します。 2 つのオブジェクトのキー名が競合する場合、コンポーネント オブジェクトのキーと値のペアが取得されます。

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 インスタンス (サードパーティのテンプレートを含む) に影響するため、注意して使用してください。ほとんどの場合、これは上記の例のようなカスタム オプションにのみ適用されます。エフェクトの重複を避けるためのプラグインとしても使用できます。

カスタム オプションのマージ戦略

カスタム オプションでは、既存の値を単純に上書きするデフォルトの戦略が使用されます。カスタム オプションをカスタム ロジックとマージしたい場合は、Vue.config.optionMergeStrategies に関数を追加できます:

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

ほとんどのオブジェクト オプションでは、メソッドのマージ戦略を使用できます:

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

この記事はここで終了しています。その他の興味深いコンテンツについては、PHP 中国語 Web サイトの JavaScript ビデオ チュートリアル 列に注目してください。

以上がvue ミキシングの関連操作の紹介 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。