Transforming Vue components to composable functions

vue-c2c

Transforming Vue components to composable functions (Draw UI with components, Access/Control with composables)

NPM Version

vue-c2c

When should I use this?

In certain use cases (e.g. confirm, dialog, toast), composable functions can provide greater flexibility and ease of use than components.

Install

npm i vue-c2c

Usage

c2c

Options

interface VueC2COptions {
  /**
   * Display style of the component.
   * @default 'v-if'
   */
  display?: 'v-if' | 'v-show'
  /**
   * Visible of the component.
   * @default false
   */
  visible?: boolean
  /**
   * Return a placeholder component that allows specifying the insertion position.
   * @default false
   */
  withPlaceholder?: T
  /**
   * Function that returns an HTMLElement where the component should be appended to.
   * Only applies if `withPlaceholder` option is false.
   * @default ()=> document.body
   */
  appendTo?: () => HTMLElement
}
<script setup>
  import { c2c } from 'vue-c2c'
  import Dialog from './Dialog.vue'

  const useDialog = c2c(Dialog, VueC2COptions)

  const { visible, show, hide, toggle, exposed } = useDialog(props, {
    emits: {
      onOk: () => {},
      onCancel: () => {},
    } 
  })
</script>

Example

withPlaceholder Option

withPlaceholder option provides two additional features:

  • Element placeholder:
The element placeholder functionality allows us to specify the location of created elements in a more flexible manner.
  • Friendly SSR support:
If you’re working on an SSR project (e.g. Nuxt), use withPlaceholder option for better SSR support.
<script setup>
  import { c2c } from 'vue-c2c'
  import Dialog from './Dialog.vue'

  const useDialog = c2c(Dialog, {
    withPlaceholder: true,
  })

  const { Placeholder, visible, show, hide, toggle, exposed } = useDialog(props, {
    emits: {
      onOk: () => {},
      onCancel: () => {},
    } 
  })
</script>

<template>
  <Placeholder>
    Hello World
  </Placeholder>
</template>

Example

License

MIT License © 2023

GitHub

View Github

Related Posts

Recent Posts

ഇടുക്കിയിലെ മലയോര മേഖലകളിൽ രാത്രിയാത്ര നിരോധിച്ചു. രാത്രി ഏഴു മുതൽ രാവിലെ ആറു വരെയാണ് നിരോധനം

ഏന്തയാർ ഈസ്റ്റിൽ പ്രളയത്തിൽ തകർന്ന പാലത്തിന് പകരം പുതിയ പാലം നിർമ്മിക്കുവാൻ താത്ക്കാലിക പാലം പൊളിച്ച് നീക്കി

Explore the Investment Opportunities: A Comprehensive Guide to Different Types of Mutual Funds

Title: Understanding Mutual Funds: A Beginner's Guide to Investing

തീവ്രമഴ മുന്നറിയിപ്പിന്റെ പശ്ചാതലത്തിൽ സംസ്ഥാനം ജാഗ്രതയിൽ

250,000 അപേക്ഷകൾ വർദ്ധിച്ചതിനാൽ ട്രാൻസ്‌പോർട്ട് കമ്മീഷണർ പരിശോധന പുനരാരംഭിക്കും

ഏലക്കയിൽ കീടനാശിനി സാന്നിധ്യം; ആറര ലക്ഷത്തിലധികം ടിൻ അരവണ നശിപ്പിക്കാൻ ടെൻഡർ ക്ഷണിച്ച് ദേവസ്വം ബോർഡ്‌

ഭീമൻ പാറക്കഷണങ്ങൾ അടർന്ന് ദേശീയ പാതയിലേക്ക് വീഴുന്നത് പതിവാകുന്നു. കുട്ടിക്കാനത്തിനും മുണ്ടക്കയത്തിനുമിടയിൽ നിലനിൽക്കുന്നത് വൻ അപകട ഭീഷണി

ചക്രവാതച്ചുഴി:അതിശക്തമായ മഴ വരുന്നു

പ്ലസ് വൺ പ്രവേശനം. അക്ഷയയിൽ തിക്കി തിരക്കേണ്ട, നെറ്റിവിറ്റി/ജാതി തെളിയിക്കാൻ പത്താംതരം സർട്ടിഫിക്കറ്റ് മതി