Vue3报错:Property “xxx” was a***essed during render but is not defined on instance.
翻译:属性“xxx”在呈现期间被访问,但没有在实例上定义。
其实就是在模板上有,但是在script上没有定义
很多同学跟说这不是报错,是警告,其实只要是在渲染页面时出现的问题,我们都可以说成是报错
因为如果有警告,到项目发布的时候是会出现问题的
所以不管是报错还是警告,出现了就必须先解决掉
跟着这个报错的还有下面两个报错:Unhandled error during execution of render function
意思是在执行渲染函数时未处理的错误Unhandled error during execution of scheduler flush. This is likely a Vue internals bug.
这个就牛逼了,警告说可能是vue内部的bug,执行调度器刷新期间未处理的错误。
这三个报错都是一起出现的,所以找问题还是挺好找的,解决bug的提供一下思路
出现bug的背景是我在某一个文件中写了太多的代码,所以想把其中一部分封装成组件再引用进来,然后就新建了一个带有初始模板的页面,再把原页面中的部分代码函数样式复制过去
初始模板如下:
<template>
</template>
<script>
</script>
<style>
</style>
通过第一个报错,模板上有,但是没有定义,我们可以去script
找,发现script
里写了没有问题,然后第二三个报错并不能给我什么有利的信息,然后我就发现script
中没有加上组合式 API即setup,加上了就没报错了
所以问题的出现原因是在新创建的vue模板文件中没有加上语法糖
解决问题就是<script setup>
通过此次报错,需要记一下在新建vue文件封装组件的时候检查标签有没有少写