Ответы пользователя по тегу Vue.js
  • Кто знает в чем причина такой проблемы?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Запускать его надо не через обычный yarn serve, а через yarn electron:serve. Как и билдить. Читайте описание тех модулей, что подключаете.
    Ответ написан
    3 комментария
  • Компонент карта для Vuejs?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Если совсем просто, можно утащить например отсюда карту мира в svg и навешать обработчики вручную.
    Если посложнее - оттуда же стащить geojson версию и использовать любую либу, умеющую с ним работать.
    Если слишком толстые карты - можно их прогнать через соответстующие оптимизаторы.
    Ответ написан
    Комментировать
  • Как собрать сложный проект на vue (с доп. модулями)? Правильно ли я это делаю?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Локальный модуль можно указывать через link: или через file:. В первом случае создаётся симлинк на модуль в node_modules, во втором модуль туда просто копируется. В первом случаем может не завестись по разным эзотерическим причинам, но если завелось - удобнее конечно использовать его.

    Если же использовать не npm, а yarn - добавляются ещё удобные варианты:
    1. yarn workspaces: вы кладёте несколько ваших модулей\приложений в один реп, и yarn собирает все зависимости в один node_modules и линкует использующийся модули туда же. В итоге отсутствует дубликация файлов и все модули работают с одними и теми же либами - что полезно в деве если используется расширение сторонних модулей. Очень удобно.
    2. yarn link: это чисто локальная фишка для разработки, вы делаете yarn link в корне одного модуля и он регистрируется глобально, после чего в другом модуле где хотите использовать делаете yarn link "имя" и он линкуется.
    Ответ написан
    1 комментарий
  • Vue - как встроенное приложение?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Если не нужна поддержка IE11 и Safari - можно использовать web-компоненты и просто подключать стили внутри компонента - они инкапсулируются, иначе придётся покорячиться.

    Как это сработает с vuetify не скажу, но в похожей ситуации я использовал postcss-prefix-selector, просто добавив с помощью него короткий класс-префикс для всех стилей либы. Соответственно этот класс назначаешь на контейнер с vue и, при удаче, всё заработает.)

    Мне, увы, там ещё кастомный трансформ пришлось добавить для корневых (body, :root и т.п.) селекторов, попатчить саму либу местами и проследить чтобы теперь основные стили сайта не перебивали классы либы, но это уже отдельная история.)

    P.S. Для работы postcss-prefix-selector с vue-cli не обязательно вручную вкорячивать loader, можно его просто добавить в .postcssrc.js в plugins:
    require('postcss-prefix-selector')({
        prefix: '.prefix'
    }),
    Ответ написан
    2 комментария
  • Как подключать разные файлы sass переменных для одного проекта на Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Переменные удобнее всего подключать глобально через prependData.
    Соответственно и менять удобно в одном месте. По условию или ещё как.

    А вот как у вас три проекта в одном репозитории - вопрос отдельный.
    Ответ написан
    Комментировать
  • Как исправить ошибку Vue Js: "Error in nextTick: "NotFoundError: Failed to execute 'insertBefore' on 'Node'"?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Ну поищите где у вас по коду юзается insertBefore.
    Если не юзается, то теоретически это может быть из-за того, что как key в v-for попадаются дубликаты, но обычно это приводит к другим ошибкам.

    Таже ошибку полностью пишите: там, блин, после двоеточия идёт конкретное описание, которые вы обрезали и на скрине и в тексте.
    Ответ написан
    Комментировать
  • Получение асинхронных данных из одного модуля в другой?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    В getter - никак. В action - просто запускать action модуля А и await его. Чтоб не запускать action модуля A несколько раз - можно сделать дополнительно - проксируеще-кеширущий action-прокладку, который будет запускать нужный action один раз и пока не будет ответа - на все следующие запросы отдавать Promise текущего.
    Ответ написан
    Комментировать
  • Настроить PHPStorm для работы Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Используй vue create для создания проекта, выбирай eslint+prettier и PHPStorm всё сам как надо подтянет.
    Разве что может потребоваться установить опцию vueIndentScriptAndStyle в .eslintrc.js.
    Ответ написан
    3 комментария
  • Почему ругается TypeScript?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Typescript работает только с кодом, он не знает что-там в Vue шаблоне, увы. Потому в $refs у него лежат голые компоненты Vue или Element'ы.
    Я лично вручную указываю через объединение интерфейсов - внизу добавляю перекрывающий:
    @Component
    export default class Login extends Vue { 
      // ...
    }
    export default interface Login {
      $refs: {
         loginForm: any; // на самом деле не any, а интерфейс компонента, поддерживающий нужные методы
      }
    }
    Ответ написан
    8 комментариев
  • Насколько данный метод обновления сообщений правильный?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Если альтернатив со стороны сервера не предусмотрено(websocket или хотяб олдовый long polling), то только долбиться.
    Ответ написан
    Комментировать
  • Как массово инициализировать dropdown в vue?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Тупой вариант: как в циклом выводите, так в цикле инициализируйте(при v-for в this.$refs.dropdow лежит массив).
    Правильный вариант: сделать отдельный компонент m-dropdown, который внутри проводит всю нужную инициализацию и расставляет нужную вёрстку, после чего подключать циклом именно этот компонент.
    Идеальный вариант: использовать либы написанные на vue, дабы избежать лишнего оверхеда.
    Ответ написан
    Комментировать
  • Как создать новый элемент при событии на vue.js?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    В Vue все элементы должны быть заранее предусмотрены и подготовлены на своих местах.
    А дальше просто меняешь значение флага используемого в v-if/v-show или добавляешь в массив использованный в v-for. Никакой работы с элементами - вся работ только с данными.
    Ответ написан
    Комментировать
  • Как подключать плагины в vue?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Модуль распространяется в формате umd, так что нет никаких проблем использовать его без всяких сборок:
    Другое дело, что системы сборки вам стоит изучить и чем раньше тем лучше, т.к. первоначальные трудности с лихвой компенсируются последующим удобством.
    Ответ написан
    6 комментариев
  • Как изменить css в библиотеке, которую использует моё приложеине на netlify?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Стили же вручную подключаются, из описания:
    import 'vue-toast-notification/dist/theme-default.css';
    //import 'vue-toast-notification/dist/theme-sugar.css';

    Просто скопируй css в проект, изменяй и подключай напрямую: import './theme-default.css'; или типа того.
    Ну элементарная логика же.

    А изменения в node_modules в любом случае только локальны, в этом вся суть - не таскать код библиотек с кодом проекта. Если очень надо - можно сделать копию библиотеки и подключить через file:\link:, но это не ваш случай.
    Ответ написан
    Комментировать
  • Как во vue поместить один Layout в другой?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Если используется vue-router, то в верхнем просто <router-view>, а в routes просто:
    {
      path: '/topLayout',
      component: 'topLayout',
      children: [
        {
          path: ':botlayout?',
          component: 'botlayout',
        },
      ]
    }
    Ответ написан
    1 комментарий
  • Вопрос: window.Event = new Vue() это только название или нечто большее?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    С точки зрения функционала - это просто глобальная переменная, в которую положили пустой экземпляр Vue, чтобы использовать встроенную в Vue возможность создавать и обрабатывать события, получая таким образом глобальную шину данных, которую можно задействовать для обмена событиями между несколькими компонентами.

    С точки зрения же выбора имени Event для глобально переменной - это провал и некомпетентность, потому что в window.Event лежит у нас собственно класс-родитель для всех javascript событий, который может использоваться сторонними библиотеками.
    Ответ написан
    2 комментария
  • Как решить вопрос с CSS фреймворком для веб компонентов?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Использовать примеси или наследование.
    Просто создаёте базовый компонент без верстки(или с базовой), но с нужным функционалом и верстаете наследников под каждый дизайн отдельно.
    Ответ написан
    Комментировать
  • VUE Как пересчитать отображаемые данные после изменения select-option?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Мужик, мои глаза кровоточат.

    Common sense:
    1. Используй нормальные "говорящие" имена переменных.
    2. Используй camelCase.
    3. Используй пробелы.
    4. Используй редактор(ide) с номальным форматированием кода.

    Vue:
    1. Не используй методы для отображаемых данных - используй computed.
    2. Не используй вычисления в v-for - используй computed в котором заранее подготовь массив с данными в необходимом для отображения формате.

    Конкретно по вопросу: недостаточно данных - что и как у тебя лежит в data?
    Налицо проблема с реактивностью, возможно в "st" данные кладутся через зад и реактивность не навешивается. Возможно у объектов нет изначально свойства "conversion_num" или какого иного, а добавленные на лету свойства не реактивны и надо использовать this.$set(Vue.set).
    Ответ написан
  • Какое событие отвечает за наведение на блок но с заранее зажатой лкм?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Codepen работает не как надо. Там всегда срабатывает первый if и точно также на каждое движение.
    Следует использовать не .which, а .buttons.
    Следует использовать не mousemove, а mouseenter.
    Ответ написан
    Комментировать
  • Как вернуть значение?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Мужик, учи основы.
    По ссылке в js ничего не передаётся, для объектов делается копия ссылки, примитивы копируются полностью. status внутри mouseoverEvent у тебя - совершенно отдельная переменная и новый примитив. Передавать надо md.
    Ответ написан