@altemuller

Как вызвать метод на каждом элементе во время рендера списка?

<div class="profiles">
  <canvas width="50" height="50" v-for="p in profiles" :data-avatar="p.avatar"></canvas>
</div>


let app = new Vue({
    el: '#app',
    data: {
        profiles: []
    },
    methods: {
        renderAvatars () {}
    },
    mounted: function () {
      this.profiles.push({
                name: 'test',
                avatar: 0
      });
    }
});


Как мне вызывать метод renderAvatars на каждой итерации при рендере каждого элемента канваса?
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vuldozer
Штатными средствами vue, такое, вроде как, не выполнить. Можно использовать рендер-функции, это позволит управлять выводом.
Читать тут https://ru.vuejs.org/v2/guide/render-function.html
Можно закостылить вызов метода при изменении DOM ( DOMNodeInserted DOMNodeRemoved), но это жуткое говно. Можно узнать поподробнее задачу? Чего вы хотите добиться в итоге? Какие там процессы?
Ответ написан
dantothefuture
@dantothefuture
You sleep, she sleeps, they sleep, I... don't.
Мне кажется, имеет смысл вынести canvas в отдельный компонент и запускать отрисовку в mounted(). Так вся логика будет в одном месте, и париться с массивом $refs не придётся.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы