Битва облачного музыкального проекта Netease для ПК
Описание Проекта
1. Введение проекта
- используется проектомстек технологий
-
CSSиспользоватьFlexсделать макет - Для настройки псевдонимов пути используйте:
carco - Маршрутизация проекта использует:
react-routerсправляться - использовать
react-router-configЦентрализованное управление картой маршрутов - использовать
styled-components+ обычныйcssСтиль письма - использовать
axiosотправить сетевой запрос - Принять проект
React Hooks - Библиотека компонентов проекта использует:
ant design - использовать
immutableк проектуreducerсерединаstateсправляться - использовать
redux-immtableв корневой каталогreducerсерединаstateсправляться - Использование проекта
redux-thunkпромежуточное ПО - использовать
propTypeчек об оплатеpropsТип и значение по умолчанию - использовать
react-transition-groupДобавить эффект анимации перехода - Оптимизация в проекте: используются все функциональные компоненты
memo, маршрутизация отложенной загрузки, функция защиты от сотрясений
-
- ПроэктЦель
- использовать
ReactFamily Bucket разрабатывает веб-сайт NetEase Cloud Music для ПК
- использовать
2. Подходит для толпы и сбора урожая
- Подходит для толпы:
- Подходит для желающих понять общий процесс проекта
- или обучение
React 全家桶ноОтсутствие опыта работы с React проектами- (Если вы не понимаете некоторые моменты знаний, вы можете обратиться кПредыдущие статьи серии React)
- (Лучше знать
Node)
- награда:
- Как спроектировать компоненты музыкального плеера, разбор текста и т.д.
- Структура каталога проектов разделена, для больших проектов
stateуправлять - Общий процесс проекта, как оптимизировать производительность и т.д.
- Уведомление:
- При изучении этой статьи логика страницы
jsБольше никаких постов (только общие идеи реализации) - Ведь думать и делать больше — это практика 😎
- При изучении этой статьи логика страницы
3. Эффект страницы и отображение функций
Рекомендуемый/Новый выпуск диска/Список
коммутатор маршрутизации
Комментарии к песням
Таблица лидеров
игрок
Переключение песен (случайное, последовательное, одиночный цикл)
поиск песни
- Добавлено: событие клавиатуры↓ и функция защиты от сотрясений.
-
ctrl+kПоле поиска получает фокус и активирует раскрывающийся список поиска -
escОтменить фокус и раскрывающийся список -
enterВведите данные для поиска песни
-
Список сведений о поиске песен
- Нажмите в поле поиска
回车Вот и все, ищите в спискебазовыйРеализация функции
4. Исходный код проекта и интерфейс API
- Адрес предварительного просмотра развертывания проекта 👉:Посмотреть адрес предварительного просмотра
-
проект
Githubадрес 👉: Musci 163Если вы считаете проект неплохим 👏, поставьте ⭐, чтобы поддержать его~ -
Описание API (выберите одно из следующих двух)
- Необязательный:
- Документация по интерфейсу API
- может владетьЛокальное развертывание NetEase Cloud
Node APIинтерфейс, или вы можете использовать тот, который я развернул на сервереAPI👇
- Второй вариант:
- Уже развернуты на серверном интерфейсе:Интернет-API NetEase Cloud Music
- Необязательный:
5. Спецификации проекта
-
Спецификации проекта: В проекте есть некоторые спецификации разработки и стили кода (вы также можете следовать своим привычкам)
-
Имена папок и файлов пишутся строчными буквами, а нескольким словам предшествует соединитель (
-)соединять; -
JavaScriptИмена переменных используют маленький верблюжий регистр, константы используют заглавные буквы, а компоненты используют большой верблюжий регистр; -
CSS использует общие
CSSа такжеstyled-componentв сочетании, чтобы написать- общее использование
CSS, местное использованиеstyled-component
- общее использование
-
Весь проект больше не используется
classКомпоненты, унифицированное использование функциональных компонентов и полный охватHooks; -
Все функциональные компоненты, во избежание лишнего рендеринга, используют все
memoобернуть; -
Состояние внутри компонента, используя
useState,useReducer; Все бизнес-данные размещаются вreduxуправление; -
Код внутри функционального компонента в основном написан в следующем порядке:
- Внутри компонента
stateуправлять; -
reduxизhooksкод; - другие компоненты
hooksкод; - другой логический код;
- вернуть код JSX;
- Внутри компонента
-
reduxСпецификация кода выглядит следующим образом:- Каждый модуль имеет свой независимый
reducer,пройти черезcombineReducerобъединить; - Использование кода асинхронного запроса
redux-thunk, и написано вactionCreatorsсередина; -
reduxнепосредственно принятыйredux hooksспособ записи, больше не используетсяconnect;
- Каждый модуль имеет свой независимый
-
-
Другие спецификации определяются и записываются в проекте в соответствии с реальной ситуацией;
6. Разметка React devtools скрыта (просто понять)
- Перед фактической разработкой проекта: открываемОфициальный сайт NetEase Cloud Music, вы узнаете, почему не отображается официальный сайт NetEase Cloud
react devtoolsРазметка плагина (просто поймите, не важно) - Скрытие разметки React devtools
// disable react-dev-tools for this project
if (typeof window.__REACT_DEVTOOLS_GLOBAL_HOOK__ === "object") {
for (let [key, value] of Object.entries(window.__REACT_DEVTOOLS_GLOBAL_HOOK__)) {
window.__REACT_DEVTOOLS_GLOBAL_HOOK__[key] = typeof value == "function" ? ()=>{} : null;
}
}
Инициализация проекта
Предисловие — плагин vscode и chrome (необязательно)
-
Если вы уже установили его, вы можете пропустить его.Следующее является необязательным.Конечно, можно не устанавливать его.
-
Для более удобной разработки проектов рекомендуется установить следующие
vscodeплагин-
ESLint: инструмент проверки стиля кода, помогающий нам стандартизировать написание кода. -
vscode-styled-components: пишуstyled-componentsПодсветка синтаксиса и стилизация компонентов в -
path-alias: Псевдоним имеет соответствующий intellisense
-
ES7 React/Redux/GraphQL/React-Native snippets: сегмент кода
-
-
chromeплагин-
Redux DevTools: легко отлаживать
reduxданные -
FeHelper: вернулся на сервер
jsonданные украшают
-
Redux DevTools: легко отлаживать
1. Отдел каталогов проектов
- использовать
create-react-appСтруктура проекта инициализации строительных лесов:create-react-app music163_xxx - Структуру каталогов также можно разделить в соответствии со структурой, к которой вы привыкли.
│─src
├─assets 存放公共资源css和图片
├─css 全局css
├─img
├─common 公共的一些常量
├─components 公共组件
├─pages 路由映射组件
├─router 前端路由配置
├─service 网络配置和请求
└─store 全局的store配置
└─utils 工具函数
└─hooks 自定义hook
2. Описание проекта
- Эта глава является лишь предварительным введением в проект и четкой целью.
- После этого в продолжении будут опубликованы статьи о реальных боевых действиях проекта (более подробно, каждая глава имеет четкую цель для достижения
gifкартина)- Непросто делать проект актуальный боевой+документы разработки.Работаю в школе месяца 2 до и после.Если пригодится друзьям,надеюсь поставить звезду⭐
благодарный
- большое спасибоВан ХунъюаньучительскийБитва за основную технологию Reactпозволь мне многому научиться
Reactзнание. - Большое спасибо бэкенд-провайдеруBinaryify, интерфейс очень стабильный, и документация идеальна