Advertisement
mrmeihem

vue+json

Jul 7th, 2021
648
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <template>
  2.   <div id="app" :class="[$style.wrapper]">
  3.     <header>
  4.       <h1>My personal cost</h1>
  5.     </header>
  6.     <main>
  7.       <AddPayment @addNewPayment="addData"/>
  8.       <br/>
  9.       <PaymentsDisplay :list="['test', 'data']" />
  10.       {{ this.paymentsList }}
  11.     </main>
  12.   </div>
  13. </template>
  14.  
  15. <script>
  16. import PaymentsDisplay from "./components/PaymentsDisplay.vue";
  17. import AddPayment from "./components/AddPayment.vue";
  18.  
  19.  
  20. export default {
  21.   name: "App",
  22.   components: {
  23.     PaymentsDisplay,
  24.     AddPayment
  25.   },
  26.   data: () => ({
  27.     paymentsList: [],
  28.     data: {
  29.       form :  "qw"
  30.     }
  31.   }),
  32.   methods: {
  33.     addData(data){
  34.       console.log("push to state",data)
  35.       // this.paymentsList.push(data)
  36.       this.paymentsList = [...this.paymentsList, data]
  37.     },
  38.     fetchData() {
  39.       return fetch("https://raw.githubusercontent.com/mrmeihem/vue-js/main/spendings.json")
  40.           .then(result => result.json())
  41.           .catch(error => console.log(error))
  42.     }
  43.   },
  44.   created(){
  45.     this.paymentsList = this.fetchData();
  46.     console.log(this.paymentsList);
  47.   }
  48. };
  49. </script>
  50.  
  51. <style lang="scss" module>
  52. #app {
  53.   font-family: Avenir, Helvetica, Arial, sans-serif;
  54.   -webkit-font-smoothing: antialiased;
  55.   -moz-osx-font-smoothing: grayscale;
  56.   text-align: center;
  57.   color: #2c3e50;
  58.   margin-top: 60px;
  59. }
  60. .wrapper {
  61. }
  62. </style>
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement