sdwh / Vue.js-CRUD

Example Code of Vue.js About how to CRUD From web API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vue.js-CRUD

Example Code of Vue.js About how to CRUD From web API

Step 1 Vue-CLI

npm install vue-cli -g
vue create projectNmae

Step 2 Bootstrap-Vue

npm i bootstrap bootstrap-vue

add src/components/Posts.vue update main.js to import bs4, bs4-vue, Posts.vue

npm run serve

verify results.

Step 3 Vuex

npm i vuex
mkdir src/store

add actions.js, getters.js, index.js, mutations.js, state.js update main.js to use store update getters.js

export default {
    getAllPosts: (state) => {
        return state.posts
    }
}

update state.js, insert fake data

export default {
    posts : [ ... ]
}

update Posts.vue to fill daata from store

<script>
    import {mapGetters} from 'vuex'
    export default {
        name: 'Posts',
        computed: mapGetters(["getAllPosts"])
    }
</script>

Step 4 fetch from Web API

npm i axios

update state.js, remove fake data

updatea actions.js

import axios from 'axios'
export default{
    async getPostAction({ commit }){
        const response = await axios.get(
            'https://jsonplaceholder.typicode.com/posts?_limit=5'
        )
        commit('getPosts', response.data);
    }
}

update mutations.js

export default{
    getPosts: (state, posts) => (state.posts = posts)
}

update Posts.vue, when created components call getPostAction to fetch data

Step 5, Post Data

add src/components/AddPost.vue

  • methoids: onSubmit()
  • data: return form : {}

update App.vue, add add-post tag update Posts.vue

Step 6, Delete Data

update Posts.vue : add delete button

<div class="mt-3">
    <b-button-group size="sm">
        <b-button @click="removePostAction(p.id)" variant="danger">Delete</b-button>
    <b-button-group>
</div>

update action.js

  • async removePostAction({commit}, id)

update mutations.js

  • deletePost: (state, id) => state.posts.filter(c => c.id !== id)

Step 7, Vue Router

npm install vue-router

update main.js : to user router object

add components\Home.vue : add routing anchor link

update components\App.vue : add router-link tag

<div id="nav">
    <router-link to="/">Home</router-link> |
    <router-link to="/about">About</router-link>
</div>

add components\About.vue

add src\router.js

About

Example Code of Vue.js About how to CRUD From web API

License:MIT License


Languages

Language:Vue 69.0%Language:JavaScript 23.9%Language:HTML 7.1%