• Property does not exist on type {}?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    interface User {
      name?: string;
    }
    
    let user: User = {};
    или
    interface User {
      name: string;
    }
    
    let user = {} as User;
    Ответ написан
    Комментировать
  • Есть ли альтернатива querySelectorAll во Vue.js?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Если вы используете querySelectorAll для работы с шаблоном компонента, то похоже вы делаете что-то не правильно.

    $ref единственное и по сути правильное получение DOM элемента внутри vue. $ref это по сути id, иных вещей нет, только уже указание селекторов для querySelectorAll.
    Если вам приходится каждому элементу DOM давать ref внутри 1го шаблона, то опять же, скорей всего вы что-то делаете не так.

    Покажите или расскажите детальнее, какую задачу вы решаете и скорей всего есть решение лучше, нежели то, что вы пытаетесь сделать
    Ответ написан
    7 комментариев
  • Есть ли альтернатива querySelectorAll во Vue.js?

    Fragster
    @Fragster
    помогло? отметь решением!
    https://ru.vuejs.org/v2/guide/components-edge-case...
    Когда ref используется вместе с v-for, то ref будет массивом, содержащим дочерние компоненты, отображаемых от источника данных.
    Ответ написан
    Комментировать
  • Ul li, отступы вложения, для каждого уровня приходиться дописывать стиль, как этого не делать?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Не обнулять отступы и стили.
    Ответ написан
    8 комментариев
  • Почему transition-group не работает?

    Если поменяете :key="comp.name" на :key="comp.isActive", то заработает.
    Ключи vue использует для сопоставления данных и dom элементов из которых они генерируются. Поэтому анимации не знают момент перерисовки и не запускается
    Можно составные ключи делать:
    :key="comp.name + comp.isActive "
    Ответ написан
    1 комментарий
  • Проблема с массивом, какие методы существуют?

    @Sashqa
    Вы применяете к коллекции метод для работы с массивами Filter

    color = [...document.getElementsByClassName('color')];
    color = Array.from(collection) // или так

    Вот так метод filterбудет работать. А дальше смотрите, что вам нужно
    Ответ написан
    3 комментария
  • Как сделать страницу 404 в VUE.js?

    dosya97
    @dosya97
    Fullstack web-developer
    const routes = [
    ...
      { 
    		path: '/404', 
    		name: '404', 
    		component: NotFound, 
    	}, { 
    		path: '*', 
    		redirect: '/404' 
    	}
    ]
    Ответ написан
    4 комментария
  • Где взять/как реализовать range select с несколькими ползунками (тремя и более) на vue?

    @floydback
    https://github.com/NightCatSama/vue-slider-component

    Единственное решение для vuejs. Но очень достойное. Если оно не подойдёт - придётся делать своё.
    Ответ написан
    1 комментарий
  • Где взять/как реализовать range select с несколькими ползунками (тремя и более) на vue?

    @UPSA
    anykey. Я не программист, я просто ленивый.
    Без Usage, без Example
    https://www.npmjs.com/package/vue-nouislider
    дальше догадайся сам ))) как я это не люблю ...
    Ответ написан
    1 комментарий
  • Как сделать выезжающее меню на сайте?

    eucalipt
    @eucalipt
    Самоделкин.
    Для блока слева создай отдельный элемент на странице. Например, div с id "menu". В него помещай все, что тебе нужно. Умеешь подключать JQuery? На всякий случай, объясню.

    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <!-- JQUERY -->


    Вот эту строчку впихни в head своей страницы. Теперь у нас подключен JQuery.
    Что мы делаем дальше? Дальше нам надо отловить клик по нашему "бутерброду" и после клика, собственно, и выдвинуть менюху. Как это делается:

    $(document).ready(function() {
      $("#menu").click(function() {
        $(this).addClass("show");
      });
    });


    Этот код просто выдели в отдельный .js файл (ну и подключи его как простой .js скрипт, разумеется. Только он должен быть подключен после того, как подключишь JQuery).

    Короче, что мы сделали: мы отловили клик по этому элементу и повесили на него функцию, которая к нашему div'у добавит класс "show". Дальше уже чистый css.

    #menu {
    /* тут твои стили */
    left: -350px;
    }
    
    #menu.show {
    /* тут твои стили */
    left: 0px;
    }


    Я думаю, суть ясна. Когда у менюхи появляется класс "show", то тогда мы просто "выдвигаем" ее из-за левого края страницы. По желанию можно сделать это плавным:

    #menu {
    /* тут твои стили */
    transition: left ease 0.2s;
    left: -350px;
    }
    
    #menu.show {
    /* тут твои стили */
    left: 0px;
    }


    Кстати, этот код написан под менюху, шириной в 350px.

    Теперь ее надо закрыть. Тут 2 способа. Хотя нет, 3.
    Можно отловить в нашем скрипте уход мышки с элемента и просто убрать класс "show" (mouseleave, removeClass()). А можно отловить клик по НЕэлементу див. Это тоже в JQ.
    А можно еще расставить флаги, и контролировать, когда меню открыта, при нажатии на бутерброд, делать одно, и когда закрыта - другое.
    Ответ написан
    4 комментария
  • Как в ВК API можно узнать, можно ли оставлять комментарии под фото пользователя?

    @StockholmSyndrome
    отправьте запрос методом photos.getById с extended=1
    у каждой фотографии будет поле can_comment
    Ответ написан
    Комментировать
  • Никому не нужно, чтобы страница проходила валидацию на w3c?

    Stalker_RED
    @Stalker_RED
    1. Кто такие "все"?
    2. Если открыть спеки по HTML, то там прямо в названии есть слово "Recommendation" перевод нужен?

    Вот как получается: есть браузеры разных производителей. Они как-то там внутри хитро устроены, как их разработчики захотели и смогли.

    Когда в браузерах появляется много серьезных отличий получаем войну браузеров, которая вредит всем участникам.

    Чтобы такого избегать, есть w3c и whatwg, которые рассматривают все идеи из всех браузеров, выбирают из них лучшее и вносят во всеобщие РЕКОММЕНДАЦИИ.

    Эппл захотел, и придумал <input type="number">
    Несколько лет он не проходил валидацию, но при этом работал в сафари (в других браузерах срабатывал как input text). А потом и в хроме стал работать. А потом его добавили в рекомендации, и опа: работает почти везде, и уже проходит валидацию.

    При этом вас никто не заставляет следовать этим рекоммендациям в точности. Никто не запрещает делать кривые сайты которые работают только в ие6, например. И я вас уверяю, это не выдумка, в энтерпрайзе такие штуки все еще живы и получают миллионы денег за обслуживание. Немного сложновато найти тех, кто кривизну будет оплачивать, но иногда получается.

    Такое не только с сайтами, вот и дома так строят иногда, оказывается. Он не соответствует строительным нормам, но никто не запрещает же!
    Ответ написан
    4 комментария
  • Тестовое задание (Junior Frontend), приемлемое ли?

    @kirill-93
    Вертел я такие задания при устройстве на работу.
    Однажды тоже устраиваясь в "крутую" контору прислали большое задание. Все выходные убил на него. Потом еще две недели мурыжили собеседованиями и в итоге не взяли.
    Я с тех пор никогда не соглашаюсь на тестовые задания, которые займут больше получаса моего времени.
    Объемные задания должны оплачиваться. Если они очень требовательно отбирают сотрудников, то сначала надо дать простое задание/прособеседовать и уже если человек их устраивает, давать объемное задание и платить.

    UPD
    Не слушайте, пожалуйста, бред об опыте и пользе для вас. Из таких "будущих хороших специалистов" потом веревки вьют, типа "поработай по вечерам, это ж опыт для тебя!" или "давай ты теперь и по субботам выходить будешь, а мы тебя за это серьёром называть будем!". Очень работает с наивными молодыми людьми.
    Вы поймите, что все эти разговоры про опыт и пользу для вас - это уловки с целью сэкономить и вас обмануть. Всем плевать на ваш опыт, им нужно денег меньше вам заплатить и все.
    Огромное тестовое задание - это неуважение к кандидаду.
    Давай представим обратную ситуацию: я прихожу к потенциальному работодателю и говорю: "Давайте я у вас тут недельку посижу без каких-либо обязательств, а вы мне зарплату платите. А потом посмотрим, может быть останусь, а может уйду". Нормально? Ситуация выглядит именно так, потому что работодатель не делает одолжения принимая на работу, он "покупает" ваше время и ваш опыт и все.
    Ответ написан
    13 комментариев
  • Как понять замыкания, а в частности, присвоения вида fn = function()?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Все просто. В замыкании и не замыкании нет разницы для интерпретатора - это не исключительная ситуация.
    Нужно понять: замыкание это алгоритм, а не конструкция как например цикл или функция!!!

    Функция createCounter() - возвращает анонимную функцию.
    В анонимной функции используется переменная createCounter.

    При просто вызове createCounter()(); :
    createCounter() - инициализирует переменную (три раза) и возвратит анонимную функцию.
    И три раза происходит вызов анонимной функции - вторые ().
    После каждого из трех вызовов переменная numberOfCalls созданная при вызове createCounter уже не нужна.
    Анонимная функция больше не будет использована в этом контексте.
    В итоге функция и замкнутая переменная три раза попадают в уборщик мусора.

    При Сохранении анонимной функции в переменную:
    Во-первых: numberOfCalls будет инициализирована только один раз, при записи fn = createCounter().
    Где контекст анонимной функции записывается в переменную fn.
    Во-вторых: так как контекст вызова сохранен, то замкнутая переменная и анонимная функция останутся лежать в нем.
    В-третьих: при каждом вызове анонимной функции в сохраненном контексте переменная будет увеличиваться так как старое значение не инициализировано и не выброшено.

    var fn = createCounter();
    
    fn();
    fn();
    alert(fn())  // =3
    fn = createCounter();
    fn();
    alert(fn())  // =2
    Ответ написан
    1 комментарий
  • G"gulp" не является внутренней или внешней командой, исполняемой программой или пакетным файлом?

    @Welaurs
    Повторите полностью как я написал:
    1. Удалите NodeJS полностью
    2. Установите заново
    3. В консоль npm install -g gulp
    4. Перезагружаем компьютер (не пропускайте этот пункт).
    Ответ написан
    4 комментария
  • Почему едет блок в ie11?

    viewDidLoad
    @viewDidLoad
    ie11- не понимает тег main, отображает его как inline
    добавьте к .page-content display: block и все заработает
    Ответ написан
    1 комментарий
  • Нужно ли поддерживать Internet Explorer 8 и ниже при верстке?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Я когда то давно считал, что программирование это креатив и новаторство, пока не столкнулся с объективной реальностью )

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

    Поддержка древних браузеров это оружие в руках менеджеров-продажников, которым они завоевывают новых клиентов. Шепчут им сладким голосом мантры про то, что есть 2 процента людей, которые живут в каменном веке и если вы не сделаете их счастливыми, то ваш сайт недополучит эти 2 процента прибыли. Клиенты разумеется прикидывают, что 2 процента это 2 процента и соглашаются переплачивать за такую работу, рассчитывая что эти затраты в итоге окупятся. Это называется разделение ответственности, о котором в свое время писал Ф. Ницше. Менеджер продает услугу, которую он сам не будет производить, а следовательно он не будет сидеть и ломать голову над ее реализацией.

    Хорошо если разработчику будут доплачивать за такие клиентские прихоти, тогда это еще хоть как то будет оправдано, но в ином случае, если программист в организации сидит на окладе, то на его плечи тяжким бременем опустятся все хотелки клиентов, начиная от pixel perfect в резиновом дизайне и заканчивая разметкой scheme в каждом теге.

    Такой подход к работе требует от программиста быть постоянно на пределе. Он становится роботом, который все свое личное время тратит на изучение различных техник оптимизации кода или освоение новых фреймворков, которые внедряются руководством в процесс, после посещения ими очередного модного семинара. Scrum, Agile, TDD и прочие инновации отнимают у рядовых разработчиков самое важное - полноценную жизнь свободного человека.
    Он превращается в придаточный орган корпоративного организма, который способен лишь выполнять одну функцию - писать код. Узкие специалисты перестают понимать внутреннюю жизнь представителей других профессий, а личность должна стремиться к разностороннему развитию, ибо только цельному человеку доступна цельная (читай полноценная) жизнь.
    Человек должен иметь право на досуг и развлечения, и это право он отстоял в революциях 19-20 веков.
    PS
    Я периодически встречаю в сети советы молодым разработчикам, что они должны забросить все свои увлечения и писать сутками код, иначе они не будут востребованы рынком. Это суровая действительность, однако я надеюсь что когда нибудь добро победит бабло и справедливость восторжествует ))
    PPS
    Немного не в тему топика, но мысль настойчиво требовала изложить себя на "бумаге" ))
    Ответ написан
    1 комментарий