V posledních letech šel vývoj tvorby webů jednoznačně nejvíce dopředu v jazyce Javascript. Javascript se dostal i na servery a pomalu vytlačuje dlouhou dobu moje oblíbené péhápko. Tento vývoj se snažím zachytit a přecházím z PHP na JS. Ten přechod je velice zábavný a objevný. Co šlo velice těžko programovat v PHP, v JS je snadné. Naopak jsou věci, které ještě úplně vychytané nejsou a je těžké se s tím popasovat, ale takových věcí díky obrovské komunitě JS developerů rychle ubývá.
Také tvoříte weby v PHP a stále více a více používáte Javascript ? V článku si chci ujasnit zásadní problémy, na které narážím při přechodu na JS. Jak udělat autentizaci, jak udělat routování (správně z pohledu SEO), jak řešit dependency injection. Velmi jsem si oblíbil framework Vue.js, je to reaktivní framework, asynchronní programování s řešením „co se může stát, když se stane toto“ místo starého synchronního PHP programování „co se musí stát, až když se povede toto“.
Když jsem proniknul do Vue.js (trvalo to pár dní) a jásal jsem radostí nad jednoduchostí řešení spousty programátorkých úloh, tak jsem zjistil, že to není zdaleka vše. Nad Vue.js totiž existuje ještě další nástavba se jménem Nuxt.js a to je pořádný dělo, prostě Vue.js na steroidech. Mega bombastický framework, který řeší snad úplně vše, co jsem se obával, že nepůjde. Ono to půjde. Základem je Vue, Nuxt používá Vue, oboje dohromady funguje skvěle a komunita za tím je velice aktivní. Když to srovnám s prakticky nulovou komunitou kolem Zend Framework, tak je to jako programátorské nebe a peklo. Peklo je ZF3.
Ve Vue.js jsem zatím vytvořil jednu aplikaci na registraci firem v naší firmě a pár dalších menších aplikací (spíše jen komponent) jako např. webové menu, filtr pro výpis, kalkulačky. Dá se skvěle nasadit do stávajícího projektu napsaného v PHP. Vue.js aplikace se dá sestavit do jednoho výsledného JS souboru, který se vloží do stránek stejně jako další JS soubory a namontuje se do nějakého HTML elementu, ve kterém pracuje.
Problém č. 1: Autentizace uživatelů
Nuxt.js jsem použil zatím jen na administraci jednoho webu. Musel jsem řešit např. autentizaci. Nuxt je modulární, velice snadno se dá rozšiřovat o hotová řešení. Autentizace dobře vyřešena na stránce
https://auth.nuxtjs.org , umí přihlašování s lokálním heslem, Oauth2 tokenem, Facebookem, Googlem, Githubem, rozšířit jde snadno. Příklad nasazení auth modulu.
Problém č. 2: HTTPS na localhost
To se nastavuje v nuxt.config.js pod server …najdete na webu Nuxt.js, certifikáty pro doménu localhost se dají vytvořit přes openssl, návod letsencrypt. Server poběží na https://localhost:3000