最近需到一个在开发中很常见错误,原因是自己开发时没仔细检查代码,删除数据时把data中return一并删除了,导致路由跳转点击无反应。data函数在Vue中是一个特殊的方法,用于定义组件的本地状态。经翻阅相关文档,了解到它必须返回一个对象,该对象包含在组件中使用的各种数据属性。
错误写法:
javascript
export default {
data() {
}
}
如果您的data函数没有返回任何东西(或者返回null或一个非对象值),那么您可能会看到类似的错误消息,指示数据未定义或未预期的类型的错误。如下:
javascript
vue.min.js:6 TypeError: Cannot read property '__ob__' of undefined
at a.e.$destroy (vue.min.js:6)
at destroy (vue.min.js:6)
at b (vue.min.js:6)
at b (vue.min.js:6)
at b (vue.min.js:6)
at a.__patch__ (vue.min.js:6)
at a.e.$destroy (vue.min.js:6)
at destroy (vue.min.js:6)
at b (vue.min.js:6)
at $ (vue.min.js:6)
如上问题,解决办法是要么不写data(){},要么必须写return返回对象;确保您的data函数始终返回一个对象,以包含您需要在组件中使用的数据属性。
一个基本的data函数示例,其中返回一个对象,包含一个名为message的属性:
javascript
export default {
data() {
return {
message: 'Hello Vue!'
}
}
}
在以前项目开发中有人遇到此类错误,大家一起分析过,没想到事隔大半年因自己粗心大意,也犯了这么低级错误。