背景
这两天我打算抽象一个简单的表格组件,需要将类似elementUI的table-column
那样将插槽里的内容应用到cell里面,这时我就需要在模板里面渲染vNode了,由于之前我是参考elementUI实现表格组件的,这次只是简单实现,就没有给项目引入jsx(主要是想试试其他的实现,在工作之余找点乐趣。。)。也是在网上找了很久,网上倒是确实有方案,但好像讲得不是很浅显,至少我是差点漏过去了。
感谢这个哥们,解决了我的问题,我这里其实也只是再将他的方案写的清晰一点而已。
话说,vue3都出来了,现在写这个估计也没有多少用了,想着就当是水一下文章也好也许恰好还是有人需要,毕竟也不是每个公司都马上就上vue3不是。。
方案
其实方式就是创建一个组件,将vnode当作参数传入,利用createElement api 渲染,或者说在render里面渲染。可以创局部变量,当然也可以抽离出一个render-dom
组件。我的话是创建了局部变量,主要是感觉这种也不是很通用,再者那个参数的类型写得不是很好,基本就是报一个错补一个类型,( ╯□╰ ),