Sometimes, we want to share methods between components in our Vue project.
In this article, we’ll look at how to share methods between components in our Vue project.
Share a Method Between Components in Vue
To share a method between components in Vue, we can create a module that exports the method.
For instance, we can write:
src/shared.js
export default {
bar() {
alert("bar")
}
}
Then we can use it in our component by writing:
src/App.js
<template>...</template>
<script>
import shared from './shared'
export default {
created() {
shared.bar();
}
}
</script>
We imported the shared
module and called the bar
method inside it.
Alternatively, we can create a mixin, which is a piece of code that can be merged into our component.
For instance, we can write:
const cartMixin = {
methods: {
addToCart(product) {
this.cart.push(product);
}
}
};
Then we can use it in our component by writing:
const Store = Vue.extend({
template: '#app',
mixins: [cartMixin],
data(){
return {
cart: []
}
}
})
We call Vue.extend
to create a subclass of the Vue
constructor.
We can then make a new instance of Store
and render that in our app.
Conclusion
To share a method between components in Vue, we can create a module that exports the method.