h()
其实
h()
和createVNode()
都是创建dom
节点一般情况下每个
vue
组件都用<template>
写html
, 但实际还可以在js
代码中通过render
函数生成dom
. 最主要常见组件库也需要配合h
使用.
h(标签,{属性},html标签的元素)
第一个参数是必须的。【跟原来的是一样的。没有发生变化】 类型:{String | Object | Function} 一个 HTML 标签名、一个组件、一个异步组件、或一个函数式组件。 是要渲染的html标签。 第一个参数div 是表示创建一个div的元素
第二个参数是可选的。 【第二个参数的格式发生了变化, 现在是一个扁平的 prop 结构】 类型:{Object} 主要是当前html中的各种属性。 在开发时。建议传,实在没有传的时候,传入 null
第三个参数可选的。(第三个参数建议使用函数返回,否者会有警告) 类型:{String | Array | Object} children 虚拟子节点(vnodes),当前html标签的元素。
ps:第三个参数建议使用函数返回。否者在控制有警告 Non-function value encountered for default slot. Prefer function slots for better performance.