
Иван
07.05.2018
05:19:43
Лучше вью притормози)

Timur
07.05.2018
05:20:11

Иван
07.05.2018
05:20:15
Сделай тот компонент, который зависит от жиквери асинхронным
В родительском компоненте вместо CompName: CompName сделай
CompName: () => waitForJquery().then(() => import('components/CompName'))

Google

Иван
07.05.2018
05:21:59
Ну в таком вот духе что-то

Timur
07.05.2018
05:22:22
у меня .blade шаблон и родительского нет
есть просто компонент, который вставляется в шаблон, а затем компилиться

Иван
07.05.2018
05:22:52
Ну тогда ¯\_(ツ)_/¯
idunnolol.com

Timur
07.05.2018
05:23:43
есть вот такая штука в доках
думаю ее попробовать

Иван
07.05.2018
05:24:06
Ну я по сути про это и говорил
Только здесь компонент не локальный для родителя, как я предлагал, а глобальный

Timur
07.05.2018
05:25:19
у меня мои компоненты именно такие)

Иван
07.05.2018
05:25:45
Должно работать, в общем
Тебе только надо там самому определить как жиквери дождаться

Google

Timur
07.05.2018
05:26:04

Иван
07.05.2018
05:26:45
А вообще лучше действительно обертки юзать
Которые уже сами там все разруливают

Timur
07.05.2018
05:27:13
просто у меня шаблон уже есть
и он на jq
переписывать времени нет 9(
((

Иван
07.05.2018
05:27:45
А хз
Самое тупое что я могу придумать - каждые 50 мс проверять, есть ли жиквери

Timur
07.05.2018
05:28:34
спасибо, что нибудь придумаю
метод из доки не работает

Иван
07.05.2018
05:30:58
import() используй вместо реквайра
import('path/to/component.vue).then(resolve)

Timur
07.05.2018
05:31:19
импорт выдает ошибку

Иван
07.05.2018
05:31:29
Какую?

Timur
07.05.2018
05:31:44
Uncaught Error: Module build failed: SyntaxError: C:/Open Server/OSPanel/domains/localhost/55sifat/resources/assets/js/app.js: 'import' and 'export' may only appear at the top level (27:4)

Иван
07.05.2018
05:35:13
Хм
Покажи скрин кода

Timur
07.05.2018
05:36:04

Google

Иван
07.05.2018
05:36:27
Оч странно
Вебпак должен разруливать всё

Alex
07.05.2018
05:38:47
При такой записи что будет возвращаться из функции?

Evgeny
07.05.2018
05:40:38
Привет. Помогите решить проблему. У меня есть набор данных, которые нормализовал. Т.е. в хранилище (vuex) один объект - entities.users = {1: {userName: 'blablabla'}, {2: {...}}}
А другой ключ массив c ID - userList = [1, 2].
Я вывожу список пользователей. А ещё есть кнопка для подгрузки ещё одной страницы с пользователями. В итоге получается так, что каждая странрица запускает перерасчёт всех пользователей (computed в компоненте пользователя). На 5 странице расчёт занимает на компьютере секунды 3.
Как избавиться от такого расчёта? Я не хочу расчитывать заново то, что уже давно не трогалось. Ключи у v-for прописаны корректно. Если я изменяю какие-то данные у пользователя, то рассчитывается именно он один, если добавляю нового, то рассчитываются все

Жалгас
07.05.2018
05:45:51
По странично храни

Evgeny
07.05.2018
05:46:17
то же самое будет
видимо это фича ядра
реактивность в действии

Жалгас
07.05.2018
05:46:52
Методом можно вместо вычисляемых свойств

freekzy
07.05.2018
05:47:19

Evgeny
07.05.2018
05:47:57
и в принципе хз тогда, куда воткнуть. Везде это будет занимать время

freekzy
07.05.2018
05:48:23

Evgeny
07.05.2018
05:50:06
я проблему случайно увидел, могу оптимизировать в другом, но проблема никуда не денется. Изначально я подрубил vuex-orm. На каждый элемент я тащил некоторые связи. 20 элементов быстро работают, а 300 уже нет
могу отказаться от vuex-orm и писать всё такое самостоятельно, но опять же, проблема с пересчётом никуда не денется

Жалгас
07.05.2018
05:50:55
Храни постранично

Evgeny
07.05.2018
05:51:03
а толку?
и постранично - это не нормализованные данные

Жалгас
07.05.2018
05:51:34
Пересчитывать методом отдельные страницы только

Evgeny
07.05.2018
05:51:52
выводит то всё равно всё сразу

Google

Evgeny
07.05.2018
05:52:33
это раз. Данные по страницам будут не нормализованы и я не смогу нормально получить пользователя по ID на другой странице (скажем, страница с постом) - это два

Жалгас
07.05.2018
05:52:51
Ок

Evgeny
07.05.2018
05:53:22
у вью никак нельзя отключать реактивность у некоторых объектов?

Жалгас
07.05.2018
05:53:39
Брось это дело, что-то из рода фантастики
Можно но тебе не нужно

Evgeny
07.05.2018
05:54:15
тогда как побороть проблему?

Жалгас
07.05.2018
05:54:56
Скинь картинку интерфейса

Иван
07.05.2018
05:54:59
Интересный вопрос
Компутед показать можешь?

Evgeny
07.05.2018
05:55:38

K
07.05.2018
05:55:42
Может проблема в том что с объектами жс работает намного медленнее чем с массивами?

Жалгас
07.05.2018
05:55:57
Можно делать компутед в компутед

Иван
07.05.2018
05:56:09
А может там тупо квадратичная сложность где-то затесалась в алгоритм
Потому что 300 объектов это смешная цифра

Жалгас
07.05.2018
05:56:36
Скорее всего там отношение многое к многим в js)

freekzy
07.05.2018
05:56:51

Иван
07.05.2018
05:57:00
Ну кстати да

Evgeny
07.05.2018
05:57:01
не туда лезете

Иван
07.05.2018
05:57:26
Ты покажи код компутеда который 3 секунды выполняется

Evgeny
07.05.2018
05:57:39
он выполняется быстро

Google

Evgeny
07.05.2018
05:57:43
но таких операций много

Иван
07.05.2018
05:57:46
Или хотя бы покажи картинку из профилировщика где видно что именно три секунды выполняется

Evgeny
07.05.2018
05:57:58
сейчас с собой нет, но сделаю пример на codepen
проблема глобальна

Жалгас
07.05.2018
05:58:11
Код

freekzy
07.05.2018
05:58:26
или items = Object.assign(newItems, items)?

Evgeny
07.05.2018
06:05:05

Иван
07.05.2018
06:05:25
Хм

Evgeny
07.05.2018
06:05:26
при условии, что users не имел ключа userId
это реактивность

Иван
07.05.2018
06:05:39
Эт самое
А вьюкс орм ты не используешь при этом?
Она ж должна разруливать подобное

Evgeny
07.05.2018
06:06:14
в тестовом примере нет
просто у меня vuex-orm начал тормозить
вот и увидел проблему
но проблема в реактивности vue. Вот и ищу способ это обойти

Иван
07.05.2018
06:06:55
Ты в цикле вью сет делаешь?

Evgeny
07.05.2018
06:07:04
1 сет