Битва облачного музыкального проекта 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
, маршрутизация отложенной загрузки, функция защиты от сотрясений
-
- ПроэктЦель
- использовать
React
Family 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, интерфейс очень стабильный, и документация идеальна