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

不言
リリース: 2019-03-26 10:45:22
転載
2706 人が閲覧しました

この記事では、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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!