
Ҫѐҏӗѫӑ
17.08.2016
14:17:06
это да
я предлагал Далтону в лодаш добавить, но он сказал что у него либа для синхронщины, а для асинхронщины есть async =/

Nikita
17.08.2016
14:18:18
эм, у него либа утилит)) иначе каким боком там debounce/throttle

Ҫѐҏӗѫӑ
17.08.2016
14:18:42
shrug.jpeg

Google

Алексей
17.08.2016
14:19:19

Ҫѐҏӗѫӑ
17.08.2016
14:19:35
нене async не нужен

Nikita
17.08.2016
14:20:10
эм, это прям оч старая либа для ноде-стайл-коллбэков) хорошая, но не для промисов вообще

Алексей
17.08.2016
14:21:44
нене async не нужен
ты иммешь ввиду лучше Bluberd / RxJs или просто что async вообще сам по себе неочень?

Ҫѐҏӗѫӑ
17.08.2016
14:22:53
ну вот Никита все верно написал

Lupsick
17.08.2016
14:55:07
посоны что делать если вебпак ломается если в урле есть точки (asdasd.asdasd.qweqwe)?
https://github.com/webpack/webpack-dev-server/pull/303
не могу победить
_НИД ХЕЛП_

Anton
17.08.2016
15:24:57
так там же совет есть по поводу хистори

Nikita
17.08.2016
15:24:58
не использовать webpack dev server
express + webpack-dev-middleware + webpack-hot-middleware

Lupsick
17.08.2016
15:27:46

Google

Lupsick
17.08.2016
15:28:14

Anton
17.08.2016
15:28:35
ну тогда как выше в примере экспресс + мидлвары

Lupsick
17.08.2016
15:28:41
сделал через реврайтс короче


Anton
17.08.2016
15:29:07
var path = require('path');
var express = require('express');
var webpack = require('webpack');
var config;
if(process.env.NODE_ENV === 'production') {
config = require('./webpack.prod.config');
}else{
config = require('./webpack.dev.config');
}
var app = express();
var compiler = webpack(config);
var Dashboard = require('webpack-dashboard');
var DashboardPlugin = require('webpack-dashboard/plugin');
var dashboard = new Dashboard();
compiler.apply(new DashboardPlugin(dashboard.setData));
app.use("/assets", express.static(path.join(__dirname, 'assets')));
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: config.output.publicPath
}));
app.use(require('webpack-hot-middleware')(compiler));
app.use('/public', express.static('public'));
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'index.html'));
});
app.listen(3000, function(err) {
if (err) {
console.log(err);
return;
}
console.log('Listening at http://localhost:3000');
});
Только дашборд удалить


Lupsick
17.08.2016
15:30:26
а почему не юзать вебпак дев сервер?

Anton
17.08.2016
15:38:11
Я не знаю, я не местный

Vladimir
17.08.2016
16:08:33
слушайте, а React.renderToString синхронный же?

KlonD90
17.08.2016
16:09:29
Да

Vladimir
17.08.2016
16:11:07
то есть если я, грубо говоря, делаю на сервере
global.language = 'ru'
renderToString(<MySuperApp/>);
то я могу не париться, что параллельный реквест перезапишет language
и значит совать локаль в контекст все же бессмысленно

Paul
17.08.2016
17:24:14
Локаль может использоваться не только при рендеренге компонентов, но и там где ты асинхронно фетчишь данные чтоб наполнить стор, так что класть куда-то все же придется

Grigory
17.08.2016
17:34:45
Есть мысль гульнуть на все сто и втащить в проект jss, кто-нибудь использует его в своих проектах или может есть что получше?)

Vladimir
17.08.2016
17:45:15
То есть на момент рендера все данные уже должны быть на месте, вот я к чему

Max
17.08.2016
18:33:25
Ребят, как два метода класса вызвать в рендере на onclick?

Anton
17.08.2016
18:34:55
onClick ={() => {this.one();this.two();}}
про это?

Ilya
17.08.2016
18:35:30

Anton
17.08.2016
18:36:59
:(

Google

Max
17.08.2016
18:37:03
да, но в таком случае я теряю event

Ilya
17.08.2016
18:37:15

Max
17.08.2016
18:37:59
ну и setState сделать не могу
this.setstate is not a function

Ilya
17.08.2016
18:39:08
constructor(props) {
this.handleClick = this.handleClick.bind(this);
}
handleClick(event) {
this.one(event);
this.two(event);
}
render() {
return (
<button onClick={this.handleClick}>Click</button>
);
}
оптимизируйте сейчас лучше, чтобы потом головой не биться

Max
17.08.2016
18:40:00
я так и сделал, но не хотел лишний метод писать для обертки этих двух

Ilya
17.08.2016
18:40:12
хах
лучше так, чем каждый рендер цикл создавать функцию с помощью () => {}

Max
17.08.2016
18:41:02
ок спс

Artem
17.08.2016
18:41:03
Но можно и там ее забиндить, если очень хочется

Ilya
17.08.2016
18:41:11

Artem
17.08.2016
18:41:13
Но не нужно

Ilya
17.08.2016
18:41:26
он все равно будет каждый раз новую функцию возращать
или ты имеешь ввиду после объявления в классе?

Artem
17.08.2016
18:42:12
Да. Просто если каждый раз писать .bind(this), то конкретная проблема уйдет
Но лучше так не делать, конечно

Ilya
17.08.2016
18:42:43
handleClick(event) {
this.one(event);
this.two(event);
}.bind(this)
?
Так разве можно?

Max
17.08.2016
18:43:07
да у меня оба метода в конструкторе забинжены

Google

Artem
17.08.2016
18:43:31
(() => {}).bind(this)

Ilya
17.08.2016
18:43:33
а
не, это плохой способ

Admin
ERROR: S client not available

Max
17.08.2016
18:43:49
this.handleShowScholarship = this.handleShowScholarship.bind(this);
this.handleSelectItem = this.handleSelectItem.bind(this);
onClick={() => { this.handleSelectItem(); this.handleShowScholarship(); }}

Artem
17.08.2016
18:43:54
О чем я сразу и уточнил

Grigory
17.08.2016
18:44:08
так нельзя можно arrow function но лучше не надо ибо в стандарте такое даже не виднеется, лучше в конструкторе

Ilya
17.08.2016
18:44:24
+

Grigory
17.08.2016
18:45:14

Oleg
17.08.2016
18:46:18
Гриша, бабель прогонит и оно будет работать, просто никому не рассказывай, что так сделал)
это про arrow function

Ilya
17.08.2016
18:47:04
вообще стоит любые объявления объектов (style={{ width: 100, height: 100 }}) в render выводить, по возможности в константу, а лучше сразу целые элементы, чтобы наверняка

Grigory
17.08.2016
18:47:32

Ilya
17.08.2016
18:48:07
поэтому палево
Так как у меня сейчас немного освободилось времени, я хочу попрактиковаться в React/Redux. Я работаю сейчас с Electron и есть желание что-то сделать с использованием этих технологий. Только вот что - не знаю. Думал Markdown редактор, но я уже работаю над одним, хоть он и на Vue, но от второго такого же на React нет смысла. Кто может что-нибедь посоветовать? Просто пилить какие-то специфичные инструменты не хочу из-за их минимальной восстребованности, хотелось бы что-то для более широкого круга людей.

Oleg
17.08.2016
19:00:12
awesome todolist

Ilya
17.08.2016
19:01:48
awesome todolist
Интересный вариант, только надо будет придумать какие-то киллер фичи
P.S. к слову, на хакатоне WTH 2 делал как раз todo list, который хотел также назвать, но потом назвал "Kosherniy планировщик"

Anton
17.08.2016
20:02:16
Есть еще сахар для контекста this: this.onClick = ::this.onClick

Google

Ҫѐҏӗѫӑ
17.08.2016
20:05:50
время хреновых советов

Ilya
17.08.2016
20:07:09

Dmitry
17.08.2016
20:11:57
А что там с class public fields? Я так понял оно сейчас в stage 2?
Но все еще опасно юзать
Судя по всему

Ҫѐҏӗѫӑ
17.08.2016
20:16:36
паблик и прайват оба пропозала на 2 вроде
а, нет прайват на 1
ну это потому что Кевин ушел из жс. они ща вместе будут двигаться
прайват тоже ljharb забрал

Dmitry
17.08.2016
20:22:09
@chicoxyzzy ты ведь следишь. Там есть проблемки, чтобы оно не вошло в ближайшие стандарты?

Ҫѐҏӗѫӑ
17.08.2016
20:23:29
есть немного. в ближайшие не войдет
в основном проблемы у private fields
и так как их двигать решили вместе, то паблик филдс тоже притормозят