私はブートストラップグリッドを使用するVueコンポーネントを持っています。子コンポーネントでは、コントローラ内の特定のdivの現在の幅を取得したいと考えています。VueJS Get div of div
相続人の子コンポーネント:この例では
<template>
<div id="bg-prev" ref="prev">
<h1>{{x}}</h1>
</div>
<template>
export default {
props: ['section'],
data() {
return {
x: 0,
y: 0,
}
},
mounted() {
this.getWindowWidth();
},
methods: {
getWindowWidth() {
this.x = this.$refs.prev.clientWidth;
}
}
};
<style>
#bg-prev {
width: 100%;
}
</style>
幅は常に、私はそれを検査する際の要素が明確な幅を有しているにもかかわらず、0になります。私はここで何が欠けていますか、マウントされたフックは、vueライフサイクルの最新のものですか?任意のヘルプは高く評価されます;)
これは私のjsfiddleで正常に動作するようです。https://jsfiddle.net/ikbelkirasan/d18bosh6/1/ – Ikbel
これは本当に奇妙ですが、私の例ではコンポーネントは子コンポーネントです。たぶんそれは子供が親コンポーネントの前にマウントされるということがあるので、親を指す100%の幅はまだ存在しません。 –
あなたは本当に再現可能なデモを作成したいと思っています。私はなぜ私が起こるのか知っているかもしれませんが、検証するために自分でデモを作成する必要があります。デモを作成することで、簡単に作成できます。 – dfsq