欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue混入mixin的介紹及理解

 更新時間:2022年08月05日 10:02:43   作者:飯啊飯°  
混入(mixin)提供了一種非常靈活的方式,來分發(fā)vue組件中的可復用功能。一個混入對象可以包含任意組件選項。當組件使用混入對象時,所有混入對象的選項將被“混合”進入該組件本身的選項

一、mixin是什么

mixin是面向?qū)ο蟪绦蛟O計語言中的類,提供了方法的實現(xiàn)。其他類可以訪問mixin類的方法而不必成為其子類;

mixin類通常作為功能模塊使用,在需要該功能時“混入”,有利于代碼復用又避免了多繼承的復雜。

本質(zhì)就是一個JS對象,可以包含組件中的任意功能選項,如data、components、methods、creaded、computed以及生命周期函數(shù)等等。

只需要將共用的功能以對象的方式傳入mixins選項中,當組件使用mixins對象時所有mixins對象的對象都將被混入該組件本身的選項中來。

局部混入

import mixin1 from './mixin1'
export default {
    // mixins:[mixin1]
}

全局混入

Vue.mixin({
  created: function () {
      console.log("全局混入")
    }
})

注意:當組件存在與mixin對象相同的選項的時候,進行遞歸合并的時候組件的選項會覆蓋mixin的選項;但是如果相同的選項為生命周期鉤子的時候,會合并成一個數(shù)組,先執(zhí)行mixin的鉤子,再執(zhí)行組件的鉤子。

二、使用場景

在開發(fā)中,經(jīng)常會遇到在不同的組件中用到相同或者相似的代碼,這些代碼的功能相對獨立;

例子

控制元素是否顯示,都會使用v-show,如果兩個組件中使用的變量和規(guī)則都相同,就可以把控制元素顯示單獨封裝成一個mixin.js文件。

modal.vue中

<template>
  <div id="app">
    <button @click="show()">modal顯示與隱藏</button>
    <div v-show="isShowing">modal顯示</div>
  </div>
</template>
<script>
import mixin1 from './mixin1'
export default {
    mixins:[mixin1]
}
</script>

tooltip中

<template>
  <div id="app">
    <button @click="show()">tooltip顯示與隱藏</button>
    <div v-show="isShowing">tooltip顯示</div>
  </div>
</template>
<script>
import mixin1 from './mixin1'
export default {
    mixins:[mixin1],
}
</script>

mixin1.js中

export default {
    data() {
        return {
            isShowing:true
        }
    },
    methods: {
        show() { 
            this.isShowing = !this.isShowing
        }
    },
}

三、原理分析

  • 優(yōu)先遞歸處理mixins;
  • 先遍歷合并parent中的key,調(diào)用mergeField方法進行合并,然后保存在變量options;
  • 再遍歷child,合并補上parent中沒有的key,調(diào)用mergeField方法進行合并,保存在變量options;
  • 通過mergeField函數(shù)進行合并;
  • 合并策略包括:替換型、合并型、隊列型、疊加型;
  • 替換行策略有:props、methods、inject、computed;
  • 合并型策略是data,通過set方法進行合并和重新賦值,就是將新的同名參數(shù)替代舊的參數(shù);
  • 隊列型策略有生命周期函數(shù)和watch,原理是將函數(shù)存入一個數(shù)據(jù),然后正序遍歷依次執(zhí)行。
  • 疊加型有component、directives、filters,通過原型鏈進行層層的疊加。

四、mixin的理解

回答:mixin是一種類,在vue中就是js文件,主要的作用是作為功能模塊引用。因為在項目中,可能不同組件會有相同的功能,比如控制元素的顯示和隱藏,如果他們的變量和規(guī)則也完全相同的話,就可以把這個功能單獨提取出來,放在mixin.js中,再引入,就可以實現(xiàn)一樣的功能了。引入的方法也分為全局混入和局部混入,局部混入就是在每個組件中引入,全局混入就是在main.js中通過Vue.mixin()引入。

到此這篇關于vue混入mixin的介紹及理解的文章就介紹到這了,更多相關vue mixin內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue中v-model失效原因以及解決方案

    vue中v-model失效原因以及解決方案

    這篇文章主要給大家介紹了關于vue中v-model失效原因以及解決方案的相關資料,vue的v-model是一個雙向綁定的數(shù)據(jù)流,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • vue跳轉(zhuǎn)頁面的幾種方法(推薦)

    vue跳轉(zhuǎn)頁面的幾種方法(推薦)

    這篇文章主要介紹了vue不同方法跳轉(zhuǎn)頁面,本文給大家分享多種方法,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 對 Vue-Router 進行單元測試的方法

    對 Vue-Router 進行單元測試的方法

    這篇文章主要介紹了對 Vue-Router 進行單元測試的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • element?ui富文本編輯器的使用效果與步驟(quill-editor)

    element?ui富文本編輯器的使用效果與步驟(quill-editor)

    富文本編輯器在任何項目中都會用到,在Element中我們推薦vue-quill-editor組件,下面這篇文章主要給大家介紹了關于element?ui富文本編輯器的使用效果與步驟(quill-editor)的相關資料,需要的朋友可以參考下
    2022-10-10
  • 淺談vue異步數(shù)據(jù)影響頁面渲染

    淺談vue異步數(shù)據(jù)影響頁面渲染

    今天小編就為大家分享一篇淺談vue異步數(shù)據(jù)影響頁面渲染,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue實現(xiàn)動態(tài)顯示與隱藏底部導航的方法分析

    vue實現(xiàn)動態(tài)顯示與隱藏底部導航的方法分析

    這篇文章主要介紹了vue實現(xiàn)動態(tài)顯示與隱藏底部導航的方法,結(jié)合實例形式分析了vue.js針對導航隱藏與顯示的路由配置、事件監(jiān)聽等相關操作技巧,需要的朋友可以參考下
    2019-02-02
  • 詳解使用Vue.Js結(jié)合Jquery Ajax加載數(shù)據(jù)的兩種方式

    詳解使用Vue.Js結(jié)合Jquery Ajax加載數(shù)據(jù)的兩種方式

    本篇文章主要介紹了詳解使用Vue.Js結(jié)合Jquery Ajax加載數(shù)據(jù)的兩種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • vue實現(xiàn)select下拉顯示隱藏功能

    vue實現(xiàn)select下拉顯示隱藏功能

    這篇文章主要介紹了vue實現(xiàn)select下拉顯示隱藏功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Vue+OpenLayer為地圖添加風場效果

    Vue+OpenLayer為地圖添加風場效果

    這篇文章主要為大家展示了一個demo,即利用Vue和OpenLayer在地圖上面添加風場效果,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • 詳解Vue使用 vue-cli 搭建項目

    詳解Vue使用 vue-cli 搭建項目

    本篇文章主要介紹了詳解Vue使用 vue-cli 搭建項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論