vue 渲染函数 h & jsx

h 是什么

vue 提供的创建虚拟 DOM 节点 (vnode)的函数。

https://cn.vuejs.org/api/render-function.html#h

jsx 是什么

JSX是 JavaScript XML(HTML)的缩写,表示在 JS 代码中书写 HTML 结构。简单理解就是: JSX=javascript xml(HTML) ,是 JavaScript 的语法扩展,只要你把HTML代码写在JS里,那就是JSX。

h和jsx的关系

vue文件中的template部分最终会编译成虚拟dom,h函数生成的是虚拟dom,jsx通过jsx的编译插件生成的也是虚拟dom,所以,h和jsx是生成虚拟dom的两种方式,又由于jsx更贴近于html与传统的template结构,jsx提供了更高的可读性

另外部分有react基础的同学,可能也更加喜欢jsx

什么时候要用 h | jsx

一:在一些特定场景下,使用 h(JSX)去编写页面会比使用模板语法简单且逻辑更清晰,可以使页面渲染逻辑与判断逻辑更好的绑定在一起。在对于一些代码量较少但重复性较高的片段,使用 h(JSX)可以做到更好的代码复用。
示例:

有这样一个组件,需要通过传入的 Level 去生成不同级别的标题,如果使用模板语法,那可能会需要这样写:

javascript 复制代码
<template> 
  <h1 v-if="level === 1">{{ title }}</h1>
  <h2 v-if="level === 2">{{ title }}</h2>
  <h3 v-if="level === 3">{{ title }}</h3>
</template>
javascript 复制代码
const LevelTag = ({ level }) => { 
  const Tag = `h${level}` 
  return <Tag>123</Tag> 
} 
return <LevelTag level={level} />
二:一些组件库内属性可以传入 vnode 的时候,有可能需要用到 h(JSX)

@arco.design 中的几个组件

Modal

notification

message

table

三:UI图里有一些稍微复杂的弹窗


vue3渲染函数(h函数)的变化-阿里云开发者社区 vue3渲染函数(h函数)的变化 https://developer.aliyun.com/article/1410904

相关推荐
小信丶13 分钟前
解决 pnpm dev 报错:系统禁止运行脚本的问题
前端·vue.js·windows·npm
૮・ﻌ・21 分钟前
Vue3:组合式API、Vue3.3新特性、Pinia
前端·javascript·vue3
前端不太难21 分钟前
RN + TypeScript 项目越写越乱?如何规范架构?
前端·javascript·typescript
神算大模型APi--天枢64622 分钟前
全栈自主可控:国产算力平台重塑大模型后端开发与部署生态
大数据·前端·人工智能·架构·硬件架构
苏打水com22 分钟前
第十五篇:Day43-45 前端性能优化进阶——从“可用”到“极致”(对标职场“高并发场景优化”需求)
前端·css·vue·html·js
JS_GGbond28 分钟前
用美食来理解JavaScript面向对象编程
开发语言·javascript·美食
@大迁世界30 分钟前
08.CSS if() 函数
前端·css
Moment36 分钟前
小米不仅造车,还造模型?309B参数全开源,深度思考完胜DeepSeek 🐒🐒🐒
前端·人工智能·后端
苏打水com39 分钟前
第十六篇:Day46-48 前端安全进阶——从“漏洞防范”到“安全体系”(对标职场“攻防实战”需求)
前端·javascript·css·vue.js·html
5C2442 分钟前
从思想到实践:前端工程化体系与 Webpack 构建架构深度解析
前端·前端工程化