За последние 24 часа нас посетили 22859 программистов и 1268 роботов. Сейчас ищут 759 программистов ...

VueJS и Vue-router избавиться от дублирования кода

Тема в разделе "JavaScript и AJAX", создана пользователем mkramer, 25 дек 2017.

  1. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Делаю первый раз полностью админку на Vue.js, в принципе, втянулся в процесс (да, знаю, по JS я сильно отстал от мира:)). Но слегка раздражает в каждом компоненте писать
    Код (Javascript):
    1. beforeRouteEnter (to, from, next) {
    2.     axios.get(
    3.         "/admin/json" + to.fullPath
    4.     ).then(function (response) {
    5.         next(vm => vm.updateItems(response.data));
    6.     });
    7. },
    8. beforeRouteUpdate (to, from, next) {
    9.     axios.get(
    10.         "/admin/json" + to.fullPath
    11.     ).then((response) => {
    12.         this.updateItems(response.data);
    13.         next();
    14.     });
    15. },
    Каким образом это можно куда-то вынести, чтобы повторно использовать везде, где необходимо?
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    1. Vuex - сразу впиливай в проект, потом будет проще )
    2. https://ru.vuejs.org/v2/guide/mixins.html - миксины помогут тебе впилить в компонент всё что нужно по дефолту
    3. Nuxt - порог вхождения будет чуть выше, придется пострадать немного, но с фреймворком лучше чем без, правда потребует запустить nodejs на сервере.
    --- Добавлено ---
    @mkramer я не особо специалист в этом, сам время от времени борюсь и страдаю, но если что - спрашивай.
     
    mkramer нравится это.
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    3 - не про меня, я не точно выразился, бэк у меня на php и Laravel. 1 и 2 - попробую обязательно.
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    На всякий: vue devtools в хром тоже поставь. Удобно, сразу видно data/computed/actions компонентов, vuex store, эвенты и т.п.