Vue Home.vue
Wed Nov 03 2021 14:06:27 GMT+0000 (Coordinated Universal Time)
Saved by @devdave
<template> <div class="homepage__onLoad"></div> <Nav /> <!-- home page --> <div class="homepage__container"> <div class="homepage__wrapper"> <!-- create post component --> <Post-create :loggedUsername="loggedUsername" :loggedFirstname="loggedFirstname" v-on:postUpdated="handlePostUpdated" /> <!-- create post component --> <!-- Post component --> <Post v-for="post in posts" :key="post.id" :post="post" class="post__container profile__contentContainer--animation" v-on:postUpdated="handlePostUpdated" /> <!-- Post component --> </div> </div> <!-- home page --> <div class="responsiveSpacer"></div> </template> <script> // => Plugins import axios from "axios"; // => Components import Nav from "@/components/Nav"; import Post from "@/components/Post"; import PostCreate from "@/components/Post-create"; export default { data() { const loggedUser = localStorage.getItem("userId"); const loggedUsername = localStorage.getItem("username"); const splittedUser = loggedUsername.split(" "); const loggedFirstname = splittedUser[0]; return { posts: [], errors: [], loggedUser: loggedUser, loggedUsername: loggedUsername, loggedFirstname: loggedFirstname, }; }, components: { Nav, Post, PostCreate, }, methods: { handlePostUpdated: async function() { console.log("handle post updated"); await this.loadPosts(); }, loadPosts: async function() { const API_SERVER = "http://localhost:3000"; try { const response = await axios.get(API_SERVER + `/posts`, { headers: { Authorization: "Bearer " + localStorage.getItem("token"), }, }); this.posts = response.data; } catch (error) { this.errors.push(error); } }, }, async mounted() { await this.loadPosts(); }, }; </script>
Comments