詳細(xì)聊聊Vue的混入和繼承
前言
Vue中的混入(mixin)是一個(gè)比較簡(jiǎn)單的知識(shí)點(diǎn)。熟悉CSS預(yù)處理語(yǔ)言比如less、sass的開(kāi)發(fā)者對(duì)mixin肯定很熟悉。Vue中的mixin幾乎跟less等里面的mixin一樣,都是將定義好的一些功能原樣注入Vue組件當(dāng)中,也有些類(lèi)似面向?qū)ο缶幊讨械睦^承(我只是說(shuō)類(lèi)似:) )。
mixin是一個(gè)對(duì)象,這個(gè)對(duì)象的屬性可以是Vue實(shí)例或者組件實(shí)例的生命周期鉤子、屬性等,當(dāng)全局混入或者混入到組件后,Vue實(shí)例或者組件實(shí)例就擁有了mixin中定義的生命周期鉤子、屬性等等。如果兩者中有重復(fù)的,會(huì)按照一定的規(guī)則合并。
混入
- 將多個(gè)vue文件內(nèi)重復(fù)使用的功能代碼,提取成單個(gè)js文件,在需要使用的地方進(jìn)行調(diào)用即可。
- 在一個(gè)js文件內(nèi)定義一個(gè)對(duì)象, 在對(duì)象中可以寫(xiě) vue文件內(nèi)的 data 、methods、components等所有<script>中可以定義的代碼。
混入注意(重名情況)
- 組件中的 data變量名 和 混入中的 data變量 名, 發(fā)生重名時(shí), 以組件為準(zhǔn);
- 組件中的 methods,computed,wath名稱(chēng) 和 混入中的 methods,computed,wath名稱(chēng) 名, 發(fā)生重名時(shí), 以組件為準(zhǔn);
- 組件中的 生命鉤子函數(shù) 和 混入中的 生命鉤子函數(shù) 名, 發(fā)生重名時(shí), 都會(huì)執(zhí)行, 但是組件中的鉤子函數(shù)優(yōu)先執(zhí)行 ;
局部混入
全局混入
定義及全局注冊(cè)
調(diào)用
繼承
- 注意:這里是不適合多繼承的,多繼承問(wèn)題出現(xiàn)會(huì)多。
- extends除了可以繼承 .vue 文件,而且可以和 mixin一樣使用 js文件內(nèi)的對(duì)象。
- extends繼承 .vue 文件內(nèi)的 template內(nèi)的html是無(wú)法繼承的
混入和繼承的區(qū)別
- 先看看官方文檔的定義, 其實(shí)兩個(gè)都可以理解為繼承;
- mixins接收對(duì)象數(shù)組(可理解為多繼承);
- extends接收的是對(duì)象或函數(shù)(可理解為單繼承)。
- 注意: 如果一個(gè)組件, 既使用 繼承, 又使用 混入, 它們二者中如果有重名, 則混入會(huì)覆蓋繼承
總結(jié)
到此這篇關(guān)于Vue混入和繼承的文章就介紹到這了,更多相關(guān)Vue混入和繼承內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue2.0 如何在hash模式下實(shí)現(xiàn)微信分享
這篇文章主要介紹了vue2.0 如何在hash模式下實(shí)現(xiàn)微信分享,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01vue實(shí)現(xiàn)未登錄訪(fǎng)問(wèn)其他頁(yè)面自動(dòng)跳轉(zhuǎn)登錄頁(yè)功能(實(shí)現(xiàn)步驟)
這篇文章主要介紹了vue實(shí)現(xiàn)未登錄下訪(fǎng)問(wèn)其他頁(yè)面自動(dòng)跳轉(zhuǎn)登錄頁(yè),本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07vue學(xué)習(xí)筆記之v-if和v-show的區(qū)別
本篇文章主要介紹了vue學(xué)習(xí)筆記之v-if和v-show的區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09使用vue-cli(vue腳手架)快速搭建項(xiàng)目的方法
本篇文章主要介紹了使用vue-cli(vue腳手架)快速搭建項(xiàng)目的方法,vue-cli 是一個(gè)官方發(fā)布 vue.js 項(xiàng)目腳手架,使用 vue-cli 可以快速創(chuàng)建 vue 項(xiàng)目,感興趣的小伙伴們可以參考一下2018-05-05Vue實(shí)現(xiàn)路由過(guò)渡動(dòng)效的4種方法
Vue 路由過(guò)渡是對(duì) Vue 程序一種快速簡(jiǎn)便的增加個(gè)性化效果的的方法,這篇文章主要介紹了Vue實(shí)現(xiàn)路由過(guò)渡動(dòng)效的4種方法,感興趣的可以了解一下2021-05-05vue項(xiàng)目因內(nèi)存溢出啟動(dòng)報(bào)錯(cuò)的解決方案
這篇文章主要介紹了vue項(xiàng)目因內(nèi)存溢出啟動(dòng)報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09在Nginx上部署前端Vue項(xiàng)目的詳細(xì)步驟(超級(jí)簡(jiǎn)單!)
這篇文章主要介紹了在Nginx上部署前端Vue項(xiàng)目的詳細(xì)步驟,Nginx是一款高效的HTTP和反向代理Web服務(wù)器,作為開(kāi)源軟件,Nginx以其高性能、可擴(kuò)展性和靈活性廣泛應(yīng)用于Web架構(gòu)中,文中將步驟介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10vue 動(dòng)態(tài)組件用法示例小結(jié)
這篇文章主要介紹了vue 動(dòng)態(tài)組件用法,結(jié)合實(shí)例形式總結(jié)分析了vue 動(dòng)態(tài)組件基本功能、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03