Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(compiler-sfc): defineDirective #10519

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

liuseen-l
Copy link
Contributor

@liuseen-l liuseen-l commented Mar 14, 2024

RFC: vuejs/rfcs#653

define custom directives will get friendly type hints

// before
<script setup>
      const vTest = defineDirective({ created(){} })
 </script>
// after 
export default {
      setup(__props, { expose: __expose }) {
        __expose();
       const vTest = { created(){} }
       return { vTest }
    }
}

When writing custom directives in a vue file, there is no type hint, so this new micro is added to solve this problem
image

Copy link

Size Report

Bundles

File Size Gzip Brotli
runtime-dom.global.prod.js 90.5 kB 34.4 kB 31 kB
vue.global.prod.js 148 kB 53.7 kB 47.9 kB

Usages

Name Size Gzip Brotli
createApp 50.8 kB 19.8 kB 18.1 kB
createSSRApp 54.1 kB 21.2 kB 19.3 kB
defineCustomElement 53 kB 20.6 kB 18.8 kB
overall 64.4 kB 24.9 kB 22.6 kB

@sxzz sxzz changed the title feat: defineDirective feat(compiler-sfc): defineDirective Mar 14, 2024
@Shyam-Chen
Copy link
Contributor

Why not just use import type { Directive } from 'vue';?

@liuseen-l
Copy link
Contributor Author

Why not just use import type { Directive } from 'vue';?

This issue is mentioned in the rfc

@sodatea sodatea added the ✨ feature request New feature or request label Apr 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants