• h()函数


    前言

    Vue推荐在绝大数情况下使用模板来创建HTML,然后一些特殊的场景,你真的需要JavaScript的完全编程的能力,这个时候你可以使用渲染函数 ,它比模板更接近编译器;

    h()函数是什么

    Vue在生成真实的DOM之前,首先会将节点转换成VNode,而VNode组合在一起形成一颗树结构,就是虚拟DOM(VDOM),最后VDOM才渲染成真实的DOM;

    如果我们直接编写生成vnode的代码,那效率会更高,这里就是h()函数。h函数也可以称为createVnode函数,用于创建 vnode 的一个函数

    h()函数怎么用

    h函数 接收三个参数。 例:()=>h('h1',{class="classsNmae"}, '大家好!')
    第一个: 可以为一个html标签,一个组件,一个异步组件,或者是一个函数式组件。
    第二个:{ Object } Props,与attributes和props,以及事件对应的对象,我们可以在模板中使用,如果没有需要传入的属性,可以设置为null。
    第三个:{String | Object |Array}可以是字符串Text文本或者是h函数构建的对象再者可以是有插槽的对象。

    代码例子:

    1. {
    2. label: t('components.SubTaskDetail.5q09prnzux41'),
    3. value: dataCheckDetail
    4. ? h(
    5. 'div',
    6. null,
    7. h('div', { class: 'desc-value-row' }, [
    8. h(
    9. 'div',
    10. null,
    11. t('components.SubTaskDetail.5q09xhsvcq44', {
    12. totalDataSize: dataCheckData.value?.total || 0,
    13. totalRowCount: dataCheckData.value?.totalRows || 0,
    14. totalTableCount: dataCheckData.value?.tableCount || 0,
    15. totalTableFinishCount:
    16. dataCheckData.value?.completeCount || 0
    17. })
    18. ),
    19. h(
    20. 'div',
    21. { class: 'arco-tag arco-tag-checked speed-tag' },
    22. t('components.SubTaskDetail.5q09xhsvcq45', {
    23. avgSpeed: dataCheckData.value?.avgSpeed || 0
    24. })
    25. )
    26. ])
    27. )
    28. : t('components.SubTaskDetail.5q09prnznzg0'),
    29. span: 5
    30. }
    31. // "5q09prnzux41": "数据校验:",
    32. // "5q09xhsvcq44": "数据总量:{totalDataSize}MB,数据总行数:{totalRowCount}行,数据总表数:{totalTableCount}张,已完成表数:{totalTableFinishCount}张",
    33. // "5q09xhsvcq45": "平均校验速率:{avgSpeed}MB/s"
    34. //:deep深度选择器
    35. :deep(.desc-value-row) {
    36. display: flex;
    37. align-items: center;
    38. }
    39. :deep(.speed-tag) {
    40. margin-left: 50px;
    41. }

    效果: 

  • 相关阅读:
    【算法】模拟退火算法(SAA,Simulated Annealing Algorithm)
    【LeetCode练习】19. 删除链表的倒数第 N 个结点(中等|JS|快慢指针)
    Pytorch 的数据处理 学习笔记
    【PG】PostgreSQL逻辑备份(pg_dump)
    【学习笔记】:Maven初级
    39. 组合总和
    阿里二面:列出 Api 接口优化的几个技巧
    导致爬虫无法使用的原因有哪些?
    SV--线程(semaphore)
    【计算机视觉】图像分割与特征提取——基于Log、Canny的边缘检测
  • 原文地址:https://blog.csdn.net/Realizee/article/details/133044743