Задать вопрос
  • Передача массива в props?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Дело в том, что значение pickeds задаётся лишь единожды - при создании экземпляра компонента app-some, так что странно ожидать, что оно изменится - вы этого нигде не делаете.

    Не знаю, чего конкретно вам надо, но... Чтобы чекбоксы переключились, есть варианты:
    • Отказаться от внутреннего массива, использовать параметр. Типа так.
    • Использовать computed вместо data. Типа так.
    • Задать key для app-some, это приведёт к созданию нового экземпляра компонента при изменении activeId. Типа так.
    Ответ написан
    1 комментарий
  • Какие ЯП нужно учить для создания красивого, динамичного сайта?

    @Froggyweb
    Для создания красивого сайта надо учить дизайн. Никакие эффекты не сделают сайт красивым. для реализации дизайна нужны css и js на данном этапе
    Ответ написан
    Комментировать
  • Что такое и зачем нужен новый тип данный Symbol в ES15?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Что такое

    Новый тип данных symbol - это попытка ввести уникальные идентификаторы. Все крутится вокруг функции Symbol. Это не конструктор в полном смысле слова, с new ее использовать не получится. Это скорее маленькая фабрика. Она просто возвращает новый символ каждый раз. Это важно. Каждый раз новый. В качестве аргумента можно передать строку, но она используется только для отладки.
    Symbol() === Symbol() // false

    Что такое глобальный символ? Какой еще реестр?

    Есть Symbol.for(), это еще один метод, который не просто возвращает символ, но и сохраняет информацию о том, для какого параметра он создавался. Внешне логика работы напоминает хеширование - для разных параметров символы получаются разные, а для одинаковых - одинаковые.
    Symbol.for('my-string') === Symbol.for('my-string') // true
    Symbol.for('my-string') === Symbol.for('another-string') // false


    Зачем это надо?

    Применение этого типа данных - предмет для споров. Большая часть кейсов из интернета - это попытки поиспользовать новую фишку только ради того, чтобы ее поиспользовать. Самые популярные и практически применимые варианты:
    • В качестве ключа для доступа к свойству объекта. Грубо говоря вместо obj[key] использовать obj[some-magic-unique-key]. Позволяет избежать коллизии этих самых ключей если вы расширяете существующий объект из сторонней библиотеки. На практике встречается не очень часто, особенно в небольших проектах, но по всей видимости это - причина появления символов в языке.
    • Некоторая иллюзия приватных свойств. Символы по-своему работают с циклами и многими методами, связанными со свойствами объекта, становясь невидимыми для них. В результате можно разделить "все свойства с обычными ключами" и "все свойства с ключами-символами". А еще можно запутать код до безобразия.
    • Также, пользуясь предыдущей мыслью, можно сделать что-то вроде метаданных для любого объекта, которые опять же не сломают существующий код, но могут быть использованы для хранения какой-то информации и мередачи ее между отдельными модулями. Штука довольно интересная.
    Ответ написан
    Комментировать
  • Как типизировать js функцию с параметром в TypeScript?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Что-то вроде такого:
    interface MyFunction {
        (): void;
        m: any;
    }

    Также см. https://www.typescriptlang.org/docs/handbook/decla...
    Ответ написан
    Комментировать
  • Как создать объект из двух массивов?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const obj = Object.assign({}, ...arr.map((n, i) => ({ [n]: arr2[i] })));
    // или
    const obj = arr.reduce((acc, n, i) => ({ ...acc, [n]: arr2[i] }), {});

    или, в более общем виде:

    const combine = (keys, values) =>
      keys.reduce((acc, n, i) => (acc[n] = values[i], acc), {});
    
    
    const obj = combine(arr, arr2);
    Ответ написан
    2 комментария
  • Откуда берется this в функциях из prototype встроенных псевдо-классов в JS?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    Function.prototype.defer = function (time) {
       setTimeout(this, time);
    };

    Конкретно здесь - ссылка на все экземпляры объектов, то есть - на все функции, поскольку все функции - это объекты, наследующие у Function.prototype.

    А вообще - это контекст вызова функции. То есть, при прямом вызове метода объекта this укажет на сам объект.
    Ответ написан
    1 комментарий
  • В каких случаях использовать ES6 Class?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Нормально ли вообще иметь компоненты в виде классов?

    "Нормальность" - это термин из области психиатрии, обозначающий тот факт, что кто-то другой делает то, что мы на данный момент времени и в данном обществе считаем приемлемым. Были времена, когда люди говорили "мы должны разделять разметку, стили и скрипты и ни в коем случае не должны их смешивать". Это считалось нормальным. Даже относилось к хорошим практикам. А потом появился реакт. И те же люди стали говорить "да давайте все в одном файле фигачить, это же круто, а еще вебпаком можно весь проект со всеми ресурсами в один бандл сжать". И теперь это - норма. Как можно заметить, нормальность немного поменялась.

    не могу найти место применение классов при создании интерфейсов

    Посмотрите на досуге мой велосипед. Он еще далек от совершенства и скорее является полигоном для экспериментов, но там как раз хорошо видно, что получается в коде при использовании классов-компонентов.
    Ответ написан
    Комментировать
  • Как моделировать дорожный трафик?

    @GreatRash
    Вот тут, можно нажать CTRL+U, промотать в самый низ и почитать скрипты.
    Ответ написан
    1 комментарий
  • Как оптимизировать видео, вставляемое в качестве фона?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Уменьшите битрейт и разрешение видео.
    Переместите метаданные в начало mp4 контейнера
    Установите preload="metadata"
    htmlbook.ru/html/video/preload

    Чтобы пиксели в глаза не бросались наложите на видео сеточку из маленьких черных точек
    https://jsfiddle.net/soumyabg/wefLyrhp/
    css background dotted overlay
    Ответ написан
    5 комментариев
  • Почему многие современные сайты верстают на флексах?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    очень часто вижу такое мнение что построение сеток на основе "float" или "inline-block" лучше, потому что флексы поддерживаются не всеми браузерами. Так ли это и почему в таком случае они так популярны?
    Это действительно так. Но я Вам больше скажу, даже CSS как таковой (или HTML-5), поддерживается не всеми браузерами (IE-1 насколько я помню, CSS не поддерживал). Но я не думаю, что это повод отказаться от CSS или HTML5. И вообще, само по себе выражение "не всеми браузерами" - довольно размытое, что-то из области "не все продукты одинаково полезны".

    и почему в таком случае они так популярны?
    По тому, что они дают довольно большую гибкость, сокращают количество "случайностей" (неожиданного поведения элементов), такой код в целом более читаемый, чем "простыни" из float'ов, и так далее...

    P.S. А ещё по тому, что FLOAT'ы были придуманы изначально не для того, для чего их в последствии приспособили, впрочем как и некоторые другие параметры/свойства/атрибуты...
    Ответ написан
  • Как стать продвинутым сайтоклепателем (формоклепателем) и отправиться на каторгу, чтобы пахать за говяжий дошик и оплачивать сарай?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вот сейчас сижу и думаю, что в итоге ни к чему не пришел. У однакласников которые даже 150 баллов за ЕГЭ не смогли набрать уже семьи, они ВУЗы заканчивают(ужасные ВУЗы, но корочка у них будет), бухают там, детишек по пьяне заводят. А чего добился я? Позвоночника формой золотого сечения? Того что в свои 20 нет ни работы, ни девушки, ни друзей? Я просто ноулайфер, что тратил свободное время на все эту хрень думая, что все это принисет плоды. Но нет, жизнь меня на*бала или я сам себя на*бал.

    Т.е., травить свой организм наркотиком класса А, не уметь предохраняться, шататься по клубам и вечеринкам - это нынче считается достижением? А что же тогда развитые способности к мышлению, аналитике, выстраиванию сложнейших логических цепочек в голове, способность к ежедневному самообучению, знание нескольких языков, причем языков не предназначенных для человека (да, да, я про ЯП, если кто не понял), а то нескольких десятков, знание того, как работает вся эта современная машинерия? Вот что это? Подумайте тщательно и подвергните критической оценке вашу оценку "успеха". А вобще - все это не имеет смысла. Главное делать то, что делает тебя счастливым, развиваться и самосовершенствоваться, познавать мир. Многие забывают, что все люди с детства начинают познавать мир и стремятся к саморазвитию, а взрослея перестают это делать просто получая сиюминутную порцию эндорфинов от простейших стимуляторов типа алкоголя, табака и прочего.
    Дело не в стеке, а в том, чего именно вы хотите достичь в далекой перспективе. А программирование - всего лишь один из множества путей. Так что совет простой: если есть желание продолжать программировать и не боитесь сложностей (а это сложно, очень сложно, по трудовому кодексу тяжесть сравнима с шахтерским трудом) - то просто выкиньте из головы весь этот бред про "пацанов", "важные вещи", "корочки", "хипсетров" - это все информационный шум, определите для себя чего именно вы хотите достичь в итоге и двигайтесь к этой цели. А путей много: один из самых популярных сегодня - это работа на международных биржах. Вот тут например очень неплохой гайд по апворку: odeskconf.github.io/guide и вот на дошик и сарай на месяц вполне можно заработать за день-два, было бы желание. На вкат в апворк уходит в среднем от нескольких недель до нескольких месяцев.
    Ответ написан
    6 комментариев
  • Как понять из какого *.tpl файла подгружается страница opencart?

    halfhope
    @halfhope
    Смотрите какой у страницы route в GET параметре, он же будет путем и названием контроллера. Допустим, route=account/register. Идете в controller/account/register.php смотрите функцию index, там, в самом конце функции, идет подгрузка файла шаблона и указан путь, пусть будет тоже account/register идете в catalog/view/theme/template_name/account/register.tpl. Причем, если этого файла шаблона у установленной темы нет, то он загрузится из темы default. Еще не забывайте про модификаторы в версии 2.x, если после редактирования файла изменений нет, то обновите кэш модификаторов или временно отключите модификатор, который редактирует этот файл.
    Ответ написан
    Комментировать
  • Чем отличаются canvas от webgl, и что лучше учить для 3d-анимации?

    @Iv_and_S
    -webgl - это низкоуровневое программирование графики. На чистом webgl быстрее работает(относительно фреймворков), но сложно и долго писать.
    -three.js babylon.js - это по сути API к webgl . т.е. более высокоуровневое программирование графики. А здесь проще чем на webgl, низкий порог вхождения, но естественно с некоторыми накладными расходами.
    - canvas - это то на чем все это в браузере отрисовывается.

    по мне так webgl чистый нужен когда нужно что то сложное/быстрое.
    Ответ написан
    Комментировать
  • Почему валидация формы происходит только после второго сабмита?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    RTFM ЕПТА!
    $("#идГребаннойФормы").validate();
    Ответ написан
    Комментировать
  • Css grid vs flexbox vs float?

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

    P.S. Всё вышесказанное — именно про раскладку блоков страницы. По прямому назначению (обтекание элементов текстом внутри блоков) флоаты по-прежнему актуальны (особенно в сочетании с новыми возможностями типа shape-outside).
    Ответ написан
    Комментировать
  • Разработка сайта на WordPress и git (github)?

    zorca
    @zorca Куратор тега WordPress
    Посмотрите на структуру Bedrock для профессиональной разработки: Bedrock .
    Ядро лежит отдельно и в гит само собой не попадает, плагины подтягиваются не через админку, а через Composer, и не требуют сохранения в гит. Что еще стоит включать в гит, зависит от проекта. Возможно папку аплоада, за исключением откровенно мусорных кешей и прочего. Базу можно дампами выкладывать в корень проекта, через тот же wp db export. Миграции до Wordpress еще не доползли, я пока не знаю как решать этот вопрос.
    Ответ написан
    Комментировать
  • Какой код CSS работает быстрее?

    @Za0r
    pop()
    <article id="Assembly">
      <section class="AssemblyHeader">
        <div class="AssemblyName">
          <h1 class="AssemblyName__title">EvilBeasts Ultimate Performance</h1>			
        </div>
      </section>
    </article>

    .AssemblyName__title{
    color:red;
    }
    Ответ написан
  • Какие есть способы сократить данную строку?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Сложить допустимые значения в массив, с помощью метода узнать, содержится ли в массиве проверяемое значение:

    if (![ 'search', 'search_input', 'cancel_btn' ].includes(target.className)) {

    Или, заменить длинное обращение к проверяемому значению коротким через создание дополнительной переменной или константы:

    const t = target.className;
    if (t !== 'search' && t !== 'search_input' && t !== 'cancel_btn') {

    Или, принимая во внимание имена переменной и проверяемого свойства, можно предположить, что речь идёт об элементе. А значит, несколько строк можно заменить на одну - селектор, и проверять, соответствует ли элемент этому селектору (результат этой проверки, в отличие от предыдущих, будет корректен и в том случае, если у элемента более одного класса):

    if (!target.matches('.search, .search_input, .cancel_btn')) {
    Ответ написан
    Комментировать
  • Два сета глифов у шрифта, как разделить?

    romansergeevich
    @romansergeevich
    Закинь его в Hi-Logic Font Creator, добавь или убери всё, что нужно или мешает и радуйся)
    Ответ написан
    Комментировать