All streams
Search
Write a publication
Pull to refresh
@Druuread⁠-⁠only

User

Send message
> то стейт должен отражать иерархию интерфейса, что не очень.

Иерархию должен поддерживать «локальный» стейт. Вообще же суть идеи в том, что главная проблема современных фреймворков — разная модель работы с разными стейтами. Есть дом (вдом), есть локальный стейт (внутренний стейт компоненты), есть глобальный стейт (например, в виде редакса), есть эвенты, есть lifecycle-коллбеки компонент, есть роутер. И для всего для этого какие-то свои способы работы, которые по-разному реагируют на разные вещи. Хорошо видно, допустим, на примере ангуляра — вот у нас есть инпуты, когда вы поменяли инпут, то при чендж детекшоне все, что было в шаблоне с этим инпутом, обновится, то есть дом перестраивается за инпутами. А вот внутренний стейт компоненты — не перестраивается.
Или в реакте — компонент представляет ф-ю из локального стейта в вдом-стейт, но эвенты не входят в локальный стейт, по-этому мы не можем написать просто ф-и стейт -> стейт (стейт -> вдом в данном случае, т.к. нам именно этот кусок нужно нагенерить) и скомпозировать, нам надо делать через жо — вешать колбек на эвент и менять стейт, вместо какого-нибудь let $myComponent = $world.byComponent(myComponent); $myComponent.byElement(myButton).byType(Events.LeftClick).withLatestFrom($myComponent.byType(State)).map(([evt, state]) => ...).mergeTo(Render($myComponent))
Ну это все пишется за полчаса. Потому и убрали. Нужен такой функционал достаточно редко, а реализуется — элементарно, причем в том виде, в котором будет нужен в данном конкретном случае.
Примесь — эта функция, которая класс приняла и другой класс вернула. Где тут «изнутри»?
> И я кстати не знаю (честно) как разрешается в ng2 порядок применения директив.

Он решается тем способом, что в случае применения неструктурных директив напортачить затруднительно (то есть их применение «почти» коммутативно, или на это следует рассчитывать при их написании), а структурные директивы применяются только по одной к ноде.
> HOC порождает новый компонент, директива — нет

Это на самом деле лишь условность, пронаблюдать которую можно исключительно в определенных граничных условиях из-за особенностей реализации change detection :)

А так вобщем-то никто не запрещает интерпретировать применение директивы как создание новой компоненты.
> и обзерваблы

Хочу фреймворк, в котором весь стейт (и с внешними сервисами, и с эвентами, и с домом) будет представлен в виде большого обсервабла, а любая компонента, с-но — просто map на нем, который из кусков этого обсервабла эмитит другие обсерваблы и вливает их обратно в общий.
> Ну, то есть, компонент должен быть конечной точкой описания всего его поведения. Различные комбинации этих поведений должны описываться в виде инпутов (флагов), а не солянкой из патчащих директив снаружи

С таким подходом и НОС убрать придется :)
> Я нарушаю инкапсуляцию компонента, тогда как все возможные примеси должны быть объявлены внутри компонента, и это нормально.

Это как это? Примесь по определению должна быть внешней. Максимум — можно требовать, чтобы она применялась только в классам, реализующим определенны нинтерфейс. А «примеси, объявленные внутри компонента» — это уже явно не примеси, может, имелось виду что-то другое?
с-но, например:
www.reactrally.com/speakers

что-то не пестрит фейсбуком
из этого же не следует делать вывод, что реакт не поддерживается фейсбуком?
> А еще Гугл использует GWT. Но сказать, что он туда вливает кучу средств не получится.

А в ангуляр вливает? Насколько больше?

> Вот еще пример: конференция Angular Summit, и Гугла там в спонсорах нет. Зато на Polymer Summit это по сути единственная представленная компания.

Кажется, ответ очевиден: что требует большей поддержки, то и поддерживается.
Зачем слать докладчиков на ангуляр саммит, если и так они туда найдутся? Незачем.

> Сейчас пишу проект сгенерируемый с помощью angular-cli, так мне кажется что предыдущие проекты, которые я настраивал самостоятельно, пурусобирались значительно быстрее. И если это действительно так, то это обычная проблема.

Проблема начнется, когда проект станет немного больше и вообще перестанет собираться с out of memory :)
Ну так в итоге мы выяснили, что гугл ангуляр использует. Потому и деньги вливает. А то, что «просто поддерживает» — вроде не новость, второй ангуляр изначально был заточен под кровавый тырпрайз, а это на 90% и есть поддержка существующего. Весьма странным выглядит ваше удивление, что утка крякает.
> Ммм, но интерфейс-то функциональный, какая разница какая реализация

Итерфейс к стору — функция dispatch. А она не функциональная.
> Назначение путям имен, например orders => '/items/:xx'.

const paths = {
    path: "my/patch",
    anotherPatch: "another/patch",
    oneMorePatch: "one/more/patch",
}

const appRoutes: Routes = [
    { path: paths.path, component: MyComponent },
    { path: paths.anotherPatch, component: AnotherComponent },
...
];

так? или что еще должно быть?
А в чем, собственно, разница? *ngIf же не базовая директива, она реализована поверх фреймворка, а не вшита в него.
Не за год, конечно же. Это же не твиттер какой-нибудь. Уход разработчиков тут разве что лет через пять может сказаться.
А что за это год могло поменяться?
console.developers.google.com

до сих пор на первом ангуляре, например
Гугл использует ангуляр для внутренних сервисов.
> В HttpClient например

Вы так говорите, как будто в реальности кто-то использует HttpClient без кастомных оберток.
> Кроме того, нет нормальных именованных роутов

А что подразумевается под «нормальными именованными роутами»?

Information

Rating
Does not participate
Registered
Activity