VUE API REFERENCE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Lưu trữ dữ liệu vào Vuex trong VueJS 2

Trong bài tập này, mình sẽ tìm hiểu cách sử dụng Vuex để lưu trữ dữ liệu nhận được từ API và hiển thị dữ liệu đó trong các component của VueJS 2. Vuex là một trạng thái quản lý để giữ cho trạng thái của ứng dụng được quản lý hiệu quả.

Bước 1: Cài Đặt Vuex

Trước tiên, hãy cài đặt Vuex bằng cách chạy lệnh sau:

npm install vuex

Bước 2: Tạo Store Vuex và Mutations

Tạo store/index.js để quản lý Vuex:

// src/store/index.js
import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    // Trạng thái lưu trữ dữ liệu
    data: [],
  },
  mutations: {
    // Mutation để cập nhật dữ liệu
    setData(state, newData) {
      state.data = newData;
    },
  },
  actions: {
    // Action để gửi request API và cập nhật dữ liệu
    fetchData({ commit }) {
      // Thay thế url bằng endpoint thực tế của API
      const apiUrl = 'https://api.example.com/data';
      // Sử dụng Axios hoặc Fetch API để gửi request API
      // Sau khi nhận được dữ liệu, gọi commit để cập nhật trạng thái
      // Ví dụ sử dụng Axios:
      // axios.get(apiUrl).then(response => commit('setData', response.data));
    },
  },
  getters: {
    // Getter để lấy dữ liệu từ trạng thái
    getData: (state) => state.data,
  },
});

Bước 3: Gửi dữ liệu từ API vào Store

Chỉnh sửa store/index.js để sử dụng Axios và thêm actions:

// src/store/index.js
import Vue from 'vue';
import Vuex from 'vuex';
import axios from 'axios'; // Import Axios

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    data: [],
  },
  mutations: {
    setData(state, newData) {
      state.data = newData;
    },
  },
  actions: {
    async fetchData({ commit }) {
      const apiUrl = 'https://api.example.com/data';
      try {
        // Gửi request API và nhận dữ liệu
        const response = await axios.get(apiUrl);
        // Gọi mutation để cập nhật trạng thái với dữ liệu mới
        commit('setData', response.data);
      } catch (error) {
        console.error('Error fetching data from API:', error);
      }
    },
  },
  getters: {
    getData: (state) => state.data,
  },
});

Bước 4: Sử dụng Getters trong Component

Chỉnh sửa component để sử dụng getters:

// src/views/Home.vue
<template>
  <div>
    <h1>Welcome to Home</h1>
    <div v-if="data.length > 0">
      <ul>
        <li v-for="item in data" :key="item.id">{{ item.name }}</li>
      </ul>
    </div>
    <div v-else>
      <p>Loading data...</p>
    </div>
  </div>
</template>

<script>
export default {
  name: 'Home',
  computed: {
    data() {
      // Sử dụng getter để lấy dữ liệu từ store
      return this.$store.getters.getData;
    },
  },
  created() {
    // Gọi action để fetch dữ liệu khi component được tạo
    this.$store.dispatch('fetchData');
  },
};
</script>

<style>
/* CSS styles (if any) */
</style>

Trong bài tập này, mình đã sử dụng Vuex để quản lý trạng thái của ứng dụng VueJS 2. Đã tạo ra một store Vuex với mutations để cập nhật dữ liệu và actions để gửi request API và cập nhật trạng thái. Bằng cách sử dụng getters, mình đã hiển thị dữ liệu từ Vuex trong component một cách thuận tiện và linh hoạt. Chúc mừng bạn đã thành công!

test php

Bài giải

-------------------- ######## --------------------

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Bài tập VueJS 2: Two-way binding trong VueJS 2

Bài tập VueJS 2: Two-way binding trong VueJS 2

Bài tập VueJS 2: Xử lý sự kiện trong VueJS 2

Bài tập VueJS 2: Xử lý sự kiện trong VueJS 2

Bài tập VueJS 2: Components trong VueJS 2

Bài tập VueJS 2: Components trong VueJS 2

Bài tập VueJS 2: Binding dữ liệu trong VueJS 2

Bài tập VueJS 2: Binding dữ liệu trong VueJS 2

Sử dụng directives (v-bind, v-model) để hiển thị và cập nhật dữ liệu bằng VueJS 2

Sử dụng directives (v-bind, v-model) để hiển thị và cập nhật dữ liệu bằng VueJS 2

Tạo nút và xử lý sự kiện khi nút được nhấn trong VueJS 2

Tạo nút và xử lý sự kiện khi nút được nhấn trong VueJS 2

VueJS 2 Components: Tạo và quản lý ToDo List đơn giản

VueJS 2 Components: Tạo và quản lý ToDo List đơn giản

Các quy tắc trong VueJS 2

Các quy tắc trong VueJS 2

Tạo component và binding data trong VueJS 2

Tạo component và binding data trong VueJS 2

Tìm hiểu Scoped CSS trong VueJS 2

Tìm hiểu Scoped CSS trong VueJS 2

Sử dụng forceUpdate trong VueJS 2

Sử dụng forceUpdate trong VueJS 2

Sử dụng v-for trong VueJS 2

Sử dụng v-for trong VueJS 2

10 best practices trong VueJS 2

10 best practices trong VueJS 2

Các tạo Custom Directives trong VueJS 2

Các tạo Custom Directives trong VueJS 2

Sử dụng V-for và V-if trong VueJs 2

Sử dụng V-for và V-if trong VueJs 2

Sử dụng methods trong VueJS 2

Sử dụng methods trong VueJS 2

Khác nhau giữa slot và scoped slots trong VueJS 2

Khác nhau giữa slot và scoped slots trong VueJS 2

Tìm hiểu Slots trong VueJS 2

Tìm hiểu Slots trong VueJS 2

Xử lý Custom Events trong VueJS 2

Xử lý Custom Events trong VueJS 2

Ref và Reactive trong VueJS 2

Ref và Reactive trong VueJS 2

Top