Блин, написал развернутый ответ. Нажал предпросмотр и забыл. А потом вернулся, обновил и... всё стерлось. 21 век, блин.
Сделал, что теперь можно делать так:
<FForm @submit="doAuth" v-model="authForm">
<FInputText caption="Имя пользователя" v-autofocus f-name="login"></FInputText>
<FInputText caption="Пароль" password f-name="password"></FInputText>
<div v-array="roles">
<FInputText
caption="Роль"
f-name="name"
></FInputText>
</div>
<button @click="rolesAdd({})">+</button>
<FButton caption="Войти" submit class="submit-button"></FButton>
</FForm>
где f-name и v-array работают интуитивно понятно, а собранный объект складывается в authForm, который определен в теге FForm.
Сделать можно много интересный вещей, которые нельзя сделать в vue из коробки. Копать в сторону модулей компилятора vue. Примеры тут:
https://github.com/vuejs/vue/tree/dev/src/platform...