Riot DOM Caveats
Riot components rely on browsers rendering so you must be aware of certain situations where your components might not render properly their template.
Consider the following tag:
<my-fancy-options>
<option>foo</option>
<option>bar</option>
</my-fancy-options>
This markup is not valid if not injected in a <select>
tag:
<!-- not valid, a select tag allows only <option> children -->
<select>
<my-fancy-options />
</select>
<!-- valid because we will render the <option> tags using <select> as root node -->
<select is="my-fancy-options"></select>
Tags like table, select, svg…
don’t allow custom children tags so the use of custom riot tags is forbidden. Use is
instead like demonstrated above. more info