按照DOM规范<table>必须有<tbody>标签
原因:为了让大表格在下载的时候可以分段显示。
通常我们在创建<table>时会忽略它。不过浏览器在创建DOM时会自动帮我们创建。
参考这里:zh.javascript.info/dom-nodes
但以上情况建立在我们是直接使用的原生标签,直接挂载到dom上时,但当我们使用虚拟dom如react时。下面看个例子
react实现
原生实现
可以看出react创建的<table>元素并没有自动创建<tbody>标签
结论:react调用createElement创建的元素都不会自动创建,没有找到官方的解释,个人分析是因为react调用createElement创建的元素属于插入替换的过程在浏览器dom自动创建的步骤之后。