2016-10-30 30 views
10

मैं एक विश्व स्तर पर पंजीकृत घटक (Vue.component के साथ) एक एकल फाइल घटक के अंदर उपयोग करने के लिए कोशिश कर रहा हूँ लेकिन मैं हमेशाएकल फ़ाइल घटकों के अंदर VueJS 2 वैश्विक घटकों का उपयोग कैसे करें?

vue.common.js:2611[Vue warn]: Unknown custom element: <my-component> - did you register the component correctly? 

उदाहरण के लिए हो रही है:

main.js:

... 
Vue.component('my-component', { 
    name: 'my-component', 
    template: '<div>A custom component!</div>' 
}) 
... 

home.vue:

<template> 
    <div> 
     <my-component></my-component> 
    </div> 
</template> 
<script> 
    module.exports = { 
     name: 'home' 
    } 
</script> 

अगर मैं यह स्थानीय स्तर पर रजिस्टर, यह ठीक काम करता है:

<template> 
    <div> 
     <my-component></my-component> 
    </div> 
</template> 
<script> 
module.exports = { 
    name: 'home', 
    components: { 
     'my-component': require('./my-component.vue') 
    } 
} 
</script> 
+0

आपको कहीं और घटक की आवश्यकता है अन्यथा इसे डाउनलोड नहीं किया जाएगा। – Elfayer

+0

@Elfayer सब कुछ Vueify द्वारा निर्मित बंडल के भीतर है और मुख्य घटक jjs फ़ाइल में आवश्यक है। –

उत्तर

2

Component.vue

<template><div>A custom component!</div></template> 

<script>export default { code here... }</script> 

home.vue में इस घटक का उपयोग करें:

<template> 
    <div> 
     <my-component></my-component> 
    </div> 
</template> 

<script> 
    import component from './component.vue' 
    export default { 
    components: { my-component: component } 
    } 
</script> 
+0

मैं स्थानीय रूप से * मेरा-घटक * पंजीकृत नहीं करना चाहता हूं, मैं इसे पूरे ऐप का उपयोग करने में सक्षम नहीं होना चाहता हूं और इसके कारण मैं इसे * Vue.component * –

21

आप की जरूरत नहीं है module.exports। आप mycomponent.vue फ़ाइल के भीतर इसे वैश्विक रूप से घटक पंजीकृत कर सकते हैं।

<template> 
    <div>A custom component!</div> 
</template> 
<script> 
    export default {} 
</script> 

फिर main.js को

import MyComponent from './component.vue' 
Vue.component('my-component', MyComponent); 

जोड़ सकते हैं या मैं आम तौर पर उन्हें एक 'वैश्विक' फ़ाइल उन्हें आयात कि मुख्य में में रजिस्टर।

इसके बाद आपको ऐप में कहीं भी मेरे घटक का उपयोग करने की अनुमति देनी चाहिए।

+0

का उपयोग करके वैश्विक रूप से पंजीकृत करना चाहता हूं। मैं ब्राउज़र/vueify और ES5। इसके कारण मुझे _module.export_ और _require_ का उपयोग करना होगा। –

+0

'=' को निर्यात डिफ़ॉल्ट = {} ' – Alexander

+1

में हटाया जाना चाहिए बहुत बहुत धन्यवाद। मैंने दस्तावेज़ों को पढ़ने के दो दिन और एसओ को यह समझने की कोशिश की कि वैश्विक स्तर पर एकल पृष्ठ घटक कैसे घोषित किया जाए, जबकि सिंटैक्स बस 'Vue.component (' my-घटक ', MyComponent) था; ':) – Overdrivr

संबंधित मुद्दे