JavaScript è uno dei linguaggi di programmazione più popolari tra gli sviluppatori web. Durante l'apprendimento di JavaScript, tutti iniziano con le basi e creano applicazioni semplici utilizzando la manipolazione DOM.
In questo articolo imparerai come creare un dizionario usando JavaScript e la manipolazione del DOM. Questo articolo si aspetta che tu conosca le basi di JavaScript prima di leggerlo.
Dai un'occhiata all'API
API è l' acronimo di Application Programming Interface . Le API semplificano lo sviluppo e l'innovazione del software consentendo alle applicazioni di scambiare dati e funzionalità in modo semplice e sicuro.
Questo progetto utilizza l' API Dictionaryapi.dev . Questa è un'API gratuita che fornisce più definizioni, fonetica e altri termini grammaticali relativi alle parole che cerchi.
Il collegamento all'API è il seguente:
https://api.dictionaryapi.dev/api/v2/entries/en/word
Layout frontend del progetto
Il layout frontend di questo progetto è costruito utilizzando HTML e TailwindCSS . Puoi importare TailwindCSS nel tuo file HTML utilizzando il CDN indicato di seguito.
La pagina HTML ha un input e un pulsante dove l'utente può inserire la parola da cercare. Ci sono altri tre div per visualizzare la parte del discorso, le definizioni multiple e l'audio che ti aiutano a pronunciare correttamente la parola. Per impostazione predefinita, questi tre div hanno una proprietà di visualizzazione nessuno. Quando i dati vengono recuperati dall'API, la proprietà di visualizzazione di questi div verrà impostata su block.
Dictionary
<>
type="text"
placeholder="Enter the word"
id="word"
class="
py-2
w-1/4
focus:outline-none
border-2 border-green-600
rounded
px-3
"
/>
<>
id="search"
class="bg-green-600 text-white text-xl px-4 py-2 rounded">
Search
Questo frontend sarà simile a questo
Aggiunta di funzionalità utilizzando JavaScript
Prima di recuperare i dati tramite l'API e visualizzarli, è necessario ottenere l'accesso agli elementi HTML utilizzando i loro ID. Puoi accedere agli ID usando il metodo JavaScript getElementById() .
const word = document.getElementById("word"); const search = document.getElementById("search"); const display = document.getElementById("display"); const partOfSpeechDiv = document.getElementById("partOfSpeechDiv"); const partOfSpeechHeader = document.getElementById("partOfSpeechHeader"); const partOfSpeechPara = document.getElementById("partOfSpeechPara"); const meaningDiv = document.getElementById("meaningDiv"); const audioDiv = document.getElementById("audio"); const meaningHeader = document.getElementById("meaningHeader");
Aggiunta dell'ascoltatore di eventi
L'elemento di input nella pagina HTML ha un ID chiamato word . Dopo aver ottenuto l'accesso all'elemento di input, puoi recuperare il valore del testo nell'elemento di input utilizzando l' attributo .value .
Il pulsante di ricerca ha l'id chiamato search . Devi aggiungere un listener di eventi clic per attivare l'evento ed effettuare una chiamata di funzione per recuperare i dati tramite l'API.
Asincrono e aspetta
Dal 2017, JavaScript ha introdotto il concetto di asincrono e attendono di eseguire richieste asincrone. Utilizzi async-await invece di .then e .catch per risolvere e rifiutare le promesse.
Correlati: programmazione sincrona e asincrona: in che modo sono diverse?
search.addEventListener("click", async () => { try { let url = `https://api.dictionaryapi.dev/api/v2/entries/en/${word.value.toLowerCase()}`; const res = await fetch(url); const data = await res.json(); displayData(data); } catch (error) { console.log(error); } });
Per lavorare con le promesse usando async-await , devi aggiungere la parola chiave async prima della definizione della funzione. E ogni volta che fai una richiesta o chiami una funzione, devi aggiungere la parola chiave wait prima di essa.
Il await parola sospende l'ulteriore esecuzione della funzione finché la richiesta precedente non viene completata.
È necessario eseguire l'intera azione di attesa asincrona della promessa nel blocco try-catch . Se la promessa non è in grado di recuperare i dati, visualizzerà l'errore nel blocco catch . Prima di passare la parola all'API, dovrebbe essere in formato minuscolo per risultati accurati. Puoi usare il metodo stringa .lowercase() per convertire la parola.
Il metodo fetch deve recuperare i dati dall'API. Devi aggiungere la parola chiave wait in modo che la funzione si metta in pausa in quel momento mentre il metodo fetch sta recuperando i dati.
Dopo aver recuperato i dati, è necessario convertirli in formato JSON utilizzando il metodo .json() sulla risposta.
Visualizzazione dei dati sulla pagina Web
Dopo aver recuperato i dati e averli convertiti in formato JSON , è necessario visualizzarli nella pagina web. Devi chiamare il metodo displayData() e passargli i dati.
La struttura della risposta API è la seguente:
L'API restituisce la parte del discorso, le definizioni multiple e la fonetica delle parole nella risposta.
Puoi ottenere tutte le definizioni della parola data usando:
const meanings = data[0].meanings[0].definitions;
Il significato della variabile è un array che contiene tutte le definizioni della parola data.
Per ottenere la parte del discorso della parola data:
const partOfSpeech = data[0].meanings[0].partOfSpeech;
Puoi aggiungere la parte del discorso della parola usando l' attributo .innerHTML . Nel codice HTML, la parte del discorso div aveva la proprietà display none per impostazione predefinita ma, nel codice JavaScript, dopo aver recuperato i dati, è necessario impostare la proprietà display su block .
Visualizzazione delle definizioni
Devi creare una variabile denominata meanList . Dopo aver aggiunto tutte le definizioni a questa variabile, è necessario assegnarle l' attributo .innerHTML per visualizzarla nella pagina web.
Correlati: il cheat sheet di HTML Essentials: tag, attributi e altro
Scorri l'array dei significati e tieni traccia di una singola definizione e dell'indice in cui è presente. Aggiungi la definizione e l'indice singoli alla variabile significatoList all'interno dell'elemento paragrafo dell'HTML.
Una volta che sei fuori dal ciclo, devi passarlo all'attributo .innerHTML di significatoDiv .
Visualizza l'elemento audio sulla pagina Web
La risposta ricevuta dall'API contiene una fonetica che aiuta gli utenti a comprendere la pronuncia della parola. Per aggiungere questo suono alla pagina web, devi creare un elemento audio e passare la fonetica nell'attributo src di quell'elemento. Infine, devi inserire l'elemento audio in audioDiv utilizzando l' attributo .innerHTML .
const displayData = (data) => { console.log(data); const partOfSpeech = data[0].meanings[0].partOfSpeech; const meanings = data[0].meanings[0].definitions; partOfSpeechDiv.className = "bg-gray-100 px-2 py-3 flex flex-col w-1/4 justify-center items-center border-2 border-green-500 rounded block"; partOfSpeechHeader.innerHTML = "Part of Speech"; partOfSpeechPara.innerHTML = partOfSpeech; let meaningList = ``; meanings.forEach((meaning, ind) => { meaningList += `
${ind + 1}) ${
meaning.definition
}
`;
});
significatoDiv.className =
"text-center w-1/4 bg-gray-100 my-6 border-2 border-green-500 round block";
significatoHeader.innerText = "Significato";
significatoDiv.innerHTML = significatoLista;
let aud = `
`;
audioDiv.className = "blocco";
audioDiv.innerHTML = aud;
};
Aggiungi un altro progetto alla tua lista
Ora che hai imparato a creare un'app dizionario utilizzando JavaScript, è tempo per te di creare alcuni progetti entusiasmanti da solo. I progetti di costruzione non solo rispolverano le tue basi, ma aggiungono anche progetti al tuo curriculum.
Cerchi più pratica sui concetti di manipolazione di JavaScript e DOM? Ecco un altro progetto che puoi costruire per rafforzare le tue abilità.