@adam_carraway

Как перерисовать один компонент?

Я использую vue-router(только начал изучать, разбираюсь что к чему).
<div id="app">
    <header_v :authdata="{{ json_encode($url_data) }}"></header_v>
    <router-view></router-view>
</div>

В компоненте header_v у меня есть переменная login (авторизован пользователь или нет).
router-view - здесь выводятся страницы сайта в зависимости от роута. Так вот как сделать чтобы когда в компоненте header_v менялось значение login то компонет router-view перерисовывался (обновлялся)?
Или как такое вообще реализовывается ?
header_v
import axios from 'axios';
    export default {

        props: [
            'authdata'
        ],
        data: function () {
            return {
                login: this.authdata,
                email: '',
                password: ''
            }
        },
        mounted() {
        },
        watch: {},
        methods: {
            exit: function () {
                let t = this;

                axios.post('/api/exit', {
                    _token: $('meta[name="csrf-token"]').attr('content')
                }).then(response => {
                    t.login = null;
                    window.location = '/';
                })
            },
            loginB: function () {
                let t = this;
                axios.post('/api/login', {
                    email: this.email,
                    password: this.password,
                }).then(response => {
                    t.login = response.data;
                    $("#authmodal").modal('hide');
                    t.$router.go();
                })

            },
        }
    }
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kirill-93
Что значит перерисовывался? Вы внутри ставьте условия для авторизованного и неавторизованного пользователя и они сами будут работать. Например:
<header>
    <div v-if="user">Здравствуйте, {{ user.name }}</div>
    <button v-else>Войти</button>
</header>

user - это для примера, вы сюда можете что угодно подставить, в зависимости от того, как вы отличаете авторизованного пользователя от неавторизованного
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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