← All posts about JavaScript

How to make global functions in Vue.js

June 16, 2020

A function or a method defined inside a component in Vue.js would not be accessible to all other components, it may happen that another component requires this function. Placing a function outside of a component will not help you when working with Vue.js.

Let’s find out how to create a global function that can be called from anywhere without making any imports.

Using Mixins

A Mixin is an object that contains the same options as a component and can be reused and distributed between Vue components. We will create a globalHelper function inside a Mixin and call it from a component.

Open your main file then create a global mix:

Vue.mixin({
  methods: {
    globalHelper: function () {
      alert("Hello world")
    },
  },
})

Now all of the above Mixin options will be automatically implemented for all components. For example, we can call the function from the component model:

import * as BackgroundFetch from "expo-background-fetch"
import * as TaskManager from "expo-task-manager"

This way we define our task, it must be outside of any component.

<div v-on:click="globalHelper">Click me</div>

Using Plugins

Plugins can also add global functions to Vue. So let’s create a simple plugin containing our global function. In our main file, we can add the plugin directly or create and import it from a separate file.

const MyPlugin = {
  install(Vue, options) {
    Vue.prototype.globalHelper = () => {
      alert("Hello world")
    }
  },
}
Vue.use(MyPlugin)

Now we can make the same call as we did before

<div v-on:click="globalHelper">Click me</div>

Chafik Gharbi Web and mobile app developer interested in everything related to JavaScript Follow me on Twitter

© 2020 Chafik Gharbi