首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Vue -如何识别[__ob__:观察者]?

Vue -如何识别[__ob__:观察者]?
EN

Stack Overflow用户
提问于 2019-05-21 22:44:29
回答 4查看 5K关注 0票数 4

在我的组件中,我循环遍历一个data属性,它是一个对象,以检查是否设置了任何值。其中一个值是一个数组,但是当它为空时,我通过控制台记录它的值,它会返回

[__ob__: Observer]

如果我测试它是一个数组还是一个对象,它不会对它们中的任何一个返回true。只有在添加了元素后,它才会被识别为数组。

我还试着测试它是否是一个函数(entry[1] === "function") --不是真的。

那么什么是[__ob__: Observer],我如何进行检查才能识别这个特定的东西呢?我需要为它破例。

EN

回答 4

Stack Overflow用户

发布于 2019-05-21 23:06:11

VueJS具有“反应性”,这意味着它们会为你观察对象。因此,在您的基本数据选项中,Vue将为您监视属性。

代码语言:javascript
代码运行次数:0
运行
复制
new Vue({
  data() {
    return {
      myArray: []
    }
  }
})

在这种情况下,myArray将是一个可观察的对象,这只是一个包装器,您仍然可以使用所有标准的数组操作。

这意味着你仍然可以这样做:

代码语言:javascript
代码运行次数:0
运行
复制
if (this.myArray && this.myArray.length > 0) {
 Do something with they array
}

有关VueJS如何处理数据选项的更多信息。https://vuejs.org/v2/guide/reactivity.html

票数 2
EN

Stack Overflow用户

发布于 2019-11-09 13:56:24

如果你的目标是调试Observer Vue实例中包含的东西,这是我的解决方案:

打印出template块中变量属于您的组件

在此之后,您可以重新格式化输出的结构以观察细节。

例如:

代码语言:javascript
代码运行次数:0
运行
复制
<template>
  <div>
    {{ your_variable }}
  <div>
</template>

希望这能对你有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2019-05-21 22:59:47

如果您的目标是检查数组是否为空,为什么不直接检查arrayVariable.length === 0[__ob__: Observer]是一个具有Vue注入反应性的对象。你可以检查typeof arrayVariable,你应该得到object

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56240840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档