3

vue-resource を vueify で動作させることができないようです。main.js ファイルに含める 1 つの vue コンポーネントを定義しました。

import Vue from 'vue'
import MyComponent from './my-component.vue'

new Vue({
    el: '#app',
    components: {
        myComponent: MyComponent
    }
});

私の vue コンポーネント ファイルは次のようになります。

<script>
    import Vue from 'vue';
    // import VueResource from 'vue-resource'
    // Vue.use(VueResource);

    export default {
        template: '#my-component-template',

        created: () => {
            Vue.$http.get('/my/api/123',
                data => {
                    console.log(data)
                }, err => {
                    console.log("Error");
                    console.error(err);
                }
            );
        }
    }
</script>

現在の状態では、次のエラーが表示されます。

Uncaught TypeError: Cannot read property 'get' of undefined

コンポーネント ファイルの vue-resource に関する 2 行をコメント アウトすると、受け取るエラーは次のようになります。

Uncaught TypeError: Cannot redefine property: $url

パッケージ.json:

{
  "private": true,
  "scripts": {
    "prod": "gulp --production",
    "dev": "gulp watch"
  },
  "devDependencies": {
    "bootstrap-sass": "^3.3.6",
    "gulp": "^3.9.1",
    "laravel-elixir": "^5.0.0",
    "laravel-elixir-vueify": "^1.0.3",
    "vue": "^1.0.25",
    "vue-resource": "^0.8.0"
  }
}

ガルプファイル:

var elixir = require('laravel-elixir');
require('laravel-elixir-vueify');

elixir(function(mix) {
    mix.browserify('main.js');
});

SOに関する既存の回答はすべて結果をもたらしませんでした。助けてください。

4

3 に答える 3

3

var VueResource = require('vue-resource');ルート ビュー インスタンスに追加しようとしましたか? も追加Vue.use(VueResource)

于 2016-06-22T16:56:43.650 に答える
1

main.jsを使用してプラグインを追加すると、すべての Vue インスタンスに属性がVue.use(VueResource)追加されます。$httpコンポーネント ファイルでやり直す必要はありません。次に、次を使用しますthis.$http

    created: () => {
        this.$http.get('/my/api/123',
            //...
        );
    }
于 2016-06-22T12:50:01.697 に答える