После того, как я использовал keep-alive в Vue, я не смог правильно получить данные DOM с помощью Ref - PullRequest
0 голосов
/ 29 апреля 2019

Я использовал keep-alive для кэширования страниц A и B в Vue, использовал один и тот же компонент на странице, а затем использовал ref в компоненте, чтобы получить текущую ширину компонента. Это было нормально, когда я впервые зашел на какую-либо страницу, но когда я переключился со страницы A на страницу B или со страницы B на страницу A во второй раз, ширина печатного компонента была равна 0. Позже я обнаружил, что он выводится. Является ли ширина компонента первой страницы, потому что она не отображается, поэтому ширина равна 0. Есть ли способ ее решить?

Vue 2.6.10

Это компонент.

    <div class="waterfall" ref="cardsBox">

    console.log('cardBox',this.$refs.cardsBox.offsetWidth);

Использование страниц A и B

<waterfall :list="articles" horizontal="3" vertical="2">
    <template v-slot="props">
        ......
    </template>
</waterfall>
...