vue中的h函数使用

hykeda1年前Vue1265

一、参数设置

h函数接收三个参数。

第一个参数:,可以为一个html标签,一个组件,一个异步组件,或者是一个函数式组件。

第二个参数:{ Object } Props,与attributes和props,以及事件对应的对象,我们可以在模板中使用,如果没有需要传入的属性,可以设置为null。

第三个参数:{String | Object |Array}可以是字符串Text文本或者是h函数构建的对象再者可以是有插槽的对象。

二、基本使用

return () => h('div', {class: 'demo'}, 'hello')

上面会返回一个div标签,<div class="demo">hello</div>。

如果要添加点击事件:

return () => h('div', {class: 'demo',onClick: closeDiv}, 'hello')

很多的属性都可以加到第二个参数中去。

如果需要多个标签或者组件嵌套:

return () => h('div', {class: 'demo'}, [
                h(Space, {}, [
                    h(Button, {size: 'small',onClick: closeDivCancel}, '取消'),
                    h(Button, {size: 'small', type: 'primary', onClick:delFunction(item,index)}, '确定'),
                    h(ABC, {}, {
                        default:props=>h('h3',{},‘你好’),// 默认插槽
                        test:props=>h('h3',{},‘test’),// 叫test的插槽
                    })
                ]),
            ])

这段代码创建了一个div,div中引入了一个space组件,组件中引入了两个button组件。组件分给配置了点击事件,大小等。用第三个参数传入h函数数组的方式实现。


arco design 框架中 Model.warning设置了cancelText无效,只能用footer插槽来实现,结合h函数:

delDiv.value = Modal.warning({
        title: '温馨提示',
        content: '您确定要删除该数据吗?',
        okText: '确定',
        cancelText: '取消',
        footer:(
            () => h('div', {class: 'info-modal-content'}, [
                h(Space, {}, [
                    h(Button, {size: 'small',onClick: closeDivCancel}, '取消'),
                    h(Button, {size: 'small', type: 'primary', onClick:delFunction(item,index)}, '确定')
                ]),
            ])
        )
    });


标签: vueh函数

相关文章

Vue3 Pinia持久化存储

一、Pinia持久化存储二、使用步骤1.安装插件代码如下(示例):npm i pinia-plugin-persist --save2.store/index.js代码如...

Vue2.x笔记

vue2.0 开始不能挂载到<html> 或者 <body> 上。 transition 动画过渡的时候,如果是:<transit...

Vue3二维码生成

一、装上插件npm install --save qrcode.vue二,引入插件到页面中import QrcodeVue from ...

直接在浏览器中使用 vue3+element-plus中icons的方法

首先引入文件,如果用cdn的方式:<script src="//unpkg.com/@element-plus/icons-vue"></script&...

vue项目上安装SCSS

原文:https://blog.csdn.net/zhouzuoluo/article/details/81010331  ① 使用vue-cli模板创建新项目:vu...

vite配置代理proxy实现跨域问题

最近在开发vite+vue项目时,调用接口获取服务器数据时提示接口有跨域问题,解决办法是配置代理:export default defineConfig({  //配置代理  se...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。