{"id":56101,"date":"2022-06-16T12:38:26","date_gmt":"2022-06-16T11:38:26","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=56101&#038;post_type=knowledgebase&#038;preview_id=56101"},"modified":"2025-10-01T20:47:02","modified_gmt":"2025-10-01T19:47:02","slug":"nuxt-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/","title":{"rendered":"Cos&#8217;\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo"},"content":{"rendered":"<p>Nuxt.js \u00e8 il <a href=\"https:\/\/kinsta.com\/it\/blog\/vue-js\/\">framework Vue<\/a> pi\u00f9 intuitivo ad oggi disponibile sul mercato. Combina la potenza di Vue.js con funzioni di rendering lato server che lo rendono pi\u00f9 potente e permettono di costruire un&#8217;applicazione completa di Vue.js con rendering lato client, un&#8217;applicazione statica completa e un&#8217;applicazione monolite.<\/p>\n<p>Nuxt.js risolve il problema della strutturazione dei progetti Vue.js, in quanto \u00e8 dotato di un&#8217;architettura di sviluppo frontend di livello enterprise. Le funzionalit\u00e0 di Nuxt.js sono gi\u00e0 strutturate secondo gli standard del settore per creare applicazioni aziendali.<\/p>\n<p>Questa guida esplorer\u00e0 Nuxt.js, cosa ci si pu\u00f2 costruire e come funziona dall&#8217;interno.<\/p>\n<p><div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><br \/>\n<\/p>\n<h2>Cos&#8217;\u00e8 Nuxt.js?<\/h2>\n<p>Nuxt.js \u00e8 un framework di rendering lato server costruito su Vue.js. Astrae la maggior parte delle complesse configurazioni legate alla gestione dei dati asincroni, del middleware e del routing. Inoltre, aiuta a strutturare le applicazioni <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-headless\/\">Vue.js<\/a> utilizzando un&#8217;architettura standard per la creazione di applicazioni Vue.js semplici o aziendali.<\/p>\n<figure id=\"attachment_123662\" aria-describedby=\"caption-attachment-123662\" style=\"width: 1144px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-123662 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/05\/nuxt-js-logo.jpeg\" alt=\"Logo ufficiale di Nuxt.js.\" width=\"1144\" height=\"758\"><figcaption id=\"caption-attachment-123662\" class=\"wp-caption-text\">Logo ufficiale di Nuxt.js. (Fonte: <a href=\"https:\/\/medium.com\/ucars-tech\/so-we-migrated-our-entire-front-end-to-nuxt-js-fec14247d3a5\">Medium<\/a>)<\/figcaption><\/figure>\n<h2>A Cosa Serve Nuxt.js?<\/h2>\n<p>Nuxt.js permette di creare diversi tipi di applicazioni. Di seguito sono riportate le tre applicazioni pi\u00f9 popolari realizzate con Nuxt.js.<\/p>\n<h3>Pagine Statiche Generate<\/h3>\n<p>Questo tipo di sito web non richiede alcuna fonte di contenuti esterni: i contenuti sono gi\u00e0 incorporati nell&#8217;HTML. Esempi di siti web di questo tipo sono i siti di <a href=\"https:\/\/kinsta.com\/it\/blog\/sito-web-portfolio\/\">portfolio<\/a>, demo e tutorial.<\/p>\n<h3>Applicazioni a Pagina Singola (SPA)<\/h3>\n<p>Questo approccio di sviluppo frontend recupera contenuti dinamici da un&#8217;API esterna e li visualizza sul lato client. La maggior parte dei <a href=\"https:\/\/kinsta.com\/it\/blog\/librerie-javascript\/\">framework JavaScript<\/a> come React.js, <a href=\"https:\/\/kinsta.com\/it\/blog\/angular-vs-vue\/\">Vue.js, Angular<\/a> ed Ember.js sono tutti framework per applicazioni a pagina singola.<\/p>\n<p>Inoltre, il sistema di routing di una SPA \u00e8 realizzato con l&#8217;API <a href=\"https:\/\/kinsta.com\/it\/blog\/html-e-html5\/\">HTML 5<\/a> History o con l&#8217;hash di posizione per il routing, che offre agli sviluppatori la possibilit\u00e0 di modificare l&#8217;URL di un sito web senza dover aggiornare l&#8217;intera pagina.<\/p>\n<h3>Applicazioni Universali<\/h3>\n<p>&#8220;Applicazione universale&#8221; \u00e8 un termine che descrive l&#8217;uso di un approccio di rendering lato server per recuperare i dati lato client sul server prima di eseguire il rendering completo della pagina sul browser client.<\/p>\n<p>Il rendering lato server (SSR) \u00e8 un problema noto in Vue.js perch\u00e9 richiede configurazioni noiose.<\/p>\n<p>Nuxt.js risolve il problema dell&#8217;SSR in Vue.js, il che \u00e8 utile per l&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-seo\/\">ottimizzazione dei motori di ricerca (SEO)<\/a>. Nuxt.js pu\u00f2 anche estendere le applicazioni Universal per ospitare un&#8217;applicazione monolite a tutti gli effetti, in cui il frontend e il backend condividono un&#8217;unica base di codice.<\/p>\n<h2>Come Funziona Nuxt.js?<\/h2>\n<p>Nuxt.js funziona come un framework lato server quando un utente visita un sito web. Se il rendering lato server \u00e8 abilitato, le richieste vengono eseguite sul server ogni volta che l&#8217;utente richiede una pagina, quindi \u00e8 necessario un server per poter servire la pagina a ogni richiesta. Inoltre, se il rendering lato client \u00e8 abilitato, il contenuto della pagina viene visualizzato nel browser utilizzando JavaScript.<\/p>\n<p>Queste sono le azioni e i metodi principali utilizzati in Nuxt.js:<\/p>\n<ul>\n<li>nuxtServerInit (Azione): \u00c8 il primo hook del ciclo di vita che viene richiamato sul lato server se lo store Vuex \u00e8 abilitato. \u00c8 un&#8217;azione Vuex che viene richiamata solo sul lato server per pre-popolare lo store e infine pu\u00f2 essere utilizzata per inviare altre azioni nello store Vuex.<\/li>\n<\/ul>\n<ul>\n<li>validate() (Funzione): Il metodo validate viene richiamato prima del rendering dei componenti della pagina. \u00c8 utile per convalidare i parametri dinamici di un componente di pagina.<\/li>\n<\/ul>\n<ul>\n<li>Il metodo asyncData() viene utilizzato per recuperare i dati e renderli sul lato server, mentre il <a href=\"https:\/\/nuxtjs.org\/api\/pages-fetch\/\" target=\"_blank\" rel=\"noopener noreferrer\">metodo fetch()<\/a> viene utilizzato per riempire l&#8217;archivio prima del rendering della pagina.<\/li>\n<\/ul>\n<p>Ad esempio, quando un sito Nuxt.js riceve una prima visita alla pagina, richiama l&#8217;azione <code>nuxtServerInit<\/code> per aggiornare gli stati Vuex (se definiti nello store Vuex). Altrimenti, se <code>nuxtServerInit<\/code> non \u00e8 definito, passa a un&#8217;altra fase.<\/p>\n<p>Quindi, cerca i middleware in questo ordine. Per prima cosa, controlla il file <code>nuxt.config.js<\/code> per verificare la presenza di un middleware globale. Se \u00e8 definito, viene eseguito prima di verificare la presenza di middleware nelle pagine di <code>layout<\/code>. Infine, esegue il middleware delle singole pagine, compresi i figli della pagina.<\/p>\n<p>Dopo aver eseguito tutti i middleware in ordine, controlla se il percorso \u00e8 dinamico ed esegue il metodo <code>validate()<\/code> creato e convalidato.<\/p>\n<p>Successivamente, richiama il metodo <code>asyncData()<\/code> della pagina per recuperare e rendere i dati sul lato server prima di richiamare il metodo <code>fetch()<\/code> per popolare lo store Vuex sul lato client.<\/p>\n<p>A questo punto, la pagina dovrebbe avere tutti i dati e i contenuti necessari per visualizzare una pagina web vera e propria. Quindi la pagina viene renderizzata dal motore Nuxt.js e mostrata al visitatore, completando il processo.<\/p>\n<p>Questo diagramma di flusso illustra tutti i passaggi necessari per il rendering di una singola pagina:<\/p>\n<figure id=\"attachment_123663\" aria-describedby=\"caption-attachment-123663\" style=\"width: 1244px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-123663 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/05\/nuxt-lifecycle.png\" alt=\"Una panoramica degli hook del ciclo di vita di Nuxt.js.\" width=\"1244\" height=\"1759\"><figcaption id=\"caption-attachment-123663\" class=\"wp-caption-text\">Una panoramica degli hook del ciclo di vita di Nuxt.js. (Fonte: <a href=\"https:\/\/nuxtjs.org\/docs\/2.x\/concepts\/nuxt-lifecycle\">Sito web Nuxt<\/a>)<\/figcaption><\/figure>\n<p>Indipendentemente dallo strumento che si utilizza, ci si sente sempre pi\u00f9 sicuri quando si ha un&#8217;idea di come funziona il &#8220;motore&#8221; sotto il cofano, e grazie alla spiegazione qui sopra, sar\u00e0 pi\u00f9 semplice capire il funzionamento di Nuxt.js. Scopriamo adesso i vantaggi dell&#8217;uso di Nuxt.js per il vostro prossimo progetto.<\/p>\n<h2>Vantaggi di Nuxt.js<\/h2>\n<p>Parliamo ora dei vantaggi del framework Nuxt.js e del perch\u00e9 sia diventato cos\u00ec popolare negli ultimi tempi.<\/p>\n<h3>Creare Applicazioni Universali senza Problemi<\/h3>\n<p>Nuxt.js rende molto semplice la creazione di applicazioni di rendering lato server. Se avete mai provato a sviluppare un&#8217;applicazione con rendering lato server con Vue.js, \u00e8 probabile che abbiate affrontato ostacoli difficili da superare a causa della miriade di opzioni di configurazione disponibili sia per il lato server che per il lato client.<\/p>\n<p>La funzione SSR \u00e8 gi\u00e0 integrata in Nuxt.js ed \u00e8 facile da usare. Permette di accedere alle propriet\u00e0 <code>isServer<\/code> e <code>isClient<\/code> dei vostri componenti per decidere se renderizzare qualcosa sul lato client o sul lato server.<\/p>\n<p>Fornisce inoltre il metodo <code>asyncData<\/code> dedicato al recupero e al rendering dei dati sul lato server del componente della pagina.<\/p>\n<h3>Rendering Statico delle Applicazioni Vue con Universal Benefit<\/h3>\n<p>I siti web generati staticamente sono in aumento nel settore del web e con un singolo comando di <code>nuxt generate<\/code> \u00e8 possibile generare una versione statica del proprio sito web, con tutto l&#8217;HTML e i percorsi corrispondenti.<\/p>\n<p>Il comando <code>nuxt generate<\/code> funziona esattamente come l&#8217;approccio dell&#8217;applicazione universale con tutte le funzionalit\u00e0 SSR abilitate, ma per un sito web generato staticamente.<\/p>\n<p>In Nuxt.js, creare un sito web generato staticamente \u00e8 come costruire una potente applicazione universale senza un server per alimentare la funzione SSR.<\/p>\n<h3>Dividere il Codice in Modo A utomatico<\/h3>\n<p>Uno dei motivi per cui Nuxt.js \u00e8 molto veloce in termini di prestazioni \u00e8 la funzione di suddivisione del codice, che prevede che a un percorso venga assegnato un singolo <a href=\"https:\/\/kinsta.com\/it\/blog\/media-query-javascript\/\">file JavaScript<\/a> contenente solo il codice necessario per l&#8217;esecuzione di quel percorso, riducendo cos\u00ec le dimensioni dell&#8217;applicazione.<\/p>\n<p>Questa funzione di suddivisione del codice utilizza la configurazione di Webpack che \u00e8 gi\u00e0 presente quando si genera una versione statica del sito web.<\/p>\n<h3>Hot Reload<\/h3>\n<p>L&#8217;hot reload \u00e8 un&#8217;ottima funzione aggiunta per risolvere il metodo di aggiornamento delle modifiche, che richiede molto tempo, nello sviluppo di un software.<\/p>\n<p>\u00c8 configurato per aggiornare automaticamente il server di sviluppo quando si modifica un qualsiasi file nella directory principale.<\/p>\n<p>Durante lo sviluppo e il lavoro sui file di <code>.vue<\/code>, utilizza una configurazione di Webpack per verificare le modifiche e compila tutto per voi. Questo approccio fa risparmiare tempo agli sviluppatori e favorisce uno sviluppo pi\u00f9 rapido delle applicazioni.<\/p>\n<h3>Compilazione ES6\/ES7<\/h3>\n<p>Nuxt.js viene fornito con Webpack e Babel per tradurre e compilare le ultime versioni di JavaScript come <a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-javascript\/\">ES6 e ES7 in JavaScript<\/a> in grado di funzionare sui browser pi\u00f9 vecchi.<\/p>\n<p>Babel \u00e8 configurato per compilare tutti i file <code>.vue<\/code> e il codice ES6 all&#8217;interno dei tag di script in JavaScript che funziona su tutti i browser.<\/p>\n<p>Questa funzione risolve il problema di creare manualmente applicazioni compatibili con i browser e di impostare la configurazione da zero.<\/p>\n<h2>Come Creare un&#8217;Applicazione Nuxt.js<\/h2>\n<p>In questa sezione vedremo come creare un&#8217;applicazione Nuxt.js. Prima di tuffarci, analizziamo alcuni concetti fondamentali per lo sviluppo di un&#8217;applicazione Nuxt.js.<\/p>\n<h3>Creare un&#8217;Applicazione Nuxt.js<\/h3>\n<p>Creare un nuovo progetto \u00e8 facile e immediato. \u00c8 possibile creare un progetto con diversi approcci, come indicato nella documentazione ufficiale, ma l&#8217;approccio preferito e consigliato \u00e8 l&#8217;utilizzo della CLI.<\/p>\n<p>Per creare una nuova applicazione utilizzando la CLI, assicuratevi di avere <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener noreferrer\">installato npx<\/a> (npx viene fornito di default quando si installa yarn o npm 5.2.0).<\/p>\n<p>Quindi, digitate il seguente comando nella cartella in cui volete inserire il tuo progetto:<\/p>\n<pre><code class=\"language-bash\">npx create-nuxt-app \ncd \nnpm run dev<\/code><\/pre>\n<p>Assicuratevi di sostituire il nome del progetto&gt; con il nome effettivo del progetto.<\/p>\n<h3>Capire la Struttura delle Cartelle di Nuxt.js<\/h3>\n<p>Quando si crea una nuova applicazione utilizzando uno dei diversi approcci di installazione indicati nella documentazione ufficiale, vengono presentati diversi file e cartelle generati dalla CLI. Questi file e cartelle sono fondamentali e richiedono che alcune cartelle rimangano invariate senza ulteriori configurazioni.<\/p>\n<p>Qui di seguito vedremo la struttura delle cartelle, parleremo di ogni file e cartella e vedremo di capirne l&#8217;importanza.<\/p>\n<figure id=\"attachment_123664\" aria-describedby=\"caption-attachment-123664\" style=\"width: 1432px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-123664 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/05\/nuxt_page.png\" alt=\"Struttura della cartella Nuxt.js appena creata.\" width=\"1432\" height=\"884\"><figcaption id=\"caption-attachment-123664\" class=\"wp-caption-text\">Struttura della cartella Nuxt.js appena creata.<\/figcaption><\/figure>\n<h4>1. .nuxt<\/h4>\n<p>La cartella .nuxt \u00e8 nascosta e generata all&#8217;avvio del server di sviluppo e si chiama <code>build directory<\/code>. La cartella contiene i file o gli artefatti generati quando si esegue il comando <code>npm run build<\/code>.<\/p>\n<p>\u00c8 possibile modificare i file in questa cartella solo a scopo di debug, perch\u00e9 i file verranno generati di nuovo automaticamente una volta eseguito il comando <code>dev<\/code> o <code>build<\/code>.<\/p>\n<h4>2. Assets<\/h4>\n<p>La cartella assets contiene tutte le risorse non compilate come immagini, font, file SASS e Stylus. Webpack compiler\u00e0 qualsiasi file incluso in questa cartella durante il processo di rendering.<\/p>\n<h4>3. Components<\/h4>\n<p>La directory components \u00e8 simile alla directory components di Vue.js, dove sono memorizzati tutti i componenti di Vue. I componenti sono i file che costituiscono le diverse parti delle pagine e possono essere riutilizzati e importati nelle vostre pagine, nei layout e in altri componenti.<\/p>\n<h4>4. Layout<\/h4>\n<p>La cartella layouts contiene il layout dell&#8217;applicazione ed \u00e8 molto utile per separare le diverse strutture dell&#8217;applicazione per gli utenti autenticati o per gli utenti guest.<\/p>\n<p>Si possono creare molti layout che corrispondono alla struttura della vostra applicazione. Per esempio, si potrebbe desiderare che alcune pagine del sito web abbiano diverse barre laterali, intestazioni, pi\u00e8 di pagina, ecc. Questi e altri elementi vengono strutturati utilizzando i file di layout memorizzati nella cartella layouts.<\/p>\n<h4>5. Middleware<\/h4>\n<p>I middleware sono funzioni personalizzate che possono essere eseguite prima del rendering di una pagina o di un gruppo di pagine (layout) e possono essere definite e memorizzate nella cartella middlewares di Nuxt.js.<\/p>\n<p>I middleware sono molto utili quando si crea un sito web per soli utenti e se si vuole limitare l&#8217;accesso a determinate pagine, \u00e8 possibile impostare un middleware per verificare se un utente \u00e8 loggato o meno.<\/p>\n<p>In Nuxt.js, i middleware funzionano in modo simile ai middleware di qualsiasi <a href=\"https:\/\/kinsta.com\/it\/blog\/backend-vs-frontend\/\">framework di programmazione backend<\/a> come <a href=\"https:\/\/kinsta.com\/it\/blog\/cos-e-express-js\/\">ExpressJS<\/a>, <a href=\"https:\/\/kinsta.com\/it\/blog\/laravel-9\/\">Laravel<\/a>, ecc. Esistono tre diversi tipi di middleware: middleware nominati, anonimi e router.<\/p>\n<h4>6. Pages<\/h4>\n<p>La directory <code>pages<\/code> \u00e8 la base del sistema di routing di Nuxt.js in quanto legge tutti i file <code>.vue<\/code> all&#8217;interno di questa directory e crea automaticamente la configurazione del router.<\/p>\n<p>La cartella <code>pages<\/code> contiene le viste e le rotte dell&#8217;applicazione e ogni componente della pagina \u00e8 anche un componente standard di Vue.<\/p>\n<p>Tuttavia, Nuxt.js lo tratta come un percorso aggiungendo attributi e funzioni speciali per rendere lo sviluppo dell&#8217;applicazione universale il pi\u00f9 semplice possibile.<\/p>\n<h4>7. Plugins<\/h4>\n<p>La cartella <code>plugins<\/code> contiene i codici JavaScript che si vogliono eseguire prima di istanziare l&#8217;applicazione Vue.js principale. Questo \u00e8 il luogo in cui aggiungere i plugin di Vue e iniettare funzioni o costanti.<\/p>\n<p>In Nuxt.js, invece di utilizzare la funzione <code>Vue.use()<\/code>, \u00e8 necessario semplicemente creare un nuovo file nella cartella plugins e iniettare il plugin Vue nell&#8217;istanza Vue utilizzando il file nuxt.config.js.<\/p>\n<h4>8. Static<\/h4>\n<p>La cartella static contiene tutti i file statici del tuo progetto che probabilmente non cambieranno o che dovranno essere resi senza alcuna compilazione.<\/p>\n<p>Tutti i file inclusi nella cartella static saranno automaticamente serviti da Nuxt.js e accessibili attraverso l&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-un-url\/\">URL<\/a> principale del progetto.<\/p>\n<p>Questa directory \u00e8 ottima per file come <a href=\"https:\/\/kinsta.com\/it\/blog\/favicon-wordpress\/\">favicon<\/a>, <a href=\"https:\/\/kinsta.com\/it\/blog\/robots-txt-wordpress\/\">robots.txt<\/a>, ecc.<\/p>\n<h4>9. Store<\/h4>\n<p>La directory store contiene tutti i file dell store Vuex ed \u00e8 suddivisa in moduli come da impostazione predefinita.<\/p>\n<p>Lo store Vuex viene fornito di serie ma \u00e8 disattivato come impostazione predefinita. Sar\u00e0 necessario attivare lo store creando un file <code>index.js<\/code> all&#8217;interno della cartella store.<\/p>\n<p>Lo store Vuex \u00e8 necessario per la creazione e la <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-azienda\/\">gestione di un progetto aziendale<\/a>. Ecco perch\u00e9 Nuxt.js viene fornito con lo store Vuex ed \u00e8 configurato per lo sviluppo di applicazioni di livello enterprise.<\/p>\n<h3>Pagine e Sistema di Routing di Nuxt.js<\/h3>\n<p>Nuxt.js rende il sistema di routing semplice come la creazione di directory e file nella directory <code>pages<\/code>. Genera automaticamente un file router in base alla struttura dei file e delle cartelle della directory.<\/p>\n<p>Ad esempio, se si ha un file <code>about.vue<\/code> nella directory pages, il sistema convertir\u00e0 automaticamente il percorso e si potr\u00e0 visitare il percorso nel proprio browser per vedere il contenuto della pagina &#8220;Informazioni&#8221;.<\/p>\n<p>Questo sistema di routing permette anche di definire tre diversi percorsi creando solo file e cartelle. Analizziamo questi tipi di percorso in modo pi\u00f9 dettagliato.<\/p>\n<h4>1. Routing di Base<\/h4>\n<p>I routing di base sono quelli che non richiedono alcuna configurazione aggiuntiva per funzionare. \u00c8 il tipo di percorso pi\u00f9 semplice e pu\u00f2 essere semplice come <code>\/about<\/code>, <code>\/contact<\/code>, ecc.<\/p>\n<p>Per creare un sistema di routing di base, \u00e8 possibile strutturare la propria directory di pagine come segue:<\/p>\n<pre><code class=\"language-json\">pages\/\n--| services.vue\n--| contact.vue\n--| index.vue<\/code><\/pre>\n<p>Nuxt.js generer\u00e0 automaticamente un file router utilizzando i file aggiunti nella cartella pages:<\/p>\n<pre><code class=\"language-js\">router: {\n  routes: [\n    {\n      name: 'index',\n      path: '\/',\n      component: 'pages\/index.vue'\n    },\n    {\n      name: \u2018services\u2019,\n      path: '\/services\u2019,\n      component: 'pages\/services\u2019\n    },\n    {\n      name: 'contact',\n      path: '\/contact',\n      component: 'pages\/contact'\n    },\n  ]\n}<\/code><\/pre>\n<p>Ora tutti i nostri file sono strutturati in modo ordinato e instradati automaticamente.<\/p>\n<h4>2. Routing Annidati<\/h4>\n<p>I routing annidati sono percorsi creati all&#8217;interno di un routing principale. I percorsi annidati sono utilizzati per creare pi\u00f9 livelli di instradamento profondo.<\/p>\n<p>Per creare routing annidati, create una cartella principale e posizionate tutti i file di percorso all&#8217;interno di quella cartella.<\/p>\n<p>Proviamo a creare un percorso annidato:<\/p>\n<pre><code class=\"language-json\">pages\/\n --| dashboard\/\n -----| user.vue\n -----| settings.vue\n --| dashboard.vue\n --| services.vue\n --| contact.vue\n --| index.vue<\/code><\/pre>\n<p>Nella struttura di cartelle precedente, abbiamo creato un nuovo file e una nuova cartella con lo stesso nome di <code>dashboard<\/code> e poi abbiamo aggiunto i file <code>user.vue<\/code> e <code>settings.vue<\/code> come sottocartelle della cartella <code>dashboard<\/code>.<\/p>\n<p>Questa semplice struttura di cartelle generer\u00e0 un router con percorsi simili a quello qui sotto:<\/p>\n<pre><code class=\"language-js\">router: {\n  routes: [\n    {\n      name: 'index',\n      path: '\/',\n      component: 'pages\/index.vue'\n    },\n    {\n      name: 'services',\n      path: '\/services',\n      component: 'pages\/services'\n    },\n    {\n      name: 'contact',\n      path: '\/contact',\n      component: 'pages\/contact'\n    },\n    {\n      name: 'dashboard',\n      path: '\/dashboard',\n      component: 'pages\/dashboard.vue',\n      children: [\n        {\n          name: 'dashboard-user',\n          path: '\/dashboard\/user',\n          component: 'pages\/dashboard\/user.vue'\n        },\n        {\n          name: 'dashboard-settings',\n          path: '\/dashboard\/settings',\n          component: 'pages\/dashboard\/settings.vue'\n        }\n      ]\n    }\n  ]\n}<\/code><\/pre>\n<p>I percorsi annidati sono un po&#8217; macchinosi da creare in Vue.js, soprattutto quando \u00e8 necessario crearne molti, come si evince nell&#8217;esempio di codice qui sopra, ma Nuxt.js ha reso il tutto pi\u00f9 semplice creando solo file Vue in una cartella annidata.<\/p>\n<h4>3. Routing Dinamico<\/h4>\n<p>I routing dinamici vengono creati con percorsi sconosciuti perch\u00e9 dipendono da una chiamata API o perch\u00e9 si vuole evitare di creare la pagina pi\u00f9 volte. Si tratta di percorsi definiti a partire da una variabile che pu\u00f2 essere un nome, un numero o un ID recuperato dai dati del client nell&#8217;applicazione.<\/p>\n<p>Questo \u00e8 utile, ad esempio, quando si costruisce un&#8217;applicazione di notizie, dove non si conosce l&#8217;ID o lo slug del post che l&#8217;utente dovr\u00e0 cliccare per leggere. Ma con il routing dinamico, \u00e8 possibile recuperare l&#8217;ID\/slug del post e rendere il post corretto con l&#8217;ID\/slug.<\/p>\n<p>Per creare un percorso dinamico, si dovr\u00e0 aggiungere un trattino basso al nome del file o della cartella .vue. \u00c8 possibile dare al file o alla cartella un nome a piacere, ma per renderlo dinamico \u00e8 necessario aggiungere un trattino basso.<\/p>\n<p>Ad esempio, se si definisce un file <code>_slug.vue<\/code> nella directory pages, si pu\u00f2 accedere al valore utilizzando l&#8217;oggetto <code>params.slug<\/code>. Vi mostreremo con un esempio come creare un percorso dinamico:<\/p>\n<pre><code class=\"language-json\">pages\/\n--|user\/\n-----| index.vue\n-----| about.vue\n-----| _routeName\n-------| index.vue\n-------| info.vue\n--| dashboard\/\n-----| user.vue\n-----| settings.vue\n--| dashboard.vue\n--| services.vue\n--| _id.vue\n--| contact.vue\n--| index.vue<\/code><\/pre>\n<p>L&#8217;aggiunta del trattino basso a <code>_id<\/code> e <code>_routeName<\/code> creer\u00e0 un percorso dinamico per la pagina con il parametro ID, oltre a un percorso genitore con un parametro stringa e i percorsi &#8220;figlio&#8221; mostrati qui sopra. Questa struttura di pagina generer\u00e0 un router con i seguenti percorsi all&#8217;interno del file:<\/p>\n<pre><code class=\"language-js\">   {\n      name: 'work',\n      path: '\/work',\n      component: 'pages\/work'\n    },\n    {\n      name: 'contact',\n      path: '\/contact',\n      component: 'pages\/contact'\n    },\n    {\n      name: 'id',\n      path: '\/:id',\n      component: 'pages\/_id.vue'\n    }\n    {\n      name: 'user',\n      path: '\/user',\n      component: 'pages\/user\/index.vue'\n    },\n    {\n      name: 'user-about',\n      path: '\/user\/about',\n      component: 'pages\/user\/about.vue'\n    },\n    {\n      name: 'user-routeName',\n      path: '\/user\/:routeName',\n      component: 'pages\/user\/_routeName\/index.vue'\n    },\n    {\n      name: 'user-routeName-info',\n      path: '\/user\/:routeName\/info',\n      component: 'pages\/user\/route.vue'\n    },\n    {\n      name: 'dashboard',\n      path: '\/dashboard',\n      component: 'pages\/dashboard.vue',\n      children: [\n        {\n          name: 'dashboard-user',\n          path: '\/dashboard\/user',\n          component: 'pages\/dashboard\/user.vue'\n        },\n        {\n          name: 'dashboard-settings',\n          path: '\/dashboard\/settings',\n          component: 'pages\/dashboard\/settings.vue'\n        }\n      ]\n    }\n  ]\n}<\/code><\/pre>\n<p>Ora che abbiamo esplorato i diversi sistemi di routing integrati nel framework Nuxt.js, impariamo a creare e gestire i Vuex store.<\/p>\n<h3>Usare i Vuex Store in Nuxt.js<\/h3>\n<p>Nuxt.js risolve un importante problema di struttura di Vue semplificando la gestione di Vuex durante la creazione di un progetto aziendale. La cartella store viene creata automaticamente quando si crea una nuova applicazione.<\/p>\n<p>\u00c8 possibile attivare lo store Vuex creando un file <code>index.js<\/code> all&#8217;interno della cartella store. Grazie a questo semplice miglioramento, lo store di Vuex \u00e8 ora strutturato e modulato secondo le migliori pratiche descritte nella documentazione ufficiale di Vuex, il che incoraggia lo sviluppo di applicazioni su larga scala.<\/p>\n<p>Il vostro file <code>index.js<\/code> dovrebbe contenere la seguente struttura per corrispondere a come Nuxt.js struttura il vostro store Vuex. Diamo un&#8217;occhiata:<\/p>\n<pre><code class=\"language-js\">export const state = () =&gt; ({\n  \n})\nexport const getters = {\n\n}\nexport const mutations = {\n  \n}\nexport const actions = {\n  \n}<\/code><\/pre>\n<p>Nuxt.js vi permette di utilizzare l&#8217;<a href=\"https:\/\/www.planetgeek.ch\/2012\/01\/25\/3077\/\" target=\"_blank\" rel=\"noopener noreferrer\">approccio split-by-feature<\/a> nelle vostre applicazioni su larga scala. Con questo approccio, \u00e8 possibile creare diversi file dello store Vuex in base alle funzionalit\u00e0 delle proprie applicazioni. Ad esempio, se la vostra applicazione ha funzioni di utenti, post e commenti, potete creare file diversi come <code>users.js<\/code>, <code>posts.js<\/code> e <code>comments.js<\/code> nella vostra directory store.<\/p>\n<p>Questo metodo semplifica l&#8217;accesso a un determinato file di archivio in base alle funzionalit\u00e0 dell&#8217;applicazione, trasformando il noioso processo di individuazione e aggiornamento dei dati in una passeggiata senza sforzo.<\/p>\n\n<h2>Riepilogo<\/h2>\n<p>Nuxt.js \u00e8 un framework Vue molto popolare per frontend SSR e generati staticamente. Non risolve solo il problema della configurazione e dell&#8217;impostazione dell&#8217;SSR nelle applicazioni Vue, ma favorisce anche lo sviluppo di applicazioni aziendali aderendo alle migliori pratiche di strutturazione e architettura delle applicazioni Vue su larga scala.<\/p>\n<p>Questa guida ha esplorato tutto ci\u00f2 che dovete sapere su Nuxt.js, compreso quello che potete costruirci. Abbiamo parlato di pagine statiche, applicazioni a pagina singola (SPA) e applicazioni universali, e di come svilupparle con Nuxt.js.<\/p>\n<p>Avete visto con i vostri occhi quanto \u00e8 facile e vantaggioso scegliere Nuxt.js per il vostro prossimo grande progetto aziendale. Fateci sapere nella sezione commenti cosa costruirete con questi nuovi superpoteri!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nuxt.js \u00e8 il framework Vue pi\u00f9 intuitivo ad oggi disponibile sul mercato. Combina la potenza di Vue.js con funzioni di rendering lato server che lo rendono &#8230;<\/p>\n","protected":false},"author":193,"featured_media":56102,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[25637,25648,26161,26162,25919],"topic":[25918,26159,26160],"class_list":["post-56101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-framework-javascript","tag-javascript","tag-nuxt","tag-nuxt-js","tag-sviluppo-frontend","topic-framework-javascript","topic-smtp","topic-vue-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cos&#039;\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo<\/title>\n<meta name=\"description\" content=\"Sei nuovo di Nuxt.js? Ecco tutto ci\u00f2 che c&#039;\u00e8 da sapere per iniziare a utilizzare questo popolare framework JavaScript basato su Vue.js.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cos&#039;\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo\" \/>\n<meta property=\"og:description\" content=\"Sei nuovo di Nuxt.js? Ecco tutto ci\u00f2 che c&#039;\u00e8 da sapere per iniziare a utilizzare questo popolare framework JavaScript basato su Vue.js.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-16T11:38:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T19:47:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Solomon Eseme\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Sei nuovo di Nuxt.js? Ecco tutto ci\u00f2 che c&#039;\u00e8 da sapere per iniziare a utilizzare questo popolare framework JavaScript basato su Vue.js.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kaperskyguru\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Solomon Eseme\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/\"},\"author\":{\"name\":\"Solomon Eseme\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\"},\"headline\":\"Cos&#8217;\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo\",\"datePublished\":\"2022-06-16T11:38:26+00:00\",\"dateModified\":\"2025-10-01T19:47:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/\"},\"wordCount\":3039,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg\",\"keywords\":[\"Framework JavaScript\",\"JavaScript\",\"nuxt\",\"Nuxt.js\",\"sviluppo frontend\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/\",\"name\":\"Cos'\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg\",\"datePublished\":\"2022-06-16T11:38:26+00:00\",\"dateModified\":\"2025-10-01T19:47:02+00:00\",\"description\":\"Sei nuovo di Nuxt.js? Ecco tutto ci\u00f2 che c'\u00e8 da sapere per iniziare a utilizzare questo popolare framework JavaScript basato su Vue.js.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Framework JavaScript\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/framework-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Cos&#8217;\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\",\"name\":\"Solomon Eseme\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g\",\"caption\":\"Solomon Eseme\"},\"description\":\"I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me\",\"sameAs\":[\"https:\/\/masteringbackend.com\",\"https:\/\/linkedin.com\/in\/solomoneseme\",\"https:\/\/x.com\/kaperskyguru\"],\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/solomoneseme\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cos'\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo","description":"Sei nuovo di Nuxt.js? Ecco tutto ci\u00f2 che c'\u00e8 da sapere per iniziare a utilizzare questo popolare framework JavaScript basato su Vue.js.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/","og_locale":"it_IT","og_type":"article","og_title":"Cos'\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo","og_description":"Sei nuovo di Nuxt.js? Ecco tutto ci\u00f2 che c'\u00e8 da sapere per iniziare a utilizzare questo popolare framework JavaScript basato su Vue.js.","og_url":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2022-06-16T11:38:26+00:00","article_modified_time":"2025-10-01T19:47:02+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg","type":"image\/jpeg"}],"author":"Solomon Eseme","twitter_card":"summary_large_image","twitter_description":"Sei nuovo di Nuxt.js? Ecco tutto ci\u00f2 che c'\u00e8 da sapere per iniziare a utilizzare questo popolare framework JavaScript basato su Vue.js.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg","twitter_creator":"@kaperskyguru","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Solomon Eseme","Tempo di lettura stimato":"15 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/"},"author":{"name":"Solomon Eseme","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2"},"headline":"Cos&#8217;\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo","datePublished":"2022-06-16T11:38:26+00:00","dateModified":"2025-10-01T19:47:02+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/"},"wordCount":3039,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg","keywords":["Framework JavaScript","JavaScript","nuxt","Nuxt.js","sviluppo frontend"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/","url":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/","name":"Cos'\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg","datePublished":"2022-06-16T11:38:26+00:00","dateModified":"2025-10-01T19:47:02+00:00","description":"Sei nuovo di Nuxt.js? Ecco tutto ci\u00f2 che c'\u00e8 da sapere per iniziare a utilizzare questo popolare framework JavaScript basato su Vue.js.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/nuxt-js\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/06\/nuxt-js.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/nuxt-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Framework JavaScript","item":"https:\/\/kinsta.com\/it\/argomenti\/framework-javascript\/"},{"@type":"ListItem","position":3,"name":"Cos&#8217;\u00e8 Nuxt.js? Scopri il Framework Vue Pi\u00f9 Intuitivo"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2","name":"Solomon Eseme","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g","caption":"Solomon Eseme"},"description":"I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me","sameAs":["https:\/\/masteringbackend.com","https:\/\/linkedin.com\/in\/solomoneseme","https:\/\/x.com\/kaperskyguru"],"url":"https:\/\/kinsta.com\/it\/blog\/author\/solomoneseme\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/56101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=56101"}],"version-history":[{"count":12,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/56101\/revisions"}],"predecessor-version":[{"id":64155,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/56101\/revisions\/64155"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/56101\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/56101\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/56101\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/56101\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/56101\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/56101\/translations\/fr"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/56101\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/56102"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=56101"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=56101"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=56101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}