[ВАЖНО - Читай описание] Vue.js Приложение мессенджер (messenger application)

Поделиться
HTML-код
  • Опубликовано: 15 фев 2020
  • --------------------------------------------------------------------------------------------------------------------------------------------------------
    ВАЖНО - Видео на этом канале 3х летней давности и большинство уже НЕАКТУАЛЬНЫЕ в силу изменения синтаксиса, методов и подходов во Vue.js версии 3. Все видео были записаны на Vue.js версии 2. Много чего уже просто НЕ БУДЕТ РАБОТАТЬ или выдаст ошибки.
    Новый канал на актуальном стеке Vue.js v3, Pinia, Vue router@next, Ionic (мобильные приложения), FireBase (база данных, аутентификация и тд) - / @intothecoding
    НО! Новый канал ведется на АНГЛИЙСКОМ ЯЗЫКЕ - так что у вас есть уникальная возможность научиться кодить и подтянуть язык - так как Английский нужен всегда!
    Жду вас на новом канале!
    --------------------------------------------------------------------------------------------------------------------------------------------------------
    1. Установка сборки Vue Cli 3: Откройте терминал - пройдите на рабочий стол - и выполните в нем команду: npm install -g @vue/cli
    ( cli.vuejs.org/guide/installat... )
    Если совсем не получится установить Vue Cli - смотрите мой видео-урок на эту тему: • [ВАЖНО - Читай описани...
    2. Откройте папку проекта в редакторе кода.
    3. Пропишите зависимости в package-json, согласно уроку и выполните в терминале / командной строке команду npm install
    - "axios": "^0.19.0",
    - "vue-router": "^3.1.3",
    - "vuex": "^3.1.2",
    - "material-design-icons-iconfont": "^5.0.1"
    4. Далее все как в видео-уроке. Должно работать :)
    Файл db.json: github.com/antonboltnev/chat-...
    Файлы стилей: github.com/antonboltnev/chat-...
    Если такой часовой формат видео для вас будет утомительным - впредь учту и буду разбивать на несколько.
    Ссылка на репозиторий проекта (чур не подглядывать пока сами не сделаете :) - github.com/antonboltnev/chat-app
    Приятного просмотра!

Комментарии • 77

  • @MrLutor
    @MrLutor 4 года назад +9

    Нереално крутой канал! Тьма полезной инфы, объясняешь как корешу, за это отдельное спасибо, уютно )) жду вторую часть видео, было б хорошо, если б там ещё и деплой на обычный сервер был;)

    • @TheMeo0w
      @TheMeo0w 4 года назад +1

      А чего там деплоить-то? npm run build, и папку dist на обычный сервер.

    • @MrLutor
      @MrLutor 4 года назад +1

      Ну это супер просто)

  • @HTMLHarbor
    @HTMLHarbor 4 года назад +6

    Спасибо большое за твой труд. Получилось:)) Жду следующей части;)

    • @gofrontend2220
      @gofrontend2220  4 года назад +3

      Ибрагим Алимжанов отлично!

  • @abylaym4157
    @abylaym4157 3 года назад +1

    Спасибо за урок, ждём новых проектов на vue

  • @goshana1987
    @goshana1987 4 года назад

    Здравствуйте. Отличный контент. Спасибо вам! Жду новых видео.

  • @igorkulibaba7287
    @igorkulibaba7287 4 года назад

    ДЯДЬКА ты круто объясняешь!!!

  • @mrzoom214
    @mrzoom214 4 года назад +1

    Все по полчкам, спасибо

  • @unicoxr5tj417
    @unicoxr5tj417 3 года назад

    дружище, продолжай, лайк

  • @sudo1384
    @sudo1384 3 года назад +2

    Спасибо за такой труд, сможете сказать когда 2 часть очень жду

  • @user-tb2iq1sl6b
    @user-tb2iq1sl6b 3 года назад +1

    Спасибо!

  • @sateevtima7914
    @sateevtima7914 4 года назад

    дружище, держи лайк!
    Буду очень ждать авторизацию, с записью в db.json!

  • @ilyaponomarev9279
    @ilyaponomarev9279 4 года назад

    Норм, подписался

  • @johndevil4843
    @johndevil4843 4 года назад

    Спасибо за материал! Когда следующий урок?

  • @zaurhuseyn4432
    @zaurhuseyn4432 2 года назад

    согласен круто)

  • @tontontonic
    @tontontonic 2 года назад

    а какая разница, передавать params:id в роут или передавать query? для чего нужно одно, а для чего другое?

  • @user-sc9jm6vw6t
    @user-sc9jm6vw6t Год назад

    Прошу подсказать. Какая тут версия Vue используется - 2 или уже 3?

  • @KOLA777ful
    @KOLA777ful 3 года назад

    спасибо, урок огонь! стоит ли ждать продолжение?

  • @user-nc6gt7gb1x
    @user-nc6gt7gb1x 3 года назад

    Подскажите где иконки такие брать в папки и файлы ?

  • @sapolio1538
    @sapolio1538 4 года назад

    На 44-1 минуте мы вызываем экшен, чтобы подсунуть пустую строку, потому что это его, экшена(мутэйшена) особенность, для другого сделанная... Так почему мы сразу в сторе не стелали пустую строку? currentUserChat: ""
    И почему вообще он в хедер выводит эти скобки вместо toString(%тот самый пустой объект%) ? Ну, что-то вроде [object Object] хотя бы?

  • @dygidin1606
    @dygidin1606 4 года назад

    Спасибо за контент!
    Правильно ли я понимаю, что если мы перейдем в чат пользователя, а затем обновим страницу, то сообщения уже не загрузятся?
    Так как пропсы передаете через роутер?

    • @gofrontend2220
      @gofrontend2220  4 года назад +1

      Да все верно. Чтобы иметь возможность инициализировать приложение например на странице чата, то нужно запрашивать список чатов из API на странице чата. Потом фильтровать их основываясь на id чата в route.query и отфильтрованные данные распихивать в сообщения

    • @anton-trofimov
      @anton-trofimov 3 года назад

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

  • @sapolio1538
    @sapolio1538 4 года назад +1

    в 1:05:04 можно тогда спокойно передавать this.SET_MESSAGE_TO_CHAT(user)
    а в сторе принимать его же и делать axios.put(chatstUrl + user.id, user)

  • @TheMeo0w
    @TheMeo0w 4 года назад

    Очень интересная подача материала! Смотрится легко, понятно, с удовольствием.
    Но у меня есть пара вопросов:
    1) Почему вы поместили метод SEND_MSG_TO_CHAT во Vuex store? Ведь этот метод никак не меняет state (не вызывает мутаций).
    2) Кроме того, первым параметром этого метода вы указываете {commit}, хотя в теле метода этот commit никак не используете - ESLint такое не пропустит. В таких крайних ситуациях, не лучше-ли использовать в качестве первого параметра нижнее подчёркивание (символ "_"?
    Поправьте, если я не прав.

    • @gofrontend2220
      @gofrontend2220  4 года назад

      Алексей Олегович 1) да можно из компонента вызвать этот запрос. Разницы никакой, просто удобнее когда все запросы к апи в одном месте. Но вы правы.
      2) не знаю прокатит ли нижнее подчеркивание, но я обычно просто пустые {} ставлю, либо другой конструкцией через {context}. Тут я просто забыл:)

  • @fessan8918
    @fessan8918 4 года назад +1

    Вопрос. А почему все таки mapState используете? а не mapGetters

    • @gofrontend2220
      @gofrontend2220  4 года назад +1

      Fessan если надо взять данные из стейта в компонент - это mapState. Если надо условно сложить данные А и Б из стейта и потом получить в компонент - пишем геттер складывающий их и получаем в компоненте через mapGetters

  • @user-dn1mm9bu2l
    @user-dn1mm9bu2l 4 года назад

    Всё очень круто, но очень бы хотелось подобное видео, но fullstack js (Mongo, Express, Vue или Nuxt и Node.js) это была бы бомба

    • @gofrontend2220
      @gofrontend2220  4 года назад

      Семён Прохоров этого точно не будет, так как я не фулстак:)

  • @igormuryy5722
    @igormuryy5722 Год назад

    Это на vue 2?

  • @TheMurtukov
    @TheMurtukov 3 года назад +1

    Зачем каждый файл префиксовать приставкой v-?

  • @fessan8918
    @fessan8918 4 года назад

    Привет! Уже не первый раз помогли твои видео. Не планируешь развиваться дальше? Патреон? чатик в телеге ?

    • @gofrontend2220
      @gofrontend2220  4 года назад

      Fessan я с трудом на просто видео время нахожу:) чатик в телеге - это мой личный тг:)

  • @user-bo5fj7um5z
    @user-bo5fj7um5z 2 года назад

    Не работает( Ругается на vuex, даже если скачать с гита авторскую версию. В результате не подтягиваются данные из store. Обновление версии все только портит.

  • @gofrontend2220
    @gofrontend2220  11 месяцев назад +1

    ! ВАЖНО - Читайте описание к видео ! 🔥🔥🔥👆👆👆

  • @sapolio1538
    @sapolio1538 4 года назад +3

    Для тех, кому было, как мне, лень доставать мак из рюкзака (десять раз уже пожалел в самом деле), открою очевидное:
    "start": " somewhat --watch & npm run serve" не сработает не вендах, потому что одиночный амперсанд для винды не повод не дожидаться окончания вашего вотча )
    Для таких ленивцев есть полезный (не один такой он) пакетик.
    Делай раз в депенденсиз:
    "npm-run-all": "^4.1.5"
    Делай два в скриптах:
    "start": "npm-run-all --parallel json serve",
    "json": "json-server --watch db.json",
    "serve": "vue-cli-service serve",
    Хотя... можно было поставить server --watch в конец?.. Хм...

    • @gofrontend2220
      @gofrontend2220  4 года назад

      Есть еще такая штука: www.npmjs.com/package/concurrently

    • @ArankFreedom
      @ArankFreedom 4 года назад

      зачем ставить пакет если моно использовать &&

    • @gofrontend2220
      @gofrontend2220  4 года назад

      AndreyGovorukhin не везде && прокатит. Не на всех ОС

    • @ArankFreedom
      @ArankFreedom 4 года назад

      @@gofrontend2220 на винде норм

  • @gomzaleshuan5260
    @gomzaleshuan5260 3 года назад +1

    Баг: если из списка контактов зайти на контакт, потом перейти в чаты и нащать кнопку Back, то ошибка "contact_data is undefined"

  • @Viktorres1
    @Viktorres1 2 года назад

    Результат не запускается, проект не понятно как начинать(

  • @sapolio1538
    @sapolio1538 4 года назад

    last-message можно чуть короче: {{user_data.chat.slice(-1)[0].text}}

  • @vitker2254
    @vitker2254 2 года назад

    А как перенести на телефон?

  • @sekirogenshiro2210
    @sekirogenshiro2210 4 года назад

    Все нормально ,только не погружаются из джсон файла данные.путь пробовал и 3000 и 8080 и со слешами, никак, подгружает либ страницу (выводит в мутации страницу, либо ничего)

    • @user-eu8yo6hx7n
      @user-eu8yo6hx7n 3 года назад

      Да потому что тут бэка нет, который на 3000 порту по запросу отдает инфу. Например на node написаную без него весь фронт бесполезен.

  • @suleymandzhemilov5926
    @suleymandzhemilov5926 4 года назад +1

    у меня при введении сообщения удаляется пользователь из базы данных.
    Как исправить, подскажете ?
    заранее спасибо )
    классный контент

    • @gofrontend2220
      @gofrontend2220  4 года назад

      Suleyman Dzhemilov затираете пользователя. Смотрите что вы шлете в базу при вводе сообщений

  • @losbur5416
    @losbur5416 4 года назад +1

    Классный канал, но не для новичков в js

  • @typokrat
    @typokrat 4 года назад

    Сколько стоит час вашей работы?

    • @gofrontend2220
      @gofrontend2220  4 года назад

      YuG_FM я не работаю фриланс

    • @typokrat
      @typokrat 4 года назад

      @@gofrontend2220 а какова среднерыночная стоимость часа спеца вашего уровня?

    • @gofrontend2220
      @gofrontend2220  4 года назад

      YuG_FM нет ее. Везде все по-разному. Деньги не за знания платят, а за обязанности рабочие. Ну в среднем думаю 1500-2000 час

  • @ant3413
    @ant3413 2 года назад

    а как сделать такой же чат для телеграмма?

    • @burG1XUS
      @burG1XUS 11 месяцев назад

      что это значит?)

  • @volodymyrfursov5948
    @volodymyrfursov5948 3 года назад

    Было бы побольше видео :(

  • @monzon_8
    @monzon_8 3 года назад

    Array.filter должен ВЕРНУТЬ булево значение, результатом ее будет искомый объект (первый, для которого коллбек вернул true)
    зачем вы учите неокрепшие умы использовать программную навигацию vue-router, когда есть замечательный компонент router-link. vuejs - это html-first, соответственно все, что может быть выражено декларативно (в html), должно быть выражено именно так

  • @user-gy3rm9hf7m
    @user-gy3rm9hf7m 4 года назад

    я щас скачал проект чтоб посмотреть его и выходит такая ишибка(Failed to load resource: net::ERR_CONNECTION_REFUSED
    createError.js?2d83:16 Uncaught (in promise) Error: Network Error
    at createError (createError.js?2d83:16)
    at XMLHttpRequest.handleError (xhr.js?b50d:83))
    и никакие кнопки не работают
    как исправить?

    • @gofrontend2220
      @gofrontend2220  4 года назад

      Бехруз Абдувалиев npm install делали?

    • @user-gy3rm9hf7m
      @user-gy3rm9hf7m 4 года назад

      @@gofrontend2220 да конечно

    • @user-cl1gh4ho5b
      @user-cl1gh4ho5b 4 года назад +1

      у меня такая же ошибка

    • @user-eh4fc9zw7w
      @user-eh4fc9zw7w 3 года назад

      json-server запускали ? npx json-server --watch db.json

  • @user-fh6yd3uk2w
    @user-fh6yd3uk2w Год назад

    Не запускается, куча ошибок, а было бы весьма интересно сделать такое приложение, увы :(

    • @burG1XUS
      @burG1XUS 11 месяцев назад

      так перепиши код)

  • @user-kj8mf3be9c
    @user-kj8mf3be9c 4 года назад

    куча ошибок.. почему весь процесс не показать?

  • @user-eu8yo6hx7n
    @user-eu8yo6hx7n 3 года назад

    чел, а на чем бэк, ты бы не мог отдать инфу про бэк, а то без него это бесполезни ))

    • @gofrontend2220
      @gofrontend2220  3 года назад

      Дима Рапид тут нет бека

    • @user-eu8yo6hx7n
      @user-eu8yo6hx7n 3 года назад

      @@gofrontend2220 тогда куда стучится axios на порт 3000?

    • @gofrontend2220
      @gofrontend2220  3 года назад

      Дима Рапид в локальный фронтовый файл с json

    • @user-eu8yo6hx7n
      @user-eu8yo6hx7n 3 года назад

      @@gofrontend2220 тк если я его запускаю он мне говорит что 3000 не отвечает(((

    • @user-eu8yo6hx7n
      @user-eu8yo6hx7n 3 года назад

      @@gofrontend2220 Failed to load resource: net::ERR_CONNECTION_REFUSED :3000/contact