Как сообщить главному компоненту Vue, что пользователь зарегистрировался?

Как сообщить главному компоненту Vue (в моем случае это App.vue) что пользователь зарегистрировался (я использую vue-router)?

App component:

<template>
  <div id="app">
    <Nav v-bind="isLogin" @authenticate="auth" ref="nav"></Nav>
    <router-view></router-view>
  </div>
</template>

<script>
import Nav from "./components/parts/Nav";

export default {
  name: 'App',
  data(){
    return{
      isLogin:false
    }
  },
  components: {
    Nav
  },
  methods:{
    auth(){
      alert('ok')
    }
  }
}
</script>

Nav component:

<template>
  <div>
    <ul class="bg-info">
      <li>
        <router-link to="/">Home</router-link>
      </li>
      <li>
        <router-link to="/login">Login</router-link>
      </li>
      <li v-if="!isLogin">
        <router-link to="/signUp">SignUp</router-link>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
name: "Nav",
  props:[
      'isLogin'
  ]
}
</script>

SignUp component:

<template>
  <div>
    <section id="signUp">
      <form @submit.prevent="login" id="login-form">
          <div class="form-group">
            <label for="">first name</label>
            <input type="text" name="fname" required value="name" class="fname">
          </div>
          <div class="form-group">
            <label for="">last name</label>
            <input type="text" name="sname" required value="sname" class="sname">
          </div>
        <div class="form-group">
          <label for="">email</label>
          <input type="email" name="email"  value="[email protected]" class="email">
        </div>
        <div class="form-group">
          <label for="">password</label>
          <input type="password" name="password" required value="123123" class="password">
        </div>
        <button class="btn btn-secondary">Save</button>
      </form>
    </section>
  </div>
</template>

<script>
import $ from 'jquery';

export default {
name: "SignUp",
  data(){
    return {
      vue_this:this
    }
  },
  methods:{
    login: function (){

      const vue_this = this;

      $.post({
        url:'http://api/api/users',
        dataType: 'json',
        data:{
          fname: $('.fname').val(),
          sname: $('.sname').val(),
          email: $('.email').val(),
          password: $('.password').val(),
        },
        success:function(res){
          if (res.response.status === 'success'){
            vue_this.$router.push('/profile/12')
          }
        },
        error:function (error){
          console.log(error)
        }
      })

    }
  }
}
</script>

Ответы (0 шт):