【Vue】Mixin 混入

Vue Mixin 混入

1.簡介

混入(mixin)提供了一種非常靈活的方式,來分發 Vue 組件中的可復用功能。一個混入對象可以包含任意組件選項(如data、methods、mounted等等)。當組件使用混入對象時,所有混入對象的選項將被“混合”進入該組件本身的選項

2.基本使用

2.1 定義混入

首先,在混入中定義的往往是可復用的內容,因此,一般會單獨建立一個文件夾 mixin,專門用于存放混入文件。

在這里插入圖片描述

let testMixin = {created() {console.log("這是testMixin中的created方法!");},methods: {hello() {console.log("hello from testMixin!");}},
}export default testMixin

2.2 使用混入

在這里插入圖片描述

此時,在主頁組件 index.vue 中,沒有定義任何的 created、methods 或 mounted等,但是此時打開控制臺:

在這里插入圖片描述

說明此時執行了混入中定義的 created 方法!

此時,再為主頁組件加上 mounted 生命周期鉤子,并在其中使用this.hello()

在這里插入圖片描述

控制臺打印出的結果為:

在這里插入圖片描述

即成功執行了混入對象中定義的方法 hello(),也驗證了當前組件中合并了混入對象中定義的選項和方法。這就是混入的基本使用。

2.選項合并

當組件和混入對象含有同名選項時,這些選項將以恰當的方式進行“合并”。數據對象在內部會進行遞歸合并,并在發生沖突時以組件數據優先。

仍然使用上面的例子,我們在混入對象 testMixin 中,已經定義了一個方法 hello()。那么如果此時我們在主頁組件中再定義一個 hello() 方法,mounted 中執行的會是哪一個 hello() 呢?

在這里插入圖片描述

最終,控制臺打印結果如下:

在這里插入圖片描述

此時,同名的 created 生命周期鉤子進行了合并,合并為一個數組,因此都將被調用。另外,混入對象的鉤子將在組件自身鉤子之前調用

而 methods 中的 hello 方法因為沖突,在合并時保留組件中的hello,即優先當前組件的選項,因此打印的是“hello from home!”。

3.可復用性與全局混入

3.1 可復用性

開篇提過,混入對象可成為一個可復用功能,我們在另外的組件中引入已定義的混入對象,可實現同樣的邏輯與功能。

那么有個問題,如果很多個組件同時使用同一個混入對象,這時候都要重復一個步驟,就是先導入混入對象,然后再使用,類似如下:

<script>
import myMixins from "../mixins";
export default {mixins: [myMixins]
};
</script>

這樣未免有點繁瑣,且代碼冗余,此時我們可以使用全局混入來優化這個問題。

3.2 全局混入

在 Vue 中,混入也可以進行全局注冊

例如這里,我們在 main.js 中通過Vue.mixin()引入混入對象,后續即可全局使用(作用于該Vue實例下的所有組件

在這里插入圖片描述

然后在主頁組件中,將我們原來引入混入的代碼刪除:

在這里插入圖片描述

此時刷新頁面,查看控制臺輸出信息:

在這里插入圖片描述

仍然執行了混入中的方法!其效果與在每個組件中單獨引入混入對象相同,這便是全局混入。

請謹慎使用全局混入,因為它會影響每個單獨創建的 Vue 實例 (包括第三方組件)。大多數情況下,只應當應用于自定義選項,就像上面示例一樣。推薦將其作為插件發布,以避免重復應用混入。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43333.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43333.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43333.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java將時間戳轉化為特定時區的日期字符串

先上代碼&#xff1a; ZonedDateTime dateTime ZonedDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()),zone ); //2019-12-01T19:01:4608:00String formattedDate dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd") ); //2019-12-…

.git內存清理方式

查看前15個大文件 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -15 | awk {print$1})"刪除文件夾&#xff08;public/housimg文件夾目錄&#xff09; git filter-branch --tree-filter rm -rf publ…

解決使用element ui時el-input的屬性type=number,仍然可以輸入e的問題。

使用element ui時el-input的屬性typenumber&#xff0c;仍然可以輸入e&#xff0c; 其他的中文特殊字符都不可以輸入&#xff0c;但是只有e是可以輸入的&#xff0c;原因是e也輸入作為科學計數法的時候&#xff0c;e是可以被判定為數字的&#xff0c; 但是有些場景是需要把e這種…

DICOM圖像的常用一些參數解析

醫學圖像DICOM醫學影像文件格式詳解 Dicom文件基本操作 DICOM圖像參數&#xff1f; 像素&#xff1a;構成圖片的小色點。圖像每個維度的像素個數——該維度一共有多少個均勻分布的像素點。 分辨率&#xff08;單位DPI&#xff09;&#xff1a;每英寸&#xff08;Inch&#xf…

鴻蒙剝離 AOSP 不兼容 Android 熱門問題匯總,不吹不黑不吵

上周發了一篇 《鴻蒙終于不套殼了&#xff1f;純血 HarmonyOS NEXT 即將到來》的相關資訊&#xff0c;沒想到大家「討&#xff08;fa&#xff09;論&#xff08;xie&#xff09;」的熱情很高&#xff0c;莫名蹭了一波流量&#xff0c;雖然流量對我來說也沒什么用&#xff0c;但…

私密數據采集:隧道爬蟲IP技術的保密性能力探究

作為一名專業的爬蟲程序員&#xff0c;今天要和大家分享一個關鍵的技術&#xff0c;它能夠為私密數據采集提供保密性能力——隧道爬蟲IP技術。如果你在進行敏感數據采集任務時需要保護數據的私密性&#xff0c;那么這項技術將是你的守護神。 在進行私密數據采集任務時&#xff…

不了解UI設計需要掌握的技能? 優漫動游

很多人聽說過UI設計行業&#xff0c;知道它是用來制作界面的高薪技術&#xff0c;但對于做UI設計需要什么技能卻不是很清楚。且看本文的分析。? 不了解UI設計需要掌握的技能&#xff1f; ??UI設計是英文User和interface的縮寫&#xff0c;是指對軟件的人機交互、操作邏輯、界…

Java基礎知識題(二)

系列文章目錄 Java基礎知識題(一) 文章目錄 系列文章目錄 前言 1. Java中的 組合、聚合和關聯有什么區別&#xff1f; 2. 解釋為什么Java被稱作是“平臺無關的編程語言”&#xff1f; 3. 簡述什么是值傳遞和引用傳遞&#xff1f;重點 4. 詳細闡述Java進程和線程的區別 …

Java # JVM

一、1.8之前 運行時數據區&#xff08;進程共享&#xff09; 運行時常量池為什么要有方法區&#xff1a; jvm完成類裝載后&#xff0c;需要將class文件中的常量池轉入內存&#xff0c;保存在方法區中為什么是常量&#xff1a; 常量對象操作較多&#xff0c;為了避免頻繁創建和…

圖像去雨-雨線清除-圖像處理-(計算機作業附代碼)

背景 多年來&#xff0c;圖像去雨已經被廣泛研究&#xff0c;使用傳統方法和基于學習的方法。然而&#xff0c;傳統方法如高斯混合模型和字典學習方法耗時&#xff0c;并且無法很好地處理受到嚴重雨滴影響的圖像塊。 算法 通過考慮雨滴條狀特性和角度分布&#xff0c;這個問…

【Leetcode】98. 驗證二叉搜索樹

一、題目 1、題目描述 給你一個二叉樹的根節點 root ,判斷其是否是一個有效的二叉搜索樹。 有效 二叉搜索樹定義如下: 節點的左子樹只包含 小于 當前節點的數。節點的右子樹只包含 大于 當前節點的數。所有左子樹和右子樹自身必須也是二叉搜索樹。示例1: 輸入:root = …

馬上七夕到了,用各種編程語言實現10種浪漫表白方式

目錄 1. 直接表白&#xff1a;2. 七夕節表白&#xff1a;3. 猜心游戲&#xff1a;4. 浪漫詩句&#xff1a;5. 愛的方程式&#xff1a;6. 愛心Python&#xff1a;7. 心形圖案JavaScript 代碼&#xff1a;8. 心形并顯示表白信息HTML 頁面&#xff1a;9. Java七夕快樂&#xff1a;…

QT的布局與間隔器介紹

布局與間隔器 1、概述 QT中使用絕對定位的布局方式&#xff0c;無法適用窗口的變化&#xff0c;但是&#xff0c;也可以通過尺寸策略來進行 調整&#xff0c;使得 可以適用窗口變化。 布局管理器作用最主要用來在qt設計師中進行控件的排列&#xff0c;另外&#xff0c;布局管理…

Android 遠程真機調研

背景 現有的安卓測試機器較少&#xff0c;很難滿足 SDK 的兼容性測試及線上問題&#xff08;特殊機型&#xff09;驗證&#xff0c;基于真機成本較高且數量較多的前提下&#xff0c;可以考慮使用云測平臺上的機器進行驗證&#xff0c;因此需要針對各云測平臺進行調研、比較。 …

服裝定制小程序

如今&#xff0c;人們對時尚的追求已不僅僅停留在傳統的購買與穿搭上&#xff0c;而是更加注重個性化和定制化的需求。為滿足這一需求&#xff0c;喬拓云網推出了一款創新的服裝定制小程序&#xff0c;為用戶提供定制專屬時尚的全新旅途。 通過進入【喬拓云】后臺&#xff0c;用…

Ordinals 之后,以太坊銘文協議 Ethscriptions 如何再塑 NFT 資產形態

隨著加密市場的發展&#xff0c;NFT 賽道逐漸形成了其獨有的市場。但在加密熊市的持續影響下&#xff0c;今年 NFT 賽道的發展充滿坎坷與挑戰。據 NFTGO 數據顯示&#xff0c;截至 8 月 7 日&#xff0c;與去年相比&#xff0c;NFT 市值總計約 56.4 億美元&#xff0c;過去 1 年…

搜狗拼音暫用了VSCode及微信小程序開發者工具快捷鍵Ctrl + Shit + K 搜狗拼音截圖快捷鍵

修改搜狗拼音的快捷鍵 右鍵--更多設置--屬性設置--按鍵--系統功能快捷鍵--系統功能快捷鍵設置--取消Ctrl Shit K的勾選--勾選截屏并設置為Ctrl Shit A 微信開發者工具設置快捷鍵 右鍵--Command Palette--刪除行 微信開發者工具快捷鍵 刪除行&#xff1a;Ctrl Shit K 或…

無腦入門pytorch系列(四)—— scatter_

本系列教程適用于沒有任何pytorch的同學&#xff08;簡單的python語法還是要的&#xff09;&#xff0c;從代碼的表層出發挖掘代碼的深層含義&#xff0c;理解具體的意思和內涵。pytorch的很多函數看著非常簡單&#xff0c;但是其中包含了很多內容&#xff0c;不了解其中的意思…

element問題總結2

20.隱藏el-calendar 的多余的日子 /deep/ .el-calendar-table:not(.is-range) td.next {display: none;}/deep/ .el-calendar-table:not(.is-range) td.prev {visibility: hidden;}/deep/ .el-calendar-table td {border: 1px solid #dfe6ec;} 21.點擊今天,上個月,下個月的時候…