How to reuse same function in more than one vue component
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have onClick handler in 6 vue components that is repeated, I extracted it in this mixin
//mixin.vue
export default {
methods: {
onLastMonth () {
// get first day of the month.
// get last day of the month
// call axios GET method.
}
}
//component.vue
import mixin1 from './components/mixin.vue'
export default {
mixins: [mixin1],
name: 'component1'
}
I want to reuse that mixin in other 6 vue components but the onClick event fired this error in the browser console:
Property or method "onLastMonth" is not defined on the instance but referenced during render.
vue.js vue-component vue-mixin
add a comment |
I have onClick handler in 6 vue components that is repeated, I extracted it in this mixin
//mixin.vue
export default {
methods: {
onLastMonth () {
// get first day of the month.
// get last day of the month
// call axios GET method.
}
}
//component.vue
import mixin1 from './components/mixin.vue'
export default {
mixins: [mixin1],
name: 'component1'
}
I want to reuse that mixin in other 6 vue components but the onClick event fired this error in the browser console:
Property or method "onLastMonth" is not defined on the instance but referenced during render.
vue.js vue-component vue-mixin
sounds like you need a vuex store.
– Andrew1325
Nov 16 '18 at 22:00
could you provide the mixin code and the one of that components?
– Boussadjra Brahim
Nov 16 '18 at 22:05
1
mixin should be an object, while default export of*.vue
files is a component. Try renaming yourmixin.vue
intomixin.js
.
– aBiscuit
Nov 16 '18 at 22:24
I changed .vue to .js and it is working !!!
– Mahmoud Fayez
Nov 19 '18 at 1:27
add a comment |
I have onClick handler in 6 vue components that is repeated, I extracted it in this mixin
//mixin.vue
export default {
methods: {
onLastMonth () {
// get first day of the month.
// get last day of the month
// call axios GET method.
}
}
//component.vue
import mixin1 from './components/mixin.vue'
export default {
mixins: [mixin1],
name: 'component1'
}
I want to reuse that mixin in other 6 vue components but the onClick event fired this error in the browser console:
Property or method "onLastMonth" is not defined on the instance but referenced during render.
vue.js vue-component vue-mixin
I have onClick handler in 6 vue components that is repeated, I extracted it in this mixin
//mixin.vue
export default {
methods: {
onLastMonth () {
// get first day of the month.
// get last day of the month
// call axios GET method.
}
}
//component.vue
import mixin1 from './components/mixin.vue'
export default {
mixins: [mixin1],
name: 'component1'
}
I want to reuse that mixin in other 6 vue components but the onClick event fired this error in the browser console:
Property or method "onLastMonth" is not defined on the instance but referenced during render.
vue.js vue-component vue-mixin
vue.js vue-component vue-mixin
edited Nov 16 '18 at 22:10
Mahmoud Fayez
asked Nov 16 '18 at 21:56
Mahmoud FayezMahmoud Fayez
2,98821431
2,98821431
sounds like you need a vuex store.
– Andrew1325
Nov 16 '18 at 22:00
could you provide the mixin code and the one of that components?
– Boussadjra Brahim
Nov 16 '18 at 22:05
1
mixin should be an object, while default export of*.vue
files is a component. Try renaming yourmixin.vue
intomixin.js
.
– aBiscuit
Nov 16 '18 at 22:24
I changed .vue to .js and it is working !!!
– Mahmoud Fayez
Nov 19 '18 at 1:27
add a comment |
sounds like you need a vuex store.
– Andrew1325
Nov 16 '18 at 22:00
could you provide the mixin code and the one of that components?
– Boussadjra Brahim
Nov 16 '18 at 22:05
1
mixin should be an object, while default export of*.vue
files is a component. Try renaming yourmixin.vue
intomixin.js
.
– aBiscuit
Nov 16 '18 at 22:24
I changed .vue to .js and it is working !!!
– Mahmoud Fayez
Nov 19 '18 at 1:27
sounds like you need a vuex store.
– Andrew1325
Nov 16 '18 at 22:00
sounds like you need a vuex store.
– Andrew1325
Nov 16 '18 at 22:00
could you provide the mixin code and the one of that components?
– Boussadjra Brahim
Nov 16 '18 at 22:05
could you provide the mixin code and the one of that components?
– Boussadjra Brahim
Nov 16 '18 at 22:05
1
1
mixin should be an object, while default export of
*.vue
files is a component. Try renaming your mixin.vue
into mixin.js
.– aBiscuit
Nov 16 '18 at 22:24
mixin should be an object, while default export of
*.vue
files is a component. Try renaming your mixin.vue
into mixin.js
.– aBiscuit
Nov 16 '18 at 22:24
I changed .vue to .js and it is working !!!
– Mahmoud Fayez
Nov 19 '18 at 1:27
I changed .vue to .js and it is working !!!
– Mahmoud Fayez
Nov 19 '18 at 1:27
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53345971%2fhow-to-reuse-same-function-in-more-than-one-vue-component%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53345971%2fhow-to-reuse-same-function-in-more-than-one-vue-component%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
sounds like you need a vuex store.
– Andrew1325
Nov 16 '18 at 22:00
could you provide the mixin code and the one of that components?
– Boussadjra Brahim
Nov 16 '18 at 22:05
1
mixin should be an object, while default export of
*.vue
files is a component. Try renaming yourmixin.vue
intomixin.js
.– aBiscuit
Nov 16 '18 at 22:24
I changed .vue to .js and it is working !!!
– Mahmoud Fayez
Nov 19 '18 at 1:27