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

OSCHINA-MIRROR/mirrors-vue2-elm

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README-en.md

Введение

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

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

Этот функциональный проект практичен, но часто скучен, без музыкального проигрывателя, который был бы великолепен. Долгое время я думал, что приложение Elm — хороший материал. Во-первых, оно сложное, и открытая платформа доставки сложнее, чем типичный проект. Во-вторых, вы не заскучаете, увидев так много красивой еды.

Но почему именно приложение Elm, а не Baidu App или Meituan App? Причина проста: макет Elm самый красивый и удобный среди трёх приложений.

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

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

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

Примечание: Этот проект является исключительно личным. Если вы хотите заказать, пожалуйста, выберите официальный клиент Elm.

Технология

vue2 + vuex + vue-router + webpack + ES6/7 + fetch + sass + flex + svg

Разработка

Примечание: В этом проекте используется множество свойств, таких как ES6/7, поэтому требуется узел 6.0.0+.

git clone https://github.com/bailicangdu/vue2-elm.git  
cd vue2-elm
npm install
npm run dev

Дополнительно

У этого проекта есть поддерживающая фоновая система. Если вы хотите её разработать, вы можете скачать соответствующую бэкенд-систему. Бэкенд-система.

Команда запуска бэкенд-системы: npm run local. Если вы занимаетесь только фронтенд-разработкой, проигнорируйте это примечание.

Объяснение

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

Может быть, вы могли бы «подписаться» на меня, я сделаю больше интересных проектов.

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

Спасибо 辰妹子 @bailichen, @iceRao, за помощь в завершении проекта, спасибо🌹

Если у вас есть какие-либо вопросы, вы можете опубликовать вопрос в разделе Issues, и если вы найдёте какое-то решение или какое-то улучшение, пожалуйста, отправьте запрос на изменение. 👍

Коммуникационная группа [https://gitter.im/vue2-elm/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link]

Рекомендую открытый исходный проект о react и redux. Адрес

Рекомендую другую демонстрацию о vue2 и vuex, она простая и подходит для новичков. Адрес

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

2017-05-30

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

Демо

Нажмите здесь (предварительный просмотр в Chrome) Мобильный телефон может сканировать QR-код, изображённый ниже

Функции

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

Резюме

  1. Это не официальный продукт elm, поэтому необходимо открыть агента, и это должно быть сделано на ПК. Максимум, что вы можете сделать, это заказать, но не более того. После успешного заказа вы можете проверить и оплатить платёж на своём мобильном телефоне.
  2. В целом, страница связана с деньгами, что усложняет её, особенно если речь идёт о платформе elm? Существует множество типов продавцов и продуктов, требующих сложного взаимодействия между страницами. При написании страниц корзины и заказов без API возникает много сложностей.
  3. Vue очень яркий, потому что это облегчённый фреймворк, который хорошо подходит для небольших и средних проектов. Если вы хотите создать большое одностраничное приложение, вы можете использовать vuex, производительность которого по-прежнему остаётся выдающейся. Vuex необходим при работе со страницами со сложной логикой взаимодействия. Поэтому, если вы используете vue и vuex, вы сможете создавать большие одностраничные проекты.
  4. Теперь, после процесса входа в систему, регистрации, домашней страницы, поиска, магазинов, корзины покупок, заказа, списка заказов, личного центра и т. д., я не только лучше понимаю vue, но и могу помочь себе контролировать крупные проекты в будущем. Практический проект значительно улучшил мои навыки.
  5. Иногда я сомневаюсь, имеет ли смысл тратить несколько месяцев на этот проект. Сначала я просто хотел сделать небольшой проект, но я не думал, что смогу написать больше, но когда я закончил, я понял, что оно того стоило.
  6. Проект уже завершён и содержит 45 страниц.

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

  1. Построить фоновый сервер для имитации платформы доставки с помощью node.js. Адрес.
  2. Использовать react-native для написания нативных приложений для Android и IOS. Адрес здесь.
  3. Возможно, в будущем я сделаю версию продавца. Моя цель — построить полную экосистему, включающую фронтенд, бэкенд, IOS и Android. Жду себя.

Скриншоты

Страница со списком магазинов

Страница фильтрации магазинов

Список продуктов и корзина

Страница подтверждения заказа

<img ### Страница поиска

Страница входа

Центр пользователя

Layout

.
├── build                                       // webpack config file
├── config                                      // package path
├── elm                                         // online project file,can access if put them one the server
├── screenshots                                 // screenshot
├── src                                         // source directory
    ├── components                              // components
        ├── common                              // common components
            ├── alertTip.vue                    // popup components
            ├── buyCart.vue                     // cart components
            ├── computeTime.vue                 // countdown components
            ├── loading.vue                     // the animation component when page is initialized
            ├── mixin.js                        // mixinf components(inculde:directive-loading more,make picture address)
            ├── ratingStar.vue                  // the five rating star component about comment
            └── shoplist.vue                    // the resturant list common component of msite and shop page
        ├── footer
            └── footGuide.vue                   // footer common component
        └── header
            └── head.vue                        // header common component
    ├── config                                  // basic configuration
        ├── env.js                              // environment switch configuration
        ├── fetch.js                            // git data
        ├── mUtils.js                           // common function about js
        └── rem.js                              // px transform rem
    ├── images                                  // public picture
    └── page
        ├── balance
        │    ├── balance.vue                     // balance page
        │    └── children
        │         └── detail.vue                  // balance detail page
        ├── benefit
        │    ├── benefit.vue                     // benefit pahe
        │    └── children
        │         ├── commend.vue                 // recommend prize
        │         ├── coupon.vue                  // coupon introduction
        │         ├── exchange.vue                // exchange benefit
        │         ├── hbDescription.vue           // benefit descripting
        │         └── hbHistory.vue               // benefit's history
        ├── city                 
        │     └── city.vue                        // local city page
        ├── confirmOrder
        │    ├── children
        │        ├── children
        │            ├── addAddress.vue          // add address page
        │            └── children
        │                └── searchAddress.vue   // search address page
        │        ├── chooseAddress.vue           // choose address page
        │        ├── invoice.vue                 // choose invoice page
        │        ├── payment.vue                 // pay page
        │        ├── remark.vue                  // order remark page 
        │        └── userValidation.vue          // user validation page
        │    └── confirmOrder.vue                // confirm order page
        ├── download
        │    └── download.vue Скачать приложение
|  |  |
| :-- |:--|
| *| find* |
| | *find.vue* | // страница поиска
| *| food* | 
| | *food.vue* |  // страница фильтра и сортировки продуктов
| *| forget* |
| | *forget.vue* |   // забыть пароль, изменить пароль
| *| home* |
| | *home.vue* |    // индексная страница
| *| login* |
| | *login.vue* |      // страница входа и регистрации
| *| msite* |
| | *msite.vue* |       // страница списка продавцов
| *| order* |
| | *children* |
| | | *orderDetail.vue* |        // страница с деталями заказа
| | *order.vue* |             // страница со списком заказов
| *| points* |
| | *points.vue* |           // страница точек
| | *detail.vue* |          // страница с подробностями о точках
| *| profile* |
| | *profile.vue* |         // профиль пользователя
| | *children* |
| | | *address.vue* |               // адресная страница
| | | *add.vue* |                  // страница добавления адреса
| | | *search address page* |
| | | *addDetail.vue* |
| | *info.vue* |              // информация об аккаунте
| | *setusername.vue* |        // сброс пароля
| *| search* |
| | *search.vue* |            // страница поиска
| *| service* |
| | *service.vue* |            // центр обслуживания
| | *questionDetail.vue* |      // детали вопроса
| *| shop* |
| | *shop.vue* |              // страница фильтров магазина
| | *children* |
| | | *foodDetail.vue* |        // деталь продукта
| | | *shopSafe.vue* |          // проверка безопасности магазина
| | | *shopDetail.vue* |        // детали магазина
| *| vipcard* |
| | *vipcard.vue* |            // обработка VIP-карт
| | *children* |
| | | *invoiceRecord.vue* |     // запись счёта
| | | *useCart.vue* |          // использование карты
| | | *vipDescription.vue* |    // описание VIP
| *| plugins* |
| *| router* |
| | *router.js* |            // конфигурация роутера
| *| service* |
| | *getData.js* |            // файл унифицированного развёртывания для получения данных и унифицированное управление интерфейсами
| | *tempdata* |              // временные данные для разработки
| *| store* |
| | *action.js* |             // конфигурация действий
| | *getters.js* |            // конфигурация геттеров
| | *index.js* |              // использование Vuex, новый магазин
| | *modules* |
| | *mutation-types.js* |     // создание констант для мутаций
| | *mutations.js* |          // конфигурация мутаций
| *| style* |
| | *common.scss* |          // общий CSS
| | *mixin.scss* |            // конфигурационный файл CSS
| | *swiper.min.css* |        // CSS Swiper
| *| App.vue* |               // файл точки входа JavaScript
| *| main.js* |               // основной файл JavaScript для загрузки компонентов
| *favicon.ico* |            // иконка
| *index.html* |             // файл точки входа HTML

56 каталогов, 203 файла

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
GPL-2.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