Size: a a a

Angular - русскоговорящее сообщество

2019 October 07

D

Dima Moroz in Angular - русскоговорящее сообщество
Eugene
Может кто-то подсказать:
Есть х10 компонентов, каждый компонент делает .get запрос ( все запросы компонентов - одинаковые ), как можно избежать повторные запросы ?

Нашел способы решения с RxJS: - shareReplay(), replaySubject(), но они все спасают от одинаковых запросов в х1 компоненте, т.е если в х1 компоненте есть 10 запросов одианаковых.
У меня же 10 одинаковых запросов в 10 компонентах :(

Ещё подумывал сделать массив с одинаковыми запросами и объеденить их в х1, и потом дёргать нужный Subject к примеру.
А сервисы для чего?
источник

E

Eugene in Angular - русскоговорящее сообщество
Тоже не прокатило.
У меня выходит так: в компонент передаётся @Input() параметр, по которому он делает запрос. Выходит так, что на странице может оказаться таких компонентов 10+ и все они с одинаковым параметром.
источник

DS

Dmitriyff Smile in Angular - русскоговорящее сообщество
Вынеси логику на уровень выше, в компоненты передавай уже результат
источник

D

Dima Moroz in Angular - русскоговорящее сообщество
Eugene
Тоже не прокатило.
У меня выходит так: в компонент передаётся @Input() параметр, по которому он делает запрос. Выходит так, что на странице может оказаться таких компонентов 10+ и все они с одинаковым параметром.
Так в чем проблема создаёшь сервис там делаешь функцию запроса(запросов). И потом подключаешь к каждому компоненту и передаешь в функцию те параметры которые идут из инпута.
источник

СН

Сергей Носачёв in Angular - русскоговорящее сообщество
подскажите чат по peerconection
источник

ВТ

Витя Тейп in Angular - русскоговорящее сообщество
источник

E

Eugene in Angular - русскоговорящее сообщество
Dima Moroz
Так в чем проблема создаёшь сервис там делаешь функцию запроса(запросов). И потом подключаешь к каждому компоненту и передаешь в функцию те параметры которые идут из инпута.
Если есть время:
https://stackblitz.com/edit/angular-rjh4jz

вот, я быстро накидал то, что ты описал.
Каждый компонент триггерит и выполняет get запрос
(в консольке видно)
источник

D

Dima Moroz in Angular - русскоговорящее сообщество
Eugene
Если есть время:
https://stackblitz.com/edit/angular-rjh4jz

вот, я быстро накидал то, что ты описал.
Каждый компонент триггерит и выполняет get запрос
(в консольке видно)
https://angular.io/guide/http  вот тебе, там в самом начале написано как делать такие сервисы и почему их нужно использовать.
источник

MF

Mireq Fallen in Angular - русскоговорящее сообщество
начал тут пытаться что-то сделать в рамках angular-cli
появились вопросы:

1) то, что в library стили компонентов идут в JS — это я так понял, норм.
Типо дальше, кто собирает конечное приложение, должен сам разруливать, куда эти стили класть — в JS или в CSS.
Так ли это? Или надо как-то добиваться разделения CSS/JS еще на момент сборки библиотеки?

2) если конечное приложение должно само вычленять CSS из JS-инлайна — то как? (что-то у меня --extract-css не пытается эти стили достать)

3) (принятие)
если стили компонентов не должны вычленяться во внешнюю CSS-ку, то как подключать свою CSS-ку с переопределением стилей?
не хочется ради изменения пары цветов увеличивать вес селектора типа
body .my-component { ... }
// #my-app .my-component { ... }
// .my-app-theme .my-component { ... }

вместо
.my-component { ... }

3.1) дело в том, что инлайн-стили компонентов добавляются перед закрывающим тэгом </head>, опять же не хочется <link>'и пихать в <body>...
источник

E

Eugene in Angular - русскоговорящее сообщество
Dima Moroz
https://angular.io/guide/http  вот тебе, там в самом начале написано как делать такие сервисы и почему их нужно использовать.
Спасибо. Чекну сейчас)
источник

E

Eugene in Angular - русскоговорящее сообщество
Mireq Fallen
начал тут пытаться что-то сделать в рамках angular-cli
появились вопросы:

1) то, что в library стили компонентов идут в JS — это я так понял, норм.
Типо дальше, кто собирает конечное приложение, должен сам разруливать, куда эти стили класть — в JS или в CSS.
Так ли это? Или надо как-то добиваться разделения CSS/JS еще на момент сборки библиотеки?

2) если конечное приложение должно само вычленять CSS из JS-инлайна — то как? (что-то у меня --extract-css не пытается эти стили достать)

3) (принятие)
если стили компонентов не должны вычленяться во внешнюю CSS-ку, то как подключать свою CSS-ку с переопределением стилей?
не хочется ради изменения пары цветов увеличивать вес селектора типа
body .my-component { ... }
// #my-app .my-component { ... }
// .my-app-theme .my-component { ... }

вместо
.my-component { ... }

3.1) дело в том, что инлайн-стили компонентов добавляются перед закрывающим тэгом </head>, опять же не хочется <link>'и пихать в <body>...
1.
Глобальные стили ( которые в styles.scss ) подключаются через <link>
Стили, прописанные в компонентах добавляются инлайном

в CLI есть команда, чтобы стили подключались не инлайном, а через <link>, но это в производительности проигрывает ( так написано у них )
источник

E

Eugene in Angular - русскоговорящее сообщество
2.
"extractCss": true,
в angular.json
добавлять нужно перед "styles":
источник

E

Eugene in Angular - русскоговорящее сообщество
Только сейчас понял к чему ты ведёшь ( ты хочешь сделать мультитему, правильно ) ?. Минутку, найду статью и скину, станет всё понятно.
источник

E

Eugene in Angular - русскоговорящее сообщество
источник

СК

Саша Корбут in Angular - русскоговорящее сообщество
Посоветуйте бест практис как отрендерить меню, если я заранее не знаю уровень вложенности списков. (Данные о структуре меню приходят с сервера)
источник

MF

Mireq Fallen in Angular - русскоговорящее сообщество
Eugene
Только сейчас понял к чему ты ведёшь ( ты хочешь сделать мультитему, правильно ) ?. Минутку, найду статью и скину, станет всё понятно.
не то, чтобы мультитему, просто хочется иметь болванку компонента, которую под проект можно было бы стилизовать

за ответы спасибо :)

P.S. ушел читать :)
источник

E

Eugene in Angular - русскоговорящее сообщество
Mireq Fallen
не то, чтобы мультитему, просто хочется иметь болванку компонента, которую под проект можно было бы стилизовать

за ответы спасибо :)

P.S. ушел читать :)
Ну это тоже тебе подойдёт. Я недавно делал мультитемы, подсмотрел подход на:
https://material.angular.io/components/categories

посмотри в девтулсе, при смене темы у них меняется только х1 файлик ( в котором находятся стили для изменения палитры цветов )
источник

MF

Mireq Fallen in Angular - русскоговорящее сообщество
@hettcher
посмотрел
нет, не это я хотел

мое описание с болванкой компонента и стилизацией под конкретный проект подходит больше
источник

MF

Mireq Fallen in Angular - русскоговорящее сообщество
т.е. есть, допустим, табы
всякая хрень типа размеров/отступов/позиционирования — прописана в компоненте
эдакий дефолтный рабочий вид

а при использовании в проекте мы меняем цвета под "корпоративные", может меняем некоторые отступы/прочее и получаем нужное нам конечное оформление
источник

MF

Mireq Fallen in Angular - русскоговорящее сообщество
т.е. "на лету" смены темы нету
источник