提前
建议看官方,官方yyds
https://cn.vuejs.org/v2/guide/render-function.html
是坑啊
在文件组件内声明render(渲染函数),必须把模板去掉!它会优先选择模板!
其他方式的组件,优先选择render(渲染函数)
官方是这样说的
render
render
是实例的一个选项,值是一个函数,需要返回VNode
(虚拟节点)
函数里有2个参数,不过第二个我不想管
第一个参数也是函数,返回VNode
,它有一个名字createElement
, 官方为了方便我们理解说:它更准确的名字可能是createNodeDescription
(创建节点描述),因为它所包含的信息会告诉 Vue 页面上需要渲染什么样的节点,包括及其子节点的描述信息。我们把这样的节点描述为“虚拟节点 (virtual node)”,也常简写它为“VNode”。“虚拟 DOM”是我们对由 Vue 组件树建立起来的整个 VNode 树的称呼
createElement
参数
createElement(一,二,三);
第一个参数
{String | Object | Function}
一个 HTML 标签名、组件选项对象,或者 resolve 了上述任何一种的一个 async 函数。必填项
第二个参数
{Object}
一个与模板中 attribute 对应的数据对象。可选
暂时用不到,以后补充
第三个参数
{String | Array}
子级虚拟节点 (VNodes),由createElement()
构建而成,也可以使用字符串来生成“文本虚拟节点”。可选
疑惑
我还是没搞明白,为什么要用这个,是模板不香了吗