我对JS和vue有点陌生,不确定我是否正确理解了文档.上面写着:

由于现代JavaScript的局限性(以及Object.observe的放弃),Vue无法检测到属性的添加或删除.由于Vue在实例初始化期间执行getter/setter转换过程,因此数据对象中必须存在一个属性,以便Vue对其进行转换并使其具有react 性.

这是否也包括普通数组,还是数组中的元素在javascript中不算作"属性"?

推荐答案

关于docs人:

由于JavaScript的限制,Vue无法检测到对数组的以下更改:

  1. 直接使用索引设置项目时,例如vm.项目[indexOfItem]=新价值
  2. 当您修改数组的长度时,例如vm.项目.长度=新长度

当使用以下设备时,Vue将保持react 性(Array change detection):

  1. pop()
  2. shift()
  3. 取消移位
  4. 拼接()
  5. 排序()
  6. 反向

所以问题is state.array.push reactive ?的答案是Yes

Vue.js相关问答推荐

虚拟DOM在Vue中姗姗来迟

Vue 3 需要 main.js 中的文件

过渡如何在 Vue JS 3 中的图像上工作?

为什么普通对象在 Vue3 中自动变成响应式的?

vue3 ssr 不返回纯 html

Vue,Composition API:如何从react 式转换中跳过深度嵌套的属性?

Vuetify 扩展面板,面板标题左侧带有图标

使用 Vue 和 JS 下载 CSV 文件

Webpack 你可能需要一个合适的加载器来处理这个文件类型

如何更新手动安装的 vue 组件上的props?

vue-test-utils:无法覆盖属性 $route,这通常是由于插件将该属性添加为只读值

Vue.js 处理多次点击事件

Nuxt 应用程序在刷新动态路由时返回 404(Tomcat 服务器)

如何使用 JavaScript 按索引删除数组元素?

如何从 vue 组件调用 App.vue 中的方法

Vue cli 在 css 中构建生产更改不透明度

是否有 v-cloak 逆?

在 Vue 应用程序中创建一个类的单个实例

Axios 捕获错误请求失败,状态码 404

仅在提交时验证 vuetify 文本字段