In my Vuejs project, I have some common js functions which would be used through multiple components:
My code structure is as below, which was introduced in http://vuejs.github.io/vuex/en/structure.html:
├── index.html
├── main.js
├── components
│ ├── App.vue
│ └── ...
└── vuex
├── store.js # exports the store (with initial state and mutations)
└── actions.js # exports all actions
some_component.vue
<template>
// The page content
</template>
<script>
export default {
attached: function() {
if(!isLoggedIn) {
$this.router.go('/signin');
}
}
}
</script>
In this case, I want to make a function loginRequired
which would be called in several components.
So how should I organize the code?
Here is my choice
├── index.html
└── src
├── main.js
├── config.js # Here I define global constants like a base url for vue-resource
├── api # here is all the http calls using Vue.resource
│ ├── index.js
│ └── resource.js # here I define interceptors, for errors log, auth, etc
├── components
│ ├── utils # Here I define common functions for components
│ ├── App.vue
│ └── ...
└── vuex
├── store.js # exports the store (with initial state and mutations)
└── actions.js # exports all actions
So what you want, according to my file structure, should be in the src/components/utils
folder, at least that it uses some http calls, in that case, it would be part of the src/api
api folder. In this case, the routes are in the main.js
file, some people prefer to have a dedicated file routes.js
in the src
folder, it's up to you
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With