【无标题】

// Vue2、Vue3 中render函数差异化
https://github.com/vuejs/rfcs/blob/master/active-rfcs/0008-render-function-api-change.md#context-free-vnodes

一、基础配置

V2 选项式
h函数通过render参数进行传递。
export defalut{
	methods: {
		clickHandler(){}
	},
	render(h) {
		return h(tag, 
			{
				// 属性相关的配置
				class:{},
				style: {},
				attr: {},
				props: {},
				domProps: {
					innerHTML: 'init Value'
				},
				key: '',
				// 事件相关配置
				on: {
	                click: this.clickHandler,
	            },
			}, 
			[
				this.$slots.default // 设置插槽
			]
		)
	}
}

// 导致V2结构的原因是 Vnode extend Snabbdom

V3 组合式API
通过全局导入
import { h } from 'vue'

export defalut {
	methods: {
		clickHandler() {}
	},
	render() {
		return h(tag, 
			{
				class: ['button', { 'is-outlined': isOutlined }] || {},
				style: [{ color: '#34495E' }, { backgroundColor: buttonColor }],
				id: 'submit',
				innerHTML: '',
				onClick: this.clickHandler,
				key: 'submit-button'
			}, 
			[

			]
		)
	}
}

二、render中引入组件
V2
// component is: button-counter
export defalut {
	render(h) {
		return h('button-counter');
	}
}


V3
import { h, resolveComponent } from 'vue'
export defalut {
	render() {
		const ButtonCounter = resolveComponent('button-counter')
		return h('ButtonCounter');
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值