• Как разделить работу верстальщика и vue frontendеров?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    С каких пор верстальщики делают jQuery логику?

    Роль верстальщика при наличии фронт разрабов кончается ровно на верстке html+css, может быть используя шаблонизаторы и сборщики, но точно уж без любой логики.

    Фронты в свою очередь получают сверстанные куски и делают чтобы это уже работало полноценно.

    Если совсем симбиоз нужен то верстальщики и фронты используют один шаблонизатор, и верстальщики уже внутри фронта верстают конечное состояние так сказать. И фронты вообще не лезут туда в отличие от первого варианта.
    Ответ написан
    Комментировать
  • Стоит ли использовать Angular2, vue.js для упрощения разработки, если я их не знаю, или стоит остановится на JQuery/Vanilla в моём случае?

    avengerweb
    @avengerweb
    Веб-разработчик и не только
    Рекомендую Vue.js, писал и на React.JS и на Angular, проще всего вам будет с vue.js для вас он будет более приятен, так как выглядит как новорот сверху html, в отличие от react`а который предлагает JSX(Который тоже придется изучить).
    Angular по моему мнению очень громоздкий. (и не очень уж и популярный, раз на то прошло, на нем много оочень больших проектов)
    По скорости вы особо разницы не заметите, тут зависит только от того как вы это напишите (можете поискать где то на хабре сравнивали скорости какого то левого фреймворка, vue.js, реакта и вроде ангуляра)
    Да не слушайте басни о JWT, RxJS, токен вы сможете подставить в любую библиотеку для запросов (чего будет достаточно на первых этапах), а RxJS в реактивном фреймворке изварт, по моему мнению (хотя видел 1 или 2 проекта где его использовали, но это капля в море)
    По Vue.JS, сразу стоит на заметку взять vue-router, vuex, axios, в частности для vuex можно сразу найти пару вариантов для обработки ваших сокетов.
    Ответ написан
    Комментировать
  • Как вы верстаете? Сверху-вниз или сначала создаете скелет сайта?

    Maksclub
    @Maksclub
    maksfedorov.ru
    От общего к частному, у вас проект всегда должен быть полным, но с определенной степенью выполнения, такой подход А.Лебедев назвал методом прогрессивного джипега
    https://www.artlebedev.ru/kovodstvo/sections/167/

    Хочу отметить, что эта методика относится именно к управлению и принципом организации проекта, а не к загрузке или прорисовке картинки как таковой
    То есть полезен практически любому, кто создает или работает над чем-либо
    Ответ написан
    2 комментария
  • Чем отличается junior от middle? а Senior?

    вы все знаете — Junior
    вы поняли что ничего не знаете — Mid
    вам все равно — Senior

    habrahabr.ru/post/231649/#comment_7826819
    Ответ написан
    2 комментария
  • Чем отличается junior от middle? а Senior?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Вот как это выглядит с т.з. работодателя

    Джун
    - собеседование
    изъясняется исключительно на сленге (большую часть которого не может внятно объяснить), готов в одиночку за неделю написать новую ОС, или две - за полторы, если только для этого не придется учить ассемблер, несмотря на юный возраст уже обладатель прав на обе версии и один бэкап личного сайта с фотографией кошки в розовой рамке и знает, что синглтон - это абсолютное зло, хотя и не может написать его без ошибок.
    - испытательный срок
    долго мудохается с настройками рабочего места, которые регулярно слетают под тяжестью многотысячных плагинов, шелов и скринсейверов, донимает админов, находит две (орфографические) ошибки в документации проекта и один быстрый альтернативный способ сделать форк из SVN, после которого проект, к сожалению, не билдится не только у него, но и у всей команды. Берется все немедленно исправить с помощью другого чудотворного плагина, (неожиданный баг в котором приходится фиксить двум миддлам), после чего насильственно лишается рута, плагинов и шелов и начинает изучать проект под чутким контролем матерящихся миддлов.
    - работа
    научился билдить проект, писать тесты и коммитить, не роняя этим билд, понял смысл многих сленговых выражений, подружился с миддлами и админами, не путается в названиях ключевых технологий, радикально сократил число плагинов, удалил сайт с кошкой, работает.

    Миддл
    - собеседование
    не глубоко, но уверенно знает ключевые технологии, разницу между абстрактным классом и интерфейсом и три-четыре вежливых ответа на вопрос, "сколько это может занять времени".
    - испытательный срок
    влился в проект и работает.
    - работа
    работает стабильно и продуктивно.

    Синьор
    - собеседование
    указывает на ошибку в тестовом задании, предлагает два решения проблемы, над которой команда пыхтела последнюю неделю и альтернативный стек технологий, на который можно перевести проект
    - испытательный срок
    рефакторит проект, делает билд джун-устойчивым, по ходу дела пишет алгоритм для киллер-фичи, запланированной только на следующий квартал и под конец испытательного срока организует воркшоп, на котором представляет свои наработки "в свободное время" по переводу проекта на другой стек технологий, в которых уже реализована большая часть функционала следующего релиза.
    - работа
    пинками помогает команде в переходе на одобренный руководством новый стек, в чем его активно поддерживает джун, окрыленный тем, что теперь его накопившиеся косяки точно никто не заметит, переводит проект на новый стек, увеличивает производительность в два раза, через год переводит еще раз, периодически генерирует идеи новых продуктов, может пропасть на неделю и вернуться с новой фичей, а может уйти в накопившийся за несколько лет отпуск и больше не вернуться, т.к. случайно встретил старого знакомого, передложившего другой мега-проект с гига-зарплатой.
    Ответ написан
    4 комментария
  • Как Вы понимаете junior, middle (developer), senior и есть ли принципиальная разница этих понятий в вебе, эмбедде, геймдеве и других программиннгах?

    @kfuntov
    В моей голове так:
    junior - если надо обязательно делать code review после выполнения задачи, и с большой вероятностью после него что-то править.

    middle - простые задачи можно вообще не ревьюить, когда ревьюишь сложные, делаешь это скорее "на всякий случай", хотя конечно всякое случается.

    senior - может проводить code review.
    Ответ написан
    Комментировать
  • Как сделать динамическое добавление и удаление элементов формы?

    nikichv
    @nikichv
    Frontend dev. Current stack: Next.js/RTK/Saga
    При нажатии на "добавить" увеличиваете инкремент количества форм на 1.
    Через v-for="i in formCounter" выводите блоки с этими тремя инпутами и кнопкой.
    Атрибуты у инпутов прописываете типа :name="`address-${i}`"

    UPD: Живой пример
    Ответ написан
    1 комментарий
  • Можно ли монтировать vue/react к элементам DOM?

    markmariner
    @markmariner
    Экземпляр Vue.js монтируется к любому элементу на странице, как указано в документации: https://ru.vuejs.org/v2/guide/index.html#%D0%94%D0...

    Таких элементов может быть несколько на одной странице. Нет никаких ограничений в загрузке большого шаблона с сервера и привязке экземпляров Vue.js в скрипте только к тем элементам, в которых необходим клиентский рендеринг. Страница останется полностью валидна.
    Ответ написан
    Комментировать
  • Придумать хорошее тестовое для JUN front VUE?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я даю такое простое задание. Делаете список фильмов, актеров с поиском, данные берете через ajax от swapi.co. Все это с серверным рендерингом. И пагинацией. Реально, задание на час максимум. А уж имплементация вообще на вкус испытуемого. Хочешь бутстрап подключаете, хочешь роутеры прикручивайте. Но если не владеете, то реализовать фиг получится.
    Ответ написан
    9 комментариев
  • Как сделать сохранение списка итемов чтоб не перезагружались при каждом переходе обратно в Vue?

    @kttotto
    пофиг на чем писать
    Можно закешировать запрос, установив параметр аякс запроса cache=true.
    Можно использовать внутреннее хранилище, первый ответ запомнили, последующие отдаете его. Но в этом случае надо сделать кнопочку для списка "обновить".
    Ответ написан
    Комментировать
  • Как в VueJS в цикле v-for выполнить один раз?

    kulakoff
    @kulakoff Куратор тега Vue.js
    Vue.js developing
    v-for="(item, index) in items" :style="index===0 ? 'padding: 10px' : false"
    Ответ написан
    Комментировать
  • Что лучше WebSockets или socket.io?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    socket.io работает на websocket протоколе.

    бензин или машина, что выбрать? Грубо говоря
    Ответ написан
    4 комментария
  • Почему изменяется объект при push в массив?

    dimmond_pro
    @dimmond_pro
    Jedi
    Все просто, в массив вы кладете ссылку на объект, на который так же ссылается переменная экземпляра Vue, вы меняете id у объекта перед пушем, на который ссылается только что добавленный элемент массива (старый объект). Переменная экземпляра не должна ссылаться на объекты, добавляемые в массив. А вообще, отладка кода, как я уже говорил, наше все

    jsFiddle
    Ответ написан
    1 комментарий
  • Как получ. доступ к детям iframe ошибка 'Blocked a frame with origin "https:..." from accessing a cross-origin frame.'?

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

    zoroda
    @zoroda
    Необычный Fullstack
    Как писал 0xD34F, сделайте computed свойства и выводите их через v-for.
    Пример:
    computed: {
      countries () {
        return this.data
          .map((x) => x.country) // для каждого элемента из массива объектов data возвращаем страну
          .reduce((r, с) => [...new Set(r.concat(с))], []) // оставляем только уникальные значения
          .map((с) => { // для каждого элемента из полученного массива
            return { // возвращаем 
              'country': с, // наименование страны
              'count': this.data.filter(cx => cx.country === с).length // количество элементов в исходном массиве с таким же наименованием страны
            }
          })
      }
    }

    для городов и типов делаете так же

    UPD.
    Чтобы не дублировать код, сделайте по аналогии с функцией выше метод, возвращающий из вашего массива новый массив уникальных значений с количеством вхождений
    Ответ написан
    Комментировать
  • Как показать уникальные строки со счётчиком совпадений?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Обходите массив, считаете все встреченные свойства/значения, оформляете это дело как computed свойство:

    groupedItems() {
      return this.items.reduce((acc, n) => {
        for (const k in n) {
          acc[k] = acc[k] || {};
          acc[k][n[k]] = (acc[k][n[k]] || 0) + 1;
        }
        return acc;
      }, {});
    }

    Выводите с помощью v-for:

    <div v-for="(group, groupName) in groupedItems">
      <h3>{{ groupName }}:</h3>
      <div v-for="(value, key) in group">{{ key }} ({{ value }})</div>
    </div>
    Ответ написан
    Комментировать
  • Как сделать авто обновление контента vue.js?

    Копайте в сторону web socket
    Ответ написан
    Комментировать
  • Как можно на VUE реализовать простенький фильтр?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Добавить два свойства - массив, описывающий типы, и тип, данные которого надо отобразить:

    data: () => ({
      types: [
        { id: null, name: 'Все' },
        { id: ..., name: '...' },
        { id: ..., name: '...' },
        ...
      ],
      active: null,
      ...

    Дать пользователю возможность выбирать тип отображаемых данных:

    <button v-for="n in types" @click="active = n.id">{{ n.name }}</button>
    
    <!-- или -->
    
    <select v-model="active">
      <option v-for="n in types" :value="n.id">{{ n.name }}</option>
    </select>
    
    <!-- или -->
    
    <label v-for="n in types">
      <input type="radio" name="type" :value="n.id" v-model="active">
      {{ n.name }}
    </label>

    Сделать вычисляемое свойство, которое будет представлять отфильтрованные данные:

    computed: {
      filteredItems() {
        const { items, active } = this;
        return active ? items.filter(n => n.type === active) : items;
      },
      ...

    Показать результат фильтрации:

    <tr v-for="(n, i) in filteredItems">
      ...

    https://jsfiddle.net/jhekutv3/
    Ответ написан
    Комментировать
  • В чем отличия Object.prototype.method и Object.method?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    В чем отличия Object.prototype.method и Object.method?

    Object.method — это методы конструктора Object. Ну вроде как статические методы в php, если провести аналогию.
    Object.prototype.method — это методы экземпляров Object и его потомков.

    И не могу понять: зачем нам prototype? Ведь по сути нам просто нужно получить функцию и задать контекст, почему же тогда работает только с prototype?

    Потому что данная функция определена именно в прототипе.

    Тут всё довольно просто, без заморочек.
    Ответ написан
    1 комментарий