React jest w zasadzie tylko biblioteką do renderowania elementów i JavaScript jest w nim kluczowym językiem programowania. W wielu firmach używa się już TypeScriptu, ale myślę, że warto skupić się teraz na czystym JS, żebyś później docenił TS i nie błaźnił się na przyszłych interview.
Co do sensu używania JS to chodzi tu przede wszystkim o automatyzację. Jak wyobrażasz sobie stworzenie takiego portalu jak chociażby Hejto tylko w HTML i CSS? Użytkownicy będą pisać do ciebie maila z komentarzami, a ty będziesz to skrzętnie osądzał pod każdym postem? No chyba nie bardzo. JavaScript obsługuje interakcje z użytkownikiem i komunikuje się z serwerem na którym przechowywanie są wszystkie dane. Te dane później są pobierane przez front-end i renderowane (np. z pomocą Reacta) w przeglądarce. React pozwala na upakowanie treści/logiki w niezależne komponenty np. komentarz pod wpisem. Dużo by się rozwodzić.
Do JavaScriptu polecam stronę MDN (angielski zalecany):
@Jayes spoko tylko srednio zrozumiales o co pytam, bo te zdanie o hejto w html/css jest zdeczka smieszne a ja wprost pytalem np o to jak pozycjonujesz pozniej te elementy/komponenty stworzone w reakcie na stronie - jakims csssem linkowanym do danego htmla (?) itd. z tego co rzucilem okiem na podstawy reacta to przy bardziej statycznych stronach typowo firmowych (bez bazy userow) w zasadzie niekoniecznie jest sens tego uzywac.
anyway rozumiem ze pracujesz jako frontendowiec - nie wydaje ci sie obecnie ten tech rozjebany jeszcze bardziej niz zwykle? pure html/css, do niego x frameworkow, ale jednoczesnie w calosci mozna pisac wszystko w reakcie do ktorego jest jeszcze x bzdur, oprocz reacta vue/angular i inne pierdoly
jestem na juniorskim stanowisku front-end developera, ale obecna praca nie do końca pozwala mi na działanie w nowych technologiach (w pracy używamy kilku technologii bardziej opartych na PHP niż na JS np. Laravel, Wordpress). Chciałbym ją zmienić, ale praktycznie wszędzie wymagany jest React - i właśnie tutaj jest moje pytanie.
Czy obecnie jest sens uczyć się Reacta czy jednak zainteresować się innymi technologami gdzie jest mniejsza konkurencja? Vue? Angular?
@neczar Spokojnie ucz się Reacta. Nawet jak przestanie być używany, to sporo konceptów z niego już pewnie zostanie na stałe, np. hit ostatniego roku - SolidJS bardzo przypomina Reacta. Zresztą, framework to tylko narzędzie i z czasem zauważysz, że to nie ma znaczenia, czego się uczyłeś. Wiadomo, są pewne tajniki wiedzy typowe dla danych rozwiązań, ale jak umiesz dowolny framework JS, to nie powinieneś mieć problemu przeskoczyć z Reacta na Angulara czy Vue, czy cokolwiek nowego, co powstanie.
duże organizacje jak już raz się zorientowały na jakąś technologię to nie będą jej szybko zmieniać (u mnie w projekcie przechodzimy teraz z kodu pisanego z wykorzystaniem komponentów klasowych na funkcyjne)
szkolenia dotyczące zagadnień FE np architektury aplikacji czy testowania omawiają temat wykorzystując do tego reacta (chociaż same zagadnienia wykraczają poza jego ramy) np: architekturanafroncie (polecam)
tak jak wspomniał @kalimer, sporo bibliotek i wzorców projektowych powtarza się w innych frameworkach - łatwiej się w tym później odnaleźć
Mój pomysł: Dodanie możliwości tworzenia zmiennej, na bazie właściwości kontenera, np. szerokość kontenera jako --container-width` i można jej użyć jak zwykłej zmiennej, tylko jest dynamiczna (zmienia się w zależności od rozmiaru kontenera):
```
@container (width as --container-width) {
height: calc(var( --container-width) - 10px);
```
Co sądzicie?
Chyba czegoś podobnego nie ma jeszcze w planach, a fajnie by uzupełniało te nowe standardy, nie?
Astro to taki "generator stron" na podstawie mdx lub api, oparty o JS i pozwalający na łączenie statycznych stron z interaktywnymi wyspami stworzonymi w jsowych frameworkach (preact, react, vue, etc). Nowości w tej wersji:
Jakie macie lub znacie sposoby na lepszą organizację klas zamiast bezpośrednio w DOM w className?
W jednym z projektów wyciągnąłem klasy do czegoś takiego:
const cls = {
container: "...",
text: "..."
}
I później w DOM'ie można było użyć className={cls.container} z tym że traciłem wtedy wszystkie ficzery związane z podpowiadaniem kodu i sortowaniem klas.
Dzięki temu używając Tailwinda możesz tworzyć ostylowane komponenty i po prostu je importować z innego pliku zamiast zaśmiecać DOM długimi className'ami. Jeśli chcesz nadal możesz używać Tailwinda w DOM, tylko zamiast w className umieszczasz go w atrybucie "tw", więc przy istniejącym projekcie trochę trzeba zrobić w ramach migracji.
Dopiero wczoraj odkryłem tę bibliotekę, bo tak jak ty chciałem uporządkować trochę DOM bez porzucania Tailwinda, więc jeszcze nie wiem czy jest coś lepszego i jakie potencjalne problemy mogą wyjść przy używaniu tego. W readme są przykładowe projekty w różnych technologiach, więc można szybko sprawdzić i się pobawić.
Z kręcenia to by było tyle - teraz ważniejsze info; osoby odpowiedzialne za utrzymanie rowerowego równika na wykopie oznajmiły iż NIE BĘDĄ oni dokonywać przenoszenia serwisu na hejto. Ja zobaczę jak w najbliższym czasie będzie się hejto rozwijało, czy będą dymy i jak wgl temat dostępu do API hejto by wyglądał dla apek zewnętrznych. Jeżeli będzie wszystko miało to ręce i nogi - spróbuję podjąć się napisania równika od nowa. Zamiast klepania vanilla JS + PHP myślę o rozstawieniu: Front - Angular, Backend - Node.js, baza na postgresie.
Planowane funkcjonalności:
zakładanie konta
możliwość zapisania w konfiguracji konta integracji z Strava Api v3 oraz (jeżeli wgl istnieje) - Api Hejto do dodawania wpisów
bardziej zaawansowany widok prezentujący statystyki w odniesieniu nie tylko do dni ale do bardziej szczegółowych kategorii
tworzenie i zapisywanie podstawowych szablonów wpisu gdzie w przypadku dokonania importu na hejto, część pól byłaby automatycznie uzupełniana na podstawie ostatnich aktywności ze stravy
Opcjonalne funkcjonalności:
dodanie możliwości konfiguracji dla użytkownika roweru - będzie możliwość wyboru wcześniej skonfigurowanego obiektu przy imporcie wpisu na hejto - z możliwością wyboru kategorii roweru, marki, modelu, rocznik, grubość opon etc etc
w widoku prezentacji statystyk możliwość filtrowania po zapisanych zimportowanych wpisach ze stravy wg wprowadzonych danych na jakim rowerze użytkownicy jeździli np możliwość wyświetlenia statystyk np z ostatniego dnia dla wszystkich szosowców
Co sądzicie o takim pomyśle? Poza pewnymi dodatkowymi opcjami, na pewno w pewnym sensie zdecentralizowałoby to równik który byłby niezależny od jakiś trzecich API bo sam portal by pośredniczył w eksporcie wpisów wraz z ich zapisywaniem w bazie.
Macie jeszcze jakieś inne pomysły lub sugestie?
Ps. Sprawa jest rozwojowa, ale nie nastawiałbym się na dość szybkie napisanie projektu, zależy to od faktu ile miałbym czasu na napisanie, jakie funkcjonalności miałyby się pojawić oraz czy ktoś byłby potencjalnie zainteresowany rozwojem projektu (czy to jako programista, czy tester, czy grafik)
@sorek To byłem ja ( ͡° ͜ʖ ͡°) Przez problemy z dziewczyna i rodzicami musiałem wrócić do PL. No i zaraz po powrocie stwierdziłem, ze może zacznę się uczyć programowania. I tak już minęło prawie 6.5 roku ( ͡° ͜ʖ ͡°)
@BrodatyChleb i super, bardzo Cię miło spotkać w necie po tylu latach Na wykopie Cię nie widziałem ale ja tam pamiętam wszystkich (po nickach xD Nie po imionach xDD)
Bardzo fajnie, że Ci leci. Akat szukam frontendovca do mojego projektu chociaż pewno z Twoim doświadczeniem to od roboty się odpędzić nie możesz
Na Windowsie przy instalacji Gita można sobie dodatkowo doinstalować też nowy terminal - Git Bash. Fajnie, bo jest bashowy shell, więc osobiście pochodząc z unixowych środowisk (zawodowo) jest mi łatwiej, bo znam wszystkie komendy.
Dzialam we frontendzie i nie mogę nigdzie w internecie znaleźć odpowiedzi
Czy da się na Windowsie, pewnie w Git Bashu prędzej, odpalać skrypty NPMowe itp, które ustawiają zmienne środowiskowe? Mam na myśli coś w stylu `NODE_ENV=production npm run build`
Windows w Git Bash wywala mi się, bo nie zna składni `NODE_ENV=production` ale może jest jakaś metoda?
I myślę o czymś szerszym, niż doinstalowanie cross-env, bo chodzi mi o wszystkie rodzaje zmiennych, nie tylko NODE_ENV
Kolejna porcja świeżych artykułów z tematów frontendowych / Reactowych.
What is CORS? - Kto z nas nigdy nie został przyblokowany przez CORS? Treściwe wyjaśnienie z czego to się bierze i garść przydatnych porad jak sobie radzić z pobieraniem zewnętrznych danych na środowisku lokalnym.
Why We're Breaking Up with CSS-in-JS - Case study doświadczeń dużej firmy z podejściem tworzenia styli w komponentach reactowych, ciekawe statystyki performance'u i dyskusja pod postem. (Ogółem jako fanka SASSa cieszę się, że następuje trend odchodzenia od CSS-in-JS )
The Web’s Next Transition - historyczny przegląd zmieniającej się architektury aplikacji webowych i prognozy na przyszłość.
BONUS: Smashing Meets Design Systems 15 listopada odbędzie się konferencja na temat Design Systemów prowadzona przez ekipę Smashing Magazine. Bilety na wersję online są darmowe.
Dzień dobry reactowe świry! Żyjemy i pracujemy w niestabilnym świecie, frameworki zmieniają się jak szalone i trzeba ciągle śledzić zmiany. Robię sobie regularnie prasówkę, żeby trzymać rękę na pulsie i pomyślałam, że tutaj może się komuś przydać. Będę wrzucać zajawki ciekawych artykułów / filmów z Reacta i tematów okołoreactowych.