'Json being displayed instead on Vue component

**ChatController**

am new to laravel and vue i just got this and wanted learn some new skills. This controller queries a single user from my model called PostRequest i use one-to-one relationship

class ChatController extends Controller
 {
    public function getMessages()
   {

    return view('user.message'); //response()->json($contacts);
   }
   public function get()
  {
    $email = Auth::user()->email;
    $contacts = PostRequest::with('user')->where([['email', $email]])->orderBy('id','DESC')- 
    >first()->user;
    return response()->json($contacts, 200);
   
 }

}

ChatComponent

<template>
  <div class="chat-app">
    <Conversation :contact="selectedContact" :messages="messages" />
    <ContactsList
        v-if="contacts"
        :contacts="contacts"
    />
 </div>
 </template>
  <script>
   import Conversation from './Conversation';
   import ContactsList from './ContactsList';
    export default {
     props: {
        user: {
          type: Object,
          required: true
      }
  },
  data() {
      return {
          selectedContact: null,
          messages: [],
          contacts: null
      }
  },
  mounted() {
    //console.log('LoggedIn User',this.user);
    axios.get('/user/contacts').then((response) => {
       // console.log('contact', response.data);
        if(this.contacts == undefined){return}
        this.contacts = response.data;
    }).catch((error) => {
        console.log(error.message);
    });
},
  components: {Conversation, ContactsList}
 }
</script>

ContactListComponent

this component will pass my user data into message.blade

<template>
<div class="contacts-list" >
    <ul v-for="contact in contacts" :key="contact.id">
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quaerat, autem.</p>
        <li >
            <div class="avatar">
                <img :src="contact.user.reqPhoto" :alt="contact.user.name">
            </div>
            <div class="contact">
                <p class="name">{{contact.user.name}}</p>
                <p class="email">{{contact.user.email}}</p>
            </div>
        </li>
    </ul>
</div>
</template>
<script>
 export default {
   props: {
      contacts: {
        type: [],
        default: null
        }
     }
 }

message blade this blade file recieves the user data from vue, have tried to view page source nothing is coming in

<section class="inbox">
 <div class="container">
    <div class="row">
       <div class="col-md-8 text-center">
                <div class="card">
                    <div class="card-header">Chat with:</div>
                    <div class="card-body" id="app">
                        <chat-component :contacts="contacts"></chat-component>
                       
                    </div>
                </div>
            </div>
            @include('layouts.sidenav')
        </div>
    </div>
</section>

web Routes

i also tried using same routes its still returns same json file even after trying different browsers

Route::get('/user/messages', [ChatController::class, ('getMessages')])->name('msg');
Route::get('/user/contacts', [ChatController::class, ('get')]);

app.js

require('./bootstrap');

window.Vue = require('vue').default;

Vue.component('chat-component', 
require('./components/ChatComponent.vue').default);
Vue.component("Conversation", 
require("./components/Conversation.vue").default);
Vue.component('contact', 
require('./components/ContactsList.vue').default);
Vue.component("MessagesFeed", 
require("./components/MessageFeed.vue").default);
Vue.component("MessageComposer", 
require("./components/MessageComposer.vue").default);

const app = new Vue({
   el: '#app',
});


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source