webpack 无法读取未定义vue的属性“post”

klh5stk1  于 2023-04-06  发布在  Webpack
关注(0)|答案(2)|浏览(171)

感谢阅读我的问题。
我读过关于我的问题
VUE JS 2 + WEBPACK Cannot read property 'get' of undefined VUE RESOURCE
但是我的系统没有读Vue var:(
我有一个vue组件调用app.vue,我需要使用vue-resource从我的帖子中获取数据。但是很多时候错误是:

TypeError: Cannot read property 'post' of undefined
at VueComponent.loadingProcess

你有办法解决吗?
My app.vue

<script>
    var Vue = require('vue');
    //Vue.use(require('vue-resource'));
    //Vue.use();

    export default {
          data () {
                return {
                    msg: 'Hello from vue-loader! nice!',
                    user: {}
            }
    },
    mounted: function () {
        this.loadingProcess();
    },
    methods: {
        loadingProcess: function () {
          
            var urlPost;
            var answQSend = {...};
            var that = this;

            var jsonSend = {
                "form_data": answQSend,
                "prod_id": 3
            };

            Vue.$http.post(urlPost, jsonSend, {
                "headers": {
                    "content-type": "application/json"
                }
            })
            .then(function(response) {

            })
            ...
9jyewag0

9jyewag01#

首先,感谢@Bert,他很有耐心,帮我找到了解决方案
在我的main.js中,我更改了这一行

var VueResource = require('vue-resource');

import VueResource from "vue-resource"

并使用

Vue.use(VueResource);

然后,在我的app vue组件中,我更改了

Vue.http.post

为了

this.$http.post

这样我们就修正了错误!

n8ghc7c1

n8ghc7c12#

您使用的是export default script,因此您的this关键字不能访问Vue示例的原始模块,但可以访问导入的对象组件。最有可能的情况是,使用require,vue-resource仅对原始模块可用,因此使用import VueResource from“vue-resource”,使用es6语法,vue-resource库被提升为内部模块,在它与Vue示例一起被计算和缓存在浏览器上之前。在某些情况下,人们不使用箭头函数并退出范围。另一种选择是使用Vue示例本身而不是导出默认对象。查看http://voidcanvas.com/import-vs-require/,你可能会比我得到更多。

相关问题