当前位置: 首页 > article >正文

vue的h函数和template语法如何混用?

前言: 

h函数定义:

我们编写的代码转化为真正的dom时,首先会先转换为VNode,然后多个Vnode进行结合起来转化为VDOM,最后VDOM才渲染成真实的DOM。在 Vue.js 中,h 函数是 createElement 的别名,它是 Vue 用来创建虚拟 DOM 节点(vnode)的一个函数。这个函数在编写渲染函数(render functions)时非常有用。通过使用 h 函数,你可以更加灵活地控制应用的输出结构,而不是仅仅依赖于模板。

h函数怎么使用,请看这篇博客:vue不得不会的h函数

那么我们有些场景难免会遇到h函数和template语法混用的时候,那么我们怎么样才能把h函数和template结合起来使用呢?

template语法版本:

<template>
  <div> 
    新页面
    ...
  </div>
</template>
 
<script setup lang="ts">
...
</script>
 
<style lang="less" scoped>
...
</style>

h函数版本:

<script>
import { h } from "vue";

export default {
  setup() {
    return () => h("div", null, "新页面...");
  },
};
</script>

思路:

React框架里一个函数就是一个组件,如果我们能把vue里h函数定义的函数也做成一个组件,那么我们不就能在template里进行调用了嘛~

在这里vue提供了一个api,叫做defineComponent就可以帮我们很好的实现,把h函数定义的函数做成一个单独的函数组件。

演示代码:

<template>
    <div>
        <h1>测试h函数与template语法混用</h1>
        <div>
            <hChildren info="number" />
        </div>
    </div>
</template>

<script setup>
import { defineComponent, h } from "vue";

const hChildren = defineComponent({
    props: {
        info: {
            type: String,
            default: ''
        }
    },
    setup() {
        return (props) => h('div',null,`123456 is ${props.info}`)
    }
});
</script>

效果图:

事实证明,我们的方法是可行的,那么你学会了吗?


http://www.kler.cn/news/338887.html

相关文章:

  • Linux——kubernetes 容器编排调度的平台
  • Redis BigKey问题
  • 「Java开发指南」如何用MyEclipse为iPhone搭建Spring应用程序?
  • 【网络】用网线连接两台电脑实现远程桌面
  • 【算法】拓扑排序
  • 基于STM32的智能门锁控制系统设计
  • Ancient City Ruins 古代城市遗址废墟建筑游戏场景
  • 处理 Vue3 中隐藏元素刷新闪烁问题
  • 【深度学习】自动微分——Autodiff or Autograd?
  • C++ 语言特性08 - 非静态成员的初始化
  • vmstat命令:系统性能监控
  • 期权懂|期权交易涨跌幅限制会随时调整吗?
  • Linux聊天集群开发之环境准备
  • 【C语言】数据在内存中的存储(万字解析)
  • Spring Boot 学习之路 -- Thymeleaf 模板引擎
  • 美国游戏产业的政府监管
  • 在spring boot项目中使用Spring Security的BCryptPasswordEncoder类进行相同密码不同密文的加密和验证
  • 【MySQL 09】表的内外连接
  • AMD模块化规范详解
  • 笔记整理—linux进程部分(8)线程与进程