• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Vue.js - pytanie o organizacje kodu i dobre praktyki

Object Storage Arubacloud
+6 głosów
823 wizyt
pytanie zadane 16 grudnia 2020 w JavaScript przez michh123 Bywalec (2,790 p.)

Cześć,

Od pewnego czasu uczę się JavaScript i im bardziej zagłębiałem się w czysty JS tym bardziej widziałem, że można bez TypeScriptu napisać dobrą aplikację z czystym obiektowym kodem (zwłaszcza po poznaniu modułów). Jakiś czas temu postanowiłem przerobić sobie kurs Vue, żeby zobaczyć jak on w ogóle wygląda, ponieważ często czytałem, że jest to jeden z najlepszych frameworków JS. Wiem, że przerobienie kursu to tak naprawdę wstęp do wstępu o rozmowach nt. podstaw Vue, ale tak na pierwszy rzut oka to... no nie zbyt mi się ta struktura podoba... Zanim w ogóle liznąłem Vue to wyobrażałem go sobie jako framework podobny do PHP-owego Symfony - tzn. komponenty Vue zawierają czysty JS i logikę bez żadnego HTML'a i CSS'a, a najlepiej jeszcze zorganizowane jakimś wzorcem. Widokami są pliki HTML + jakiś system szablonów do manipulacji danymi, a style to CSS, SASS, lub dowolny prekompilator. Tymczasem to co przerobiłem w kursie to głównie komponenty, które zawierają HTML (template), JS (script) i CSS (style), i to wszystko razem... Przyznam się, że jestem trochę zawiedziony, ale zdaję sobie doskonale sprawę, że o wiele więcej nie wiem niż wiem. W związku z tym mam 2 pytania: 

  1. Czy takie trzymanie wszystkiego (HTML, CSS, JS) w jednym pliku Vue (mimo, że jest to niezależny komponent) to nie jest objaw spaghetti code? Od początku przygody z webówką uczyliśmy się, aby rozdzielać logikę od treści i stylów.
  2. Czy w taki sposób faktycznie pisze się aplikacje w Vue? Czy może po prostu tak się da, ale nie jest to dobrą praktyką?

Nie chcę być "jajkiem mądrzejszym od kury" - pytam szczerzę, ponieważ obecnie mam trochę mieszane uczucia co do Vue.

Bardzo proszę Was, JavaScript-owcy, o rozjaśnienie sprawy. Z góry dziękuję za wszystkie odpowiedzi!

1
komentarz 17 grudnia 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Jakiego vue się uczysz 2 czy 3?
komentarz 18 grudnia 2020 przez michh123 Bywalec (2,790 p.)
Kurs dotyczył Vue 2, ale w CLI wybierałem projekt w Vue 3
komentarz 18 grudnia 2020 przez reaktywny Nałogowiec (40,990 p.)
Czy w Vue 3 jest wymagany TS, czy tylko opcjonalny?
1
komentarz 18 grudnia 2020 przez michh123 Bywalec (2,790 p.)
Pisząc w Vue 3 pisałem w czystym JS, w ogóle nie korzystałem z TypeScriptu, ale tworząc projekt w Vue CLI miałem możliwość wyboru checkbox'a z TS
1
komentarz 19 grudnia 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Nie TS jest wymagany tylko w Angularze. Vue i React korzystają domyślnie z JS. Nie rób kursu z vue 2 mając projekt w vue 3, Tam jest stosunkowo dużo zmian i lepiej wybrać kurs z vue 3.
komentarz 19 grudnia 2020 przez reaktywny Nałogowiec (40,990 p.)

Wiem, że w Angularze 2+ jest TS, ale jakiś czas temu przebąkiwali, że Vue też przejdzie na TS (narazie przepisali kod w TS, ale nie wymagają tego od strony użytkownika). Typescript ponoć rośnie w siłę ostatnio  i zastanawiam się skąd się to bierze, skoro głównie Angular z niego korzysta.

BTW., "wielkiej trójce" (Angular, React i Vue) wyrasta konkurencja w postaci Svelte.js (który nie jest frameworkiem ani biblioteką, a kompilatorem. Więc działa na innej zasadzie, ale finalnie służy do tego samego) oraz PReact (czyli odchudzony React, można powiedzieć, ze to kolejna gałąź Reacta). Ciekawy jest też funkcyjny Elm (nie jest to nic nowego, Elm jest od jakiegoś czasu, ale ostatnio chyba rośnie zainteresowanie nim), którego upodobali sobie developerzy korzystający z FP do web devu.

2 odpowiedzi

+4 głosów
odpowiedź 17 grudnia 2020 przez Comandeer Guru (600,810 p.)
wybrane 18 grudnia 2020 przez michh123
 
Najlepsza
  1. Czy takie trzymanie wszystkiego (HTML, CSS, JS) w jednym pliku Vue (mimo, że jest to niezależny komponent) to nie jest objaw spaghetti code? Od początku przygody z webówką uczyliśmy się, aby rozdzielać logikę od treści i stylów.

Tak, należy rozdzielać logikę od treści i stylów, ale rozdział na te trzy rzeczy nie oznacza równocześnie podziału na pliki. Akurat w Vue i tak ten podział jest o wiele bardziej widoczny niż np. w Reakcie, w którym używa się JSX. Niemniej da się to podzielić na pliki.

komentarz 17 grudnia 2020 przez niezalogowany
Co Pan poleca React czy Vue? Co na początek?
2
komentarz 17 grudnia 2020 przez Comandeer Guru (600,810 p.)
Na początek to VanillaJS.

A później to tak naprawdę nie ma znaczenia. Każdy framework i tak ma swoje konwencje, których trzeba się nauczyć.
komentarz 17 grudnia 2020 przez niezalogowany

Dziękuje Bardzosmiley

Miłego dnia Życzę!

komentarz 17 grudnia 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

W Vue też da się bawić w JSX cool

2
komentarz 17 grudnia 2020 przez Comandeer Guru (600,810 p.)
Nim się można bawić wszędzie… tylko że największy sens ma w Reakcie. W Vue sposób konstruowania drzewka jest na tyle inny, że nie potrzeba JSX-a.
komentarz 18 grudnia 2020 przez michh123 Bywalec (2,790 p.)
Comandeer, czekałem na Ciebie, dzięki za odpowiedź i linka :D Odpowiedz proszę jeszcze czy, z Twojego doświadczenia i wiedzy, tak faktycznie projektuje się aplikacje w Vue komercyjnie (w sensie template, JS i style razem)? I czy Ty osobiście uważasz to za dobrą praktykę, czy raczej wolisz rozdzielać style i JS (jak w dokumentacji, do której linka podałeś)?
1
komentarz 18 grudnia 2020 przez Comandeer Guru (600,810 p.)

Co prawda sam nie pisuję we frameworkach, ale widziałem nieco komercyjnych apek i tak, pisuje się tak.

Osobiście raczej rozdzielałbym to na pliki, ale tego typu jednoplikowy format jest całkiem fajny – nawet sprawdzałem, czy da się go wykorzystać do Web Components.

komentarz 18 grudnia 2020 przez michh123 Bywalec (2,790 p.)
Czy można wiedzieć dlaczego nie używasz frameworków? Podałeś link do webkrytyka i od razu przypomniał mi się artykuł o Angularze :D Czy to z tych względów nie piszesz we frameworkach? I jeśli można wiedzieć - w swoich aplikacjach zawierasz jedynie czysty JS/TS?

Edit: podałeś link do bloga Comandeer, a nie do WebKrytyka, ale sprawdziłem teraz dla pewności i wpis o Angularze faktycznie jest na WebKrytyku - przepraszam za pomyłkę :D
komentarz 18 grudnia 2020 przez Comandeer Guru (600,810 p.)

Nie, po prostu ostatnio bawię się rzeczami, które nijak się mają do takich frameworków (parsery, narzędzia do testowania itd.). W pracy z kolei mamy swoje biblioteki i frameworki.

I jeśli można wiedzieć - w swoich aplikacjach zawierasz jedynie czysty JS/TS?

Najczęściej. Ale korzystam też sporo z npm-a i bibliotek pokroju lodasha. 

komentarz 19 grudnia 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Ja piszę komercyjnie w Vue i nigdy jeszcze nie spotkałem się z takim podziałem plików. Szczerze mówiąc dla mnie jedną z zalet Vue jest to że można wszystko fajnie wydzielić w jednym pliku.
+2 głosów
odpowiedź 17 grudnia 2020 przez niezalogowany

Miałem bardzo podobne wątpliwości kiedy zaczynałem naukę z React.js ...teraz im dalej tym lepiej ....wink

1
komentarz 17 grudnia 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
To ja mam na odwrót, im więcej grzebie w react tym mniej jestem pewny np ułożenia katalogów etc.
komentarz 17 grudnia 2020 przez niezalogowany

Każdy z nas jest Inny wink  mnie osobiście denerwował JSX teraz się przyzwyczaiłem do tej konwencji .

Struktura ułożenia Katalogów bywa mocno pokręcona ....cheeky trzeba dbać o porządek...

Podobne pytania

0 głosów
2 odpowiedzi 309 wizyt
pytanie zadane 8 lipca 2020 w JavaScript przez BlvckFox Gaduła (4,240 p.)
+1 głos
2 odpowiedzi 498 wizyt
pytanie zadane 3 stycznia 2021 w JavaScript przez Bartx Bywalec (2,120 p.)
0 głosów
2 odpowiedzi 501 wizyt
pytanie zadane 28 lutego 2020 w JavaScript przez niezalogowany

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...