Загрузите изображение, даже если компонент не отображается

#javascript #vue.js

#javascript #vue.js

Вопрос:

У меня есть веб-приложение, разработанное в Vue.js , который имеет компонент бокового навигационного меню. Этот компонент имеет условный рендеринг для отображения только при необходимости. Внутри компонента есть изображение для отображения кнопки закрытия для бокового меню.

 <transition name="fade">
  <div
    v-if="side_menu_is_open"
    ...
  >
    <div
      ...
    >
        <div class="mt-3 p-2" @click="toggleSideMenu">
          <img :src="require('../assets/icons/cancel.svg')" class="w-8">
        </div>

      <ul class="mt-4">
        ...
      </ul>
    </div>
  </div>
</transition>
 

Все это работает нормально. Однако при первом отображении / отображении компонента бокового меню изображению требуется некоторое время для загрузки файла. Есть ли способ загрузить изображение для условного рендеринга, даже если компонент не загружен?

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

1. Если это очень простой SVG, почему бы просто не встроить его вместо этого?

Ответ №1:

Вы можете предварительно загрузить это изображение в свой created() метод. Это гарантирует, что браузер загрузил изображение, когда это необходимо.

 var img = new Image();
img.src = '../assets/icons/cancel.svg';
 

Или вместо использования <img /> тега вы можете использовать встроенный svg непосредственно в вашем html.

Ответ №2:

Кнопка закрытия не должна быть частью рендеринга условия.

Нравится

 <div flex direction: row, flex:1>
  <div flex-direction:column flex:0.90>
  {
  //contion rendering
  }
  </div>
  <img src={closeIcon} flex:0.10/>

</div>