在vue3的setup语法糖中,使用h函数渲染transition组件,导致钩子不生效.
有大佬知道怎么处理吗?
代码如下:
<template>
<zy-transiton>
<slot />
</zy-transiton>
</template>
<script lang="ts" setup>
import { h } from "vue";
const handleEnter = (el) => {
console.log(123); // 没有输出,方法没执行
console.log(el); // 没有输出,方法没执行
};
const handleLeave = (el) => {
console.log(el); // 没有输出,方法没执行
};
const zyTransiton = () => {
return h(
"transition",
{
onEnter: handleEnter,
onLeave: (e) => handleLeave(e),
}
);
};
使用渲染函数时,Vue 的内置组件需要直接传入组件对象本身:
多看看 官方文档。
—————————————— 2020.05.13 编辑 ——————————————
主要问题是
slots
用法不对,改成下面的即可:还有你这个项目的几个问题:
sass
,请把node-sass
清除掉,全面用sass
(这是官方推荐的实现,使用dart
编写,特性更新和问题修复是最快的)webpack
的话sass-loader
是不需要的-D
的方式去安装,即应该在devDependencies
下,而不是dependencies