Prosty i Nowoczesny Framework dla Vue.js
7 godz. 2 min · Vue.js · Full-stack i Programowanie
Wojciech PołowniakSr. Fullstack EngineerW tym projekcie tworzyć będziemy praktyczny projekt - klona Wikipedii! Minipedia pobierze dane z prawdziwego źrodła danych, zewnętrznego API WikiMedia - będzie łudząco podobna do oryginału oraz współdzieliła najważniejsze funkcjonalności, takie jak dostarczanie treści w różnych wersjach językowych, możliwość wyszukiwania artykułów, czy pobieranie najpopularniejszych wpisów dla danego języka. Stworzymy także podstronę wyświetlającą za każdym razem losowy artykuł w danej wersji językowej.Zobaczysz też, jak dokonać migracji ze statycznej strony HTML na Nuxt - oraz jak tworzyć przykładowe komponenty podczas tego procesu.Dzięki temu wszystkiemu, dowiesz się jak wykorzystać nabytą wiedzę w praktyce.
Dzięki Nuxtowi dowiesz się jak optymalizować Twoje strony www z duchem idei progressive enhancement, dostarczając coraz to lepsze doświadczenia dla swoich użytkowników oraz tworząc aplikację napisaną w 100% w JavaScript, która będzie działała nawet wtedy, gdy użytkownik jawnie wyłączy go w przeglądarce! To wszystko za SSR (Server Side Rendering), dzięki któremu treści będą gotowe do konsumpcji już przy wstępnej, pierwszej odpowiedzi z serwera WWW.Oczywiście, ma to swoje implikacje na wydajność naszej aplikacji - sprawiając że Lighthouse czy optymalizacja pod SEO staje się coraz prostsza!
Czymże jest ekosystem danego frameworka bez wsparcia społeczności! Dlatego podczas tego kursu nauczysz się instalować i wykorzystywać różne pluginy i moduły, które zaoszczędzą Ci dużo czasu. Dowiesz się też, jak tworzyć własne moduły - które rozszerzą działanie Twojej aplikacji Nuxt w sposób czysty i zarządzalny.
Nuxt jest frameworkiem w którym pracujemy zarówno po stronie front-endu, jak i back-endu. W związku z czym, stworzymy swoje własne API (bazujące na express.js) które będzie pewnego rodzaju pośrednikiem pomiędzy API WikiMedia oraz Twoją aplikacją internetową.
W tym kursie, dowiesz się także jak tworzyć swoje własne Middleware'y - czyli fragmenty kodu wywoływane pomiędzy przechodzeniem między stronami, czy podczas innych zapytań HTTP.Dodatkowo, zobaczysz jakie narzędzia daje nam Nuxt aby tworzyć progresywne aplikacje internetowe, oferując wsparcie dla takich funkcjonalności jak np. animacje między przejściami pojedynczymi podstronami naszego serwisu.
Tajemnicze i18n - czyli numeronim odpowiadający angielskiemu słowu "internalisation" - odnosi się w kontekście web developmentu do tłumaczenia danych na różne języki. Podczas realizacji projektu Minipedii, nie tylko wykorzystamy standardowe podejście do tłumaczeń stałych elementów naszego interfejsu użytkownika, ale także przetłumaczymy same dane zwracane z API, wykorzystując inną wersję językową w zależności od preferencji użytkownika!
Poznasz też kilka ciekawych pluginów i rozwiązań dotyczących optymalizacji pod SEO - poza faktem, że podejście spełniające intencje użytkownika jest najlepszym, co możemy zrobić - pluginy generujące nam mapę stron automatycznie na podstawie zadeklarowanych przez nas podstron, czy generatory danych jsonld pomogą w pozycjonowaniu Twojej wydajnej aplikacji jeszcze wyżej w hierarchii wyszukiwarek.
Aby móc efektywnie korzystać z tego kursu, powinieneś posiadać średnio zaawansowaną wiedzę z kategorii Front End, z naciskiem na umiejętność posługiwania się JavaScriptem oraz solidne podstawy NodeJS. Konieczna jest znajomość Vue, jako że Nuxt jest frameworkiem korzystającym z niego u swoich podstaw. Jeśli czujesz się dość swobodnie w wyżej wymienionych aspektach web developmentu, ten kurs będzie idealny dla Ciebie.
Cześć!
W tej lekcji omówię krótko różne możliwości.
Konfiguracyjne, które znajdziemy w pliku z konfiguracją.
I przede wszystkim różne właściwości, z których będziemy też korzystać.
Podczas tego kursu.
Czyli pierwsza rzecz, która nam rzuca tutaj w oczy jest właściwość HEAD
i jest to konfiguracja, którą oczywiście też możemy zrobić na poziomie page.
Czyli indywidualnego komponentu, aby tekst był inny dla każdej innej podstrony.
Natomiast jeżeli pragniemy takiego
globalnego globalnego SCHEDA, czyli nawet w zależności od tego.
Jaki layout chcemy mieć, to
HEAD będzie takim pierwszym obiektem, który ma pierwszeństwo.
Nad wszystkim i dopiero później jest opisywany przez layouty czy page.
I możemy tutaj zadeklarować np.
samą ikonkę, co też.
Zrobimy przy etapie przenoszenia aplikacji obecnej.
Do Nexta.
Co jest, jeśli jesteśmy w stanie zadeklarować ścieżkę do globalnych CSS ów?
Nie będziemy tego tutaj chyba robić, bo
mamy to zadeklarowane w prostych plikach i tak.
Naprawdę w sam layout możemy wrzucić nasze.
Style. Ale jeśli chcielibyśmy np.
stworzyć jakieś helper.
Typu Visual hyde czy screen.
Only to możemy użyć takich klas właśnie w
takim globalnym pliku i wtedy w dowolnym widoku, w dowolnym miejscu w całym naszym.
Kodzie źródłowym będziemy mogli takiej klasy użyć.
W plugin.
Jak jesteśmy zadeklarować różne pluginy, które będą rozszerzały View.
O komponentach troszkę już mówiliśmy.
Build modules to są moduły, które faktycznie są uruchamiane podczas np.
npm randek i będziemy taki.
Moduł tworzyli, który pozwoli nam
sprawdzić czy nasze zmienne środowiskowe, o których już mówiliśmy w poprzedniej
lekcji, są poprawnie skonfigurowane, tak aby łatwo zarządzać plikami.
VI.
Które jak już wspomniałem nie są zapisywane do repozytoriów.
W związku z czym każdy z developerów musi
je w pewien sposób skonfigurować własnoręcznie.
I dalej moduły, czyli ten.
Basic Auth module, który zadeklarowaliśmy sobie i pobraliśmy go.
Z npm. A no to tutaj możemy je zarejestrować.
I każdy z takich modułów może mieć własne swoje opcje konfiguracyjne.
Modułów tekstowych samych w sobie tworzyć nie będziemy.
Skupimy się tylko i wyłącznie na billboardach,
a zrobimy to dlatego, ponieważ moduły będą się troszkę zmieniały jeżeli chodzi o
swoje funkcjonowanie w trójce i jest to naprawdę dosyć szeroki temat.
Tworzenie paczek dla miasta jest już troszkę większym wyzwaniem,
w związku z czym tego w tym kursie nie znajdziemy.
Ale jest oczywiście odnośnik do.
Dokumentacji, gdzie wszystko jest bardzo
ładnie opisane, więc możemy to zrobić w tamtym miejscu.
Tutaj jest konfiguracja DAX i Osa no i ten.
Build w którym zadeklarowaliśmy pluginy da
wiele, aby pozbyć się błędu z początku tego kursu.
Co możemy zrobić to wejść po prostu w
dokumentację skonfiguruje i tutaj mamy to wszystko opisane.
Czyli na przykładzie jesteśmy w stanie
zadeklarować różne aliasy, których używając w kodzie będziemy mogli.
Odwoływać się do innych miejsc w naszym kodzie źródłowym.
Czy jeśli chcielibyśmy odwoływać się do
naszych styli poprzez styl slash nazwa pliku, a wszystkie style.
Znajdowałyby się w katalogu assets style,
czyli po prostu tutaj jak byśmy robili, to możemy to stworzyć w tym miejscu.
Natomiast nie jest to potrzebne domyślnie.
Ponieważ ma pewne aliasy zadeklarowane domyślnie w Wildzie.
Możemy rozszerzać konfigurację. Takową.
Która przydaje się np.
przy.
CSS modules.
Aby zmniejszać bandit side.
I tak samo globalne CSS.
Możemy zadeklarować.
W zmiennej def, która domyślnie działa tak.
Że w zależności od node w jej zmiennej
środowiskowej, która jest globalna dla całego noda będzie przełączane flaga def.
Która wskazuje czy.
Ma uruchomić się w trybie developerskim czy produkcyjnym.
I oczywiście możemy sobie to skopiować tutaj.
Na przykład na samą górę naszego pliku.
I po przecinku. Też.
Oczywiście możemy to. Zostawić tak jak jest.
Albo jeżeli chcielibyśmy aby zawsze był.
Uruchamiane w trybie. Deweloperskim.
To możemy tutaj zakodować wartość boolean, czyli wartość logiczną.
Tak nie trudno.
Zostawmy to na wartości domyślnej.
Głębi też możemy tutaj zadeklarować.
Różne zmienne środowiskowe, które.
Są potrzebne tylko na.
Etapie budowania.
Plików, ale jest to taka troszkę niepotrzebna.
Właściwość, ponieważ.
Też domyślnie jest tych opcji naprawdę, naprawdę bardzo dużo.
To co ja chciałem tutaj pokazać i co jest dosyć ciekawe to na przykład właściwość
server, czyli jeśli chcielibyśmy korzystać z https.
Oczywiście możemy tutaj sobie podać ścieżkę do naszych kluczy i
certyfikatów, aby nasza strona miała tutaj tą kuleczkę tak jak.
Na przykład toksyn AXA.
Oczywiście tutaj localhost w tym momencie
tego nie ma, bo pracujemy na protokole HTTP.
Ale możemy też wykorzystać
właściwość server do zmiany domyślnego portu aplikacji.
Czyli jeśli tutaj wpiszemy serwer i port np.
na 8000 zapiszemy.
To w tym momencie nasza aplikacja nie będzie już.
Uruchamiana na porcie 3000.
Jak widzimy to już przestało działać, lecz na.
Porcie 8000.
I generalnie jeżeli chodzi o taką globalną zmianę konfiguracji działania Nexta, to
next config jest miejscem, w którym trzeba to zrobić.
Oczywiście tak jak wspominałem nie
będziemy omawiali wszystkich tych właściwości,
bo w zależności od problemu po prostu różne właściwości są nam potrzebne.
Będziemy na pewno do tego pliku jeszcze wracać konfigurując inne.
Rzeczy potrzebne do praktycznej pracy nad.
Projektem i wtedy.
Ale jeśli zapamiętasz, że nawet konfiguracja z głównym plikiem, w którym
możemy wyczytać wszystko o naszej aplikacji.
To bez problemu poradzisz sobie z dalszymi
wyzwaniami, które Next będzie nam oferował.
https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-dev
Zmiany wprowadzone w lekcji · 6 min
diff --git a/04/minipedia/nuxt.config.js b/04/minipedia/nuxt.config.js
index fb200a0..2ae2275 100644
--- a/04/minipedia/nuxt.config.js
+++ b/04/minipedia/nuxt.config.js
@@ -1,4 +1,5 @@
export default {
+ dev: process.env.NODE_ENV !== 'production',
// Global page headers: https://go.nuxtjs.dev/config-head
head: {
title: 'minipedia',
@@ -14,9 +15,13 @@ export default {
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
]
},
+ server: {
+ port: 8000,
+ },
// Global CSS: https://go.nuxtjs.dev/config-css
css: [
+
],
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins