Size: a a a

2020 May 30

MS

Mikhail Smal in F# Chat
можно не использовать хуки, но тогда придется создавать классы вместо FunctionComponent, чем это лучше?
источник

I

Igor in F# Chat
имеется ввиду со своими компонентами, let TodoApp =  FunctionComponent.Of<....>
источник

MS

Mikhail Smal in F# Chat
FunctionComponent нужен только тогда, когда нужны хуки или мемоизация, в остальных случаях обычных F# функций хватает
источник

I

Igor in F# Chat
но тогда Elmish нужен, вот пример без него https://github.com/fable-compiler/fable-react/tree/master/Samples/TodoMVC/
источник

VS

Vladimir Shchur in F# Chat
Mikhail Smal
это не вопрос выбора комбинации, это вопрос необходимости каждой из составляющих.
React - это лишь View библиотека, не более.
Elmish - менеджмент стейта клиентского приложения.
Если стейт не такой сложный, возможно можно обойтись встроенным в Реакт стейтом (через хуки или классы - дело вкуса, как по мне функции с хуками приятнее)
В тоже время хранить некоторые вещи в стейте Elmish не всегда имеет смысл, например раскрыт дропдаун или нет, для этого мы, например, используем стейт хук.
Тут каждый "стейт" индивидуален, каждый кейс рассматривается по-своему.
SSR нужен лишь для того, чтобы с сервера приходил не один <div id="app"></div> и всё остальное генерилось джваскрирптом, а чтобы у тебя был полный html страницы (это может быть важно для SEO, как в нашем e-commerce случае).

и да, что такое полноценный/неполноценный реакт?
а как ssr делаете?
источник

MS

Mikhail Smal in F# Chat
Vladimir Shchur
а как ssr делаете?
Fable.ReactServer.renderToString
источник

MS

Mikhail Smal in F# Chat
но там стейт хук, для Todo листа достаточно, но более серьезное приложение требует более серьезного стейт менеджмента
источник

I

Igor in F# Chat
Mikhail Smal
но там стейт хук, для Todo листа достаточно, но более серьезное приложение требует более серьезного стейт менеджмента
вот собственно наверное такого ответа я и хотел получить
источник

MS

Mikhail Smal in F# Chat
так-то можно вообще реакт не использовать, и писать document.getElementById("elementId").setAttribute ... - это всё также доступно в Fable
источник

I

Igor in F# Chat
ну это совсем трешово))
источник

VS

Vladimir Shchur in F# Chat
Mikhail Smal
Fable.ReactServer.renderToString
а где ssr хостится? отдельный сервер с нодой?
источник

MS

Mikhail Smal in F# Chat
Igor
вот собственно наверное такого ответа я и хотел получить
конечно, всё зависит от размеров. у нас и навигация на клиенте, через history api и взаимодействие с сервером, несколько более компликейтед, чем туду лист)
источник

I

Igor in F# Chat
а те кто на чистом реакте пишут, они как стейт хранят в сложных случаях?
источник

VS

Vladimir Shchur in F# Chat
Igor
а те кто на чистом реакте пишут, они как стейт хранят в сложных случаях?
в редаксе
источник

MS

Mikhail Smal in F# Chat
Vladimir Shchur
а где ssr хостится? отдельный сервер с нодой?
нет, нода не требуется, это asp.net core (у нас saturn) приложение, собирается стейт, передается в головной view, он возвращает ReactElement из Fable.React, и при помощи вышеуказанного хелпера преобразовывается в строку, которую мы передаем в render html
источник

MS

Mikhail Smal in F# Chat
Igor
а те кто на чистом реакте пишут, они как стейт хранят в сложных случаях?
Redux, Mobx, Recoil
источник

MS

Mikhail Smal in F# Chat
Mikhail Smal
нет, нода не требуется, это asp.net core (у нас saturn) приложение, собирается стейт, передается в головной view, он возвращает ReactElement из Fable.React, и при помощи вышеуказанного хелпера преобразовывается в строку, которую мы передаем в render html
помимо этого стейт сериализуется в json, и на старте клиентского приложение парсится и через React.hydrate подтягивается
источник

VS

Vladimir Shchur in F# Chat
Mikhail Smal
нет, нода не требуется, это asp.net core (у нас saturn) приложение, собирается стейт, передается в головной view, он возвращает ReactElement из Fable.React, и при помощи вышеуказанного хелпера преобразовывается в строку, которую мы передаем в render html
хм, ты хочешь сказать что ssr без джаваскриптового движка работает?
источник

MS

Mikhail Smal in F# Chat
Vladimir Shchur
хм, ты хочешь сказать что ssr без джаваскриптового движка работает?
да
источник

MS

Mikhail Smal in F# Chat
но это имеет свои ограничения, то есть можно использовать только то, что поддерживается
источник