• 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. }

    效果: 

  • 相关阅读:
    《Linux C/C++服务器开发实践》之第5章 UDP服务器编程
    Leetcode1191. K-Concatenation Maximum Sum
    React Query 数据库插件:与分布式系统的协作指南
    CUDA编程基础:如何实现c++事实绘制曲线,采用的绘图工具箱是:gnuplot
    vuex
    spark源码的scala解析
    博客自动化测试
    数据库系统概念学习1
    iterator(迭代器模式)
    赶紧进来!!!教你C语言实现扫雷小游戏(文章最后有源码!!!)
  • 原文地址:https://blog.csdn.net/Realizee/article/details/133044743