@danilo9

Vue3: Как сделать сайт без перезагрузки (загружать из API)?

Здраствуйте Есть сайт vc.ru, при переходе по страницам выполняется ajax запрос вида "урл_текущей_страницы?mode=ajax" (пример https://vc.ru/new?mode=ajax), возвращает json c тремя основными параметрами:

module.page - содержит данные о контенте загружаемой страницы
module.ajaxify - содержит title, meta, и разные заголовки страницы
module.sidebar - боковое меню сайта
module.auth - данные о текущем клиенте
По выполнению ajax сайт получает данный json и обновляет DOM элементы, собственно заголовок, meta, сайдбар и тд, без перезагрузок. И создаётся эффект перехода на другую страницу без перезагрузки. Как такое реализовано? Известно что на Vue и собственном php Фреймворке Osnova

Я пробовал сделать подобное, но ничего путного не вышло

Я же использую Laravel 8 версии и Vue 3, запускаю через Docker локально, и даже сделал автоматическое развёртывание у себя на сервере по обновлению в github (то бишь pipeline).

Что я сделал сейчас:

Я создал Vue компонент, который ожидает параметра Url, он делает запрос на этот url и ожидает json.component, Vue.createElement преобразует уже в html и выводит, но это в теории, но ничего не работает
<script>
export default {
    mounted() {
        this.load();
    },
    props: ['page'],
    data () {
        return {
            components: '',
        }
    },
    render: function (createElement) {
        return createElement(
            this.components
        );
    },
    methods: {
        load: function (){
            var v = this;
            v.$http
                .get(this.page)
                .then(function(resp) {
                    v.components = resp.data.components;
                })
                .catch(function(error) {
                    document.getElementById('error').write(error.toString());
                });
        }
    }
}

</script>
v.$http - это axios
  • Вопрос задан
  • 346 просмотров
Решения вопроса 1
pLavrenov
@pLavrenov
Разработка сайтов
В любой не понятной ситуации сотри документацию. Лучше всего прочитать ее сначала и до конца. Будет понимание что оно умеет.

router.vuejs
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы