Telegram Web Link
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 NLUX — библиотека ReactJS для создания разговорных пользовательских интерфейсов

В современном мире взаимодействие с компьютерами и приложениями становится все более естественным и удобным благодаря использованию разговорных интерфейсов и искусственного интеллекта. Однако, интеграция такого функционала в веб-приложения может стать вызовом для разработчиков.
В этом может помочь библиотека NLUX (Natural Language User Experience), предоставляющая инструменты для создания разговорных пользовательских интерфейсов в приложениях на ReactJS.

NLUX революционизирует интеграцию разговорного искусственного интеллекта в приложения на ReactJS. Представляя собой двойное предложение, то есть не только компоненты/хуки React, но и автономную библиотеку для JavaScript, библиотека NLUX разработана для внедрения функциональности чат-ботов, управляемых искусственным интеллектом, в веб-приложения.

NLUX выделяется своей легкостью интеграции и способностью обеспечивать пользователям интеллектуальные взаимодействия на естественном языке, что делает ее мощным инструментом для улучшения вовлеченности и удовлетворенности пользователей. Библиотека также позволяет нам настраивать личность бота, используя естественные языковые подсказки.

📁 Подробнее про NLUX на Хабре

🖥 GitHub

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥41
🔥Подборка лучших обучающих каналов для программистов.

➡️ Делитесь с коллегами и cохраняйте себе, чтобы не потерять

🖥 Frontend
Javascript академия - крупнейший js канал
React - лучшие гайды и советы по работе с react
Frontend - тутрориалы, уроки, гайды, код
PHP
Книги frontend
Задачи frontend

Машинное обучение

Machine Learning - полезные статьи новости гайды и разбор кода
Ml Собеседование - подготовка к собеседовению мл, алгоритмам, кодингу
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат

🚀 Data Science

Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data

🏆 Golang
Golang - подробные гайды, разбор кода, лучшие практики, заметки
Golang собеседование
Golang вакансии
Golang книги
Golang задачи и тесты
Golang чат
Golang news - новости go

#️⃣C#

С# академия
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа

🐍 Python

Python/django
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги

Java

Java академия
Java вакансии
Java чат
Java вопросы с собеседований
Java книги

🛢Базы данных
Sql базы данных
Библиотека баз данных
SQL чат

💻 C++

C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии

💥 Хакинг Kali Linux

Kali linux
linux_kal - kali чат
Информационная безопасность

🐧 Linux

Linux academy

🦀 Rust
Rust программирование
Rust чат
Rust книги для программистов

📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки

🇬🇧 Английский для программистов

🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence

🔥 DevOPs
Devops для программистов
Книги Devops

🌟 Docker/Kubernets
Docker
Kubernets

📓 Книги
Библиотеки Книг для программситов

💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
Папка Frontend
5👍1🔥1
🖥 Годный ролик с созданием 6 проектов на ReactJS

📎 Вот пересказ содержимого от YaGPT

В ролике автор касается таких тем, как:
Передача индекса и корректного варианта ответа в компонент result.
Преобразование ответа в формат JSON и извлечение данных.
Отображение вопросов и вариантов ответов при помощи списка и функции для обработки кликов на вариантах.
Рендеринг пользователей, добавление их в список приглашений и удаление из него.

В целом ролик очень полезный и неплохо помогает попрактиковаться и прокачать свой React

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥3
🖥 5 вещей, которые сделают ваш React проект лучше

*️⃣Используйте JSX-сокращения
Допустим, вам нужно управлять видимостью компонента Navbar с помощью пропса showTitle:
Плохо
return (
<Navbar showTitle={true} />
);

Хорошо
return(
<Navbar showTitle />
);


*️⃣Используйте тернарные операторы
Отличный способ для выбора между двумя компонентами по некоторому условию
Плохо
const { role } = user;

if(role === ADMIN) {
return <AdminUser />
}else{
return <NormalUser />
}

Хорошо
const { role } = user;

return role === ADMIN ? <AdminUser /> : <NormalUser />


*️⃣Используйте преимущества объектных литералов
Если у вас выбор между тремя и более компонентами, литералы объектов могут сделать код более читаемым – используйте их вместо сложных условий.
Плохо
const {role} = user

switch(role){
case ADMIN:
return <AdminUser />
case EMPLOYEE:
return <EmployeeUser />
case USER:
return <NormalUser />
}

Хорошо
const {role} = user

const components = {
ADMIN: AdminUser,
EMPLOYEE: EmployeeUser,
USER: NormalUser
};

const Component = components[role];

return <Component />;


*️⃣Используйте фрагменты
Нет никакого преимущества в использовании div вместо Fragment. Зачем нам лишний элемент в DOM?
Плохо
return (
<div>
<Component1 />
<Component2 />
<Component3 />
</div>
)

Хорошо
return (
<>
<Component1 />
<Component2 />
<Component3 />
</>
)


*️⃣Не определяйте функцию внутри рендера
Лучше не смешивать логику и рендер внутри компонента.
Плохо
return (
<button onClick={() => dispatch(ACTION_TO_SEND_DATA)}> // NOTICE HERE
This is a bad example
</button>
)

Хорошо
const submitData = () => dispatch(ACTION_TO_SEND_DATA)

return (
<button onClick={submitData}>
This is a good example
</button>
)


📎 Ещё больше полезных советов

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4812🔥3🥱2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Boa — экспериментальный лексер, парсер и компилятор Javascript

Тут на днях года состоялся релиз Boa v0.18 — экспериментального лексера, парсера и компилятора Javascript, а также движка ECMAScript, написанного на языке программирования Rust.

🔥 Новая версия Boa позволяет легко встраивать JS-движок в различные проекты, и а также использовать его из WebAssembly и командной строки.

Разработчики пояснили, что этот выпуск Boa также знаменует собой серьёзное обновление дизайна сайта проекта и появление нового логотипа.

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

Впервые проект Boa был представлен на конференции JSConf EU 2019 разработчиком Джейсоном Уильямсом.

🖥Исходный код проекта выложен на GitHub под лицензией MIT
4.6К⭐️

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍41
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Создание PDF с помощью React

🌟 Относительно недавно разработчики Onedoc выпустили UI Kit под названием React Print. Он предназначен для создания PDF-файлов с помощью React и TypeScript.
С его помощью можно подготавливать шаблоны счетов, брошюр и любых других документов.

Пользуйтесь)

🖥 GitHub

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍269🥰1
🖥 Создание приложения React-Electron с нуля

Прежде чем начать, убедитесь, у вас стоят:
1. Node.js (версия 12 или новее)
2. npm или yarn


1️⃣шаг: настройка структуры проекта

Создайте новую директорию для вашего проекта и перейдите к ней в вашем терминале:
mkdir react-electron-app
cd react-electron-app
mkdir -p src electron public
touch src/App.tsx src/index.tsx electron/main.ts
touch public/index.html


Теперь ваш проект должен иметь следующую структуру:
react-electron-app
├── electron
│ └── main.ts
├── public
│ └── index.html
└── src
├── App.tsx
└── index.tsx



2️⃣шаг: выполните следующую команду в терминале, чтобы инициализировать проект с файлом package.json:
npm init -y



3️⃣шаг: установите необходимые зависимости для проекта:
npm install --save react react-dom typescript electron
npm install --save-dev concurrently electron-builder electron-is-dev wait-on cross-env


4️⃣шаг: настройка Typerscript

Создайте файл tsconfig.json в корне проекта:
touch tsconfig.json


Добавьте следующее содержимое в файл tsconfig.json:
{
"compilerOptions": {
"target": "ES2023",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": ["src"]
}


5️⃣шаг: настройка приложения React

Замените содержимое файла src/App.tsx следующим кодом:
function App() {
return (
<div className='App'>
<p>
Привет, мир!
</p>
</div>
);
}

export default App;


Замените содержимое файла src/index.tsx следующим кодом:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);


Замените содержимое файла public/index.html следующим кодом:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Приложение React-Electron</title>
</head>
<body>
<div id="root"></div>
</body>
</html>


6️⃣шаг: настройка основного процесса Electron

Замените содержимое файла electron/main.ts следующим кодом:
import { app, BrowserWindow } from 'electron';
import * as path from 'path';
import * as isDev from 'electron-is-dev';

function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
},
});

win.loadURL(
isDev
? 'http://localhost:3000'
: `file://${path.join(__dirname, '../build/index.html')}`
);

win.webContents.openDevTools();
}

app.whenReady().then(createWindow);

app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});

app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});



7️⃣шаг: настройка скриптов в package.json

Откройте файл package.json и добавьте следующие скрипты в раздел “scripts”:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"eject": "react-scripts eject",
"electron:dev": "concurrently \"cross-env BROWSER=none yarn start\" \"wait-on http://127.0.0.1:3000 && tsc -p electron -w\" \"wait-on http://127.0.0.1:3000 && tsc -p electron && electron .\"",
"electron:build": "yarn build && tsc -p electron && electron-builder",
"electron:dist": "yarn build && tsc -p electron && electron-builder --mac --dir"
}


8️⃣шаг: Теперь вы можете запустить свое приложение React-Electron, выполнив следующую команду:
npm run electron:dev


Победа!

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🤡9🔥21
🖥 Полезные советы по написанию чистого React кода

▶️Деструктурирование свойств
— это хороший способ сделать код чище и улучшить возможности по его поддержке. Дело в том, что это позволяет чётко выражать или объявлять то, что использует некая сущность. При этом такой подход не принуждает разработчиков вчитываться в реализацию компонента для того, чтобы выяснить состав свойств, связанных с ним.
// до рефакторинга
async function authenticate({ user_id, token }) {
try {
const response = await axios.post('https://someapi.com/v1/auth/', {
user_id,
token,
})
console.log(response)
return response.data
} catch (error) {
console.error(error)
throw error
}
}

// после рефакторинга
async function authenticate({ user_id, jwt_token, token = jwt_token }) {
try {
const response = await axios.post('https://someapi.com/v1/auth/', {
user_id,
token,
})
console.log(response)
return response.data
} catch (error) {
console.error(error)
throw error
}
}

Сущность jwt_token будет оцениваться в тот момент, когда код дойдёт до token. В результате, если jwt_token окажется действительным токеном, и сущность token окажется равной undefined, в token попадёт значение jwt_token. Если же в token уже было какое-то значение, не являющееся по правилам JS ложным (то есть — некий реальный токен), то в token просто останется то, что там уже было.


▶️Размещайте файлы компонентов в продуманной структуре папок
Например, эта структура может выглядеть наподобие
- src
- components
- Breadcrumb
- index.js
- Breadcrumb.js
- CollapsedSeparator.js
- Input
- index.js
- Input.js
- utils.js
- focusManager.js
- Card
- index.js
- Card.js
- CardDivider.js
- Button.js
- Typography.js


📎 Читать подробнее

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥2
🖥 Деплой React-приложения с помощью Kubernetes 🖥

Держите пошаговый гайд, как задеплоить приложение React.
Здесь максимально подробно описывается каждый шаг:
— создание приложения, запуск
— упаковка в Docker-контейнер, конфигурирование Dockerfile
— создание Docker-образа
— установка kubectl и minikube, запуск
— конфигурирование YAML-файла
— ...короче, весь процесс

Супер полезно, экономит время, не нужно проверять всё методом тыка

📎 Гайд

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥76
🖥 React Email 2.0

▶️Относительно недавно состоялся релиз мажорной версии открытого проекта для работы с электронной почтой (коллекция компонентов для создания электронных писем с использованием React и TypeScript) React Email 2.0.

Разработчики проекта пояснили, что в React Email 2.0 переосмысленный опыт предварительного просмотра, в код внесены изменения для значительного улучшения производительности, добавлены новые компоненты (Code Block, Inline Code, ), появилась поддержка развёртывания в Vercel, а также улучшена поддержка монорепозиториев.

Команда проекта React Email опубликовала инструкцию по обновлению на версию 2.0.

▶️ Основные изменения и добавления в проекте React Email 2.0:
— обновлены компоненты и основные блоки;
— статические файлы для сервера предварительного просмотра теперь хранятся в папке ./emails/static или в указанном каталоге электронной почты;
— улучшен пользовательский интерфейс и обновлены иконки;
— добавлена возможность просмотра, как ваша электронная почта будет выглядеть на мобильных устройствах;
— появилась поддержка подпапок, что позволяет приложению предварительного просмотра игнорировать некоторые из них, если они имеют префикс _ (например: _comComponents);
— время запуска локального сервера React Email 2.0 при новой установке составляет около 7 секунд (для React Email 1.10.1 этот параметр составляет 40 секунд);
— после завершения первоначальной настройки время загрузки составляет около 1 секунды (зависит от конфигурации сервера);
— улучшена фильтрация отображения электронных писем на боковой панели, которая показывает их только в том случае, если где-то внутри у них есть настройки экспорта по умолчанию. Это своего рода эвристика, и её всё еще можно улучшить.

🖥 Исходный код проекта доступен на GitHub под лицензией MIT License
⭐️ 11.9K

@react_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍172❤‍🔥1
2025/07/12 01:25:04
Back to Top
HTML Embed Code: