Задать вопрос
  • 2 способа писать @media-query используя Sass в компонентах Vue.js?

    landen13
    @landen13
    frontend-developer
    Что за ересь? Что за верстальщики советуют 1й способ - динозавры? Ау, с добрым утром, мы в 2017-м уже!
    Естественно второй способ лучше. Особенно в контексте SASS и Vue.

    П.с. Блин, ну насмешили вопросом, ей богу. Очень сочувствую Вам, что приходиться работать с такими ископаемыми верстальщиками. Видимо они уже достигли своего предела, бедняги.
    Ответ написан
    Комментировать
  • Почему многие ругаются на flex и float? Что в таком случае использовать?

    landen13
    @landen13
    frontend-developer
    1. Гриды - будущее, однако только для глобальных лейаутов. ТОЛЬКО.
    2. Флексбоксы - настоящее, могут использоваться без проблем как в локальных местах, там и для глобального лейаута. ИЕ11+, с некоторыми нюансами.
    3. Флоат - прошлое, но все же это старый-добрый флоат. Всегда спасет и прикроет вашу задницу в случае чего. Как и верстка на inline-block'ах. Но FLEX конечно должен быть сейчас в приоритете, в любом случае.
    Ответ написан
    Комментировать
  • Как реализовать сохранение информации на странице при переходах между страницами?

    landen13
    @landen13
    frontend-developer
    Вы данные получаете асинхронно на самой странице? Если так, то перенесите это все во vuex - в стейте данные, в экшнах - их получение. Сами же экшны запускать можно в component-хуке beforeRouteEnter.

    В случае, если vuex не хотите или не можете использовать, пишите все в localStorage)
    Ответ написан
  • Как сделать модульность в приложении Vue.js?

    landen13
    @landen13
    frontend-developer
    Модульность Vue приложений требует в первую очередь хранилище (хотя кто-то может и не согласиться - ибо без хранилища можно, пожалуй, и обойтись).
    Vuex - достаточно прост и понятен, можно освоить азы за полчаса, поковыряв документацию.
    Ответ написан
    Комментировать
  • Почему gulp-imagemin очень плохо сжимает файлы?

    landen13
    @landen13
    frontend-developer
    для сжатия jpg используйте imagemin-jpeg-recompress
    для сжатия png - optipng/pngquant
    Ответ написан
    Комментировать
  • Почему не работает подгрузка данных?

    landen13
    @landen13
    frontend-developer
    Подключите для аякс-запросов axios вместо vue-resource (который исключили уже из списка официальных плагинов). axios рекомендуют даже в официальной документации vuejs.
    Ответ написан
    Комментировать
  • Достаточно ли созрел Vue?

    landen13
    @landen13
    frontend-developer
    Ничто не мешает сделать Vue обертку над jQuery планином. В официальной документации есть пример с select2.

    Таблицы с сортировкой делаются очень просто, есть куча примеров.
    Есть отличный кастомный селект - vue-multiselect.
    С этим не сталкивался, но думаю нагуглить не составит труда.

    Насчет созрел или нет: ДА, СОЗРЕЛ. Уже вышла версия 2.3, официальные плагины vue-router и vuex также стабильны, есть отличная документация и туториалы. Может конечно возникнуть проблема с поиском каких-либо конкретных компонентов, и к этому нужно быть готовым. Со временем их кол-во и качество будет расти.
    Ответ написан
    Комментировать
  • Как заставить работать директиву vue в динамически добавленном элементе?

    landen13
    @landen13
    frontend-developer
    Вы идете против директивы v-html.
    Стоит либо усложнять темплейт (отказываться от v-html), либо вешать обработчик выше по DOM на родительский контейнер и проверять event.target.
    Ответ написан
    Комментировать
  • Зачем нужен Vue - объясните на пальцах?

    landen13
    @landen13
    frontend-developer
    Если прям на пальцах, то вот:
    Vue.js нужен для быстрой перерисовки того или иного участка интерфейса. Вместо работы напрямую с DOM, мы работаем с данными (Data), а все манипуляции с разметкой происходят уже автоматически благодаря реактивности и директивам. То есть, темплейты во Vue.js - это такой себе способ описать поведение вашей разметки с привязкой к данным - как меняется разметка при изменении данных, какие методы вызываются при том или ином событии (это тоже определяется в темплейтах). Почитайте что такое Data-driven подход, тогда намного все прозрачнее станет.

    Это объяснение от верстальщика верстальщику :)
    Ответ написан
    Комментировать
  • Как убрать div из template?

    landen13
    @landen13
    frontend-developer
    Любой компонент ОБЯЗАН иметь корневой оберточный тег. Без этого никак. Это ограничение есть и в Реакте. Убирать разве что костылями, что не рекомендуется, конечно.

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

    landen13
    @landen13
    frontend-developer
    С полностью различной версткой? Прям совсем различной? Если так, то создайте отдельный класс через Vue.extend (в котором будут описаны общие вещи, связывающие все эти компоненты) и далее используйте его для создания компонентов с разными темплейтами.

    А смысла рендерить компонент в строку с помощью VueJS как-то я не вижу.
    Ответ написан
    Комментировать
  • Зачем нужны плагины imagemin-jpegtran/pngquant?

    landen13
    @landen13
    frontend-developer
    gulp-imagemin - лишь обертка, использующая сами оптимизаторы.

    jpegtran - для jpg
    pngquant - для png (хотя по умолчанию там другой - optipng)
    Ответ написан
  • Как передать данные в компонент VueJS 2?

    landen13
    @landen13
    frontend-developer
    Данные в компонент передаются только посредством props. Судя по коду, Вы неплохо так запутались :)

    Посмотрите внимательно примеры в документации, там все очень хорошо написано и показано.

    Если кратко:
    Данные передаются через props. Принимаемые props изначально должны быть прописаны в компоненте.
    Весь компонент должен быть описан в импортируемом .vue файле.
    Далее он регистрируется глобально через Vue.component('my-header', myheader); (либо локально - способы регистрации компонента есть в документации).
    Также должна быть обертка вокруг Ваших my-header и my-footer, например #my-app
    Создается рутовый инстанс Vue с el: '#my-app', в котором лежат компоненты.
    VueJS находит компоненты внутри #my-app и инициализирует их.
    И в самом темплейте, где Вы прописали эти самые компоненты, им нужно передать данные.
    Например, если у вас было в компоненте:
    props: ['data']
    то передавать их нужно как обычный биндинг атрибутов:
    <my-footer v-bind:data="posts"></my-footer>
    Ответ написан
    Комментировать
  • Для чего нужны javascript фреймворки?

    landen13
    @landen13
    frontend-developer
    1. Можно. А стоит ли - это уже совсем другой вопрос. Набравшись немного опыта их использования будет проще определятся где они нужны и где нет (кеп). Главное изучить какие именно проблемы могут решать фреймворки и насколько затратно будет их применять на том или ином проекте.
    2. REST. Программисты только ради будут :)
    3. Смотря какая CMS. Чаще всего это не очень хорошая идея, однако все возможно. Зависит от того, насколько затратно будет программистам реализовывать REST в таких проектах.
    4. Опять же REST. Есть уже уйма различных фреймворков для таких вещей.

    Курсы:
    - Udemy - лучше курса нет (так говорят, сам так и не нашел времени на него)
    - Laracasts - очень хороший лектор, мало воды, много практики. Советую. Правда частично затрагивается VueJS в Laravel.
    - Документация. Всегда лучше, чем какие-либо курсы. Благо, документация у Vue просто шикарна.
    Ответ написан
    Комментировать
  • Какие фреймворки поддерживают ecmascript6?

    landen13
    @landen13
    frontend-developer
    Фреймворки наоборот диктуют использование ES6 + webpack, а не "поддерживают".

    И VueJS - единственный фреймворк из указанных вами, не требующий изначально транспилирования в ES5. А вот Vuex требует полифилл для промисов, если хотите чтобы ваш код работал в IE11.
    Ответ написан
    Комментировать
  • Как поднять vue2 c laravel?

    landen13
    @landen13
    frontend-developer
    Рекомендую к просмотру курс по vuejs от Laracasts. Там затрагиваются вопросы работы с Laravel, также есть несколько уроков по laravel-mix и его конфигурации. laravel-mix - это обновленная версия elixir, из которой просто убрали Gulp-прослойку и дали возможность нормально кастомайзить конфиг вебпака. По умолчанию из коробки laravel-mix решает 80% самых распространенных задач.

    Ну и в целом я как-то не очень понял Вашу проблему. Что значит - прикрутить? Если настроить просто компиляцию vuejs, то она есть уже из коробки. Если же прикрутить vue-роутер и т.п., то это уже руками :)
    Ответ написан
    Комментировать
  • Фильтрация данных в spa - приложениях?

    landen13
    @landen13
    frontend-developer
    Как уже писали ранее, если данных много или они грузятся частично (то есть у вас присутствует пагинация по этим элементам) - то нужно делать реквест на сервер и получать оттуда уже отфильтрованные данные. Небольшой нюанс - при наличии пагинации вам потребуется возвращаться на первую страницу результатов.

    Если же данные статичны, их не очень много и их можно без проблем загрузить сразу на клиент, то и фильтровать можно на клиенте без проблем :)
    Ответ написан
    2 комментария
  • Когда использовать Vuex?

    landen13
    @landen13
    frontend-developer
    Есть проблема - коммуникация между компонентами, не находящимися в одном иерархическом древе. Ее решение - это использование экземпляра Vue, как шины, для подписки/вызова событий.

    Пример в официальной документации.

    Когда есть вероятность, что такое решение может быть недостаточно мощным или удобным, стоит брать на вооружение Vuex. Помимо этого, Vuex позволяет также намного более прозрачно структурировать ваш код, особенно в этом могут помочь его система модулей.

    Но все же бытует мнение (не мое), что острой необходимости во Vuex нет и лишь 1% проектов может его реально потребовать. Однако это не повод от него отказываться, конечно же :)
    Ответ написан
    2 комментария
  • Заказали PixelPerfect Верстку на 1280 но скинули макет 1366, я что-то не понял?

    landen13
    @landen13
    frontend-developer
    Заказчик неадекватен.
    1366 сейчас намного актуальнее нежели 1280, потому дизайнер тут не ошибся.
    Если макет позволяет, растяните некоторые элементы до 1366, предварительно обсудив данный момент с заказчиком.

    п.с. по-поводу "начинать верстку надо с мобильной версии": такое сработает только если прототип сайта построен грамотно и все изменения мобайл->десктоп продуманы на этапе дизайна и имеют смысл.
    Ответ написан
    Комментировать