你能帮我解决这个问题吗?我尝试通过单击按钮加载远程数据但我有一个错误:

未捕获错误:找不到模块'http'...

我用 tiny-json-httpaxios 写了几个测试 . 创建"vue-cli-error-http"项目文件夹后的步骤:

$ npm install -g vue-cli   

$ cd vue-cli-error-http   
$ vue init webpack .   
$ npm install axios --save
$ npm install tiny-json-http --save

$ npm run dev

我在src / components /中创建了一个新组件 LoaderTiny.vue

<template>
  <div class="hello">
    <h1>{{msg}} </h1>
    <hr />
    <button v-on:click="getData">Get Data</button>

  <ul v-if="posts && posts.length">
    <li v-for="(post, index) in posts" :key="`p-${index}`">
      <p><strong>{{post.title}}</strong></p>
      <p>{{post.body}}</p>
    </li>
  </ul>

  <ul v-if="errors && errors.length">
    <li v-for="(error, index) in errors" :key="`error-${index}`">
      {{error.message}}
    </li>
  </ul>
</div>

</template>

<script>
import tiny from "tiny-json-http";
import axios from 'axios';

export default {
  name: "LoaderTiny",
  data() {
    return {
      msg: "Welcome to Your Vue.js App",
      posts: [],
      errors: []
    };
  },
  methods: {
    getData: function(event) {
      const reqURL = `http://jsonplaceholder.typicode.com/posts`;

      /*
      this.posts = [
        {
          userId: 1,
          id: 1,
          title:
            "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
          body:
            "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
        },
        {
          userId: 1,
          id: 2,
          title: "qui est esse",
          body:
        "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
        }
      ];
      */

      /*
      tiny.get( {reqURL} ).then(response => {
        // JSON responses are automatically parsed.
        console.log(response);
        this.posts = response.body.Items;
      }).catch(err =>  this.errors.push(err))
      */
      try {
        axios.get(reqURL)
          .then(response => {
            // JSON responses are automatically parsed.
            this.posts = response.data;
          })
          .catch(e =>  this.errors.push(e));
      } catch (err) {
        console.log(err);
      }
    }
  }
};
</script>

并在路由器( src/router/index.js ):

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import LoaderTiny from '@/components/LoaderTiny'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/test',
      component: LoaderTiny
    },
    {
      path: '/',
      component: HelloWorld
    },
  ]
})