bug内容:
原文:
[Vue warn]: Failed to resolve component: test
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.
at <App>
必应翻译:
未能解决组件:测试
如果这是一个本地自定义元素,请务必通过编译器从组件分辨率中排除它。
原因预读:
逻辑问题:父组件都已经挂载上了,子组件就没法加载上父组件了!!!
解决步骤:
//定义父组件
const app = Vue.createApp({
data() {
return {
num: 123,
}
},
template: `
<test :content="num" />
`,
})
//父组件挂载
const vm = app.mount('#root');
//子组件传值
app.component('test',{
// 传值载体
props:{
// 对传入的content进行校验
content:{
type:Number, // 浅校验
request:true, // 是否必传
default:123, // 默认值
default:function(){
return 123;
},
// 深校验
validator:function(value){
return value<1000;
},
}
},
template:`{{content}}`,
})
代码原文解释:
1、定义父组件部分
2、父组件挂载
3、子组件编写
解决步骤:
从bug方向出发
--->子组件有问题
--->检查子组件:子组件无语法格式拼写问题
--->测试子组件内部:分段注释测试代码,发现bug不变
--->父组件没引用上?
--->检查父组件:父组件无语法格式拼写问题
--->分析书写逻辑:父组件创建--》父组件挂载--》子组件传给父组件
逻辑问题:父组件都已经挂载上了,子组件就没法加载上父组件了!!!
---》解决方案: --》父组件创建 app = Vue.createApp
--》子组件传给父组件 app.component('test',{})
--》父组件挂载 app.mount()
等所有组件都已经相互连接了,才能挂载