1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-vue2-elm

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 00:32 3afd5b9

Предисловие

README на английском языке

Когда я только начинал изучать Vue, я искал в интернете исходные коды реальных проектов для практики. Большинство из них были простыми демо, которые не очень помогали в изучении Vue. Некоторые другие проекты были похожи на музыкальные проигрыватели и имели ограниченную сложность взаимодействия. Но в нашей работе мы часто сталкиваемся с проектами, включающими функции корзины покупок. Такие проекты требуют высокой точности логики и сложного взаимодействия между страницами, а также включают такие функции, как регистрация, вход в систему и управление пользовательской информацией. Это может быть довольно сложно.

Поскольку никто ещё не использовал Vue для создания такого проекта, я решил попробовать сделать это сам. Я думаю, что мой опыт может быть полезен другим.

Этот функциональный проект очень практичен, но также может показаться скучным. Он не так привлекателен, как музыкальный проигрыватель. Однако я обнаружил, что Meituan (饿了么) является хорошим источником материалов. Во-первых, он достаточно сложен, а во-вторых, платформа доставки еды более сложна, чем обычный магазин. Кроме того, разнообразие продуктов питания делает его интересным для пользователей.

Почему именно Meituan, а не Meipai (美团)? Ответ прост: цветовая гамма и дизайн Meituan более привлекательны, и они кажутся более удобными.

Проект включает 45 страниц, включая регистрацию, вход, отображение товаров, корзину покупок, оформление заказа и т. д. Это полный цикл. Даже официальные одностраничные проекты крупных компаний не настолько сложны. Если этот проект можно успешно реализовать, то большинство других одностраничных приложений компаний также не будут представлять сложности, даже если они более сложные.

Я начал работать над проектом в свободное время, и процесс занял больше года.

Кроме того, этот проект не имеет никакого отношения к видеокурсу Meituan. Проект, упомянутый в видеокурсе, имеет только одну страницу, в то время как я создал этот проект после изучения официальной документации Vue без использования кода других людей. Пожалуйста, не путайте их.

Примечание 1: Этот проект является моей личной попыткой. Для оформления заказа рекомендуется использовать официальный клиент Meituan.

Примечание 2: Для доступа к проекту и интерфейсу требуется использовать протокол HTTPS!

Технологический стек

Vue2 + Vuex + Vue-router + Webpack + ES6/7 + fetch + sass + flex + svg

Запуск проекта

Внимание: поскольку используется большое количество новых свойств ES6/7, для работы требуется версия Node 6.0 или выше.

git clone https://github.com/bailicangdu/vue2-elm.git  
cd vue2-elm
npm install или yarn(рекомендуется)
npm run dev

О данных интерфейса

Все данные интерфейса этого проекта поступают из соответствующего бэкэнд-приложения адрес бэкэнд-проекта.

Если вы хотите одновременно разрабатывать интерфейс и бэкэнд, вы можете загрузить бэкэнд.

В этом случае команда запуска для этого проекта будет npm run local, а не npm run dev.

Мы также предоставляем административную панель на основе Element-UI адрес панели управления.

Если вам нужно только разработать интерфейс, пожалуйста, игнорируйте предыдущие предложения.

Описание

Если вам нравится этот проект, вы можете поставить «звезду» в правом верхнем углу, чтобы поддержать его. ^_^

Или вы можете подписаться на него, и я буду продолжать открывать новые интересные проекты.

Среда разработки: macOS 10.12.3 Chrome 56 Node.js 6.10.0

Большое спасибо @bailichen, @iceRao, за то, что нашли время помочь мне завершить этот проект. Спасибо! 🌹

Пожалуйста, сообщайте о любых проблемах напрямую через Issues или предлагайте улучшения через PR. 👍

Группа обсуждения проекта

Рекомендую посмотреть открытый проект React + Redux, который может заинтересовать разработчиков React. Адрес здесь

Ещё один простой проект Vue2 + Vuex, который идеально подходит для начинающих. Адрес здесь

Демонстрация

Чтобы просмотреть демонстрацию, нажмите здесь (рекомендуется использовать мобильный режим Chrome для предварительного просмотра).

Сканирование QR-кода ниже на мобильном устройстве

Функциональные цели

  • Определение местоположения — выполнено
  • Выбор города — выполнено
  • Поиск адреса — выполнено
  • Отображение списка ближайших магазинов — выполнено
  • Поиск ресторанов, кафе — выполнено
  • Сортировка и фильтрация по расстоянию, рейтингу, особенностям кухни, способу доставки и т.д. — выполнено
  • Страница со списком блюд в ресторане — выполнено
  • Функция корзины — выполнено ✨✨🎉🎉
  • Страница с информацией о магазине — выполнено
  • Регистрация и вход — выполнено
  • Изменение пароля — выполнено
  • Личный кабинет — выполнено
  • Отправка SMS и голосовых сообщений для подтверждения — выполнено
  • Оформление заказа — выполнено ✨✨✨
  • Список заказов — выполнено
  • Информация о заказе — выполнено
  • Загрузка приложения — выполнено
  • Добавление, удаление и изменение адреса доставки — выполнено
  • Информация об учётной записи — выполнено
  • Центр обслуживания клиентов — выполнено
  • Подарочные купоны — выполнено
  • Загрузить изображение профиля — выполнено
  • Оплата — пока не реализована~~

Резюме

  1. Обычно веб-сайты, связанные с деньгами, имеют сложную логику, особенно платформы с открытым доступом, такие как Meituan, где существует множество видов продуктов и услуг, а взаимодействие между страницами сложное. При разработке функций корзины и оформления заказа возникает множество проблем с данными и логикой, а отсутствие документации по дизайну и API затрудняет работу.

  2. Благодаря лёгкому весу фреймворка Vue, он хорошо подходит для небольших проектов. В больших одностраничных приложениях, таких как Meituan, Vuex играет важную роль. Поэтому можно сказать, что Vue + Vuex отлично подходят для разработки сложных одностраничных проектов.

  3. На данный момент проект охватывает все этапы от входа в систему до оформления заказа, от домашней страницы до поиска, списка магазинов, корзины, оформления заказа, списка заказов, личного кабинета и центра обслуживания клиентов. Не только улучшилось понимание Vue, но и появилась большая помощь в управлении крупными проектами в будущем. Разработка реального проекта значительно повышает уровень навыков.

  4. Изначально проект задумывался как небольшой проект для практики, но постепенно он становился всё более сложным. Хотя иногда возникали сомнения в ценности проекта, автор считает, что это было стоящее усилие.

  5. Проект завершён и включает 45 страниц.

Конечная цель

  1. Создать бэкенд-систему на Node.js, имитирующую платформу доставки еды. Адрес здесь

  2. Разработать мобильные приложения для Android и iOS. Адрес здесь

  3. Если позволит время, планируется создать версию для продавцов.

Таким образом, цель автора — создать полную экосистему, охватывающую фронт- и бэкенд, а также мобильные приложения для iOS и Android.

.. .С нетерпением ждём результатов. Структура проекта:

points
│   │   │   ├── children
│   │   │   │   └── detail.vue                  // 积分说明
│   │   │   └── points.vue                      // 秖分页
│   │   ├── profile
│   │   │   ├── children
│   │   │   │   ├── children
│   │   │   │   │   ├── address.vue             // 地址
│   │   │   │   │   └── children
│   │   │   │   │       ├── add.vue             // 新增地址
│   │   │   │   │       └── children
│   │   │   │   │           └── addDetail.vue   // 搜索地址
│   │   │   │   ├── info.vue                    // 帐户信息
│   │   │   │   └── setusername.vue             // 重置用户名
│   │   │   └── profile.vue                     // 个人中心
│   │   ├── search
│   │   │   └── search.vue                      // 搜索页
│   │   ├── service
│   │   │   ├── children
│   │   │   │   └── questionDetail.vue          // 问题详情
│   │   │   └── service.vue                     // 服务中心
│   │   ├── shop
│   │   │   ├── children
│   │   │   │   ├── children
│   │   │   │   │   └── shopSafe.vue            // 商铺认证信息页
│   │   │   │   ├── foodDetail.vue              // 商铺信息页
│   │   │   │   └── shopDetail.vue              // 单个商铺信息页
│   │   │   └── shop.vue                        // 商铺筛选页
│   │   └── vipcard
│   │       ├── children
│   │       │   ├── invoiceRecord.vue           // 购买记录
│   │       │   ├── useCart.vue                 // 使用卡号购买
│   │       │   └── vipDescription.vue          // 会员说明
│   │       └── vipcard.vue                     // 会员卡办理页
│   ├── plugins                                 // 引用的插件
│   ├── router
│   │   └── router.js                           // 路由配置
│   ├── service                                 // 数据交互统一调配
│   │   ├── getData.js                          // 获取数据的统一调配文件,对接口进行统一管理
│   │   └── tempdata                            // 开发阶段的临时数据
│   ├── store                                   // vuex的状态管理
│   │   ├── action.js                           // 配置actions
│   │   ├── getters.js                          // 配置getters
│   │   ├── index.js                            // 引用vuex,创建store
│   │   ├── modules                             // store模块
│   │   ├── mutation-types.js                   // 定义常量muations名
│   │   └── mutations.js                        // 配置mutations
│   └── style
│       ├── common.scss                         // 公共样式文件
│       ├── mixin.scss                          // 样式配置文件
│       └── swiper.min.css
│   ├── App.vue                                 // 页面入口文件
│   ├── main.js                                 // 程序入口文件,加载各种公共组件
├── favicon.ico                                 // 图标
├── index.html                                  // 入口html文件
.

56 directories, 203 files

License

GPL

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-vue2-elm.git
git@api.gitlife.ru:oschina-mirror/mirrors-vue2-elm.git
oschina-mirror
mirrors-vue2-elm
mirrors-vue2-elm
master