vue單文件組件無法獲取$refs的問題
記錄一下學(xué)習(xí)webpack+vue碰到的一個大坑,踩這個坑是我才疏學(xué)淺的表現(xiàn),特此引以為戒。因?yàn)樵摽訉?shí)在是太坑了!
代碼
header.html
<body>
<div id="popup-wrap">
<popup ref="popup"></popup>
</div>
</body>
header.js
import popup from '../../components/popup/popup.vue'
import './header.scss'
let header_vue;
$(function () {
header_vue = new Vue({
el: '#popup-wrap',
data: {
},
mounted: {
// 輸出為{popup: VueComponent}
console.log(this.$refs);
}
components: {popup},
methods: {
pop_data: function () {
// 輸出為{}
console.log(this.$refs);
}
}
});
});
export {header_vue}
other.js
import {header_vue} from "../header/header";
$(function () {
header_vue.pop_data()
});
popup.vue是一個普通的彈窗組件。我在header.js中引入該組件,并實(shí)例化一個header_vue使用了popup組件,然后在other.js中引入header_vue試圖使用pop_data函數(shù),該函數(shù)僅輸出header_vue的$refs,經(jīng)測試,該函數(shù)輸出為一個空的對象,但是mounted鉤子正常輸出。
我就很納悶,為啥mounted輸出正常,函數(shù)調(diào)用就成空的了呢,Vue也已經(jīng)掛載完成了啊。
resolve
一番氣急敗壞的debug后,在header.js的$(function())加上了一句console.log('ok'),結(jié)果瀏覽器輸出了倆ok。短時間大腦的高速運(yùn)轉(zhuǎn)后,我發(fā)現(xiàn)了問題的所在:
webpack打包了兩遍header.js!
所以解決的辦法就是把header_vue = new Vue()改成window.header_vue = new Vue()。別處直接用就行了。
尾話
目前沒搞清楚具體的bug出現(xiàn)原因,正常使用webpack多次引入同一個export也沒有出現(xiàn)過此問題。但是肯定是我沒學(xué)明白,有大牛知道的話麻煩解答解答。
到此這篇關(guān)于vue單文件組件無法獲取$refs的問題的文章就介紹到這了,更多相關(guān)vue單文件無法獲取$refs 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決vue腳手架項(xiàng)目打包后路由視圖不顯示的問題
今天小編就為大家分享一篇解決vue腳手架項(xiàng)目打包后路由視圖不顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue中使用axios post上傳頭像/圖片并實(shí)時顯示到頁面的方法
今天小編就為大家分享一篇vue中使用axios post上傳頭像/圖片并實(shí)時顯示到頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue使用svg文件補(bǔ)充-svg放大縮小操作(使用d3.js)
這篇文章主要介紹了vue使用svg文件補(bǔ)充-svg放大縮小操作(使用d3.js),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
vue實(shí)現(xiàn)將時間戳轉(zhuǎn)換成日期格式
這篇文章主要介紹了vue實(shí)現(xiàn)將時間戳轉(zhuǎn)換成日期格式方式,具有很好的參考價值,希望對大家有所幫助,2023-10-10
vue項(xiàng)目環(huán)境搭建?啟動?移植操作示例及目錄結(jié)構(gòu)分析
這篇文章主要介紹了vue項(xiàng)目環(huán)境搭建、啟動、項(xiàng)目移植、項(xiàng)目目錄結(jié)構(gòu)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
解決VueCil代理本地proxytable無效報錯404的問題
這篇文章主要介紹了解決VueCil代理本地proxytable無效報錯404的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

