Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (1)

Лучшие ответы пользователя

Все ответы (6)
  • Как организовать разделы сайта на Vue?

    @Orfen
    Смотри.
    Если ты делаешь фронт на ларавеле, а не под ларавел, то пусть будут перезагрузки, а уж если ты решил полноценное SPA приложение, почему бы не делать его отдельно? Сделай API на Laravel, поставь JWTAuth для Laravel и будет тебе счастье.

    Будешь с фронта кидать запрос на авторизацию, тебе будет приходить токен, будешь его сохранять в localStorage.
    Подключаешь Axios, после авторизации в Headers засовываешь access_token, складываешь в API роуты в группу с мидлвейром под JWTAuth и все.

    Во Vue-Router используешь beforeEach, для проверок всяких. Например делаешь firstEnter для beforeEach.
    Создаешь модуль для Vuex, store, у которого в state будет first_enter = true/false. Тем самым можешь при авторизации регулировать, загружать тебе все настройки у пользователя заново или нет.

    // login.js
    export default{
         data(){
              return {
                  login: '',
                  pass: '',
                }
         }
         methods:{
              auth(){
                  axios.post(api_root + '/login')
                        .then(res => {
                              if(res.data.access_token){
                                  Vue.localStorage.set('access_token', res.data.access_token);   
                                  this.$store.commit('app/set_first_enter', true);                        
                              }
                        })         
              }
         }
    }


    // app.store.js
    const state = {
              first_enter: true,
    }
    
    const mutations = {
         set_first_enter(state, payload){
              state.first_enter = !!payload;
         },
    
         exit(state,payload){
               state.first_enter = true;
         }
    };
    
    const actions = {}
    const namespaced = {}
    
    export default {namespaced, state, getters, mutations, actions}


    //router.js
    import VueRouter from 'vue-router';
    import router from './routes'  //роуты
    
    const router = new VueRouter({
    	mode: 'history',
    	routes: routes,
    });
    
    router.beforeEach((to,from,next) => {
         //Здесь все проверки нужные, например есть ли в локалсторадже токен или нет 
    });
    
    export default router;
    Ответ написан
    1 комментарий
  • Vue - как правильно организовать структуру компонентов?

    @Orfen
    Используй slot, slot-scope пиши компоненты, которые друг от друга не зависят (модальное окно)
    https://ru.vuejs.org/v2/guide/components-slots.html
    Ответ написан
    Комментировать