Ответы пользователя по тегу Vue.js
  • Как исправить ошибку "You are using the runtime-only build of Vue where the template compiler is not available"?

    Decadal
    @Decadal
    Там все написано. В репозитории Vue приведен список версий. Вам нужен Full а не рантайм-онли.
    Ответ написан
    Комментировать
  • Как объединить vue.js и PHP с MYSQL?

    Decadal
    @Decadal
    Вам предстоит узнать еще много нового, в рамках одного ответа всё не рассказать.
    Vue это фронтенд, штука, отвечающая за интерактивность интерфейса, поэтому в её документации практически нет ничего о работе с сервером. Но сама работа с сервером есть, строится она на основе запросов на сервер. Для вас актуален AJAX (это тоже фронтенд, но не часть vue).
    AJAX позволяет запросить что-то у сервера без перезагрузки страницы. Теперь мы подбираемся к PHP - запрос должен обработать серверный язык, и лучше бы вам использовать фреймворк, а не чистый PHP.
    В общем виде - сервер разбирает параметры запроса и на их основе отстраивает запрос в базу данных (SQL->DML). Здесь начинается mysql.
    В ответе на sql-запрос содержится срез данных, которые запросил пользователь. Ответ преобразуется сначала в массивы или объекты выбранного вами серверного языка, а потом в JSON (или xml, или другой формат данных), после чего отдается в обработчик запроса AJAX.

    Чтобы дать рабочий пример, нужно скинуть вам целый проект. Ознакамливайтесь с упомянутыми мной технологиями отдельно, вам придется потратить на это пару вечеров)
    Ответ написан
    Комментировать
  • Когда нужно использовать computed, а когда methods во Vue.js? И в чем их разница?

    Decadal
    @Decadal
    Если результат вашей функции не опирается на внутренние данные, используйте methods.
    Например, у вас есть внутри vue некая range, которая служит верхней границей для Math.random. Если реализовать при помощи метода, то каждый раз он будет возвращать новое значение Math.random.
    Реализация через computed будет ожидать изменений вашего range, а иначе вернет то же число, которое сгенерилось первый раз
    js:
    var app = new Vue({
            el: '#content',
            data: {
                range: 1
            },
            computed: {
                rand: function () {
                    return Math.random() * this.range ; //ожидалось что app.rand будет давать случайное число
                }
            },
            methods: {
                show: function (event) {
                    alert('Случайное число: ' + this.rand); // но нет, число одно и то же
                },
           }
    });

    html:
    <div id="content">
    <button v-on:click="show">показать число</button>
    </div>


    В итоге оно сгенерирует число один раз и будет выводить его постоянно при клике на кнопку. Если вы введете в консоли app.range = 2; то генерируемое число разово изменится.

    Пример для лайков, упомянутый в комментарии:
    new Vue({
       el: '#content',
       data: {
          likes: 0,
       },
    });

    <div id="content"><button v-on:click="likes += 1">+1</button></div>
    Ответ написан
    9 комментариев