Size: a a a

Elm Lang сообщество разработчиков

2018 May 13

к

кана in Elm Lang сообщество разработчиков
ID:536005385
Прекрасно решает. Рекомендую прежде чем что то утверждать прочитать хотя бы документацию к html.lazy
вы даже не понимаете проблему, раз такое утверждаете
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Понимаю. Списки не будут вычислены во view ибо не будет вызван код рендеринга html.
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Rtfm!
источник

к

кана in Elm Lang сообщество разработчиков
но он будет вызван, ведь ссылка на модель или на данные изменилась, даже если нужные данные нет
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
Это так, если на родителя повесить лейзи, например, со значением фильтра
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
lazy : (Model -> Html Msg) -> Model -> Html Msg
источник

к

кана in Elm Lang сообщество разработчиков
я покажу пример, это проще
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Да да коллега говорите кодом
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
Пардон, я имел ввиду Html.Keyed
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
100 грамм своё дело делают однако
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
А lazy да, получится и будет в качестве этого кеширующего слоя работать
источник

к

кана in Elm Lang сообщество разработчиков
https://github.com/kana-sama/elm-perf-example - примитивнейшний пример, когда ни keyed, ни lazy никак не помогут по очевидным причинам
источник

к

кана in Elm Lang сообщество разработчиков
потому что хоть ссылки на нужные данные не поменялись, они поменялись на модель
источник

к

кана in Elm Lang сообщество разработчиков
и это простой пример, где можно передавать нужные данные вручную, а бывают действительно большие сложные селекторные условия с десятками операций по джоину пяти таблиц в один список с кучей фильтров и флагов
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
Lazy не делает глубокое сравнение
источник

к

кана in Elm Lang сообщество разработчиков
да, это очевидно, там в принципе значения разные (одно поле отличается)
источник

к

кана in Elm Lang сообщество разработчиков
и ни lazy, ни keyed тут никак не помогут
источник

к

кана in Elm Lang сообщество разработчиков
потому что lazy находится с одного конца пути от стейта к вьюхи, а keyed с vdom с другого, а мемоизация нужна между ними на промежуточных вычислениях, чтобы избежать лишних вычислений
источник
2018 May 14

AK

Anton Kotenko in Elm Lang сообщество разработчиков
А как сделать при наличии MyRec a и MyExtendedRec метод  типа:

type alias MyRec a = { a | field1 : ..., field2 : ... }

type alias MyExtendedRec = MyRec { otherField1 : ..., otherField2 : ... }

myMethod : MyRec {} -> MyExtendedRec
myMethod myRec =
    ... ??


—-

{ myRec | otherField1 = ..., otherField2 = ... } - вот это не выходит, ругается что myRec экстендится полями которых у него нет
myRec { otherField1 = ..., otherField2 = ... } - это тоже не выходит, ругается что myRec это не функция
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
источник