Будем пробовать что-нибудь из этого.
❤️ - 1
🔥 - 2
👍 - 3
🏆 - 4
⚡️ - 5
❤️ - 1
🔥 - 2
👍 - 3
🏆 - 4
⚡️ - 5
👍3❤2🏆2
Media is too big
VIEW IN TELEGRAM
Routing в React: Часть 2
Всех с наступающим❤️
Данный видео-урок также опубликован в Дзен👇.
Всех с наступающим❤️
Данный видео-урок также опубликован в Дзен👇.
❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Друзья! Хочу поздравить всех вас с наступающим новым годом! Желаю счастья, любви, достатка, ну конечно же и деньжат побольше)) В новом году вас ждёт очень годный контент, помимо мессенджера планируются более крупные и масштабные проекты, без вашей поддержки которые мне не реализовать. Всех очень сильно люблю, с праздником родные❤️
❤7👍3👏2🍓2
Media is too big
VIEW IN TELEGRAM
Самые внимательные в конце могли заметить, что после заполнения формы placeholder возвращается обратно. Это неудобно и некрасиво. Даю вам время подумать.
Сегодня выложу решение проблемы🔥
Это одна из недавних тем, которую мы проходили.
Сегодня выложу решение проблемы🔥
🔥6❤2🥰1
Media is too big
VIEW IN TELEGRAM
Подписчик справился с данной проблемой, не использовав React!
❤️ - выкладываю исходник проекта.
Тестовый метод: input:not(:placeholder-shown) позволяет проверять наличие символов в input прямо в CSS.
❤️ - выкладываю исходник проекта.
❤7🔥3👏3
React от А до Я
Подписчик справился с данной проблемой, не использовав React! Тестовый метод: input:not(:placeholder-shown) позволяет проверять наличие символов в input прямо в CSS. ❤️ - выкладываю исходник проекта.
Исходники для формы.rar
15.7 MB
Интересна рубрика, где я буду делать красивые элементы в вёрстке? - ❤️
❤7🔥3👏3
Работаем с формами
Выше я показал простейшую форму авторизации на сайте. Как же получить данные, которые находятся в ней?
👉 useState. Вы не ослышались, это состояния. В первом уроке я рассказывал, что это локальное хранилище с временными данными. Кому непонятна данная тема вот ссылка на пост: https://t.me/reactim/113.
Реализация:
Выше я показал простейшую форму авторизации на сайте. Как же получить данные, которые находятся в ней?
Есть 2 способа решения данной задачи. Сегодня разберём один из них.
👉 useState. Вы не ослышались, это состояния. В первом уроке я рассказывал, что это локальное хранилище с временными данными. Кому непонятна данная тема вот ссылка на пост: https://t.me/reactim/113.
Реализация:
import { useEffect, useState } from 'react'
import styles from './Form.module.css'
export const Form = () => {
const [form, SetForm] = useState({ email: '', password: '' })
const change = (el, value) => {
el.preventDefault()
value === 'email' ? SetForm({ ...form, email: el.target.value }) : SetForm({ ...form, password: el.target.value })
}
useEffect(() => {
console.log(form)
}, [change])
return (
<div className={styles.wrap}>
<span className={styles.title}>Авторизация</span>
<form className={styles.form}>
<div className={styles.email}>
<input placeholder=''
onChange={el => change(el, 'email')}
value={form['email']}
/>
<span>Email</span>
</div>
<div className={styles.password}>
<input placeholder=''
onChange={el => change(el, 'password')}
value={form['password']}
/>
<span>Password</span>
</div>
<button className={styles.submit} type='submit'>Вход</button>
</form>
</div>
)
}❤6🥰3👏3
✅ В следующих уроках покажу второй способ, который уменьшит и упростит наш код!
👍6🥰3😁2 1
Почему useForm лучше useState?
✅ Возможности. useForm обладает огромным доп. функционалом, которого нет у useState.
✅ Производительность. Используя useForm, код становится свободней и читабельней. А это значит, что серверу понадобится гораздо меньше времени для считывания файла.
✅ Комфорт. Хук позволяет производить настройку "под себя". Например: в useState отслеживать изменения input мы можем указав "onChange" в каждом теге. В useForm этого делать не нужно. Данный параметр можно указать один раз прямо в настройках хука, и всё будет работать также!
❤️ за старания :)
Сегодня выпущу гайд по работе с react-hook-form.
✅ Возможности. useForm обладает огромным доп. функционалом, которого нет у useState.
✅ Производительность. Используя useForm, код становится свободней и читабельней. А это значит, что серверу понадобится гораздо меньше времени для считывания файла.
✅ Комфорт. Хук позволяет производить настройку "под себя". Например: в useState отслеживать изменения input мы можем указав "onChange" в каждом теге. В useForm этого делать не нужно. Данный параметр можно указать один раз прямо в настройках хука, и всё будет работать также!
❤️ за старания :)
❤6🔥2😱2🥰1
Самый быстрый гайд по react-hook-form.
1️⃣ Установка. В терминале пишем:
2️⃣ Импортируем useForm.
3️⃣ Настраиваем useForm.
reset - очищает все input.
handleSubmit - получает данные формы.
register - оборачивает каждое значение input в объект.
4️⃣ Оборачиваем input.
Код стал гораздо меньше и красивее, не так ли?🔥
1️⃣ Установка. В терминале пишем:
yarn add react-hook-form.2️⃣ Импортируем useForm.
import { useForm } from 'react-hook-form'3️⃣ Настраиваем useForm.
reset - очищает все input.
handleSubmit - получает данные формы.
register - оборачивает каждое значение input в объект.
const { reset, handleSubmit, register } = useForm({ mode: 'onSubmit' })4️⃣ Оборачиваем input.
import styles from './Form.module.css'
import { useForm } from 'react-hook-form'
export const Form = () => {
const { reset, handleSubmit, register } = useForm({ mode: 'onSubmit' })
const change = data => {
console.log(data)
reset()
}
return (
<div className={styles.wrap}>
<span className={styles.title}>Авторизация</span>
<form className={styles.form} onSubmit={handleSubmit(change)}>
<div className={styles.email}>
<input placeholder=''
{...register("email", { required: true })}
/>
<span>Email</span>
</div>
<div className={styles.password}>
<input placeholder=''
{...register("password", { required: true })}
/>
<span>Password</span>
</div>
<button className={styles.submit} type='submit'>Вход</button>
</form>
</div>
)
}
Код стал гораздо меньше и красивее, не так ли?🔥
🔥6👏3🏆3
Нужен видео-урок по данной теме?
"❤️" - да.
"🔥" - в посте всё понятно.
"❤️" - да.
"🔥" - в посте всё понятно.
❤6🔥3👏3🤔1
План реализации мессенджера:
1. Меню
2. Регистрация
3. Добавления в друзья
4. Реализация чата
5. Прочий доп. функционал(Настройки, статистика в профиле, поиск по чатам, онлайн/оффлайн)
Если есть идеи по дополнительным функциям пишите в комментариях👇
1. Меню
2. Регистрация
3. Добавления в друзья
4. Реализация чата
5. Прочий доп. функционал(Настройки, статистика в профиле, поиск по чатам, онлайн/оффлайн)
Stack: React, Express, Socket, JWT(может быть, тк регистрацию я могу сделать и на чистом реакте через Context)
Если есть идеи по дополнительным функциям пишите в комментариях👇
🔥8❤2👏2