vue中render函数和h函数以及jsx的使用方式

 更新时间:2022年08月16日 09:44:29   作者:丑小鸭变黑天鹅  
这篇文章主要介绍了vue中render函数和h函数以及jsx的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、认识h函数

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

  • Vue在生成真实的DOM之前,会将我们的节点转换成VNode,而VNode组合在一起形成一颗树结构,就是虚 拟DOM(VDOM)
  • 事实上,我们之前编写的 template 中的HTML 最终也是使用渲染函数生成对应的VNode
  • 那么,如果你想充分的利用JavaScript的编程能力,我们可以自己来编写 createVNode 函数,生成对应的VNode
  • 那么我们应该怎么来做呢?使用 h()函数
  • h() 函数是一个用于创建 vnode的一个函数
  • 其实更准确的命名是 createVNode() 函数,但是为了简便在Vue中将之简化为 h() 函数

二、h()函数 如何使用呢?

它接受三个参数: 

注意事项:

如果没有props,那么通常可以将children作为第二个参数传入

如果会产生歧义,可以将null作为第二个参数传入,将children作为第三个参数传入

三、h函数的基本使用

  • h函数可以在两个地方使用
  • render函数选项中
  • setup函数选项中(setup本身需要是一个函数类型,函数再返回h函数创建的VNode)

四、h函数计数器案例

五、setup函数计数器案例

六、函数组件和插槽的使用

七、jsx组件的使用

具体的语法可以看我的react文章,这里给一个在vue中使用jsx的简单案例

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

您可能感兴趣的文章:

相关文章

  • Vue中配置使用process.env详解

    Vue中配置使用process.env详解

    process.env 是 Node.js 中的一个环境对象,其中保存着系统的环境的变量信息,可使用 Node.js 命令行工具直接进行查看,这篇文章主要介绍了Vue中配置process.env详解,需要的朋友可以参考下
    2023-03-03
  • vue3编译报错ESLint:defineProps is not defined no-undef的问题

    vue3编译报错ESLint:defineProps is not defined&nbs

    这篇文章主要介绍了vue3编译报错ESLint:defineProps is not defined no-undef的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Vue模板语法v-bind教程示例

    Vue模板语法v-bind教程示例

    这篇文章主要为大家介绍了Vue模板语法v-bind教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Vue通过provide inject实现组件通信

    Vue通过provide inject实现组件通信

    这篇文章主要介绍了Vue通过provide inject实现组件通信,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • uniapp APP中内嵌webview的H5与APP相互通讯动态传参代码示例

    uniapp APP中内嵌webview的H5与APP相互通讯动态传参代码示例

    最近外部公司的app要接入我司的uni H5项目,所以这篇文章主要给大家介绍了关于uniapp APP中内嵌webview的H5与APP相互通讯动态传参的相关资料,需要的朋友可以参考下
    2024-04-04
  • 一文带你掌握 Vue3.5常用特性

    一文带你掌握 Vue3.5常用特性

    Vue3.5 发布已近半年,这篇文章主要来和大家技术一下它常用的新增和改动特性,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2025-01-01
  • vue使用节流函数的踩坑实例指南

    vue使用节流函数的踩坑实例指南

    防抖和节流的目的都是为了减少不必要的计算,下面这篇文章主要给大家介绍了关于vue使用节流函数踩坑的相关资料,需要的朋友可以参考下
    2021-05-05
  • 使用el-form-item设置标签长度

    使用el-form-item设置标签长度

    这篇文章主要介绍了使用el-form-item设置标签长度方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue2+marked.js实现AI流式输出的项目实践

    Vue2+marked.js实现AI流式输出的项目实践

    本文主要介绍了Vue2+marked.js实现AI流式输出的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • vue实现拖动调整左右两侧容器大小

    vue实现拖动调整左右两侧容器大小

    这篇文章主要为大家详细介绍了vue实现拖动调整左右两侧容器大小,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论