
Pavel
24.09.2016
17:18:42
А вы локал стейт используете?

Vladimir
24.09.2016
17:23:38
Бывает

Дмитрий
24.09.2016
18:13:53

Damir
24.09.2016
18:14:48

Google

Дмитрий
24.09.2016
18:15:20
Да ладно уж тебе, там главное один раз всё настроить)
Но я какой-то неправильный, походу, потому что в 2016 году не люблю вебпак ?
И тоже до последнего реализовывал всё на gulp

Sergey
24.09.2016
18:17:06

Дмитрий
24.09.2016
18:21:48
Да это то всё понятно) Меня сама идея инлайна немного смущает. Я понимаю, какие задачи это выполняет сейчас, но не удивлюсь, если через пять лет про это даже вспоминать не будут
gulp кстати по идее тоже это всё мог бы, но его разработчики впали в летаргический сон

Sergey
24.09.2016
18:23:24


Bogdan
24.09.2016
18:26:02
да, dnd, да и просто теряется состояние компонента который при componentWillMount инициализирует свое состояние.Я конечно понимаю что можно вынести это состояние во внешний стор но проблема в том что реакт поддерживет диффинг только на одном уровне div-а а мне хочется придумать какой-то способ исправить этот недостаток реакта для перемещаемых компонентов между разными уровнями верстки
в общем нашел способ создать MoveContainer который можно перемещать через разные уровни div-ов и это не приведет к unmount-у вложенного компонента - но при этом используется ReactDOM.render, внутренние свойства реакта и также MoveContainer создает дополнительный див-враппер
Вот код:
function findReactKey(dom) {
for (var key in dom)
if (key.startsWith("__reactInternalInstance$")) {
return key
}
return null;
}
var cache = {};
class MoveContainer extends React.Component {
renderReactInstance(instance, parentElement){
var element = document.createElement('div');
parentElement.appendChild(element);
var reactKey = findReactKey(parentElement);
var innerComponent = instance._reactInternalInstance._renderedComponent;
innerComponent._hostNode = element;
innerComponent._currentElement = null;
element[reactKey] = innerComponent;
ReactDOM.render({...instance._reactInternalInstance._currentElement}, this.$el);
}
componentDidMount(){
if(cache[this.props.id]){
clearTimeout(cache[this.props.id].timer);
this.renderReactInstance(cache[this.props.id].instance, this.$el);
} else {
var reactKey = findReactKey(this.$el);
delete this.$el[reactKey];
var instance = ReactDOM.render(this.props.children, this.$el);
cache[this.props.id] = {instance};
}
}
componentDidUpdate(){
ReactDOM.render(this.props.children, this.$el);
}
componentWillUnmount(){
cache[this.props.id].timer = setTimeout(()=>{
delete cache[this.props.id];
ReactDOM.unmountComponentAtNode(this.$el);
},0)
}
divRef=(el)=>{
if(el){
this.$el = el;
}
};
render(){
return <div ref={this.divRef}></div>
}
}
и демка кому интересно - http://codepen.io/anon/pen/wzJmBQ


from
24.09.2016
18:27:27

Lupsick
24.09.2016
18:32:29
https://habrahabr.ru/company/oleg-bunin/blog/310868/
вы читали?
человек в авиасейлс работает на секундочку

Vladimir
24.09.2016
18:57:53

Sergey
24.09.2016
18:58:20

Google

Sergey
24.09.2016
19:07:47
https://habrahabr.ru/company/oleg-bunin/blog/310868/
Вот параграф из статьи, который иллюстрирует её уровень:
"Кроме того, если вы программировали на React, то вы знакомы с такой штукой как pure-render-mixin. Суть его в том, чтобы избавиться от работы c virtualDom'ом. Случается очень интересная ситуация близкая к комичной. Сначала господа из Google пару лет продавали нам React как штуку, которая с помощью virtualDOM адски ускоряет работу с DOM, а потом оказывается, что чтобы быстро работать с DOM, нужно исключить virtualDOM. Молодцы, хорошо сделали."
Молодец, автор статьи, хорошо сделал.
Сорян, я не оценил сарказм значит.

Сергей
24.09.2016
19:09:38
А причем тут гугл?
Если реакт разработал и пиарит фэйсбук?

Sergey
24.09.2016
19:12:24
Может мужик который тебя собеседовал уволилися, и они потом понабрали кого попало?

Lupsick
24.09.2016
19:13:47

Roman
24.09.2016
19:33:13
Вот параграф из статьи, который иллюстрирует её уровень:
"Кроме того, если вы программировали на React, то вы знакомы с такой штукой как pure-render-mixin. Суть его в том, чтобы избавиться от работы c virtualDom'ом. Случается очень интересная ситуация близкая к комичной. Сначала господа из Google пару лет продавали нам React как штуку, которая с помощью virtualDOM адски ускоряет работу с DOM, а потом оказывается, что чтобы быстро работать с DOM, нужно исключить virtualDOM. Молодцы, хорошо сделали."
тоже позабавил этот фрагмент, дальше стало неинтересно читать

Konstantin
24.09.2016
19:59:24
Оговорился человек насчет гугла.
В целом годный доклад. Видно сразу что ребята думают головой и решают свои задачи оптимально.
pure-render-mixin действительно, использутся для избежания лишних сравнений virtualDom

from
24.09.2016
20:25:29
> пару лет продавали нам React как штуку, которая с помощью virtualDOM адски ускоряет работу с DOM
блин, да кто такое хоть раз говорил)

Alexander
24.09.2016
20:35:47
ну кстати было такое, как я помню )

from
24.09.2016
20:38:32
нет, правильно сказать «virtualDOM адски _упрощает_ работу с DOM». И упрощает, неожиданно мало жертвуя производительностью. Но разумеется жертвуя.
Ускорять-то как он может?

Alexander
24.09.2016
20:46:10
так было же много историй из разряда того, что он VirtualDOM максимально уменьшает количество обращений к DOM, за счет чего скорость внезапно увеличивается. А так да, мне тоже всегда казалось, что основная фича virtualDOM в упрощении работы с DOM

Alexey
24.09.2016
20:47:16
мне больше нравится аналогия с F5, т.е. virtualDOM позволяет схожий эффект реализовать без перезагрузки и серьезной потери производительности
ну а так, речь скорее о декларативности и надо чем-то жертвовать

Vladimir
24.09.2016
20:48:57

Anton
24.09.2016
21:05:27

Anton
25.09.2016
05:38:55
VirtualDOM упрощает работу с DOM максимально простым и универсальным образом. Конечно же не эффективным.

Google

Dreamerinnoise
25.09.2016
05:45:04

Cocker
25.09.2016
06:21:11

Arcady
25.09.2016
06:56:47
Cycle.js где обсуждают?

andretshurotshka?❄️кде
25.09.2016
06:57:53

Igor
25.09.2016
07:31:34
Господа, а кто имел дело с react-addons-transition-group и router
Вроде делаю все по мануалом, а не хочет работать componentWillEnter

Дмитрий
25.09.2016
10:22:16

Vladimir
25.09.2016
10:23:51
скоро два года будет

Vasiliy
25.09.2016
12:21:37
он юзабельный

Alxander
25.09.2016
12:28:01
Есть какой-нибудь человеческий аналог react-helmet?
А то меня прям воротит от него что-то.

Evgeny
25.09.2016
12:30:49
Почему

Vasiliy
25.09.2016
12:32:17
там все на react-side-effect основано
оч просто свое можно наподобе сделать

Alxander
25.09.2016
12:32:22
В основном ем, что внутренности в нём прописываются через пропсы, а не нормальные вложенные элементы. Ну и жирноватый он какой-то.

Evgeny
25.09.2016
12:32:23
И чо

Alxander
25.09.2016
12:32:36

Vasiliy
25.09.2016
12:32:45
а, это и бесит) я понял, не знаю, есть аналогичные пакеты

Alxander
25.09.2016
12:52:06
> Because this component keeps track of mounted instances, you have to make sure to call rewind on server, or you'll get a memory leak.
Вот это тоже хорошо. Какой-то костыль, ей богу.

Evgeny
25.09.2016
12:53:19
Кто-нибудь реакт-роутер в4 использует?
У меня есть
<Match pattern="/repositories/:username/create" component={Create} />
<Match pattern="/repositories/:username/:slug" component={Show} />

Google

Evgeny
25.09.2016
12:53:52
Перехожу на /repositories/e/create, мне показывает оба компонента — и Create, и Show
Чо делать

Alxander
25.09.2016
12:54:52
Звучит довольно логично, он же метчит все элементы.

Evgeny
25.09.2016
12:55:09
Это конечно да, у меня к этому нет вопросов
Меня больше интересует как это нормально разрулить)
repositories/create?defaultUsername=ee сделаю так

Alxander
25.09.2016
13:00:18
Может их вложенными сделать, новый рр это позволяет?

Lupsick
25.09.2016
13:03:28
там было что-то про exactly

Alexandr
25.09.2016
17:23:09
ребят, помогите пж. есть такая запись, <img src={require("../../../img/target.png")} /> и все ок, но мне нужно динамически подставлять путь к картинке <img src={require({pathToImg})} />. Но это не работает..есть какой выход?

Evgeny
25.09.2016
17:26:46
Что именно не работает?

Alexandr
25.09.2016
17:28:41
картинки не подгружаются

Evgeny
25.09.2016
17:30:07
Проверь через консоль лог, что тебе даёт require({pathToImg})
Кстати, зачем pathToImg оборачивать в {}?
У тебя же получается объект
require({ pathToImg: pathToImg })

Lupsick
25.09.2016
17:30:58
вот бы щас картинки в объекты позаворачивать

Evgeny
25.09.2016
17:31:04
эхх

Alexandr
25.09.2016
18:03:59
я вот об этом
http://stackoverflow.com/questions/32612912/dynamically-add-images-react-webpack
я передаю в потомок путь через пропс, потом мне нужно их отобразить

Google

Alexandr
25.09.2016
18:07:50
вот так работает import LogoImg from 'YOUR_PATH/logo.png'; и так тоже <img src={require('./assets/image.png')} /> . но мне нужно в require передать props

Leonid
25.09.2016
18:08:06
Задай контекст: https://webpack.github.io/docs/context.html#dynamic-require-rewriting
картинки должны лежать в одной папке(пусть даже с вложенностью) и будет require('./src/images' + imageName + '.png')
полностью динамически не получится, т.к. webpack должен знать путь на момент билда