let [dir, source, arg, modifiers] = directive
if (!dir) continue
if (isFunction(dir)) {
- // TODO function directive
dir = {
- created: dir,
+ mounted: dir,
+ updated: dir,
} satisfies ObjectDirective
}
<script setup lang="ts">
-import { ObjectDirective } from '@vue/vapor'
+import { ObjectDirective, FunctionDirective, ref } from '@vue/vapor'
-const text = 'created (overwrite by v-text), '
+const text = ref('created (overwrite by v-text), ')
const vDirective: ObjectDirective<HTMLDivElement, undefined> = {
created(node) {
if (!node.parentElement) {
if (node.parentElement) node.textContent += 'mounted, '
}
}
+const vDirectiveSimple: FunctionDirective<HTMLDivElement> = (node, binding) => {
+ console.log(node, binding)
+}
+const handleClick = () => {
+ text.value = 'change'
+}
</script>
<template>
- <div v-directive:foo.bar="text" v-text="text" />
+ <div
+ v-directive:foo.bar="text"
+ v-text="text"
+ v-directive-simple="text"
+ @click="handleClick"
+ />
</template>