Ответы пользователя по тегу Vue.js
  • Объясните, плиз зачем нужен react и vue?

    Ответ на вопрос "почему" заключается в одной емкой фразе: потому что сложно синхронизировать интерфейс и состояние.

    Представьте, что у вас есть простой UI какого-нибудь ToDoApp. Вам всего-то нужно сделать так, чтобы при вводе новой задачи она появлялась в списке, а при нажатии на крестик напротив удалялась бы. Проще простого!

    Но когда начнете решать проблему на нативном JS или на б-гомерзком jQuery, вы столкнетесь с необходимостью писать очень много шаблонного кода. Прежде всего на обслуживание DOM. Найти элемент, вставить элемент, добавить элементу класс, атрибут... в итоге у вас получится портянка на десятки строк для такой элементарной задачи, а ведь мы еще не добавили много кульных штук, без которых ToDoApp совсем не ToDoApp, как-то: возможность создавать разные списки, расписания, галочка, чтобы зачеркивать задачу и т.п. С реализацией всего этого ваша простыня будет расти, вы будете в ней путаться.

    На этом этапе вы можете начать велосипедить. Писать какие-то утилиты для работы с DOM. Разделите index.js на несколько файлов, сообразно DDD или хотя бы единой ответственности. Допустим даже, что вашим приложением внезапно стали пользоваться, у вас куча бизнес-идей. Вы начинаете наваливать фичи, структура становится все запутаннее, кода становится все больше, а еще приложение начинает тормозить. Вы проводите небольшой анализ и понимаете, что проблема в излишне частом обращении к DOM - вы дергаете его на каждый чих, ведь с jquery это так просто! И что делать? Писать еще один велосипед, чтобы обновлять DOM пакетно? А как отслеживать изменения в данных с сервера? Это ж сколько работы!

    К счастью, все вышеописанное, и даже гораздо больше, уже решено в Google, Facebook, а также некоторыми талантливыми энтузиастами. И у нас есть Angular, Vue, React, Svelte, которые предлагают вам возможность создавать быстрые, поддерживаемые приложения с минимумом шаблонного кода и продуманной архитектурой.
    Ответ написан
    Комментировать
  • Возможно ли во .vue компоненте получить name компонента или имя файла компонента в качестве переменной в sass?

    Вы изобретаете ненужный велосипед (чуть не написал "кажется" по заветам CoCK моей галеры). Класс и имя компонента - разные вещи, у них разные соглашения об именовании. Так, css-класс не должен быть написан StudyCaps'ом (в отличие от имени компонента), и, кроме того, может несколько разниться - это нормально.

    По теме
    Vue.component('my-thing', {
        name: 'mything'
    })
    // later
    vm.$options.name // 'mything'
    Ответ написан
    Комментировать
  • Имеет ли такое соглашение для названий компонентов и классов во vue.js право на жизнь?

    Извращение какое-то. В этом нет никакой нужды. БЭМ, с которого вы, определенно, сделали кальку, прекрасно применяется к иерархии директорий, что позволяет понять, что куда вложено, по импорту. Тот же БЭМ, кстати, пропагандирует самодостаточность компонентов с минимальными зависимостями между оными. Исключения - когда какой-то элемент действительно предназначен для конкретного домена, там можно и нужно указать принадлежность. HeaderMenu, TableCell и так далее.

    Тем более, вложенность. Сегодня она у вас такая, а завтра - этакая. Я давно остановился на domain-driven структуре и не жалею, на мой взгляд, она идеальна. Просто декларативно распределяем компоненты по зонам их ответственности, по доменам. HeaderMenu в Header и так далее.
    Ответ написан
  • Посеветуйте, пэкэджы npm или js для редактировние .docx или .odt/.odf в vue.js странице?

    Подрубите на бэкенд какой-нибудь PHPOffice и шлите запросы REST'ом. Самое сложное тут, сделать интерфейс редактирования, но можно прикрутить на любой TinyMCE или что там сейчас в моде. На клиенте нельзя так сделать.
    Ответ написан
    1 комментарий
  • Каков best practice для общего функционала во Vue?

    Heian
    @Heian Автор вопроса
    Ашот
    В итоге сделал при помощи декораторов. Оказалось одним из самых удобных решений, особенно в контексте того. что я использую vue-class-property декоратор. От классического hoc'a выгодно отличается тем, что не создает под капотом новый компонент, а просто возвращает конструктор, который затем js сам применяет, где надо.

    Выглядит при этом тоже очень красиво.
    @Filterable // мой декоратор
    @Component({
       // options
    })
    export default class extends Vue {
       // component logic
    }
    Ответ написан
    Комментировать
  • Django + Vue + Страдания?

    Да там просто все. Пилите обычный rest api и обращаетесь к этому api посредством fetch, в json отдаете ответ. Тут Vue ни при чем, это другой уровень абстракции, а тут, по сути, обычное асинхронное общение клиента с сервером.
    Ответ написан
  • Можно ли изменить стандартную надпись Rows per page: во Vuetify на другую?

    Конечно. Тут совет только один: читать документацию надо внимательно.
    footerProps="{
       itemsPerPageText: 'something'
    }"
    Ответ написан
    1 комментарий
  • Как поменять стили для тега vuetify?

    Если я правильно понял, используйте слот headers, по аналогии с item, который вы уже использовали. Там сможете задать любую разметку с любыми стилями \ классами \ атрибутами.
    Ответ написан
    Комментировать
  • Почему Vuetify поломал транспайлинг и как восстановить?

    Heian
    @Heian Автор вопроса
    Ашот
    Причина была во vuetify-loader, точнее, в том конфиге, который он вставлял в пайплайн через api.chainWebpack. Поскольку в данном лоадере нет никакого толка (ничего экстраординарного это поделие не делает, у нас чистый ts и scss, которые отлично обрабатываются менее хипстерскими лоадерами), проще отказаться от vue-cli и, поудаляв vue-cli-vuetify-helper \ vuetify-loader (к слову, он ломает еще и JSX), оставить только vuetify.

    После удаления проблемного пакета (vuetify-loader) проект собирается, как и должен. А всем тем, кто хочет добавить vuetify в свой проект, но опасается неадеквата, совет: забить на документацию и просто поставить пакет при помощи `yarn add vuetify`. Все.
    Ответ написан
    Комментировать
  • Как подружить динамические свойства в data во Vue и TypeScript?

    Heian
    @Heian Автор вопроса
    Ашот
    Решение - не использовать декоратор data, вместо этого использовать class properties.
    Ответ написан
    Комментировать