从api到vue视图缓慢获取数据的问题

时间:2019-04-22 16:01:38

标签: laravel api vue.js

我在从laravel api到vue视图中缓慢获取数据时遇到问题,我在这里进行了教程:

import axios from 'axios';

const client = axios.create({
    baseURL: '/api',
});

export default {
    all(params) {
        return client.get('users', params);
    },
    find(id) {
        return client.get(`users/${id}`);
    },
    update(id, data) {
        return client.put(`users/${id}`, data);
    },
    delete(id) {
        return client.delete(`users/${id}`);
    },
};

<script>
import api from "../api/users";

export default {
  data() {
    return {
      message: null,
      loaded: false,
      saving: false,
      user: {
        id: null,
        name: "",
        email: ""
      }
    };
  },
  methods: {
    onDelete() {
      this.saving = true;
      api.delete(this.user.id).then(response => {
        this.message = "User Deleted";
        setTimeout(() => this.$router.push({ name: "users.index" }), 1000);
      });
    },
    onSubmit(event) {
      this.saving = true;

      api
        .update(this.user.id, {
          name: this.user.name,
          email: this.user.email
        })
        .then(response => {
          this.message = "User updated";
          setTimeout(() => (this.message = null), 10000);
          this.user = response.data.data;
        })
        .catch(error => {
          console.log(error);
        })
        .then(_ => (this.saving = false));
    }
  },
  created() {
    api.find(this.$route.params.id).then(response => {
      this.loaded = true;
      this.user = response.data.data;
    });
  }
};
</script>

这是非常缓慢地从api加载数据,我首先在视图中看到空的输入,过一会儿我看到了数据,如果我从laravel打开api数据,我会立即看到数据,所以我的问题是如何加快速度?还是老兄,我做错了什么?

1 个答案:

答案 0 :(得分:1)

每当我在Vue中使用API​​时,通常都会在打开Vue然后像这样传递它之前进行大部分API调用。

<vue-component :user="'{!! $user_data !!}'"></vue-component>

但是如果您必须在Vue组件中执行此操作,则不确定是否会比您的方法有所改进,但是我会像这样用“安装”对其进行设置。

export default {
    mounted() {
        api.find(this.$route.params.id).then(response => {
          this.loaded = true;
          this.user = response.data.data;
        });
    }
}

heres也是有关Axios以及如何在Vue中使用HTTP Requets的很好的教程。

希望这回答了您的问题,祝您好运!