我對Vue.js並不是很陌生,這可能就是爲什麼我覺得我一直在瘋狂地運行:)。在創建組件時,我經常這樣做,在這種情況下,我必須在mounted
函數中初始化Google Maps,這似乎是正確的做法。在mounted
函數中,我將訪問嵌套輸入字段的id
屬性並將事件偵聽器附加到它。很簡單的權利?Vue.js掛載函數不能訪問組件屬性
嗯,我覺得當我試着在我的頁面上多次使用該組件時,我在某種程度上訪問了mounted
函數中的相同(看似共享的)this
變量。
不知道爲什麼發生這種情況和/或如果它是一個功能,但使它更怪,道具在模板中產生正確的值。 (和方法以及內)
組件定義
<template>
<div class="LocationInput">
<input
type="text"
:id="id"
/>
</div>
</template>
<script>
export default {
name: 'LocationInput',
props: ['id'],
mounted() {
console.log('Component object representation ==> ', this)
console.log('ID ==> ', this.id)
}
}
</script>
使用我的組件...
<template>
<div class="MyTravelApp">
<LocationInput id="id1"/>
<LocationInput id="id2"/>
</div>
</template>
<script>
import LocationInput from './components/LocationInput';
export default {
components: { LocationInput }
}
</script>
我得到在一天結束的時候什麼是正確的模板中的id值,但在我的控制檯中,會記錄完全相同的對象和id,如下所示。注意_uid
屬性對於兩者來說都是一樣的。
爲了使更差的問題,修改所述mounted
功能的this
變量之後,在檢查,我觀察到的是,第二組件具有屬性修改爲好。所以他們基本上共享同一個對象,這非常奇怪。
我想知道是否有人有類似的問題,以及如何處理它。
爲什麼通過在由ID = 「ID1」,而不是使用組成部件的支柱:ID = 「ID1」? –
您有第一個模板關閉標記的模板打開標記。 –
@ M.Suurland這是因爲我把它作爲一個字符串傳遞。 – chidieberennadi