Даже если игнорировать все вещи на стороне сервера, это не сработает:
<tbody>
<tab-descgen></tab-descgen>
</tbody>
Было бы хорошо в однофайловом компоненте, но если эта разметка доходит до браузера (какв вашем случае) он вырвет tab-descgen
из таблицы, прежде чем Vue приблизится к нему.
Вам нужно будет использовать is
, чтобы обойти это:
<tbody>
<tr is="tab-descgen"></tr>
</tbody>
Это объяснено здесь в документах:
https://vuejs.org/v2/guide/components.html#DOM-Template-Parsing-Caveats
Короче говоря, только элементы tr
допускаются как прямые потомки tbody
, все остальное вытаскивается.Обходной путь должен использовать tr
, а затем сообщить Vue, что вы действительно хотели, используя is
.