Cannot use v-for on stateful component root element because it renders multiple elements? Cannot use v-for on stateful component root element because it renders multiple elements? vue.js vue.js

Cannot use v-for on stateful component root element because it renders multiple elements?


Your template has to have one root element. It's just one rule you cannot break. Since you're making a table, it would make sense to make tbody the root element.

var Users = {    template: `        <tbody>            <tr v-for="list in UsersData">                <th>{{ list.idx }}</th>                <td>{{ list.id }}</td>            </tr>        </tbody>    `,    data: function () {        return {            UsersData //get data from query        }    }}

index.blade.php

@extends('layout')@section('content')<table>    <thead>        <tr>            <th>IDX</th>            <th>ID</th>        </tr>    </thead>    <users></users></table>@endsection


For the lazy: Vue interprets the root element having a v-for loop on it as producing multiple root level elements (a nono in modern JS frameworks).

Just wrap your template in a superfluous blank <div>. 👌