Skip to content

Guide ​

Install ​

bash
$ pnpm install vue-funcall
bash
$ yarn install vue-funcall
bash
$ npm install vue-funcall

Usage ​

Basic Usage ​

Pass it to the app as a plugin, make component mount on Vue instance.

Details

This step can be ignored if you ensure that Vue context data will not be used in component

ts
import { createApp } from 'vue'
import { VueFuncallPlugin } from 'vue-funcall'
import App from './App.vue'

const app = createApp(App)
app.use(VueFuncallPlugin) 
app.mount('#app')

Use it in any scenario you wish to use

ts
import { createFuncall } from 'vue-funcall'

createFuncall(Component, props, options)

Outside close ​

vue-funcall export close function for user

ts
import { createFuncall } from 'vue-funcall'

cont { close } = createFuncall(Component, props)

close()

Async return result ​

It is not the capability that the library needs to support, but if you want to implement that functionality through the library, it's a demo

ts
import { createFuncall } from 'vue-funcall'

const asyncCall = () => {
  return new Promise((resolve, reject) => {
    createFuncall(Component, {
      onSucceed: (result) => resolve(result),
      onFailed: (result) => reject(result)
    })
  })
}

API ​

ts
const { close } = createFuncall(Component, props, options)

Parameters ​

NameDescription
ComponentComponent that need be function called
propsComponent support props
optionsan object of options for createFuncall

Return Values ​

NameDescription
closea function that unmount Component

Options ​

NameDescriptionTypeDefault
visibleInternal field of Component to control Component display or not, If Component are not similiar field, define undefinedstring | undefinedmodelValue
onClosedInternal field of Component to listen Component closed, If Component are not similiar field, define undefinedstring | undefinedundefined
containerDefine component mount node, default is document.bodyHTMLElement | undefineddocument.body
appContextFor support multiple vue instanceAppContext-
slotsComponent slotsSlots-

Released under the MIT License.