Как реализовать эффект пишущей машинки в React

Мой путь программирования в Flatiron School продолжается, и еще один этап подошел к концу.

На этапе 3 я узнал о Ruby, в частности об ActiveRecord, и о том, как использовать Sinatra для создания серверной части приложений. Хотя мне очень понравился Ruby и то, насколько он больше ориентирован на логическую сторону программирования, чем на интерфейс, мне также было предложено пересмотреть и конкретизировать свои навыки React при выполнении моего проекта в конце фазы 3.

В моем проекте одной из моих задач было создание страницы «О нас». Это просто основная страница с парой предложений, описывающих суть нашего проекта, и некоторой дополнительной информацией. Поскольку функциональность страницы «О программе» была довольно простой, я хотел добавить некую форму эффекта движения, чтобы, надеюсь, лучше привлечь внимание зрителя.

После нескольких дней исследований и планирования я наткнулся на замечательный подключаемый модуль JS под названием typewriter-effect(https://www.npmjs.com/package/typewriter-effect ). Это делает так, что когда мы импортируем его в наш компонент React, мы можем реализовать анимацию набора текста для нашего контента на странице.

npm i typewriter-effect

Прежде всего, я установил эффект пишущей машинки с помощью npm.

import Typewriter from "typewriter-effect";

Затем, поскольку я хотел использовать эффект пишущей машинки на странице About, я пошел дальше и импортировал пакет из своего компонента About.js. Запустить эту строчку кода — уже полдела!

const About = () => {
  return (

    <div className="aboutHeader">
      <RestaurantMenuIcon fontSize='large' />
      <h1 className='foodiTitle'>Foodi.</h1>
      <h4 className='infoText2'>An application that allows users to search for recipes and their creators, and save them to a list of recipes</h4>
      <div className='infoText2'>Created By:
      <Typewriter
        onInit={(typewriter)=> {
          typewriter
            .typeString("William, Ian and Jason")
            .pauseFor(1000)
            .deleteAll()
            .typeString("Future Software Engineers")
            .pauseFor(1000)
            .deleteAll()
            .typeString("World Leaders")
            .pauseFor(1000)
            .deleteAll()
            .typeString("Blood and Sweat")
            .pauseFor(1000)
            .deleteAll()
            .typeString("William, Ian and Jason")
            .pauseFor(1000)
            .start();
        }}
      />
      </div>
    </div>
  );
}

export default About;

Чтобы использовать этот эффект, я добавил компонент ‹Печатная машинка /›, импортированный из эффекта пишущей машинки, под ‹div›Created By:‹/div›. > чтобы специально установить текст, который следует за этим div, в качестве пишущей машинки. onInit — это реквизит, передаваемый компоненту ‹Typewriter /›. Это функция, которая вызывается при инициализации компонента ‹Typewriter /›. Ему передается функция обратного вызова, которая вызывается с экземпляром компонента ‹Typewriter /›, который затем можно использовать для взаимодействия с компонентом и выполнения таких действий, как ввод строки или удаление текста.

Полный фрагмент кода:

import React from 'react';
import Typewriter from "typewriter-effect";
import "./About.css"
import RestaurantMenuIcon from '@mui/icons-material/RestaurantMenu';

const About = () => {
  return (

    <div className="aboutHeader">
      <RestaurantMenuIcon fontSize='large' />
      <h1 className='foodiTitle'>Foodi.</h1>
      <h4 className='infoText2'>An application that allows users to search for recipes and their creators, and save them to a list of recipes</h4>
      <div className='infoText2'>Created By:
      <Typewriter
        onInit={(typewriter)=> {
          typewriter
            .typeString("William, Ian and Jason")
            .pauseFor(1000)
            .deleteAll()
            .typeString("Future Software Engineers")
            .pauseFor(1000)
            .deleteAll()
            .typeString("World Leaders")
            .pauseFor(1000)
            .deleteAll()
            .typeString("Blood and Sweat")
            .pauseFor(1000)
            .deleteAll()
            .typeString("William, Ian and Jason")
            .pauseFor(1000)
            .start();
        }}
      />
      </div>
    </div>
  );
}

export default About;

В заключение мы рассказали о том, как реализовать эффект пишущей машинки в нашем приложении React, чтобы добавить в наш проект несколько бликов. Спасибо, что читаете мой блог, следите за новостями!