TypeError:无法读取未定义的 vue js 的属性“get”

Posted

技术标签:

【中文标题】TypeError:无法读取未定义的 vue js 的属性“get”【英文标题】:TypeError: Cannot read property 'get' of undefined vue js 【发布时间】:2018-05-08 01:18:33 【问题描述】:

我很难理解 vue.js。我目前正在尝试弄清楚如何获取或调用 API。我已经成功设置了我的index.html app.js 也可以设置包含在node_modules 中的包。

当我尝试运行我的文件时,我在控制台上收到了TypeError: Cannot read property 'get' of undefined。它说我需要安装 vue-resource 并添加下面的两行代码。

我应该在哪里准确插入它们?它在我的 app.js 中吗?抱歉我的无知,但我还是 javascript 和 Vue.js 的新手

var Vue = require('vue');
Vue.use(require('vue-resource'));

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <script src="https://unpkg.com/vue" ></script>

    <title>article-app</title>
  </head>

  <body>
    <div id="vue-app">
       articles 
    </div>

    <script src="app.js"></script>
    <script src="main.js" ></script>
  </body>
</html>

var article = new Vue(
    el: '#vue-app',

    data: 
        articles: ''
    ,

    created: function () 
        this.fetchData();
    ,        

    methods: 
        fetchData: function () 
            var that = this
            this.$http.get('http://localhost/aim-beta/rest/export/json/article'),
                function (data) 
                    this.articles = data.main.temp;
                
        
    

);

【问题讨论】:

type="text/javascript" in 为简单起见,您可以使用 es6 fetch。 ufus.cc/2UXdW 【参考方案1】:

在一个名为plugins/vue-resource.js的单独文件中配置vue-resource

const Vue = require('vue');
const Resource = require('vue-resource');

Vue.use(Resource);

然后在您的app.js 中要求该文件,如下所示:

require('./plugins/vue-resource.js');

new Vue(
  el: '#vue-app',
  data: 
    articles: ''
  ,
  created: function () 
    this.fetchData();
  , 
  methods: 
    fetchData: function () 
      this
        .$http
        .get('http://localhost/aim-beta/rest/export/json/article',
          function (data) 
            this.articles = data.main.temp;
        )
    
  
);

因此,您的新文件夹结构将如下所示:

- index.html
- app.js
+ plugins
  - vue-resource.js

使用原生 JavaScript Fetch API

// You don't need vue resources!!!
// require('./plugins/vue-resource.js'); 
// Read more about Fetch API: [https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch][1]

new Vue(
  el: '#vue-app',
  data: 
    articles: ''
  ,
  created: function () 
    this.fetchData();
  , 
  methods: 
    fetchData: function () 
      fetch('http://localhost/aim-beta/rest/export/json/article', 
        method: 'GET'
      ).then(function(data) 
        console.log(data);
        this.articles = data.main.temp;
      )
    
  
);

【讨论】:

谢谢,试试这个。如果我有多个require,是否需要将它们分隔在不同的文件中? 是的!将它们分开使您的应用模块化,让您单独跟踪和配置第三方模块 但是,构建应用程序取决于您的决定 嗨,我收到了一个错误Uncaught ReferenceError: require is not defined 你用的是browserify还是Webpack?

以上是关于TypeError:无法读取未定义的 vue js 的属性“get”的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取 Vue.js 中 foreach 内未定义的属性“详细信息”

渲染中的 Vue.js 错误:“TypeError:无法读取未定义的属性‘长度’”

TypeError:无法读取未定义的 vue-resource.js:284 的属性“替换”

vue-router.esm.js?8c4f:2181 TypeError:无法读取未定义的属性“loggedIn”

TypeError:无法读取未定义的属性“v4”

TypeError:无法读取未定义的属性“标题”