
Viktor
22.10.2018
10:07:30
store.subscribe(nextState => states.push(nextState))
стоп
если мы говорим об оптимизации, нам нужен redux-адаптер, по типу redux-polymer или redux-react
чтобы он внутри себя сравнивал состояния

Google

Viktor
22.10.2018
10:09:06
причем как бы логично, что при возврате назад к предыдущему состоянию будет перерендеринг

Nikita
22.10.2018
10:09:27
но приложение на vanilla js
нет, я просто не хочу чтобы этот компонент рендерился заново при каждом изменении стора. Тк subscribe мне это сейчас и делает

Viktor
22.10.2018
10:10:28
ну vanilla что означает, что создаются html-элементы и просто вставляется в DOM?

Nikita
22.10.2018
10:10:36
именно

Viktor
22.10.2018
10:11:03
тогда тебе следует написать декоратор

Nikita
22.10.2018
10:11:19
я думаю мб в стейте хранить текущиее значение и предидушие? Костыль конечно

Maksim
22.10.2018
10:11:33


Safrina
22.10.2018
10:11:54
#москва #вакансия #job #frontend #React #VueJS #Hyperapp #Angular
Город и адрес офиса: Москва, м.Курская
Формат работы: офис, гибкий график работы
Занятость: полная
Зарплата: от 150 000 до 180 000 на руки
Описание вакансии:
Проект – "Смотрёшка". Подробности тут: (www.smotreshka.tv)
В нашей компании у Вас будет возможность стать одним из основных разработчиков клиентских приложений и web-порталов для телевизионных сервисов, которыми уже сейчас постоянно пользуются сотни тысяч пользователей. Помимо непосредственного написания кода, Вы сможете принимать решения по проектированию и развитию архитектуры приложения, делиться опытом с другими разработчиками и поднять свои навыки на совершенно новый уровень.
Мы предлагаем:
— Неформальную обстановку (нам не так важно, как вы выглядите и выражаетесь, важно, как вы работаете),
— Гибкий график (можно периодически работать из дома и выезжать в офис, когда общественный транспорт не забит битком; участвовать в планёрках можно по Hangouts/Skype),
— Работу по SCRUM-методологии с ролями stakeholders, product owners и др., с бэклогом, приоритезацией и стендапами, ревью и ретроспективами
Требования:
— Уверенное владение JS, стандарт ES5/6,
— Знание паттернов функционального программирования: Immutability, Pure Functions, Composition и др.,
— Полное понимание работы асинхронных и реактивных приложений,
— Опыт работы с минимум двумя из перечисленных библиотек: React, VueJS, Hyperapp, Angular, Backbone,
— Опыт разработки по FLUX, знание Redux,
— Опыт сложных конфигураций webpack,
— Знание или готовность подтянуть CSS3, HTML5, опыт responsive/adaptive вёрстки,
— Git, практика PR(MR), навык работы в команде и code review,
— Знание английского языка (технический).
Название компании: LifeStream (life-stream.tv/ru/)
Контакты: @elena_safrina, elen.safrina@gmail.com


Viktor
22.10.2018
10:12:15
декоратор будет решать, вызывать updateDOM или нет
на основании внутреннего алгоритма сравнения двух состояний (объектов, или в каком они виде там)
примерно понятно?

Google

Viktor
22.10.2018
10:13:49
или не очень

Nikita
22.10.2018
10:13:54
видимо я что-то упустил, но так и реализовано. Я просто не могу из декоратора получить предидущие состояние
либо уже где-то очень туплю

Viktor
22.10.2018
10:14:16
все верно, его оттуда не получишь)
а в каком месте конкретно нужно предыдущее состояние?
и для чего

Nikita
22.10.2018
10:16:48
как-то так
тоесть в lifeCheck должна быть проверка на предидущие состояние

Viktor
22.10.2018
10:18:45
updateLife делает .dispatch action'а?
метод в последней строчке

Nikita
22.10.2018
10:19:44
нет, это функция рендера
диспатч происходит в функции проверки на смерть
в другом модуле

Viktor
22.10.2018
10:20:54
проблема в том, что отсюда ты его никак не получишь
в идеале все это нужно реструктурировать

Andrew
22.10.2018
10:21:31
Ребята хелпуйте, нужно что б при нажатии на текст под картинкой, всплывала подсказка как при нажатии на блок в низу самой карты, помоги реализовать, я не понимаю почему оно не нажимается и не показывает её
https://codepen.io/anon/pen/XxBqdj

Nikita
22.10.2018
10:22:11
я так понимаю?

Viktor
22.10.2018
10:22:19
если же нужно по-быстрому, можно создать дополнительный store.subscribe, который будет в "глобальный" массив сохранять состояния

Google

Viktor
22.10.2018
10:24:28
ну, я, если честно, с таким не сталкивался, не приходилось
в любом случае здесь придется делать допольнительный store.subscribe для хранения предыдущего состояния
вопрос лишь в том, где это делать
redux-undo - это идеальное, с точки зрения технической правильности решение
потому что сама философия redux сулит делать такие расчеты в reducer'ах

Nikita
22.10.2018
10:26:14
есть идея
сейчас попробую

Viktor
22.10.2018
10:27:21
а что касается перерендеринга в пустую - этим должен заниматься адаптер либо декоратор
самое важное в создании приложения - разделить все на зоны отсетственности (абстракции)
в таком случае будет супер-просто наращивать функционал и вообще такие проблемные вопросы станут легко решаемыми
потому что на уме будет лишь несколько логичных мест, где это лучше всего сделать


?
22.10.2018
10:32:29
Юзал модуль react-chartjs-2 для рисования графиков в таблице (их много а рисую по 100), так вот библиотека весила много и мало функционала и я решил перейти на highchartjs для реакта, которая весит почти в 2 раза меньше но при этом функционала в 3 раза больше. Все в целом неплохо но появилась одна проблема: когда я начинаю листать страницу (рисуются следующие 100 графиков) время отрисовки highchartjs занимает в 3-4 раза больще отчего чем у react-chartjs-2 и появляется эффект зависания страницы на скунды 3. Как это можно пофиксить?

?
22.10.2018
10:33:06
тут по сути вопрос не про реакт а именно про эту библиотеку, почему она так долго рисует графики

Viktor
22.10.2018
10:33:56
сложно сказать)

Nikita
22.10.2018
10:42:52
просто в замыкание добавил состояние компонента

Viktor
22.10.2018
10:52:58

Дмитрий
22.10.2018
10:55:27
Здравствуйте, товарищи! Допустим, на странице одного сайта подключается (тегом <script src=...>) скрипт, который физически лежит на другом сайте/домене/сервере. Не порождает ли это какие-то проблемы, связанные с HTTP/HTTPS и всякими там политиками безопасности браузеров и т.п.? Нет тут ли каких-то ограничений или тонкостей? Т.е. меня интересует, будет ли что-то препятствовать такой затее.

Andrew
22.10.2018
10:56:53
разве что в Китае jquery работать не будет)) вернее у маего клиента блочило такое, надо было все к себе на сайт сгружать все файлы

Viktor
22.10.2018
10:56:55
вообще не должно

Google

Yura
22.10.2018
10:57:24
https://developer.mozilla.org/ru/docs/Web/HTTP/CORS

Maksim
22.10.2018
10:57:33

Yura
22.10.2018
10:57:40
Тут описаны все тонкости

Admin
ERROR: S client not available

Дмитрий
22.10.2018
10:58:24
Спасибо. Пойду читать.

Viktor
22.10.2018
10:58:30
кстати, да, cors
но вот только для статики это разве работает
у меня были только проблемы с API-запросами

Yura
22.10.2018
11:00:10
Вот как раз в mdn все описано, для чего работает...
И вот немаловажная детать из этой статьи

Дмитрий
22.10.2018
11:32:07

Yura
22.10.2018
11:35:20
Можешь не обращать внимания на это. Скрипты также имеют зависимость от CORS. А вообще, можешь попробовать сам протестить на локальных доменах.
Там всё дело в заголовках, который отправляет сервер (ну тот, на который ты обращаешься за скриптом). Если в заголовках есть пункт, разрешающий CORS - все будет впоряде)

Сергей
22.10.2018
11:36:14
Привет!
Кто-то работал с русской локализацией moment.js?
В файлке русскоязычной локализации вижу что есть возможность вывести дату в формате:
1 год, 5 лет, 24 года
но никак не пойму как этот формат вызвать.
Это не является конфигом для стандартного метода .format()
Соответственно должен быть какой-то вариант для вызова кастомного форматирования.
Кто сталкивался, подскажите)

Nikita
22.10.2018
11:40:29
Люди обьясните пожалуйста для чего нужен "нормалайз ксс, для верной адаптации html кода под разные версии браузера, верно ?

Azein
22.10.2018
11:42:39
в общем случае, у браузеов есть свои дефолтные стили для элементов. эти дефолтные стили могут приводить к тому, что твой сайт неконсистентно выглядит в разных браузерах - где-то отступы добавились, где то инпуты со странными границами, и тд. нормализация браузерных стилей позволяет этого избежать

Nikita
22.10.2018
11:45:14

Дмитрий
22.10.2018
11:46:26

Yura
22.10.2018
11:46:44
Верно)

Google

Дмитрий
22.10.2018
11:47:40

Mike
22.10.2018
12:20:55
Ребят как можно реализовать фокус на блок с атрибутом contenteditable="true" при mouseup? И главное, чтобы курсор ввода текста встал там, где и курсор мыши.
Вот пример с canva.com, при mousedown появляется обводка с кнопками, потом когда отпускаю мышку (mouseup), идет фокус на блок с текстом, и курсор ввода появляется там где и курсор мыши

Garik
22.10.2018
13:31:06
мне нужно сделать многострочное текстовое поле с полосой прокрутки в котором разные строки или слова будут иметь разный шрифт. textarea вроде бы так не умеет. как такое можно сделать?

Again
22.10.2018
13:32:47
и внутри дивы вытаскиваешь их стилизуешь как тебе надо

Garik
22.10.2018
13:41:06
хм... спасибо... грустно все как...

Again
22.10.2018
13:41:24
почему грустно?

Paul
22.10.2018
13:42:11
Не ... за ... что ... брат.......

Garik
22.10.2018
13:42:47
да как бы не хотелось бы плодить сущности в виде кучи div'ов... а если в отдельно взятой строке каждое слово будет иметь разный цвет\жирность, то это вообще морока получится...

Paul
22.10.2018
13:43:14
Иногда приходится......