最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中的mixins混入使用方法

 更新時(shí)間:2022年04月24日 16:48:53   作者:清城幻影  
這篇文章主要介紹了vue中的mixins混入使用方法,混入又分全局混入混入局部混入,下文對(duì)兩者都有相關(guān)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

mixins

混合 (mixins) 是一種分發(fā) Vue 組件中可復(fù)用功能的非常靈活的方式。
混合對(duì)象可以包含任意組件選項(xiàng)。
當(dāng)組件使用混合對(duì)象時(shí),所有混合對(duì)象的選項(xiàng)將被混入該組件本身的選項(xiàng)。

mixins理解

組件在引用之后相當(dāng)于在父組件內(nèi)開辟了一塊單獨(dú)的空間,來(lái)根據(jù)父組件props過(guò)來(lái)的值進(jìn)行相應(yīng)的操作,單本質(zhì)上兩者還是涇渭分明,相對(duì)獨(dú)立。

而mixins則是在引入組件之后,則是將組件內(nèi)部的內(nèi)容如data等方法、method等屬性與父組件相應(yīng)內(nèi)容進(jìn)行合并。相當(dāng)于在引入后,父組件的各種屬性方法都被擴(kuò)充了。

單純組件引用:

  • 父組件 + 子組件 >>> 父組件 + 子組件

mixins:

  • 父組件 + 子組件 >>> new父組件有點(diǎn)像注冊(cè)了一個(gè)vue的公共方法,可以綁定在多個(gè)組件或者多個(gè)Vue對(duì)象實(shí)例中使用。另一點(diǎn),類似于在原型對(duì)象中注冊(cè)方法,實(shí)例對(duì)象即組件或者Vue實(shí)例對(duì)象中,仍然可以定義相同函數(shù)名的方法進(jìn)行覆蓋,有點(diǎn)像子類和父類的感覺(jué)。

作用:

用簡(jiǎn)單的話去概括就是一種分發(fā)vue組件中的功能可以復(fù)用一個(gè)技術(shù),使用這個(gè)技術(shù)我們可以把需要復(fù)用的內(nèi)容封裝成一個(gè)vue組件,方便下次使用方便

使用方法

首先在src中去創(chuàng)建一個(gè)自己的文件夾,然后把要封裝的內(nèi)容放入到這個(gè)文件夾,方便后續(xù)的調(diào)用

let mymixin={
    methods:{
        handleBtn(){
            alert('封裝的內(nèi)容已經(jīng)觸發(fā)!')
        }
    }
}
export default mymixin

全局混入

全局混入就是我們可以把封裝好的這個(gè)組件在main.js中全局注冊(cè),方便在任何地方使用

import myMixins from "./mixins/index.js"
// 全局混入
Vue.mixin(myMixins)

局部混入

也就是引用的復(fù)用內(nèi)容只能在當(dāng)前組件中生效

<template>
  <button @click="handleBtn">點(diǎn)我觸發(fā)</button>
</template>
<script>
import myMixins from '@/mixin.js'
export default {
    mixins:[myMixins]
}
</script>
<style>
</style>

這樣就實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的混入,減少代碼的復(fù)用性,大大加強(qiáng)了開發(fā)效率,你就可以安心的考慮業(yè)務(wù),而不是不停的敲代碼

mixins的使用

方法的復(fù)用

html

<div id="app">
    <child></child>
    <kid></kid>
</div>

js

Vue.component('child',{
    template:`<h1 @click="foo">child component</h1>`,
    methods:{
        foo(){
            console.log('Child foo()'+this.msg++)
        }
    }
})
Vue.component('kid',{
    template:`<h1 @click="foo">kid component</h1>`,
    methods:{
        foo(){
            console.log('Kid foo()'+this.msg++)
        }
    }
})

在借助mixins之前,在兩個(gè)不同的組件的組件中調(diào)用foo方法,需要重復(fù)定義,倘若方法比較復(fù)雜,代碼將更加冗余。若借助mixins,則變得十分簡(jiǎn)單:

let mixin={
    data(){
        return{
            msg:1
        }
    },
    methods:{
        foo(){
            console.log('hello from mixin!----'+this.msg++)
        }
    }
}
var child=Vue.component('child',{ 
        template:`<h1 @click="foo">child component</h1>`, 
        mixins:[mixin]
})
Vue.component('kid',{ 
        template:`<h1 @click="foo">kid component</h1>`, 
        mixins:[mixin]
})

雖然此處,兩個(gè)組件用可以通過(guò)this.msg引用mixins中定義的msg,但是,小編嘗試過(guò),兩個(gè)組件引用的并不是同一個(gè)msg,而是各自創(chuàng)建了一個(gè)新的msg。如果在組件中定義相同的data,則此處會(huì)引用組件中的msg,而非mixins中的。

方法的覆蓋

如果在引用mixins的同時(shí),在組件中重復(fù)定義相同的方法,則mixins中的方法會(huì)被覆蓋。

var child=Vue.component('child',{
    template:`<h1 @click="foo">child component</h1>`,
    mixins:[mixin],
    methods:{
        foo(){
            console.log('Child foo()'+this.msg++)
        }
    }
})

此時(shí),若單擊h1標(biāo)簽,則在控制臺(tái)中打印"Child foo() 1" 3、合并生命周期此時(shí),若單擊h1標(biāo)簽,則在控制臺(tái)中打印"Child foo() 1"

合并生命周期

let mixin={
    mounted(){
        console.log('mixin say hi')//先輸出
    },
    data(){
        return{
            msg:1
        }
    },
    methods:{
        foo(){
            console.log('mixin foo()'+this.msg++)
        }
    }
}
let vm=new Vue({
    el:"#app",
    data:{
        msg: 2
    },
    mounted: function(){
        console.log('app say hi')//后輸出
    },
    methods:{
        foo(){
            console.log('Parent foo()'+this.msg)
        }
    }
})

通過(guò)上面的介紹,現(xiàn)在對(duì)mixins有了比較深入的了解,在設(shè)計(jì)復(fù)雜組件時(shí)是很有必要的。

到此這篇關(guān)于vue中的mixins混入使用方法的文章就介紹到這了,更多相關(guān)vue中的mixins內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中使用js-doc的案例代碼

    vue中使用js-doc的案例代碼

    這篇文章主要介紹了vue中使用js-doc的相關(guān)知識(shí),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • django+vue項(xiàng)目搭建實(shí)現(xiàn)前后端通信

    django+vue項(xiàng)目搭建實(shí)現(xiàn)前后端通信

    本文主要介紹了django+vue項(xiàng)目搭建實(shí)現(xiàn)前后端通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Vue3中實(shí)現(xiàn)微信掃碼登錄的步驟和代碼示例

    Vue3中實(shí)現(xiàn)微信掃碼登錄的步驟和代碼示例

    在 Vue 3 中實(shí)現(xiàn)微信掃碼登錄,涉及到前端生成二維碼、監(jiān)聽微信回調(diào)以及與后端的交互,本文給大家介紹了一個(gè)詳細(xì)的實(shí)現(xiàn)步驟和代碼示例,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • vue+elemen實(shí)現(xiàn)el-tooltip在文本超出區(qū)域后浮現(xiàn)

    vue+elemen實(shí)現(xiàn)el-tooltip在文本超出區(qū)域后浮現(xiàn)

    el-tooltip組件本身就是懸浮提示功能,在對(duì)它進(jìn)行二次封裝時(shí),實(shí)現(xiàn)超出的文本浮現(xiàn),本文就來(lái)介紹一下vue+elemen實(shí)現(xiàn)el-tooltip在文本超出區(qū)域后浮現(xiàn),感興趣的可以了解一下
    2023-12-12
  • Vue 報(bào)錯(cuò)TypeError: this.$set is not a function 的解決方法

    Vue 報(bào)錯(cuò)TypeError: this.$set is not a function 的解決方法

    這篇文章主要介紹了Vue 報(bào)錯(cuò)TypeError: this.$set is not a function 的解決方法,分享給大家,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Vue/React子組件實(shí)例暴露方法(TypeScript)

    Vue/React子組件實(shí)例暴露方法(TypeScript)

    最近幾個(gè)月都在用TS開發(fā)各種項(xiàng)目,框架有涉及到Vue3,React18等,記錄一下Vue/React組件暴露出變量/函數(shù)的方法的寫法,對(duì)vue?react組件暴露方法相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • vue輸入框組件開發(fā)過(guò)程詳解

    vue輸入框組件開發(fā)過(guò)程詳解

    這篇文章主要為大家詳細(xì)介紹了vue輸入框組件開發(fā)過(guò)程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue中keep-alive內(nèi)置組件緩存的實(shí)例代碼

    vue中keep-alive內(nèi)置組件緩存的實(shí)例代碼

    這篇文章主要介紹了vue中的keep-alive內(nèi)置組件緩存,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 解決vue報(bào)錯(cuò)'超出最大堆棧大小'問(wèn)題

    解決vue報(bào)錯(cuò)'超出最大堆棧大小'問(wèn)題

    這篇文章主要介紹了解決vue報(bào)錯(cuò)'超出最大堆棧大小'問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 深入淺析golang zap 日志庫(kù)使用(含文件切割、分級(jí)別存儲(chǔ)和全局使用等)

    深入淺析golang zap 日志庫(kù)使用(含文件切割、分級(jí)別存儲(chǔ)和全局使用等)

    這篇文章主要介紹了golang zap 日志庫(kù)使用(含文件切割、分級(jí)別存儲(chǔ)和全局使用等),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

绥江县| 屏山县| 呼和浩特市| 凌海市| 陕西省| 东宁县| 将乐县| 资溪县| 雷州市| 长垣县| 天祝| 襄汾县| 军事| 二手房| 潞西市| 聂荣县| 两当县| 丰都县| 六枝特区| 当雄县| 确山县| 扎鲁特旗| 台中市| 白河县| 宁远县| 建平县| 合山市| 鄂托克旗| 榆林市| 罗定市| 松原市| 德钦县| 徐州市| 个旧市| 鄂托克旗| 米易县| 新干县| 正安县| 成安县| 张家港市| 双桥区|