У меня есть массив данных:
[
{
type: select,
options: [foo, bar],
label: foo,
required: true
},
{
type: text,
options: [],
label: bar,
required: false
},
{
type: checkbox,
options: [],
label: baz,
required: true
}
]
и шаблон Vue:
<b-row>
<b-col>
<label :for = "{{label}}">{{ label }}<span class = "required" v-if = "required"/></label>
{{ checks type and injects proper form element here }}
</b-col>
</b-row>
Я пытаюсь выяснить, как лучше всего перебрать каждый объект и поместить каждый в свой собственный <b-col>, только с двумя столбцами в строке, чтобы он выглядел как следующая структура:
<b-row>
<b-col>
<label for = "size">foo<span class = "required" v-if = "required"/></label>
<b-form-select id = "size">
<options>foo</options>
<options>bar</options>
</b-form-select>
</b-col>
<b-col>
<label for = "size">bar<span class = "required" v-if = "required"/></label>
<b-form-text id = "size"/>
</b-col>
</b-row>
<b-row>
<b-col>
<label for = "size">baz<span class = "required" v-if = "required"/></label>
<b-form-select id = "size"/>
</b-col>
<label for = "size">barbaz<span class = "required" v-if = "required"/></label>
<b-form-select id = "size"/>
</b-col>
</b-row>
...etc.
Я изо всех сил пытаюсь найти лучший подход, чтобы сделать это чисто и в стиле vue.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете просто выполнить итерацию по массиву, поместить каждый элемент в b-col и указать ширину каждого из этих столбцов равной 50%, например:
<b-row>
<b-col v-for = "item in array" sm = "6">
...do something with item
</b-col>
</b-row>
sm = "6" сообщает начальной загрузке использовать объем, равный 6 столбцам (т.е. 50%)
Я не уверен насчет vue-bootstrap, но в документации по начальной загрузке указано:
If more than 12 columns are placed within a single row, each group of extra columns will, as one unit, wrap onto a new line
https://getbootstrap.com/docs/4.1/layout/grid/#column-wrapping
Спасибо @puelo, это действительно решает мою проблему. Я отмечаю это как правильное и ценю быстрый ответ, но мне любопытно, есть ли у кого-нибудь ответ и на мой исходный вопрос. Мне всегда интересно изучать новые способы достижения целей.