错误信息:Unknown custom element;did you register the component correctly (Vue组件找不到)
其实这个错误与Vue关系不大,是由渲染元素的机制导致的,由于html在渲染时按照代码顺序从上到下进行渲染。<script>new Vue({el:'.box',data:{}})//此时会引起报错Vue.component("weixinuser",{template:`<div>{{messag.
·
其实这个错误与Vue关系不大,是由渲染元素的机制导致的,由于html在渲染时按照代码顺序从上到下进行渲染。
<script>
new Vue({
el:'.box',
data:{
}
})//此时会引起报错
Vue.component("weixinuser",{
template:`
<div>{{message}}</div>
`,
data(){
return{
message:""
}
},
beforeMount(){
bus.$on("weixinmessage",data=>
this.message=data
)
}
})
var bus=new Vue();
Vue.component("weixinauthor",{
template:`
<div>
<input v-model="content"/>
<button @click="submit()">发布</button>
</div>
`,
data(){
return {
content:""
}
},
methods:{
submit(){
bus.$emit("weixinmessage",this.content)
}
}
})
</script>
渲染组件标签会有一个从内到外的过程,在实例化外部的Vue对象时,如果还没有定义组件(类比变量使用前需要先定义),就有可能导致找不到这个组件的注册信息。
正确的定义方法:
<script>
Vue.component("weixinuser",{
template:`
<div>{{message}}</div>
`,
data(){
return{
message:""
}
},
beforeMount(){
bus.$on("weixinmessage",data=>
this.message=data
)
}
})
var bus=new Vue();
Vue.component("weixinauthor",{
template:`
<div>
<input v-model="content"/>
<button @click="submit()">发布</button>
</div>
`,
data(){
return {
content:""
}
},
methods:{
submit(){
bus.$emit("weixinmessage",this.content)
}
}
})
new Vue({
el:'.box',
data:{
}
})
</script>
(!–先注册后使用)
(!–先渲染内部再渲染外部)
更多推荐
已为社区贡献1条内容
所有评论(0)