Слышал что это плохая практика, не понимаю почему, когда кодил на c# обычный if очень даже хорошо сочетался с for, что тут не так, в чем проблема?
Плохая практика это потому что у директивы v-for приоритетность важнее и каждый раз записывая как в первом блоке кода у нас будет сначала перебираться весь массив, а затем внутри перебора будет проверятся можно ли его отображать, в таких ситуациях лучше выносить блок с v-if в родительский блок, в данном случае это можно сделать с ul.
<div id="ex">
v-for="worker of workers" v-if="visible===true">
<li
{{worker}}
Как в первом блоке писать плохо, сверху уже объяснил почему, лишние операции.
var a = new Vue({
el:'#ex',
data:{
workers: [
'Peter','Jim','Leo','Alexander','Alexey'
],
visible:true
},
})
В этом блоке идет объявление экземпляра vue, создаем массив, и логическое свойство для проверки, можно ли выводить массив или нет.
<div id="ex">
<ul v-if="visible===true">
<li v-for="worker of workers">
{{worker}}
Третий блок – как правильно, а правильно минимизировать напряжение и просто поднять блок с условием вывода, даже в самом c#, там же выгоднее написать условие, перед циклом, если перебор требуется только в зависимости от значения условия, это всё равно что написать цикл, внутри которого будет происходить проверка можно ли его выводить, и в случае если нельзя то будет стоять оператор break.