当前位置: 首页 > 知识库问答 >
问题:

Vue:增加新反应属性的不同选项?

冯星阑
2023-03-14

我试图理解添加反应属性的不同方法。我知道我不能直接向根级别添加属性,所以我在数据中设置了一个< code>user对象:

data() {
   return {
       user: {
       }
   }
}

从这里开始,我就感到困惑了,因为文档说使用Vue.set是向对象添加新的反应性属性的方法,所以在这个例子中:Vue.set(this.user,'first_name','Bob')

但是,我尝试了一种不同的方法,制作了一个触发方法的按钮,并在其中执行了以下操作:

testFunc() {
    let names = ["Bob", "Vin", "Mark"]
    this.user.test_property = names[Math.floor(Math.random() * names.length];
}

这奏效了。我在 Vue Dev 工具中进行了测试,看到属性test_property添加到对象中,并在每次单击按钮时对其进行更改。如果 Vue.set() 是创建新的反应式属性的唯一方法,为什么会这样呢?

最后,我注意到如果我执行下面的<代码>

共有2个答案

彭鸿哲
2023-03-14

当然this.user.test_property可以将属性test_property添加到对象。但是这个属性不是反应性的。

new Vue({
  el: '#app',
  data() {
    return {
      user: {}
    }
  },
  created() {
    this.user.name = 'a name'
  },
  methods: {
    changeName () {
      this.user.name = 'b name'
    },
    changeAge () {
      this.user.age = '23'
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <p>{{ user.name }}</p>
  <input v-model="user.age" />

  <button @click="changeName">click me to change name</button>
  <button @click="changeAge">click me to change age</button>
</div>
赵昊阳
2023-03-14

看起来您正在使用带有选项api的Vue v2。在这种情况下,您只需执行<code>即可。property_name=value 并从模板访问它。

 类似资料:
  • 我有这个密码 此代码显示所有类别。我有 如何使ifadd attribute selected to select(在映射函数中)

  • 问题内容: 我一直在网上搜索所有可能的本机StyleSheet选项及其值的列表。找不到,是否有人链接到此类文档? 问题答案: 它们是按组件类型分隔的: 视图 图片 文本 弹性盒 转变 在文档中您看到枚举的位置,例如在文本样式文档页面上: 这些通常与您在网络上找到的css属性非常相似。 更新 如下@ muhammad-hannan回答的那样,您还可以在此处找到完整的布局属性列表。

  • 问题内容: 我是React的新手,可能缺少正确的术语来找到我的问题的解决方案。没那么难。 我正在构建一个简单的应用程序,它显示一组问题,一次显示一个问题。回答一个问题后,显示下一个问题。 我有一个呈现3个复选框的组件,每个复选框代表一个可能的问题。 在我的主要组件内部,我这样调用该组件: 是我的函数,该函数递增以显示下一个问题: 一切正常,除了:当显示下一个问题时,我希望所有3个复选框都不再选中。

  • 本文向大家介绍Vue v2.4中新增的$attrs及$listeners属性使用教程,包括了Vue v2.4中新增的$attrs及$listeners属性使用教程的使用技巧和注意事项,需要的朋友参考一下 前言 多级组件嵌套需要传递数据时,通常使用的方法是通过vuex。如果仅仅是传递数据,而不做中间处理,使用 vuex 处理,未免有点杀鸡用牛刀。Vue 2.4 版本提供了另一种方法,使用 v-bin

  • 在下面的 VueJS 2 组件中,我可以将 imgdata 属性添加到 area.questions 数组中的每个问题。它的工作原理 - 我可以从控制台中看到.log存在imgdata具有值的问题。但是,尽管使用了$set它仍然没有反应,并且imgdata不在视图中!我怎样才能使它被动?

  • 下表(按对象名称排序)列出了 Microsoft Office 中已有对象添加的属性。对象属性CommandBarButton Mask Picture CommandBars DisableAskAQuestionDropdown DisableCustomizeFileDialog AllowMultiSelect ButtonName DialogType FilterIndex Filte