2017-09-23 17 views
2

は、私は他のコンポーネント(App.vue)でVUEコンポーネント(Global.vue)を使用しようとしましたが、そこ使用VUEコンポーネントは、

は、部品のマウントに失敗しました:機能しませテンプレートをまたはレンダリング定義

エラーです。

Global.vue

<template> 
    <div class="global-view"> 
    <p>Global </p> 
    </div> 
</template> 

<script> 
export default { 
    name: 'global' 
} 
</script> 

App.vue

<template> 
    <div id="app"> 
    <global></global> 
    <router-view></router-view> 
    </div> 
</template> 

<script> 
export default { 
    name: 'app' 
} 
</script> 

main.js:イムにあなたが必要

import Vue from 'vue' 
import App from './App' 
import router from './router' 

Vue.component('global', require('./components/Global')) 

Vue.config.productionTip = false 

new Vue({ 
    el: '#app', 
    router, 
    template: '<App/>', 
    components: { App } 
}) 
+0

このhttps://github.com/sagalbot/vue-select/issues/127を参照してください - おそらくrequireステートメントが問題を抱えている場合、Johnathanは代わりにインポートを使用することを提案します。 –

+0

@RichardMatsenはい、インポート作品 – ramazan793

答えて

1

あなたがします "あなたのコンポーネントオプション内に新しいキーを追加する必要があります。そこから「./components/Global」

からあなたがそれを使用したいコンポーネントファイル内のポートのコンポーネントを。

`インポートグローバル構成要素を「登録する」。

あなたのアプリコンポーネントの外観を以下に示します。

<template> 
    <div id="app"> 
    <global></global> 
    <router-view></router-view> 
    </div> 
</template> 

<script> 
import Global from './components/Global 

export default { 
    name: 'app' 
    components: { 
    'global': Global, 
    } 
} 
</script> 

<global></global>がこの時点でレンダリングできるはずです。

+0

OPはすでにVue.componentを使用してコンポーネントをグローバルに公開しています。 – Bert

+1

@Bert:OPは 'new' Vue'インスタンスで使用するコンポーネントを' components'オブジェクトに追加することによってそのコンポーネントを登録する必要があります。 –

+0

いいえ、世界に登録されているときは、彼はしません。 – Bert

1

私はインポートを使用する代わりに、(main.jsに)必要とし、それは私の作品:

import Global from './components/Global.vue 
Vue.component('global', Global)` 
関連する問題