vue-cli中引入mock后,请求数据报错axios未定义

//main.js
import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'


Vue.config.productionTip = false;
Vue.prototype.$ajax = axios;


/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,

  components: { App },
  template: '<App/>'
})
//HelloWorld重写文件
<script>
  import '../mock/mock'
  export default {
    name: 'HelloWorld',
    data () {
      return {
        msg:'hello world',
        data:[]
      }
    },
    mounted:function () {
      console.log(111);
      this.getList()
    },
    methods:{
      getList(){
        this.$axios.get('/api/data').then((res)=>{
          console.log(res);
        })
      }
    }
  }
</script>
//mock.js文件
import Mock from 'mockjs'
//使用mockjs模拟数据
Mock.mock('/api/data', (req, res) => {
  return {
    data: ['a','b']
  }
})

clipboard.png

不论怎么该一致报错未定义~求教下到底哪里没配置好?
参考的这篇文章https://segmentfault.com/a/11...

阅读 3.7k
3 个回答

又翻了很多文章,终于找到了问题所在,

//helloworld文件
  import axios from 'axios'//组件在这里引入,在main.js文件中引入无效    

调用的地方

this.$axios.get('/api/data').then((res)=>{
          console.log(res);
        })

改为

axios.get('/api/data').then((res)=>{
          console.log(res);
        })
this.$axios.get('/api/data').then((res)=>{
  console.log(res);
})

改成

this.$ajax.get('/api/data').then((res)=>{
  console.log(res);
})
this.$ajax.get('/api/data').then((res)=>{
  // ...
})

你的Vue原型链上绑的是$ajax

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏