Ответы пользователя по тегу Vue.js
  • Возможно ли совместить однофайловые компоненты vue с кодом php?

    Основная цель компонентов - переиспользование кода. Бэкенд фрагментарен по той же причине, чтобы можно было использовать куски кода. Сейчас даже можно использовать части одного фреймворка в другом.

    Что из бэкенда можно засунуть в такой компонент, чтобы я мог использовать его на своем проекте? Возьмем ту же отправку сообщений с лендинга. Компонент должен иметь универсальный параметр с адресом роута, который разрулит фреймворк на сервере и сделать некое универсальное действие для отправки сообщения. В вашем случае это вызов mail(), но в случае другого человека это либо вызов api mailchimp, либо smtp сервиса, либо вовсе помещение какой-то команды в очередь. выходит, максимум, что вы можете поместить в такой компонент - это ссылку на команду sendMail(), тело которой ради все той же универсальности и переиспользования должно писаться вне компонента. Иначе вы получаете бесполезный непереиспользуемый компонент.
    Ответ написан
    Комментировать
  • В чем концептуальный смысл ухода с jQuery на более современные front end инструменты?

    Выгода от использования Vue в сравнении с jquery заметна уже после того, как на атрибут disabled кнопки в форме влияет 2 и более условий, не говоря о состоянии других элементов. Если отображение ваших элементов на странице не зависит от состояния других объектов, то значит вам и правда не нужны фреймворки. Они требуются, если вы пилите нечто более-менее динамичное.
    Ответ написан
    Комментировать
  • Как правильно подключить темплейт компонента vue.js в laravel?

    Почитать документацию к версии ларавел 5.4 - https://laravel.com/docs/5.4/frontend#writing-vue-... там все есть, включая example.vue
    Ответ написан
    Комментировать
  • Экземпляр Vue один или на каждый компонент?

    Экземпляр самого Vue один, блоки по смыслу на компоненты разносите. Несколько экземпляров имеет смысл делать только если из всего проекта вы собираетесь переделать на vue пару страниц и остальной код никогда в vue не загонять (да и то нежелательно, так как в будущем либо мнение поменяете, либо кто-то другой, кто будет после вас проектом заниматься решит так сделать и вас проклянет). Сам с этим встретился в одном проекте. Плюс, если решите потом SPA сделать из своего приложения, то к нескольким экземплярам vue роутер не сможете прикрутить. Ну и сразу ориентируйтесь на то, какие данные будут в нескольких компонентах использоваться и изначально берите их из vuex (хотя для многостраничного приложения это не особо актуально).
    Ответ написан
    Комментировать
  • Как присвоить во VueJS свойству data json объект из ответа Facebook?

    data: {
                facebookData:null
            },
            methods: {
                connectToFacebook: function() {
                    var self = this;
                    FB.login(function(response) {
                        if (response.authResponse) {
                            $.getJSON("{{ route('callback') }}", function(data){
                                console.log(data[0]);
                                self.facebookData = data;
                            });
                        } else {
                            return false;
                        }
                    });
                }
            }


    Но это без стрелочных функций, я ecmascript новый, к сожалению, не использую. Надеюсь, кто из фронтендеров красивее напишет.
    Ответ написан
    Комментировать
  • Как правильно связать Backend и Vue.js (Frontend)?

    laracasts.com - посмотрите уроки, чтобы понять суть разработки на vue, дальше - дело практики и документации. "Правильно пересесть - неправильно пересесть" - надо просто начать переписывать код, страницу за страницей. Когда уже свободно освоитесь (а vue довольно легкий, не сложнее jquery точно), можете задумываться о том, что архитектура несколько топорная получилась (но это же первое ваше приложение на vue, так что ничего страшного) и надо бы тут вынести код в компоненты, а тут фильтры написать общие и т.д. Ну и отказываться от jquery необязательно если что, хотя он вам скорее всего и не понадобится.

    Могут по началу возникнуть проблемы с интеграцией сторонних js плагинов, которые вы плохо понимаете или которые написаны откровенно плохо. Первые стоит изучить и внедрять в виде компонентов и только компонентов (у меня были подобные проблемы на старте в плагином datatables, нашел статью, где автор интегрировал их в виде компонента и сделал по аналогии, после этого проникся компонентами vue), вторые выкидывать и забывать о них, как о страшном сне.
    Ответ написан
    4 комментария
  • Зачем использовать Vue вместе с Laravel?

    Добавили, чтобы вы jquery спагетти не использовали. Vue (как и другие js фреймворки) сокращает количество кода на клиенте и уменьшает его запутанность.

    Для примера вы создаете админку для магазина. У вас есть следующие варианты:
    1. Делать статическую страницу. На клиенте никакой логики, все вычисляет сервер. При новой покупке администратор должен будет обновить страницу.
    2. Писать динамический фронтэнд с использованием vue, angular и чего угодно остального. Бэкэнд шлет вам уведомления через вэбсокеты о новых заказах без перезагрузки страницы.
    2.1 Вы берете jquery и сначала все идет хорошо. Первые полчаса. Затем ваш код обрастает огромным количеством обработчиков событий. Если товар заканчивается на складе, его надо убрать из таблицы, затем если заказ отменяется, его надо вернуть в таблицу. Вы его вернули, но почему-то кнопка в строке с ним, вызывающая модальное окно перестала реагировать на события, потом еще что-то случилось и еще. Проблемы с jquery растут как снежный ком и вы проклинаете свое решение создать динамическую админку.
    2.2 Вы используете современный js фреймворк. Vue в этом плане хорош низким порогом изучения. Вы загружаете определенные обхекты и в зависимости от их свойств vue сам строит таблицы (с проданными и непроданными товарами), скрывает лишние элементы (не показывать такую-то кнопку, если товар всего 1), отправляет плагинам команды на обновление при изменении объектов и следит за тем, чтобы события, которые отваливались при jquery подходе работали.

    Я не сказать что спец в javascript, но (именно поэтому) меня vuejs на текущем проекте очень выручает.
    Ответ написан
    Комментировать