Vue混合文件使用以及ref的引用實(shí)例詳解
mixin混合
在日常開發(fā)中,當(dāng)我們開發(fā)的各種組件可能會(huì)有相同的內(nèi)容,我們可以將相同的內(nèi)容在各個(gè)相對(duì)應(yīng)的組件內(nèi)刪除,然后放在同一個(gè)配置里。所謂混合:兩個(gè)或多個(gè)組件共享一個(gè)配置。當(dāng)然這個(gè)配置文件的名字可以自定義,為了具體語義化,我將這個(gè)文件名命名mixin,當(dāng)然看個(gè)人喜好。
配置混合文件 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ù)會(huì)和原組件data數(shù)據(jù)進(jìn)行整合 data(){ return { x:10, //如果原組件data數(shù)據(jù)本身就有該數(shù)據(jù),以原組件數(shù)據(jù)為主 y:10 } } }
當(dāng)然混合也不能包容所有配置項(xiàng)或函數(shù),生命周期函數(shù)就是一個(gè)特例: 它不以任何為主,不管是原組件還是混合文件里面的生命周期函數(shù),只要有都要。
當(dāng)然混合我們也可以同全局組件一樣寫到全局配置上,這樣我們?cè)诨旌侠锩鎸懙絛ata數(shù)據(jù)或者是methods方法都會(huì)寫到vm上,直接使用無需調(diào)用。當(dāng)然這樣肯定是不合理的,所以Vue官方進(jìn)行解釋:推薦全局mixin應(yīng)該用于插件開發(fā),不建議應(yīng)用使用。
總結(jié):
mixin:混合可以把多個(gè)組件共用的配置提取成一個(gè)混入對(duì)象
使用方式:
1)定義混合文件
2)使用混入文件
局部導(dǎo)入:mixins:['xxx']
全局導(dǎo)入:Vue.mixin(xxx)
PS:這里解釋一下 Vue 的插件 ,所謂Vue的插件類似游戲外掛,讓體驗(yàn)感更強(qiáng)一些。
功能:用于增強(qiáng)Vue
本質(zhì):包含install方法的一個(gè)對(duì)象,install的第一個(gè)參數(shù)是Vue,第二個(gè)以后的參數(shù)是插件使用者傳遞的數(shù)據(jù)。
前言
在我們沒使用框架之前,通常一般使用 jquery 來幫助程序員簡(jiǎn)化操作DOM的過程,隨著 Vue 的流行,在MVVM模型的影響下,程序員不需要操作DOM只需把數(shù)據(jù)維護(hù)好就行(也稱:數(shù)據(jù)驅(qū)動(dòng)視圖),既然在 Vue 中不需要操作DOM,所以是很少在 Vue 項(xiàng)目中安裝和使用 jquery 的。假設(shè)我們在 Vue項(xiàng)目中需要操作DOM怎么辦?這時(shí)候就需要看看接下來講解的內(nèi)容了。
ref的引用DOM
ref用來輔助開發(fā)者在不依賴于 jQuery 的情況下,獲取 DOM 元素或組件的引用。
每個(gè) vue 的組件實(shí)例上,都包含一個(gè) $refs 對(duì)象,里面存儲(chǔ)著對(duì)應(yīng)的DOM元素或組件的引用。默認(rèn)情況下,組件的 $refs 指向一個(gè)空對(duì)象。
<template> <div class="app-container"> <!-- 注意:ref的值是唯一的,如果出現(xiàn)重復(fù)后者會(huì)覆蓋前者,這點(diǎn)尤為注意 --> <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引用頁面上的組件實(shí)例,則可以按照如下的方式進(jìn)行操作:
組件的 $nextTick(cb) 方法,會(huì)把 cb 回調(diào)推遲到下一個(gè) 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">點(diǎn)擊顯示輸入框</button> </div> </template> <script> export default { data(){ return { // 默認(rèn)輸入框隱藏 inputVisible:false } }, methods:{ showinput(){ // 切換布爾值,把文本框展示出來 this.inputVisible = true // 讓展示出來的文本框自動(dòng)獲取焦點(diǎn) this.$nextTick(()=>{ this.$refs.iptRef.focus() }) }, showButton(){ this.inputVisible = false } }, } </script>
總結(jié):
ref屬性:被用來給元素或者子組件注冊(cè)引用信息(id的替代者),應(yīng)用在html標(biāo)簽上獲取的是真實(shí)DOM元素,應(yīng)用在組件標(biāo)簽上是組件實(shí)例對(duì)象(vc)
使用方式:
打標(biāo)識(shí):<h1 ref="xxx">...</h1> 或 <Test ref="xxx"></Test>
獲?。簍his.$refs.xxx
到此這篇關(guān)于Vue混合文件使用以及ref的引用的文章就介紹到這了,更多相關(guān)Vue混合文件及ref引用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Vue的?Vuex的4個(gè)輔助函數(shù)
這篇文章主要介紹了關(guān)于Vue的?Vuex的4個(gè)輔助函數(shù),輔助函數(shù)的好處就是幫助我們簡(jiǎn)化了獲取store中state、getter、mutation和action,下面我們一起來看看文章具體的舉例說明吧,需要的小伙伴也可以參考一下2021-12-12VeeValidate 的使用場(chǎng)景以及配置詳解
這篇文章主要介紹了VeeValidate 的使用場(chǎng)景以及配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01vue路由切換時(shí)取消之前的所有請(qǐng)求操作
這篇文章主要介紹了vue路由切換時(shí)取消之前的所有請(qǐng)求操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09vue Tooltip提示動(dòng)態(tài)換行問題
這篇文章主要介紹了vue Tooltip提示動(dòng)態(tài)換行問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09vue使用localStorage保存登錄信息 適用于移動(dòng)端、PC端
這篇文章主要為大家詳細(xì)介紹了vue使用localStorage保存登錄信息 適用于移動(dòng)端、PC端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05詳解vue中在父組件點(diǎn)擊按鈕觸發(fā)子組件的事件
這篇文章主要介紹了詳解vue中在父組件點(diǎn)擊按鈕觸發(fā)子組件的事件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11vue實(shí)現(xiàn)a標(biāo)簽點(diǎn)擊高亮方法
下面小編就為大家分享一篇vue實(shí)現(xiàn)a標(biāo)簽點(diǎn)擊高亮方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03vue中使用vee-validator完成表單校驗(yàn)方案
vee-validator是一種基于vue模板的輕量級(jí)校驗(yàn)框架。本文主要討論的是vee-validator校驗(yàn)方案,感興趣的朋友跟隨小編一起看看吧2019-11-11