Задать вопрос
  • Как сделать на vueJs 3 похожий эффект как jQuery slideToggle?

    Aetae
    @Aetae Куратор тега Vue.js
    Алексей, какие проблемы преобразовать в options, элементарно же?:
    Если проблема в том что ты совсем не знаешь composition, то совет дня: изучи composition, тебе от него никуда не деться, даже если на этом проекте ты его не используешь.

    А твой вариант не работает как минимум из-за v-show, vue transition опережается на физическое появление компонента - v-if. а не скрытие через v-show.
  • Вставка компонентов в тело статьи на Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    photosho, не понял вопроса. Используй v-remote только для той строки что прилетает с сервера. Всё остальное делай как обычно.

    //Добавил тут возможность изменять html на лету, в предыдущей версии оно отрисовывало только первое переданное html(потому что чисто для примера)
  • Почему не обновляется элемент на странице?

    Aetae
    @Aetae Куратор тега Vue.js
    Предыдущий совет верен, но так же хотелось бы видеть getAllPages() в также что происходит при
    bus.$emit('page-updated', {
        index,
        page,
      });
  • Вставка компонентов в тело статьи на Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    photosho, под простым вариантом я имел ввиду условно такой:


    Что позволит использовать в статьях всю мощь html и vue. Только доверие к статьям должно быть соответствующее.:)
    Иначе надо будет подключать некий html-парсер на стороне сервера, который вычистит весь мусор(неразрешённые теги и операции) из текста. Ну или можно сделать на фронте при приёме, но это уже костыльно.
  • Вставка компонентов в тело статьи на Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    photosho, что значит не теряются?
    Условно если разбить пр тегу:
    <article>
      <section>
        #GALLERY#
      </section>
    </article>

    То выйдет в первом v-html
    <article>
      <section>
    во втором
    </section>
    </article>
    .
    В первом браузер сам закроет теги, во втором проигнорирует.
    В итоге получится что-то типа:
    <article>
      <section>  
      </section>
    </article>
    <v-gallery/>


    Браузер работает с DOM, v-html - это абстракция над innerHTML, а innerHTML - абстракция над DOM, За одну операцию вставки "текста" он полностью анализирует вставляемое и приводит все теги к окончательному виду, потому что в DOM не может быть незакрытых тегов.
  • Вставка компонентов в тело статьи на Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    photosho, решение я описал выше. А с разбиением у тебя же не получится вложенность тегов делать или верстка поедет.
  • Вставка компонентов в тело статьи на Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    А сама статья в каком виде хранится? HTML, MD, ещё что-то?
    Самый простой способ в любом случае - перегнать в html с vue-компонентами где надо и скомпилировать получившийся код через compile в render функцию.
  • Как сделать импорт type?

    Aetae
    @Aetae Куратор тега TypeScript
    Kolya112151, ну для начала - полные пути запихни, если заработает значит относительные неверно указаны.
  • Как заставить axios игнорировать ошибки сертификата?

    Aetae
    @Aetae
    По хорошему, если ты этому сертификату доверяешь, то просто установи его для ноды. Игнорируя ошибки сертификатов ты, какбэ, делаешь дыру в безопасности.
  • Как js понимает, какую именно ссылку удалить в EventEmmiter?

    Aetae
    @Aetae Куратор тега JavaScript
    Алексей, ещё раз: каждый раз когда ты вызываешь test() - создаётся НОВАЯ УНИКАЛЬНАЯ функция с именем secondFunc(которое не имеет значения).
    Сколько вызовов - столько функций. Все разные.
  • Для чего setTimeout возвращает разные типы?

    Aetae
    @Aetae Куратор тега TypeScript
    tostershmoster, вся сигнатура, не только возвращаемого значения.
    Из-за подключённых node.js типаов у setTimeout без window есть какбы две сигнатуры одновременно: обычная и из ноды. При этом каждая из них имеет несколько перегрузок(overload).

    И тут ты прошёлся прямо по полю граблей:
    1. ReturnType плохо работает с overload(без дженериков - тупо берёт значение из первой сигнатуры, а не раскрывает все варианты в union).
    2. Первая node.js сигнатура (
    function setTimeout<[]>(callback: () => void, ms?: number | undefined): NodeJS.Timeout
    ) требует, чтобы первый аргумент setTimeout был () => void, подо что подходит первый твой вариант(() => any) но не подходит второй((...p: any[]) => any).
    3. Во втором варианте, соответственно, берётся следующий подходящий по аргументу overload сигнатуры и вот он то, внезапно, оказывается не из node.js, а из классики.
    function setTimeout(handler: TimerHandler, timeout?: number | undefined, ...arguments: any[]): number
    , с соответствующим возвратом.

    Такое поведение overload'ов наблюдается только в ts 5, в ts 4 такой проблемы нет - сначала по порядку идут overload'ы из node.js и только потом из классики. Видно изменилась логика применения порядка overload'ов при смешении двух деклараций, либо сами декларации как-то поменялись.
    В любом случае, имхо, такое поведение - это баг(как минимум - нежелательное поведение) 5ой версии ts и следует создать им на github issue:).
  • Как правильно разрушить и инициализировать Swiper?

    Aetae
    @Aetae Куратор тега Vue.js
    Big Wheel,
    Хм. То есть, хорошей практикой будет сделать два компонента с одинаковым контентом, но разным поведением и скрывать один и показывать другой?

    Да. Точнее сделать свой компонент, который в слоты принимает этот "одинаковый контент" и раскладывает уже как надо в двух вариантах в зависимости от какого-то свойства.)

    Однако если таки очень хочется, то судя по документации можно попробовать swiper.destroy(false, true), что не удалит инстанс при разрушении, и потому, в теории, ничего не сломает, однако это уже всё на ваш страх и риск.
  • Как правильно разрушить и инициализировать Swiper?

    Aetae
    @Aetae Куратор тега Vue.js
    Big Wheel, так а что должно остаться вместо слайдера? Какие-то куски dom которые вы привыкли, что остаются при работе напрямую? Вы не должны работать с vue на таком низком уровне.
    v-if swiper v-else template > нужная структура по умолчанию руками
    Вы не знаете и не должны знать, что происходит внутри компонента при его использовании: ни какие там классы, ни какая там dom-структура.
    Компонент - это атомарная единица, чёрный ящик, который гарантирует только то, что предоставляет в своём api, под капотом же меняться может что угодно от версии к версии.

    Если нужное вам поведение может быть стандартизировано, то у компонента должен быть prop условно "inactive" который гарантирует внешний вид и поведение в отключённом состоянии.
  • Как сделать импорт type?

    Aetae
    @Aetae Куратор тега TypeScript
    Kolya112151, если ошибка появляется в браузере значит в браузер прилетает код, который содержит import type. После ts компиляции никакой информации о типах не остаётся, значит шаг с ts компиляцией где-то пропущен.

    Больше ничего сказать нельзя, не зная какой системой сборки вы пользуетесь и какой у вас там конфиг.
  • Как сделать импорт type?

    Aetae
    @Aetae Куратор тега TypeScript
    Василий Банников, это удобно, чтоб не плодить случайных циклических ссылок меж файлами.
    Очень мерзкая хрень эти циклические зависимости, потому что они по началу спокойно работают и множатся, а потом внезапно перестают и сиди - разматывай.)
  • Как сделать импорт type?

    Aetae
    @Aetae Куратор тега TypeScript
    Kolya112151, WbICHA, babel из коробки умеет TS но во-первых без малейшей, собственно, проверки типов(тупо гонит как может, без ошибок), во-вторых ограничено(последний раз когда смотрел - даже enum'ы не умел).

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

    Aetae
    @Aetae Куратор тега TypeScript
    state у тебя где-то должно быть полностью типизировно.
  • Почему Axios запрос в React всегда выдаёт 404 на localhost?

    Aetae
    @Aetae Куратор тега JavaScript
    А само localhost:3000/api то работает, если просто руками открыть?
  • Почему не изменяется индекс последнего элемента массива при использовании unshift()?

    Aetae
    @Aetae Куратор тега TypeScript
    А лучше вообще их сюда не кладите. Сократите код до минимально воспроизводимого куска в буквально пару строк и тогда либо сами поймёте причину или вам тут ответят.
    Желающих разбираться в накрученной неревелатной хренотени выдранной из контекста вам найти будет куда сложнее. Мне, например, лень.
  • Как перейти на jQuery 3 c 1 версии?

    Aetae
    @Aetae Куратор тега JavaScript
    weranda, чтоб выводились сообщения - должен быть дев билд, ставлю на то, что ты не читая подключил min версию.
    По поводу же "секурности" - это все херня. Уязвимости в пакетах js имеют значение только если ты их используешь у себя на сервере(node js), если же только на клиенте - вообще абсолютно любой код абсолютно уязвим, потому что кто угодно может сделать у себя на клиенте что угодно. В этом случае вообще вту сторону смотреть смысла ноль.