Size: a a a

React — русскоговорящее сообщество

2021 March 27

K

Kirill ✌🏽 in React — русскоговорящее сообщество
Хей, сообщество, привет)
Подскажите где мне посмотреть Бест практики по вынесению api вызовов в реакт приложении в отдельный слой)

Чтобы не писать в каждом компоненте axios.get axios.post и тд
А чтобы api.users.getAll или api.words.post в таком ключе

Я надеюсь меня вы поняли )
источник

DP

Den Pol in React — русскоговорящее сообщество
Kirill ✌🏽
Хей, сообщество, привет)
Подскажите где мне посмотреть Бест практики по вынесению api вызовов в реакт приложении в отдельный слой)

Чтобы не писать в каждом компоненте axios.get axios.post и тд
А чтобы api.users.getAll или api.words.post в таком ключе

Я надеюсь меня вы поняли )
Напишите httpClientAsSingleton под капотом которого будет работать axios.
источник

K

Kirill ✌🏽 in React — русскоговорящее сообщество
Den Pol
Напишите httpClientAsSingleton под капотом которого будет работать axios.
Благодарю 🙏🏼
Я ещё искал гитхаб репозитории чтобы посмотреть как там юзают то, что я хочу )
источник

V

Vlad in React — русскоговорящее сообщество
Kirill ✌🏽
Хей, сообщество, привет)
Подскажите где мне посмотреть Бест практики по вынесению api вызовов в реакт приложении в отдельный слой)

Чтобы не писать в каждом компоненте axios.get axios.post и тд
А чтобы api.users.getAll или api.words.post в таком ключе

Я надеюсь меня вы поняли )
под каждый эндпоинт делаешь функцию, в которой делаешь запрос, если хочешь красиво хендлить бизнес ошибки(неправильный пароль, например) на разных слоях, можешь взять Either монаду
источник

V

Vlad in React — русскоговорящее сообщество
ничего с синглтоном придумывать не надо
Во первых у тебя апи слой скорее всего будет стейтлес
Во вторых es модули по дефолту и так синглтоны
источник

K

Kirill ✌🏽 in React — русскоговорящее сообщество
Vlad
под каждый эндпоинт делаешь функцию, в которой делаешь запрос, если хочешь красиво хендлить бизнес ошибки(неправильный пароль, например) на разных слоях, можешь взять Either монаду
А вы так уже выносили ? Это вообще хорошая идея? Или я занимаюсь лишним ?)
источник

V

Vlad in React — русскоговорящее сообщество
Kirill ✌🏽
А вы так уже выносили ? Это вообще хорошая идея? Или я занимаюсь лишним ?)
хорошая идея
источник

K

Kirill ✌🏽 in React — русскоговорящее сообщество
Vlad
хорошая идея
Я это ещё делаю и для того чтобы в каждый запрос потом положить токен в заголовок
источник

K

Kirill ✌🏽 in React — русскоговорящее сообщество
Чтобы эту логику в одном месте написать )
источник

DP

Den Pol in React — русскоговорящее сообщество
Vlad
ничего с синглтоном придумывать не надо
Во первых у тебя апи слой скорее всего будет стейтлес
Во вторых es модули по дефолту и так синглтоны
Синглтоном можно сделать минималистичный аналог саг в плане удобного управления отмены запросов. Как минимум.
источник

V

Vlad in React — русскоговорящее сообщество
Den Pol
Синглтоном можно сделать минималистичный аналог саг в плане удобного управления отмены запросов. Как минимум.
Можешь набросать псевдокод?
источник

DP

Den Pol in React — русскоговорящее сообщество
К слову о стейтлес ор стейтфул, всё-таки.
источник

DP

Den Pol in React — русскоговорящее сообщество
Vlad
Можешь набросать псевдокод?
На телефоне не могу, скину позже.
источник

E

Elmar in React — русскоговорящее сообщество
Можно ли использовать в  некоторых случаях простую переменную для хранения значения в компоненте вместо useState?
источник

Д

Денис in React — русскоговорящее сообщество
Elmar
Можно ли использовать в  некоторых случаях простую переменную для хранения значения в компоненте вместо useState?
Да
источник

И

Иван in React — русскоговорящее сообщество
Можно ли как-то к каждому элементу в компоненте добавить определённый класс, может есть какие-то хуки или либы для этого?
Суть в чем - на сайт, где уже есть materialize css нужно добавить компоненты на реакте с определенной UI либой. Materialize для стандартных элементов (div, input и т.д.) задает стили с селектором :not(.browser-default), т.е. чтобы они не работали (не конфликтовали со стилями UI либы), нужно у элементов указывать класс browser-default
источник

И

Иван in React — русскоговорящее сообщество
Ну или может кто сталкивался с такой проблемой и есть альтернативное решение?
источник

ei

export default - зло... in React — русскоговорящее сообщество
Roman Usherenko
не совсем бесполезная, она позволяет заменить аксиос не меняя код приложения
Ну там же нет обработки результата)
источник

ei

export default - зло... in React — русскоговорящее сообщество
Вот если бы response.data возвращалось, тогда еще да
источник

RU

Roman Usherenko in React — русскоговорящее сообщество
export default - зло is the side effect
Ну там же нет обработки результата)
а ну да. ладно
источник