Цитата:
|
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
ПС: атрибуты мусор! ;) Особенно какие-нибудь левые типа ng- , я уж молчу про ui-, да и data- шлак левый, но что уж поделать, сделали по просьбе ламеров... |
Мне больше идея web-components нравится, жаль что она на первый взгляд(визуально) такая жуткая.
|
Цитата:
Бесишься знатно, да. Поржал. |
Gozar, так она и есть у меня и в ангуляре, разве нет)?
Цитата:
|
nerv_,
Цитата:
nerv_, Цитата:
|
Gozar,
Цитата:
Цитата:
Цитата:
class MainComponent extends React.Component { constructor() { this.state = { listComponent: '' // дочерний компонент, содержащий какой-то список. Пустой потому, что пока ещё нет данных }; } componentDidMount() { let _this = this; // подписываемся на изменения в хранилище AppStorage.on('change', this.update.bind(_this)); // отправляем запрос на получение списка элементов fetch('./api/list') .then((res) => { res.json() .then((res) => { AppStorage.updateList(res); // обновляем хранилище и хранилище само вызывает метод update компонента MainComponent }); }); } update() { // обновляемся this.setState({ listComponent: <ListComponent list={AppStorage.getList()}/> }); } render() { return ( <aside className="aside"> {this.state.listComponent} </aside> ); } } У меня, как вы видите, отсутствуют некоторые части Flux, а именно Dispatcher и ActionCreator. Можете пояснить зачем мне они тут нужны? Набросал небольшое дополнение AppDispatcher.register(function(data) { switch(data.eventName) { case 'update-list': AppStorage.updateList(data.params); break; case 'другое-событие': //.. } } let ActionCreator = { updateList(data) { AppDispatcher.dispatch({ eventName: 'update-list', list: data }); }; }; Если я правильно понял, то преимущество Dispatcher'а в том, что в case'ах можно добавлять не один AppStorage.add(data.params), а множество обращений к хранилищу, так? А ActionCreator это просто обёртка над методом dispatch() для краткости записи? И ещё вопросец. Судя по этому комменту http://habrahabr.ru/post/249279/#comment_8255647 запросы к серверу лучше делать из ActionCreator'а или Storage. Можете показать на простом примере как вы это реализовываете(в т.ч. и инициализирующие запросы)? |
Цитата:
|
Цитата:
Компонент это такая штучка, которая обьединяет в себе кучу директив и вообще какой то шаблонный блок, но при этом изолирована от внешней области видимости. (параметры туда передаем либо сервисом либо атрибутами) Цитата:
Но в mvw ты _конфигурируешь_ атрибутами viewModel эти атрибуты привязывают то или иное состояние представления к конкретному значению модели. А то что остается немного шлака от нагенеренного т.к это фигня. |
Gozar, но ведь разметка и состоит из элементов и атрибутов. ты утверждаешь что атрибуты это мусор? я так и не понял почему.
ты сказал что они ни чего полезного не привносят, но они привносят полезный функционал. или не привносят его? например ui-scrollbar добавляет красивый скроллбар. или не добавляет? data-repeat итерирует элемент, или не итерирует? on-click вешает обработчик события. или не вешает? или данный функционал не полезный? Цитата:
Цитата:
|
Цитата:
|
l-liava-l,
не совсем понятно, ведь подписку на обновление осуществляет сам компонент в componentDidMount(). Можно пример, так будет гораздо понятнее, наверно) |
Цитата:
Цитата:
На примере: //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> |
Цитата:
|
Цитата:
Вот тут все подробно описано елси не читал: http://habrahabr.ru/post/246959/ |
l-liava-l, тебе не понятно почему я свой компонент называю компонентом? или что? обьяснять?
обьяснение для новичков: много чего-то компануем в что-то одно, называется компонент. мы скомпоновали элемент с кучей атрибутов в что-то одно под именем my-div. my-div - компонент. я достаточно подробно обьяснил или тебе тоже видео пилить? |
Цитата:
Цитата:
А компонент должен иметь _свой контроллер_ в котором описывается _только логика этого компонента._, тобишь быть изолированным. А если нет изоляции то это просто темплейт. |
Цитата:
Атрибуты плохо, потому что они делают универсальным то, что должно быть неуниверсальным! |
UIjs,
Если ты имеешь ввиду что в моем примере только шаблон, то тут интуитивно понятно что, к директиве привязан какая то логика, прст показал что эта логика находится не во внешнем блоке, а изолирована для компонента.. мб ты не понял :) //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> А если ты прос свой "компонент" то сам себе противоречишь Цитата:
Цитата:
|
Цитата:
Цитата:
|
|
Цитата:
Да даже если на слово взглянуть Цитата:
|
Цитата:
|
l-liava-l, и к слову я перепутал, компоненнт это составНАЯ чего-то, я не ЧТО ТО что из чего-то состоит. но сути не меняет. все директивы ангуляра - компоненты. у меня по этому так и называется ui.component('name', {options})
|
Цитата:
Цитата:
|
Кастомные атрибуты - это костыли. И не нужно меня убеждать в том, что они очень полезны и без них никак. Я прекрасно знаю, что они и для чего сделаны и то, что они костыли я тоже знаю.
|
За разметку не должны отвечать атрибуты, да и за состояние тоже. html - элемент это объект-метка и выглядеть он должен как метка, а не как ёлка.
|
Gozar, нет не костыли.
Цитата:
говоря на твоем быдлоязыке: РАЗМЕТКА это HTML который состоит из АТРИБУТОВ и ЭЛЕМЕНТОВ. За разметку ТОЛЬКО ОНИ И ДОЛЖНЫ ОТВЕЧАТЬ, лалка). Даже основ верстки не знаешь, о чем с тобой разговаривать можно. У нас слишком разные уровни. |
UIjs,
В игнор. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
+ быстрое, вероятно, только с Angular 2.0 будет Между прочим, я вчера когда писал свой первый пример, не нашел в офф. доке метод React.constructAndRenderComponent. Его там просто нет. И не только его. UIjs, послушай льва, он дело говорит: Цитата:
Цитата:
Субботнего срача тред :) Мир, труд, май Цитата:
Я говорю о том, что далеко не везде нужны компоненты и можно обойтись обычным шаблоном. Писать меньше кода, поддерживать меньше кода, меньше думать о взаимодействии компонент и жить счастливо :) |
Цитата:
|
UIjs,
Но ты то понимаешь что твой уровень намного ниже моего? Зачем ты говоришь что ты более профессиональный чем я, когда все на этом форуме знают обратное? Прочтет какой-нибудь новечек этот тред, послушает тебя и пойдет по изначально неверному пути. Шаблон - это заготовочка такая и не обязателньо верстка или код, вставил и используешь. Но дублирование шаблонов - это не всегда так просто ведь они _могут зависить_ от логики на уровне абстракции повыше. А компонент - это что то инкапсулировали и дали удобное апи для того чтобы можно было размножать как угодно. На примере: вот есть у тебя 2 странички и 1 шаблон (или как ты называешь "компонент") //page1 <div ng-controller="ListCtrl as list"> //writeCmment.html - тут заработает </div> <div ng-controller="TopicCtrl as topic"> //writeCmment.html - а вот тут не заработает </div> //writeCmment.html <input ng-model="list.input"></input> <button ng-click="list.submit()"></button> А вот если бы ты _все_ скопоновал в компонент (включая логику), а если логика есть но ты ее не скопоновал то у тебя получился шаблонный блок. Аа вот если бы ты скопоновал все то получилось бы чо то типо <write-comment></write-comment> Пнятна? |
Цитата:
он сказал что я назвал компонентом НЕ компонент, но я назвал компонентом КОПМОНЕНТ. он ОШИБСЯ и ты ТОЖЕ если ты с ним согласен. |
Цитата:
Компоне́нт (от лат. componens, родительный падеж componentis — составляющий) — составная часть, элемент чего-либо[1]. Компоне́нта — составляющая чего-либо. У меня в фреймворке есть 2 сущности, контроллеры и компоненты. Компонент это какой то кастомный атрибут или элемент. они являются компонентами потому что подходят под определение слова компонент. Говоря что они НЕ компоненты ты говоришь что они НЕ подходят под определение слова компонент, НО ОНИ ПОДХОДЯТ. следовательно ты ОШИБАЕШЬСЯ. Ты понял в чем твоя ошибка? |
Цитата:
|
Давай еще раз, ты ж тупой:
Компонент это составляющая часть системы. У меня в фреймворке все строится из компонентов как из кубиков лего. Компонеты создаются ui.component('name', {options}) компоненты могут состоять из шаблонов (html шаблон который будет подставляться в те места где мы напишем имя компонента), стилей, и яваскрипт логики. отсутствие стилей в компоненте или логики, не делает его НЕ компонентом. Так как он и БЕЗ логики или стилей, продолжает подходить под определение слова КОМПОНЕНТ! Может быть компонент который вообще ТОЛЬКО СТИЛЬ добавляет, или вообще ничего не делает. Отсутствие какой либо из трех возможных составляющих компонента НЕ ДЕЛАЕТ его НЕ компонентом! А ты думаешь что ДЕЛАЕТ. ПО этому ты ОШИБСЯ, и НЕ ВЕРНО думаешь. Ты ПОНЯЛ в чем твоя ошибка? Ты понимаешь БУКВЫ которые я пишу? Ты понимаешь слова которыми я разговариваю? Постарйся слегкаа напрячь мозг и понять что я говорю. Например компоннет ui-button не имеет логики а содержит только шаблон и стиль. и при том ЯВЛЯЕТСЯ КОМПОНЕНТОМ, потому что подходит под ОПРЕДЕЛЕНИЕ СЛОВА КОМПОНЕНТ!! тебе картинку нарисовать?? Компоненты это то из чего мы компануем приложение!! Компоненты это СИНОИМ СЛОВА ДИРЕКТИВА, говоря на твоем языке! Просто название директива в ангуляре намекает на декларативный стиль, мол ЗАДЕКЛАРИРОВАЛИ, ДАЛИ УКАЗАНИЕ, ДИРЕКТ! А у меня более приятное и правильное по смыслу название ui.component это одно и то же. Ты понимаешь буквы которые я пишу? Бууковки, собираются в словаааа. Ну же, напряги головушку. Читай буковки и ты поймешь словааа ты справишься. |
Цитата:
|
UIjs,
Не сри капсом, ты ещё тот отморозок. Не в состоянии представить мир без атрибутов. |
Часовой пояс GMT +3, время: 02:49. |