Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   React'а тред (https://javascript.ru/forum/offtopic/53890-react%27-tred.html)

l-liava-l 02.05.2015 17:19

Цитата:

нет не мусор, пруф http://www.youtube.com/watch?v=NbLfDvQsesk
То что ты назвал компонентом - это совсем не компонент, а просто темплейт.

Компонент это такая штучка, которая обьединяет в себе кучу директив и вообще какой то шаблонный блок, но при этом изолирована от внешней области видимости. (параметры туда передаем либо сервисом либо атрибутами)

Цитата:

ПС: атрибуты мусор! Особенно какие-нибудь левые типа ng- , я уж молчу про ui-, да и data- шлак левый, но что уж поделать, сделали по просьбе ламеров..
Не совсем с тобой согласен. Если смотреть со стороны обычного mvc, то да, контроллер сам должен знать всю инфу и расшаривание парметров в _статичное_ представление - костыль.

Но в mvw ты _конфигурируешь_ атрибутами viewModel эти атрибуты привязывают то или иное состояние представления к конкретному значению модели. А то что остается немного шлака от нагенеренного т.к это фигня.

UIjs 02.05.2015 17:23

Gozar, но ведь разметка и состоит из элементов и атрибутов. ты утверждаешь что атрибуты это мусор? я так и не понял почему.

ты сказал что они ни чего полезного не привносят, но они привносят полезный функционал. или не привносят его? например ui-scrollbar добавляет красивый скроллбар. или не добавляет? data-repeat итерирует элемент, или не итерирует? on-click вешает обработчик события. или не вешает? или данный функционал не полезный?


Цитата:

Сообщение от l-liava-l
То что ты назвал компонентом - это совсем не компонент, а просто темплейт.

то что я назвал компонентом это компонент а вовсе не темплейт. ты все напутал потому что невнимательно смотрел.

Цитата:

Сообщение от l-liava-l
Компонент это такая штучка, которая обьединяет в себе кучу директив и вообще какой то шаблонный блок, но при этом изолирована от внешней области видимости.

да

l-liava-l 02.05.2015 17:27

Цитата:

Если я правильно понял, то преимущество Dispatcher'а в том, что в case'ах можно добавлять не один AppStorage.add(data.params), а множество обращений к хранилищу, так?
Dispatcher нужен для того чтобы вызывать экшены не только в какой то последовательности, но и делать подписку на обновление других компонентов. Если понятно выразился канеш

Safort 02.05.2015 17:34

l-liava-l,
не совсем понятно, ведь подписку на обновление осуществляет сам компонент в componentDidMount(). Можно пример, так будет гораздо понятнее, наверно)

l-liava-l 02.05.2015 17:37

Цитата:

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

да
Што да, "твой компонент" зависит от верхнего контроллера потому что в атрибуты передал какие-то параметры, но не обернул это все.

На примере:


//page.html 
<div ng-controller="Ctrl as vm">
    <ng-include src="'./tpl.html'"></ng-include>
</div>

//tpl.html
<button ng-click="vm.doSomething()"></button>  //у кнопки обработчик - в верхнем контроллере, поэтому это темплейт


А это уже компонент
//page.html 
<div ng-controller="Ctrl as vm">
    <super-btn-pack size="'small'" resolve="vm.handler()"></super-btn-pack>
</div>

//super-btn-pack - директива имеющая свой контроллер, но не обязательно, главное что изолированная
<button ng-click="doSomething1()"></button>
<button ng-click="doSomething2()"></button> 
<button ng-click="doSomething3()"></button>

UIjs 02.05.2015 17:45

Цитата:

Сообщение от l-liava-l
Што да, "твой компонент" зависит от верхнего контроллера потому что в атрибуты передал какие-то параметры, но не обернул это все.

че ты несешь? компонент состоит из 3 сущностей, стиля, шаблона, и логики. данный компонент не содержит стилей ни логики а только шаблон. включи мозг маленько? ты основ даже не знаешь а еще со мной соприть берешься, не забывай мой уровень и свой! если что-то непонятно СПРАШИВАЙ, но не спорь, не тот уровень. Тут только kobezzza со мной на равных может разговаривать, и более того даже что-то новое говорить. Остальны в резком отрыве. Так что чтобы сэкономить время не выежывайся а просто спрашивай что непонятным показалось.

l-liava-l 02.05.2015 17:47

Цитата:

l-liava-l,
не совсем понятно, ведь подписку на обновление осуществляет сам компонент в componentDidMount(). Можно пример, так будет гораздо понятнее, наверно)
Ты подписываешься на обновления в диспетчере и там же ты можешь указать в каком порядке будут вызываться обработчики (а рассылает он всем) и есть возможность выполнить определенное событие только после того как пришло какое то другое (ну как бэ режим ожидания)

Вот тут все подробно описано елси не читал:
http://habrahabr.ru/post/246959/

UIjs 02.05.2015 17:48

l-liava-l, тебе не понятно почему я свой компонент называю компонентом? или что? обьяснять?

обьяснение для новичков: много чего-то компануем в что-то одно, называется компонент. мы скомпоновали элемент с кучей атрибутов в что-то одно под именем my-div. my-div - компонент. я достаточно подробно обьяснил или тебе тоже видео пилить?

l-liava-l 02.05.2015 17:53

Цитата:

че ты несешь? компонент состоит из 3 сущностей, стиля, шаблона, и логики. данный компонент не содержит стилей ни логики а только шаблон. включи мозг маленько? ты основ даже не знаешь а еще со мной соприть берешься, не забывай мой уровень и свой! если что-то непонятно СПРАШИВАЙ, но не спорь, не тот уровень. Тут только kobezzza со мной на равных может разговаривать, и более того даже что-то новое говорить. Остальны в резком отрыве. Так что чтобы сэкономить время не выежывайся а просто спрашивай что непонятным показалось
О всеведующий, не бомбите.

Цитата:

стиля, шаблона, и логики.
Это всем ясно что должны быть стиль шаблон и логика, но всю логику управления моделью ты описываешь где? в контроллере странички/верхнего блока и тд. (ну в примере так)

А компонент должен иметь _свой контроллер_ в котором описывается _только логика этого компонента._, тобишь быть изолированным. А если нет изоляции то это просто темплейт.

Gozar 02.05.2015 17:59

Цитата:

Сообщение от UIjs
не забывай мой уровень

Извини, забыл. Нужно было сразу тебя послать!

Атрибуты плохо, потому что они делают универсальным то, что должно быть неуниверсальным!


Часовой пояс GMT +3, время: 21:03.