Как подключить шрифт в React

2 года назад·3 мин. на чтение

Рассмотрим три быстрых способах подключения шрифтов в React приложение.

font В HTML используется для указания начертания, размера шрифта, типографики текста. Вы можете добавить шрифты в свое React приложение разными способами.

Способ 1. С использованием link

Мы можем ссылаться на любые шрифты из Интернета, с помощью тега <link> внутри HTML-файла. Рассмотрим пример применения Google Fonts шрифта с помощью тега <link>.
  1. Переходим в fonts.google.com
  2. Кликаем на шрифт
Реакт добавить шрифт
  1. Кликаем на “Select Regular 400” (или на любые другие выбранные виды, можно несколько)
Реакт добавить шрифт
  1. Нажимаем на иконку “View selected families” сверху справа.
Реакт добавить шрифт
  1. В появившемся боковом меню переходим в секцию “Use on the web” и копируем код, расположенный под <link>
Реакт добавить шрифт
  1. Переходим в index.html. Если ваше приложение создано с помощью create-react-app, то index.html находится в папке public. Вставляем код, скопированный в п.5 внутрь <head>.
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
  1. На сайте Google Fonts в том же боковом меню находим секцию “CSS rules to specify families” и копируем код.
Реакт добавить шрифт
  1. Переходим в CSS файл и добавляем следующий стиль, вставляем скопированный код:
.font-roboto {
  font-family: 'Roboto', sans-serif; /* скопированный код */
}
  1. Применяем этот стиль в любом React компоненте
// App.jsx

import './App.css';

function App() {
  return (
    <div className="font-roboto">
      <p>Hello</p>
    </div>
  );
}

export default App;

Способ 2. С использованием Web Font Loader

Web Font Loader помогает загружать шрифты из Google Fonts, Typekit, Fonts.com и Fontdeck, а также самостоятельно размещенные веб-шрифты. Он разработан совместно компаниями Google и Typekit. Давайте посмотрим, как загрузить несколько шрифтов из Google Fonts и использовать их в компоненте React.
  1. Установим webfontloader
yarn add webfontloader
или
npm i webfontloader
  1. Импортируем webloader в компонент
import WebFont from 'webfontloader';
  1. Загружаем нужные шрифты, используя имя шрифта. Лучше использовать хук useEffect и позволить ему выполняться один раз при загрузке компонента. Поскольку шрифты должны быть загружены только один раз в приложении, вы можете загрузить их в файле index.js.
useEffect(() => {
  WebFont.load({
    google: {
      families: ['Droid Sans', 'Chilanka']
    }
  });
 }, []);
Здесь мы загружаем шрифты 'Droid Sans' и 'Chilanka'.
  1. Теперь вы можете использовать эти шрифты в компоненте React с помощью атрибута className или style. Чтобы использовать атрибут className, создайте CSS-класс в файле .css.
.font-loader {
  font-family: 'Chilanka';
}
Затем, в методе render() компонента добавьте следующее.
<div className="font-loader">
    Hello, World!
</div>
Или, с атрибутом style
<div style={{fontFamily: 'Droid Sans'}}>
   Hello, World!
</div>

Способ 3. С использованием @font-face

Иногда шрифты должны быть загружены локально и упакованы в приложение. @font-face - это правило CSS для определения имени шрифта путем указания на него с помощью URL.
  1. Создадим папку fonts в каталоге src.
  2. Загрузим необходимые шрифты. В этом примере мы загрузим шрифт Lobster. Для этого выберем шрифт в Google Fonts, нажмем “Download family” и распакуем архив.
Реакт добавить шрифт
  1. Скопируем содержимое в папку src\fonts.
Реакт добавить шрифт
  1. Затем импортируем шрифты в файл index.js.
import './fonts/Lobster/Lobster-Regular.ttf';
  1. В файл index.css добавим
@font-face {
font-family: "LobsterRegular";
src: local("LobsterRegular"),
 url("./fonts/Lobster/Lobster-Regular.ttf") format("truetype");
font-weight: normal;
}
  1. Теперь добавим имя класса в файл App.css, который использует этот шрифт.
.font-lobster {
 font-family: "LobsterRegular";
}
  1. Применяем этот стиль в любом React компоненте
// App.jsx

import './App.css';

function App() {
  return (
    <div className="font-lobster">
      <p>Hello</p>
    </div>
  );
}

export default App;

Как обрабатывать события в React

2 месяца назад·2 мин. на чтение

В этой статье мы научимся обрабатывать различные события, такие как клики и изменения значений, в React компонентах.

React - одна из самых популярных библиотек для разработки пользовательского интерфейса. Одной из важных задач при работе с React является обработка событий. В этой статье мы рассмотрим, как обрабатывать события в компонентах-функциях. React предоставляет простой и эффективный способ обрабатывать события. Для этого нужно использовать атрибуты JSX, которые начинаются с префикса on. Например, чтобы обработать клик на кнопке, мы можем использовать атрибут onClick:
<button onClick={handleClick}>Нажми меня</button>
В этом примере мы передаем функцию handleClick в атрибут onClick. Когда пользователь нажимает на кнопку, вызывается эта функция. Теперь давайте рассмотрим, как определить функцию handleClick:
function handleClick() {
  console.log('Кнопка была нажата');
}
Функция handleClick может выполнять любую задачу, которую вы хотите выполнить при клике на кнопку. В данном случае мы просто выводим сообщение в консоль.
Кроме того, React также предоставляет доступ к объекту события, который содержит информацию о событии. Например, мы можем получить значение введенное в поле ввода при событии onChange:
function handleChange(event) {
  console.log(event.target.value);
}

<input type="text" onChange={handleChange} />
В этом примере мы передаем функцию handleChange в атрибут onChange поля ввода. Когда пользователь изменяет значение в поле ввода, вызывается эта функция, и мы можем получить значение через event.target.value. Кроме обычных событий, таких как клик или изменение значения, React также предоставляет возможность обрабатывать события клавиатуры, фокуса и другие. Например, чтобы обработать нажатие клавиши, мы можем использовать атрибут onKeyDown:
function handleKeyDown(event) {
  if (event.key === 'Enter') {
    console.log('Нажата клавиша Enter');
  }
}

<input type="text" onKeyDown={handleKeyDown} />
В этом примере мы проверяем, является ли нажатая клавиша клавишей "Enter". Если это так, то выводим сообщение в консоль. Также можно обрабатывать события фокуса, например, когда элемент получает или теряет фокус:
function handleFocus() {
  console.log('Элемент получил фокус');
}

function handleBlur() {
  console.log('Элемент потерял фокус');
}

<input type="text" onFocus={handleFocus} onBlur={handleBlur} />
В этом примере мы передаем функции handleFocus и handleBlur в атрибуты onFocus и onBlur соответственно. Когда элемент получает или теряет фокус, вызываются соответствующие функции. Обработка событий в компонентах-функциях в React довольно проста и интуитивно понятна. Мы использовали атрибуты JSX, начинающиеся с префикса on, чтобы указать, какие функции должны быть вызваны при возникновении событий. Также мы рассмотрели примеры обработки различных типов событий, таких как клик, изменение значения, нажатие клавиши и фокус. Надеюсь, эта статья была полезной для новичков, которые только начинают изучать React. Удачи в вашей разработке!