Компонент, отображаемый несколько раз

#vue.js #vue-component

Вопрос:

Я разделяю блоки с v-if помощью-оператора, такого как:

 <div v-if="resp > 1023">
    <PdfViewer />
</div>

<div v-else>
    <PdfViewer />
</div>
 

Проблема, с которой я столкнулся, заключается в том, что при просмотре на экране меньшей ширины PDFViewer отображается один раз. При ширине более 1023 пикселей он отображается два раза, даже если второе упоминание о нем находится в блоке if-else. Другие html — элементы внутри него не отображаются, но компонент есть.

Соотв. — ширина экрана при монтировании:

     mounted() {
        this.resp = window.innerWidth;
        console.log(this.resp);
    }
 

Комментарии:

1. Удалить » после v-else

2. @Radeanu Проблема была не в этом. Просто опечатка в вопросе, сри.

3. пожалуйста, поделитесь кодом собственности resp

4. Я предполагаю, что это начальное состояние, в котором соотв » или не определено

5. изменился mounted на created ?

Ответ №1:

Я решил эту проблему, присвоив значение в созданном крючке жизненного цикла, поэтому значение устанавливается до оценки v-if.

 created() {
    this.resp = window.innerWidth;
    console.log(this.resp);
}