VueJS - 组件中的组件
VueJS - Components within components
我希望有一个非常简单的问题:我想 link 来自 VueJS 组件内的组件。
我目前拥有的:
create.js(将使用 webpack 渲染到 create.min.js)
var Vue = require('vue')
var App = require('./components/App.vue')
var Language = require('./components/Language.vue')
var vm = new Vue(App,'#app')
components/App.vue
<template>
<h1>Create!</h1>
<ss-lang></ss-lang>
<pre>
{{ $data | json }}
</pre>
</template>
<script>
module.exports = {
name : 'Create',
components : {
'ss-lang' : new Language()
}
}
</script>
components/Language.vue
<template>
<select v-model="selectedLanguage">
<option v-for="language in languages" v-bind:value="language.value">
{{ language.name }}
</option>
</select>
</template>
<script>
module.exports = {
name : 'Language',
data : function(){
return {
selectedLanguage : '',
languages : [
{value: 'be_en', name: 'English'},
{value: 'be_fr', name: 'Français'},
{value: 'be_de', name: 'Deutsch'},
{value: 'be_nl', name: 'Nederlands'},
{value: 'be_es', name: 'Español'}
]
}
}
}
</script>
当我在浏览器中打开时,我收到 "Uncaught TypeError: Language is not a function" 的消息。我希望通过将 'ss-lang' 连接到语言就足以连接(因为我在 create.js 中添加了语言)。
我做错了什么? (例如,我缺少文档的哪一部分?)
您应该在 App.vue 中导入 Language 组件。在您的示例中,它仅在 create.js 的上下文中导入:
//App.vue
<script>
var Language = require('./relative-path-to-the-component/Language.vue')
module.exports = {
name : 'Create',
components : {
'ss-lang' : Language
}
}
</script>
我希望有一个非常简单的问题:我想 link 来自 VueJS 组件内的组件。
我目前拥有的:
create.js(将使用 webpack 渲染到 create.min.js)
var Vue = require('vue')
var App = require('./components/App.vue')
var Language = require('./components/Language.vue')
var vm = new Vue(App,'#app')
components/App.vue
<template>
<h1>Create!</h1>
<ss-lang></ss-lang>
<pre>
{{ $data | json }}
</pre>
</template>
<script>
module.exports = {
name : 'Create',
components : {
'ss-lang' : new Language()
}
}
</script>
components/Language.vue
<template>
<select v-model="selectedLanguage">
<option v-for="language in languages" v-bind:value="language.value">
{{ language.name }}
</option>
</select>
</template>
<script>
module.exports = {
name : 'Language',
data : function(){
return {
selectedLanguage : '',
languages : [
{value: 'be_en', name: 'English'},
{value: 'be_fr', name: 'Français'},
{value: 'be_de', name: 'Deutsch'},
{value: 'be_nl', name: 'Nederlands'},
{value: 'be_es', name: 'Español'}
]
}
}
}
</script>
当我在浏览器中打开时,我收到 "Uncaught TypeError: Language is not a function" 的消息。我希望通过将 'ss-lang' 连接到语言就足以连接(因为我在 create.js 中添加了语言)。
我做错了什么? (例如,我缺少文档的哪一部分?)
您应该在 App.vue 中导入 Language 组件。在您的示例中,它仅在 create.js 的上下文中导入:
//App.vue
<script>
var Language = require('./relative-path-to-the-component/Language.vue')
module.exports = {
name : 'Create',
components : {
'ss-lang' : Language
}
}
</script>