• Полезный твик для Windows?

    Aetae
    @Aetae
    Тлен
    Если ты пишешь код, то как советуют выше - настрой(изучи) IDE. Современные IDE умеют всё, что ты можешь только себе вообразить(и ещё больше чего не можешь).

    Если ты хочешь уметь это делать в браузере для каких-нить форумов - установи расширение для пользовательских скриптов (например tampermonkey) и напиши себе простенький код на js(или найди готовый).

    Если ты хочешь уметь это делать прям универсально в рамках всей винды - тоже есть вариант: установить autohotkey и написать ещё более простой скрипт.
    Ответ написан
    Комментировать
  • Как вставлять текст со специальными символами?

    Aetae
    @Aetae
    Тлен
    dangerouslySetInnerHTML
    Как следует из названия - стоит дважды подумать, прежде чем использовать в продуктивном коде.
    Ответ написан
    Комментировать
  • Как решить проблему с кодировкой при чтении Excel файла?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Измени:
    const htmlStr = xlsx.write(wb, { type: "binary"
    на:
    const htmlStr = xlsx.write(wb, { type: "string"

    "binary" - это спецформат т.н. "бинарная стока", она подходит для записи в файл напрямую побайтово, но не подходит для отображения на экране.
    Ответ написан
    Комментировать
  • Как исправить ошибку "Property *** does not exists on type ''IntrinsicAttributes" в React+TypeScript?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Тебе английским по белому написано: "Property todos does not exists", что тут непонятно?

    Твой компонент TodoList не ожидает пропа todos.
    Ответ написан
    Комментировать
  • Как лучше сделать авторизацию в NUXT?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Про "очень просто" ты меня сейчас сильно насмешил. Тот же OAuth - это просто адище под капотом. Но даже в basic auth есть куча мелочей на которых можно запороться.
    В общем использовать само собой следует либу, сам ты гарантировано словишь тонну багов и дыр в безопасности, только выбирать более-менее приличную(на глазок - больше 1000 Weekly Downloads на npmjs.com и от не вызывающего подозрений автора).

    Со стороны nuxt очевидно лучше всего подойдёт https://auth.nuxtjs.org/ , со стороны laravel - хз, гугли реализацию одного из вариантов поддерживаемых auth.nuxtjs.

    Ну и прекратят поддержку либы скорее всего задолго после того как ты прекратишь поддержку и обновление разрабатываемого приложения.:)
    Ответ написан
    Комментировать
  • Для чего добавляется окончание View в название компонента?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    В vue не должно быть "одноименных" компонентов, чтоб случайно не перекрыть какой-нить новый html6 тег, вот и придумывают всякое:)

    В данном конкретном случае постфикс View добавлен к тем компонентам, которые являются "шаблонами" страниц верхнего уровня в системе маршрутов роутера.
    Т.е. они, скорее всего, существуют в единственном экземпляре, а не являются множественно используемым компонентом, и всякая динамика уже происходит на уровень ниже.

    Это не является какой-то утверждённой системой, например во многих случаях используется система: Layout - для подобных шаблонов, Page - для конкретных вложенных страниц.

    В целом vue ничего в этом плане не оговаривает, потому каждый делает как ему приятнее или как оговаривает конкретный фреймворк.
    Ответ написан
    2 комментария
  • Как решить ошибку TS в атрибуте name для input type = radio?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Ну name ждёт стрингу и не ждёт намбер, что тут непонятного?)
    "Правильно" - сделать как-то так :name="`${modelValue}`", но я бы попатчил типы инпута ибо он сам себе всё прекрасно преобразует.
    Ответ написан
    Комментировать
  • Правильное описание типов для колонок таблицы (Typescript)?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Чтоюы union объектов работал - у него должно быть поле-дискриминатор(поле которое есть в каждом объекте и отличает его от другого), допустим type:
    type BaseColumn = { label: string; props: string }
    
    type Column = { type: 'text' } & BaseColumn
    
    type LinkColumn = { type: 'link'; path: string } & BaseColumn
    
    type TableColumn = Column | LinkColumn


    keyof для юниона объектов показывает только те поля, которые есть в каждом из них. Это логично, т.к. к типу TableColumn ты не можешь обратиться по полую .link предварительно не сузив тип. union - строгий.
    Ответ написан
    Комментировать
  • Почему не работает локальная библеотека на сборке Vite?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    declare module "custom-editor"
    import Editor from 'custom-editor-lib/dist/index'

    Не замечаешь разницы?
    Ответ написан
    Комментировать
  • Как сделать на vueJs 3 похожий эффект как jQuery slideToggle?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    На чистом vue 3 это делается как-то так:


    Мб тут можно как-то добавить tailwind, тут уж сам смотри.
    Ответ написан
    3 комментария
  • Как передать данные из сервера axios на express?

    Aetae
    @Aetae
    Тлен
    Тебе надо:
    0. Перестать заниматься техношаманизмом, у тебя плохо получается.
    1. Почитать статью для начинающих про то как работает протокол HTTP, какие там бывают запросы и т.д.
    2. Почитать документацию по библиотеке axios: как отравлять разные запросы.
    3. Почитать документацию по библиотеке express: как ожидать запросы, как получать данные.
    4. Почитать как делать авторизацию, потому что ты явно хочешь что-то крайне опасное на коленке сделать.
    *. Почитать как использовать в разработке devserver proxy, чтобы не возиться с cors.

    решение именно заданного вопроса, которое тебе всё равно не надолго поможет при текущем уровне знаний
    app.post('/tutorials', (req,res,next) => {
        // test1 = req.body; // глобальные серверные переменные тоже использовать точно не надо
        console.log(req.body);
    })
    
    axios.post('http://localhost:5000/tutorials', this.data.login)



    P.S. Vue тут не при чём.
    Ответ написан
    8 комментариев
  • Как типизировать router.push(pathname)?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Проверил чистую установку next 13.4.12 - такой проблемы нет.

    Где-то говняет типы роутера. Возможно у тебя отдельно в package.json подключена устаревшая в версия роутера - тогда удали её.
    Иначе тыкни Ctrl+Click на .push и тебе откроет файл с декларацией, если она не\не только в next/dist/shared/lib/app-router-context.d.ts - разбирайся откуда взялась левая.
    Ответ написан
    Комментировать
  • Как правильно разрушить и инициализировать Swiper?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Как и с любым иным компонентом vue - не через залезание руками в api\dom.
    Просто делаете v-if="showSwiper" и переключаете, соответственно, this.showSwiper. Если v-if="false" компонент будет разрушен и всё.

    // Нормальные компоненты производят всю необходимую очистку внутри себя сами по автоматическому хуку destroy, и вам не надо не о чём заботиться. Иногда конечно встречается кривое г-но с текущей памятью, но в таких случях проще самому написать компонент с нуля.

    P,S. Никогда не используйте в одном компоненте одновременно setup и methods, вообще никогда. Либо одно либо другое. Это разная парадигма.
    Ответ написан
    5 комментариев
  • Встроить созданный на Vue.js видео плеер в wordpress, есть ли смысл и как это сделать?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Vue прекрасно поддерживает встройку куда угодно, просто подключаете на странице в script umd версию и тупо делаете mount в нужный dom-элеемент. Никакие фреймы не нужны. Только стили саого компонента огородите от перемешивания с местом встраивания, например с помощью БЭМ и\или префиксов.

    А ещё лучше - сделать из vue-компонента - web-component, если ориентация идёт на современные бразуеры. Тогда стили вообще будут инкапсулированы, а управление можно вынести в обычные html-аттрибуты.
    Ответ написан
    Комментировать
  • Для чего setTimeout возвращает разные типы?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    В Node.js setTimeout имеет иную сигнатуру. Если не используете node.js - исключите её типы из tsconfig. Ну или пишите wimdow.setTimeout как советовали в комментах, тем самым указывая на объект window который есть только в браузере.
    Ответ написан
  • Не удается найти модуль "./App.vue" или связанные с ним объявления типов. Vue.js 3 и TypeScript?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Стандартная какашка, которая идёт в комплекте с любым готовым пресетом, файлик vue.d.ts с содержимым:
    declare module '*.vue' {
      import type { DefineComponent } from 'vue';
      const component: DefineComponent<{}, {}, any>;
      export default component;
    }
    Ответ написан
    Комментировать
  • Почему гиперссылка дублирует адрес?

    Aetae
    @Aetae
    Тлен
    href="AD" -> href="/ad"
    Без косой черты - путь относительно текущего.
    Ну и регистр имеет значение(не всегда, но может неприятно удивить).
    Ответ написан
    Комментировать
  • Как с помощью регулярного выражения найти вторую папку в конкретном формате?

    Aetae
    @Aetae
    Тлен
    /(?<=\/)[a-z]{2}(?:_[a-z]{2})?(?=\/[^/]+\/?$)/

    Как для этого написать регулярное выражение?

    Изучить регулярные выражения и написать.
    Ответ написан
    Комментировать
  • Почему ругается Vscode на типы?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Ну потому что это union - он строгий, он позволяет получать свойство напрямую только в том случае, если оно есть у всех членов union'а. В ином случае надо руками делать проверку, которая сузит тип до нужного. if ('counter' in ...) и т.п.
    Ответ написан
    Комментировать
  • Можно ли заменить javascript языком dart/flutter?

    Aetae
    @Aetae
    Тлен
    Если заменить кривой язык для которого за годы и годы работы написали столько костылей, что они уже сложились в более-менее стабильный и устойчивый фундамент, на свежие кривые хипстерские языки от той же тусовки, то всё конечно станет стабильно.
    *сарказм.жпг*

    Ну и интересно, что у тебя там меняется, обратная совместимость в js практически абсолютна. Если ничего не трогать - ничего не сломается.
    Ответ написан
    Комментировать