import, export - czyli jak podzielić projekt JS na wiele plików

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ต.ค. 2024

ความคิดเห็น • 41

  • @annamaria9106
    @annamaria9106 4 ปีที่แล้ว +4

    wspaniale, że się dzielisz swoją wiedzą, ogromne dzięki:)

  • @pr0way
    @pr0way 4 ปีที่แล้ว +2

    Super odcinek - pełne wyjaśnienie tego jak naprawdę to działa co może nie być takie oczywiste przekopując się przez dziesiątki przyklejanych tutoriali.

  • @MateuszAandrzejewski
    @MateuszAandrzejewski 4 ปีที่แล้ว

    Super robota, cały Twój kanał daje mi dużo wiedzy, od razu wdrażam 😁

  • @michawojcik1519
    @michawojcik1519 4 ปีที่แล้ว +1

    Bardzo dobra seria, czekam na kolejne odcinki :)

  • @vladeb1104
    @vladeb1104 4 ปีที่แล้ว +1

    wielkie dziéki..powoli stajesz sie moim prywatnym tutorem :-) Z najnowszych problemów - taka sytuacja, załóżmy że projekt web app jest skorelowany z mongoDB. Użytkownik działa na jednym elemencie i ten jeden element jest 'opisany' według 'schema' po stronie serwera i serwer współpracuje z db właśnie na podstawie tego 'schema' czyli standard. Wszystko pięknie jeśli schema ma dokładną ilość 'pól' ... czyli jakis string, number, date. Ale co jeśli user ma możliwość rozszerzania tego elementu. Jak stworzyć 'schema' która może dynamicznie sie zmieniać. Czyli zamiast jednego pola string chcemy by element miał ich więcej lub mniej.

    • @tworcastron
      @tworcastron  4 ปีที่แล้ว

      Mongo ma domyślnie donamiczne schema, którego można w ogóle nie opisywać, wtedy jest całkowita dowolność.
      Zgaduję, że odwołujesz się do biblioteki mongoose z innego filmiku :) Na tamtym filmiku jest też opisana opcja pól opcjonalnych, czyli czy pole jest wymagane czy nie th-cam.com/video/WWk-4q3wiV0/w-d-xo.html
      Jeśli chodzi o to, żeby user mógł dodawać pola, które w ogóle nie zostały przewidziane w Schema (nawet jako opcjonalne) to można olać schema i go nie tworzyć, bo wtedy mija się on z celem (schma jest po to, aby było można tworzyć tylko ustalone pola, wg konkretnych zasad).

  • @devnullex
    @devnullex 3 ปีที่แล้ว +1

    Świetny materiał, nawet dla takiego jak ja PHPowca opornego na JS ;-) Dzięki!

    • @tworcastron
      @tworcastron  3 ปีที่แล้ว +1

      Sam wywodzę się z PHP:)

  • @przemysawniemiec2635
    @przemysawniemiec2635 4 ปีที่แล้ว +2

    Świetne ;)

  • @SalvadorRap
    @SalvadorRap 4 ปีที่แล้ว +5

    Propozycja na następny odcinek: Może coś o tym jak w praktyce dzielić skrypty js by np. na stronie "Kontakt" nie ładować niepotrzebnych funkcji, które tam w ogóle nie są używane?

    • @tworcastron
      @tworcastron  4 ปีที่แล้ว

      Jeden ze sposobów to, np. import jedynie potrzebnych funkcji, jak na filmiku. Ale faktycznie są też inne sposoby.

  • @justyna6134
    @justyna6134 4 ปีที่แล้ว

    8:35 => dzieki za ta informacje, niby oczywiste, ale jakos nikt nigdy (tlumaczac JS) tego nie_zaakcentowal jak Ty (a troche tutoriali obejrzalam o JS) => dzieki :)

    • @tworcastron
      @tworcastron  4 ปีที่แล้ว +1

      Super, dzięki za feedback:)

  • @hhicior7648
    @hhicior7648 ปีที่แล้ว +1

    Świetny materiał! Pomysł na film: webpack.

    • @tworcastron
      @tworcastron  ปีที่แล้ว

      Dzięki, już myślę o nim od jakiegoś czasu:)

  • @remkarablin4109
    @remkarablin4109 3 ปีที่แล้ว

    Wspaniałe ! A mógłbyś w przyszłości napisać w swoim błogie jak zbudowany jest React ? Bo właśnie go teraz się uczę.

  • @blackshadow5800
    @blackshadow5800 2 ปีที่แล้ว

    U mnie z kolei pojawia się taki problem:
    Access to script at 'sciezka do pliku' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.
    x.js:1 Failed to load resource: net::ERR_FAILED
    Natomiast uczę się noda, być może pliki nodowskie powodują ten błąd. Nie wiem, czy żeby się go pozbyć powinienem odinstalować sobie noda czy jest jakiś inny sposób, aby to obejść

  • @project_dev1847
    @project_dev1847 4 ปีที่แล้ว +1

    super

  • @szczeczaczoszczeczek5077
    @szczeczaczoszczeczek5077 4 ปีที่แล้ว +2

    Spoko odcinek. Szkoda że nikt 2 lata temu tak mi nie wytłumaczył gdy wziąłem się za ogarnianie tego i do tej pory pamiętam jak użyłem import i zobaczyłem w konsoli ten błąd co u ciebie na początku. To był koszmar, bo nie potrafiłem wyszukać informacji która by mi pomogła i bardzo długo się z tym męczyłem.
    Zrobiłbyś drugą część o mongoose z relacjami? Dosłownie wczoraj kombinowałem i szukałem jak utworzyć relację i ni chuja nie wyszło. Swoją drogą mongodb i mongoose są potężnymi narzędziami i bardzo przyjemnymi. MySQL nie ma co startować z nimi heh

    • @tworcastron
      @tworcastron  4 ปีที่แล้ว +1

      Dzięki! Dopiszę relacje mongodb do listy odcinków, ale ta lista jest dosyć długa więc nie wiem kiedy mogłoby się to ukazać :) Fakt mongodb jest potężny, co do różnic polecam odcinek, który zrobiłem jakiś czas temu "SQL vs noSQL | MySQL vs MongoDB"

    • @szczeczaczoszczeczek5077
      @szczeczaczoszczeczek5077 4 ปีที่แล้ว +1

      Twórca Stron Oglądałem oczywiście już. Co chciałem zrobić 2 tygodnie temu? Nauczyć się mongodb. Zacząłem więc szukać po necie i trafiłem najpierw na "sql vs nosql", a potem "mongodb w 60min". Nawet nie wiesz jak bardzo dobre są to filmy.

  • @grzegorzbielec908
    @grzegorzbielec908 2 ปีที่แล้ว

    Wyskakuje błąd: Access to script at ..ścieżka do pliku...rom origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, https, ipns, chrome-untrusted, ipfs, data, chrome, chrome-extension. Jak to elegancko ominąć?

  • @piotr.pkprogram
    @piotr.pkprogram 3 ปีที่แล้ว

    A da się jakoś zmienić wartość importowaniej zmiennej w innym pliku niż w tym, w którym została zadeklarowana, bo jak próbowałem to w przeglądarce wyskakiwał mi błąd ready-only. Da się to jakoś zmienić? Oczywiście zakładam, że zmienna nie została zadeklarowana const.

    • @tworcastron
      @tworcastron  3 ปีที่แล้ว

      Jeżeli jest to zmienna globalna to tak. Ale należy unikać takich sytuacji. Odzielny plik należy traktować jak odzielną przestrzeń zmiennych. Próba zmiany wartości w innych plikach może doprowadzić do strasznego bałaganu i problemów.

  • @marekslazak1003
    @marekslazak1003 3 ปีที่แล้ว

    Hej, jest może jakaś opcja żeby zaimportować moduł z folderu "wyżej"? Chodzi mi o coś w stylu: import {klasa} from '../moduł.js'.

    • @tworcastron
      @tworcastron  3 ปีที่แล้ว

      Tak, działa to dokładnie tak jak napisałeś. Pamiętaj, że nawiasów używasz przy exporcie nazwanym, a gdy masz "export default ..." to bez tych nawiasów.

  • @pabas3792
    @pabas3792 3 ปีที่แล้ว

    Co może być przyczyną, że przy importowaniu z .js wszystko działa a bez rozszerzenia już nie? Skoro jest to opcjonalne. A tak btw świetny filmy ^^

    • @tworcastron
      @tworcastron  3 ปีที่แล้ว +1

      Rozszerzenie przy "import" jest wymagane (chyba, że ładujemy moduł - przykład z Vue). Rozszerzenie dla "require" jest opcjonalne.

  • @dapolcio3405
    @dapolcio3405 2 ปีที่แล้ว

    A co oznacza zapis: >> export { default as actor } from "./actors"

    • @tworcastron
      @tworcastron  2 ปีที่แล้ว

      Pobranie zmiennej "default" z ./actors i zmiana jego nazwy na "actor".

    • @dapolcio3405
      @dapolcio3405 2 ปีที่แล้ว

      @@tworcastron thx

  • @DanielZawadzki32
    @DanielZawadzki32 4 ปีที่แล้ว

    Jesteś krewnym Pudzianowskiego?:D (wyczuwam podobna dykcję/akcent)

    • @tworcastron
      @tworcastron  4 ปีที่แล้ว +1

      Haha, wolałbym sobie wmówić podobieństwo wizualne, ale może być i akcent. Niestety nic mi nie wiadomo o jakiejkolwiek relacji z Pudzianowskim:D

  • @radekkk1982
    @radekkk1982 2 ปีที่แล้ว

    3:24 U mnie rozszerzenie bez rozszerzenia "js" się wysypywało

  • @vladeb1104
    @vladeb1104 4 ปีที่แล้ว

    Google Chrome and Edge permamentnie wywala błąd CORS i MIME type. Rozwiązanie to postawienie servera express pod node.js i zabawa w routing :-(

    • @tworcastron
      @tworcastron  4 ปีที่แล้ว +1

      Odcinek kręcony był na Brave (to samo co chrome). Uruchom plik na jakimś serverze (np. xampp) a nie jak zwykły plik (aby ścieżka nie zaczynała się od file...).

    • @vladeb1104
      @vladeb1104 4 ปีที่แล้ว

      @@tworcastronnie umiem jeszcze póki co uruchamiac xampp...za to umiem express i na tym dzia£a bez problemu

    • @vladeb1104
      @vladeb1104 4 ปีที่แล้ว

      @@tworcastron no i kolejny problem - na froncie mam skrypt do którego chciałbym wysyłać dane z kontrolera takie jak np odczytane dane z bazy danych i wydawało by się że import/export będzie do tego idealny. Niestety mój plik kontrolera używa komendy export.module i jak próbuje zrobić 'export default {...}' to wywala 'export unecpeted token'...(oczywiście środowisko node.js z zainstalowanym 'express')

    • @tworcastron
      @tworcastron  4 ปีที่แล้ว

      @@vladeb1104 polecam odcinek od modułach noda th-cam.com/video/CSkzAL9cfDM/w-d-xo.html
      Moduły w nodzie działają inaczej.
      Import/export domyślnie jeszcze w nodzie nie działa. To przeglądarki obsługują ten ficzer, nie sam javascript.

    • @vladeb1104
      @vladeb1104 4 ปีที่แล้ว

      @@tworcastron tak, oglądałem go ale to też nie rozwiązuje mojego problemu. Gdy użyję require w skrypcie to wywala komenda nieznana, gdy użyję "export" po stronie node a import w skrypcie to wywala błąd - ostatecznie - w jaki sposób zmienne mogą migrować pomiędzy plikiem .js 'po stronie servera' a plikiem .js wywoływanym jako skrypt po stronie przeglądarki?