📌  相关文章
📜  如何在 ReactJS 中创建字典应用程序?

📅  最后修改于: 2022-05-13 01:56:50.610000             🧑  作者: Mango

如何在 ReactJS 中创建字典应用程序?

在本文中,我们将在 API 的帮助下构建一个非常简单的 Dictionary 应用程序。对于初学者来说,这是一个完美的项目,因为它将教你如何从 API 获取信息并显示它以及 React 实际工作原理的一些基础知识。此外,我们将学习如何使用 React 图标。让我们开始。

方法:我们的应用程序包含两个部分,一个用于获取用户输入,另一个用于显示数据。每当用户搜索一个词时,我们都会将该输入存储在一个状态中,并根据搜索到的关键字参数触发 API 调用。之后,当进行 API 调用时,我们只需将该 API 响应存储在另一个状态变量中,然后我们最终会相应地显示信息。

先决条件:该项目的先决条件是:

  • 反应
  • 功能组件
  • 反应钩子
  • 反应 Axios 和 API
  • javascript ES6

创建一个 React 应用程序并安装一些 npm 包:

第 1 步:通过在终端中键入以下命令来创建一个反应应用程序:

npx create-react-app dictionary-app

第 2 步:现在,通过运行以下命令转到项目文件夹,即 dictionary-app:

cd dictionary-app

第 3 步:让我们安装此项目所需的一些 npm 包:

npm install axios
npm install react-icons --save

项目结构:应该是这样的:

示例:它是我们应用程序中唯一包含所有逻辑的组件。我们将使用名为“免费字典 API”的免费开源 API(无需身份验证)来获取所有必需的数据。我们的应用程序包含两个部分,即一个用于获取用户输入的部分和一个搜索按钮,另一个用于显示数据。除了显示我们收到的信息外,我们还将有一个扬声器按钮,让用户可以收听语音。

现在在 App.js 文件中写下以下代码。在这里,App 是我们编写代码的默认组件。这里,文件名是 App.js 和 App.css

Javascript
import { React, useState } from "react";
import Axios from "axios";
import "./App.css";
import { FaSearch } from "react-icons/fa";
import { FcSpeaker } from "react-icons/fc";
 
function App() {
  // Setting up the initial states using react hook 'useState'
 
  const [data, setData] = useState("");
  const [searchWord, setSearchWord] = useState("");
 
  // Function to fetch information on button
  // click, and set the data accordingly
  function getMeaning() {
    Axios.get(
      `https://api.dictionaryapi.dev/api/v2/entries/en_US/${searchWord}`
    ).then((response) => {
      setData(response.data[0]);
    });
  }
 
  // Function to play and listen the
  // phonetics of the searched word
  function playAudio() {
    let audio = new Audio(data.phonetics[0].audio);
    audio.play();
  }
 
  return (
    
      

Free Dictionary

      
          // Taking user input          {             setSearchWord(e.target.value);           }}         />                
      {data && (         
          

            {data.word}{" "}                        

          

Parts of speech:

             

{data.meanings[0].partOfSpeech}

              

Definition:

             

{data.meanings[0].definitions[0].definition}

              

Example:

             

{data.meanings[0].definitions[0].example}

          
      )}     
  ); }   export default App;


HTML
@import url(
'https://fonts.googleapis.com/css2?family=Pacifico&display=swap');
@import url(
'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,200;0,400;0,600;0,800;1,300&display=swap');
 
.App {
  height: 100vh;
  width: 100vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f6f6f6;
  background-image: linear-gradient(315deg, #f6f6f6 0%, #e9e9e9 74%);
  font-family:'Poppins', sans-serif;
}
 
h1 {
  text-align: center;
  font-size: 3em;
  font-family: 'Pacifico', cursive;
  color: #4DB33D;
  padding: 1.5em;
}
 
h2{
  font-size: 30px;
  text-decoration: underline;
  padding-bottom: 20px;
}
 
h4{
  color: #4DB33D;
}
 
input{
  width: 400px;
  height: 38px;
  font-size: 20px;
  padding-left: 10px;
}
 
.searchBox > button{
  background-color: #4DB33D;
  height: 38px;
  width: 60px;
  border: none;
  color: white;
  box-shadow: 0px 3px 2px #439e34;
  cursor: pointer;
  padding: 0;
}
 
.showResults{
  width: 500px;
  padding: 20px;
}
 
.showResults > h2 > button{
  background: none;
  border: none;
  cursor: pointer;
}


HTML

@import url(
'https://fonts.googleapis.com/css2?family=Pacifico&display=swap');
@import url(
'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,200;0,400;0,600;0,800;1,300&display=swap');
 
.App {
  height: 100vh;
  width: 100vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f6f6f6;
  background-image: linear-gradient(315deg, #f6f6f6 0%, #e9e9e9 74%);
  font-family:'Poppins', sans-serif;
}
 
h1 {
  text-align: center;
  font-size: 3em;
  font-family: 'Pacifico', cursive;
  color: #4DB33D;
  padding: 1.5em;
}
 
h2{
  font-size: 30px;
  text-decoration: underline;
  padding-bottom: 20px;
}
 
h4{
  color: #4DB33D;
}
 
input{
  width: 400px;
  height: 38px;
  font-size: 20px;
  padding-left: 10px;
}
 
.searchBox > button{
  background-color: #4DB33D;
  height: 38px;
  width: 60px;
  border: none;
  color: white;
  box-shadow: 0px 3px 2px #439e34;
  cursor: pointer;
  padding: 0;
}
 
.showResults{
  width: 500px;
  padding: 20px;
}
 
.showResults > h2 > button{
  background: none;
  border: none;
  cursor: pointer;
}


运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序:

npm start

输出:现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出: