• Как лучше организовать работу с очередями на Bull, как отследить окончание обработки текущей очереди?

    coderisimo
    @coderisimo Автор вопроса
    1) вот это работает :
    let resultsReturned = false;
    
        let finishJobs = function (tasksQueue) {
            tasksQueue.getJobCounts().then((count) => {
                if (!count.waiting && !count.active) {
                    if (!resultsReturned) {
                        resultsReturned = true;
                        results.forEach(i => console.table(i));
                        setTimeout(() => {
                            resultsReturned = false;
                            results = [];
                        }, 500);
                    }
                }
            });
        };
    
    
    
    
      tasksQueue.on('completed', function (job, result) {
                results.push(result);
                job.remove();
                finishJobs(tasksQueue);
            }
        );
    Ответ написан
    2 комментария
  • Как во vue 3 массово передать пропсы в дочерний компонент?

    modelair
    @modelair
    unsocial
    для этого есть реактивность.
    <template>
      <child-component v-bind="globalObject"/>
    </template>
    
    <script setup>
    // import { Alien, DevTools, Test, ChildComponent } from 'where?'
    import { reactive } from 'vue'
    
    const globalObject = reactive({prop1, prop2, prop3})
    </script>

    а вообще читайте документацию. https://vuejs.org/guide/components/props.html - для новичков там исчерпывающе
    Ответ написан
    Комментировать
  • NUXT - Cannot read properties of undefined (reading 'state'), или как вывести данные из Store в компонент?

    ViperOMG
    @ViperOMG Автор вопроса
    Долго мучался, на свою версию устанавливал vuex через --force и все сломалось.
    было проделано следующее:
    -вырезан установленный vuex
    -переустановлен nuxtjs версия 2.17.2
    теперь все работает
    Всем спасибо за внимание, надеюсь кому-нибудь поможет.
    Ответ написан
    Комментировать
  • Как передать props из child в parent во vue compostion api?

    wapster92
    @wapster92
    Пропсы не передаются в родителя, только от родителя к ребенку. Можно передавать данные в родителя через события.

    const emit = defineEmits();
    
    const setData = (value) => {
      emit('set-data', value)
    }


    Снаружи слушаешь у компонента @setData

    Еще можно биндом слотов, но там передаются данные только в template внутри блока компонента.
    Так же можно передавать данные через стор.

    Все это описано в документации, ознакомься хотя бы раз внимательно со всем функционалом vue
    Ответ написан
    Комментировать
  • Как реактифицировать подгруженный html кусок разметки?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    import {compile} from "vue"
    
    compile('<custom-component />') // возвращает render-функцию.
    Ответ написан
    2 комментария
  • Как решить проблему исчезновения данных товаров при перезагрузке страницы во Vue.js приложении?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Во-первых: не используй onMounted внутри стора. onMounted - это хук компонента, а не стора. Оно работает только благодаря стечению обстоятельств.
    Во вторых: products должны быть ref. Сейчас они не реактивны(никак не реагируют на изменения). При этом ты присваииваешь массиву value. То что это хоть как-то работало - очередное чудо.
    В-третьих: ты должен учитывать, что какое-то время данные будут грузиться и показывать лоадер пока их нет.

    В общем если загрузка должна начинаться в лбом случае при первой инициализации store'a(обычно загрузку привязывают к маршрутам или компонентам), то выглядеть оно будет как-то так:
    export const useAllMainFiltersStore = defineStore('allMainFilters', () => {
      const products = ref([]);
    
      try {
        async function getStoreData() {
          sidebarResizeStore.updateSidebarVisibility()
          const data = await productsData();
          products.value = data;
        }
        getStoreData()
      } catch (error) {
        console.error('Error:', error);
      }
      
      return {
        products,
      }
    })


    В компоненте:
    const route = useRoute();
    // продукт делаем вычисляемым, чтоб не городить вотчеров
    const product = computed(() => getProductById(route.params.id));
    
    function getProductById(id) {
      console.log('products component: ', mainFiltersStore.products) //при первой загрузке всё ок, при перезагрузке страницы всё ломается и пустой массив в придачу
      return products.find(product => product.id == id);
    }
    
    watch(product, current => {
      // проверяем что продукт есть
      if (current) fetchComments(current.id);
    }, { immediate: true })
    Ответ написан
    3 комментария
  • Почему неуникальные статьи занимают первые места?

    @Gabib
    Можешь проверить через be1 возраст страниц у разных сайтов, если увидишь, что сайт с топ-1 самый старый, вот и ответ тебе)
    Также, стоит учитывать, что создавая контент уникальный на 100%, который будет отвечать требованиям пользователя, очень сложно
    Можешь также глянуть, по каким запросам эти сайты в топ-1-3 и посмотреть, отвечает ли сайт на твой вопрос по этому ключу
    Ответ написан
    1 комментарий
  • Почему на прод версии выдаёт ошибку?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Ответ очевиден - не использовать недокументированные* свойства типа __vueParentComponent.:)

    Раз ты используешь options api у тебя есть this.$parent для родительского компонента или ты можешь использовать ref для выбора конкретного.

    Однако в любом случае обращение к родителю выглядит как говнокод. Пробрасывай значение в props из родителя и не городи огород.

    * Работа в режиме разработки и в режиме продакшена очень сильно отличается. Даже если ты видишь какие-то свойства в консоли, то, если они не документированы, значит полагаться на то, что ни будут там всегда - ни в коем случае нельзя. Особенно на явно помеченные как внутренние через нижнее подчёркивание.
    Ответ написан
    Комментировать
  • Как откатить результат если не комитил?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Неважно, что вы делали, гит перед каждым изменением записывает хэш указателя текущей ветки в специальный журнал — reflog. Соответственно вы можете этот журнал посмотреть командой git reflog
    А можно просто сослаться на порядковый номер в журнале и откатить текущую ветку на два шага назад:
    git reset --hard HEAD@{2}
    Как-то как.
    Ответ написан
    Комментировать
  • Почему не срабатывает редирект?

    iMedved2009
    @iMedved2009
    Не люблю людей
    У вас какой то странный метод. Судя по всему он у вас предназначен для post запросов.
    php artisan route:list | grep login что покажет
    Ответ написан
    Комментировать
  • Vue.js + Fancybox, как использовать совместно?

    @voland700 Автор вопроса
    После долгих танцев с бубном проблема была решена. Опишу, возможно кому-нибудь пригодится.

    Fancybox v. 5 отлично работает, в том числе в связке с Vue.js. На сайте использовалась верстка, css - от существующего проекта, на котором так же использовалась Fancybox, предыдущей, 4 версии библиотеки. После удаления из css - файла фрагментов ранее используемого css Fancybox - проблема решена.
    Ответ написан
    Комментировать
  • Как такое сверстать?

    @archelon
    На изображении — таблица. Поэтому верстать это таблицей правильно.
    Ответ написан
    7 комментариев
  • Почему в response выводит HTML?

    @DolViol
    А если попробовать в контроллере вот так?
    return response()->json($titles)->header('Content-Type', 'application/json');

    Но вообще-то, как мне думается, проблема в настройках Sanctum.
    Ответ написан
    2 комментария
  • Почему в response ответ выводит 500 (Internal Server Error)?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    storage/logs/laravel.log
    Ответ написан
    Комментировать
  • Как сделать подобную анимацию?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Никакой Three.js тут не нужен. Ну то есть, конечно, никто не мешает сделать все это на WebGL и прикрутить здоровенный фреймворк сверху, но все же это будет слегка избыточным решением в большинстве случаев. Такое можно аргументировать только если весь сайт изначально так и делается на WebGL и это просто "один из" эффектов, которые туда нужно интегрировать.

    В 99% остальных случаев подобные штуки делаются одной svg-картинкой, одним path, который рисуется в зависимости от положения мышки и размеров контейнера. Немного школьной геометрии, ограничение диапазона возможных смещений всего этого - и дальше можно до посинения играть с алгоритмом расчета смещения, до тех пор, пока реакция на мышку не начнет нравится. Там уже нет универсального рецепта, все от дизайна зависит. Можно линейно привязать к положению мыши. Это обычно выглядит скучно. Можно использовать какую-то функцию от расстояния до центра, чтобы сделать движения менее равномерными. В каких-то случаях делают полноценный эффект инерции, как верно подмечено в соседнем ответе. Там получаются более естественные движения (обычно все это является развитием гравитационных моделей). Есть совсем замороченный подход, когда используется моделирование системы пружин (для общего развития можно загуглить силовые алгоритмы визуализации графов). Там можно получить целый ряд занятных эффектов, которые часто оказываются в тему как раз в таких фонах, где какие-то штуки связаны между собой прямыми линиями. Ну и можно просто вдохновиться какими-то физическими явлениями и сделать что-то "по мотивам".

    Ответ написан
    22 комментария
  • Почему не срабатывает реактивность Pinia?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    addEventListener принимает функцию вторым аргументом, а у вас там что?

    window.addEventListener("offline", () => useUserStore().setStatus(false))
    Ответ написан
    8 комментариев
  • Как добавить аттрибут к тегу без занчения?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Одиночный тег - это active="".
    Ну и да, по возможности выкинь нафиг jq, это очень плохая практика.
    Ответ написан
    Комментировать
  • Как и где можно фиксировать и сохранять данные до изменений в multiselect?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    В entity.selectedAccesses лежит последнее значение =\
    Ответ написан
    9 комментариев