Vue混合文件使用以及ref的引用實例詳解
mixin混合
在日常開發(fā)中,當(dāng)我們開發(fā)的各種組件可能會有相同的內(nèi)容,我們可以將相同的內(nèi)容在各個相對應(yīng)的組件內(nèi)刪除,然后放在同一個配置里。所謂混合:兩個或多個組件共享一個配置。當(dāng)然這個配置文件的名字可以自定義,為了具體語義化,我將這個文件名命名mixin,當(dāng)然看個人喜好。

配置混合文件 mixin.js ,為了加深了解,繼續(xù)在混合文件上添加data數(shù)據(jù)以及添加原組件data數(shù)據(jù)
// mixin.js
export const mixin = {
methods:{
showName(){
alert(this.name)
}
}
}
export const mixin2 = {
// 混合里面的data的數(shù)據(jù)會和原組件data數(shù)據(jù)進行整合
data(){
return {
x:10, //如果原組件data數(shù)據(jù)本身就有該數(shù)據(jù),以原組件數(shù)據(jù)為主
y:10
}
}
}

當(dāng)然混合也不能包容所有配置項或函數(shù),生命周期函數(shù)就是一個特例: 它不以任何為主,不管是原組件還是混合文件里面的生命周期函數(shù),只要有都要。


當(dāng)然混合我們也可以同全局組件一樣寫到全局配置上,這樣我們在混合里面寫到data數(shù)據(jù)或者是methods方法都會寫到vm上,直接使用無需調(diào)用。當(dāng)然這樣肯定是不合理的,所以Vue官方進行解釋:推薦全局mixin應(yīng)該用于插件開發(fā),不建議應(yīng)用使用。

總結(jié):
mixin:混合可以把多個組件共用的配置提取成一個混入對象
使用方式:
1)定義混合文件
2)使用混入文件
局部導(dǎo)入:mixins:['xxx']
全局導(dǎo)入:Vue.mixin(xxx)
PS:這里解釋一下 Vue 的插件 ,所謂Vue的插件類似游戲外掛,讓體驗感更強一些。
功能:用于增強Vue
本質(zhì):包含install方法的一個對象,install的第一個參數(shù)是Vue,第二個以后的參數(shù)是插件使用者傳遞的數(shù)據(jù)。

前言
在我們沒使用框架之前,通常一般使用 jquery 來幫助程序員簡化操作DOM的過程,隨著 Vue 的流行,在MVVM模型的影響下,程序員不需要操作DOM只需把數(shù)據(jù)維護好就行(也稱:數(shù)據(jù)驅(qū)動視圖),既然在 Vue 中不需要操作DOM,所以是很少在 Vue 項目中安裝和使用 jquery 的。假設(shè)我們在 Vue項目中需要操作DOM怎么辦?這時候就需要看看接下來講解的內(nèi)容了。
ref的引用DOM
ref用來輔助開發(fā)者在不依賴于 jQuery 的情況下,獲取 DOM 元素或組件的引用。
每個 vue 的組件實例上,都包含一個 $refs 對象,里面存儲著對應(yīng)的DOM元素或組件的引用。默認情況下,組件的 $refs 指向一個空對象。
<template>
<div class="app-container">
<!-- 注意:ref的值是唯一的,如果出現(xiàn)重復(fù)后者會覆蓋前者,這點尤為注意 -->
<h2 ref="myh1">App父組件</h2>
<button @click="showThis">改變顏色</button>
</div>
</template>
<script>
export default {
methods:{
showThis(){
// console.log(this);
this.$refs.myh1.style.color = 'red'
}
}
}
</script>
ref引用組件
如果想要使用ref引用頁面上的組件實例,則可以按照如下的方式進行操作:


組件的 $nextTick(cb) 方法,會把 cb 回調(diào)推遲到下一個 DOM 更新周期之后執(zhí)行。通俗的理解是:等組件的DOM更新完成之后,再執(zhí)行 cb 回調(diào)函數(shù)。從而能保證 cb 回調(diào)函數(shù)可以操作到最新 DOM 元素。
<template>
<div class="app-container">
<h2>App父組件</h2>
<input type="text" v-if="inputVisible" @blur="showButton" ref="iptRef">
<button v-else @click="showinput">點擊顯示輸入框</button>
</div>
</template>
<script>
export default {
data(){
return {
// 默認輸入框隱藏
inputVisible:false
}
},
methods:{
showinput(){
// 切換布爾值,把文本框展示出來
this.inputVisible = true
// 讓展示出來的文本框自動獲取焦點
this.$nextTick(()=>{
this.$refs.iptRef.focus()
})
},
showButton(){
this.inputVisible = false
}
},
}
</script>

總結(jié):
ref屬性:被用來給元素或者子組件注冊引用信息(id的替代者),應(yīng)用在html標(biāo)簽上獲取的是真實DOM元素,應(yīng)用在組件標(biāo)簽上是組件實例對象(vc)
使用方式:
打標(biāo)識:<h1 ref="xxx">...</h1> 或 <Test ref="xxx"></Test>
獲?。簍his.$refs.xxx
到此這篇關(guān)于Vue混合文件使用以及ref的引用的文章就介紹到這了,更多相關(guān)Vue混合文件及ref引用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Element實現(xiàn)動態(tài)增加多個輸入框并校驗
本文主要介紹了Element實現(xiàn)動態(tài)增加多個輸入框并校驗,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

