javascript - v-model 的这个 ['key' ] 和 $data ['key' ] 之间有什么区别?

标签 javascript vue.js

请查看下面的代码片段,共有三个演示,前两个演示工作正常(v-model 工作正常)。

但对于最后一个,当您在 <input> 中输入内容时,你会看到this['test 1']不会更新。 <h2>Name:<span>{{this['test 1']}}</span></h2>始终是初始值。

看来v-model绑定(bind)一个克隆 this['test 1'] 。我们必须使用$data['test 1']对于这种情况。

有谁知道造成差异的原因吗?

app = new Vue({
  el: "#app",
  data () {
    return {
    'test': "Cat in Boots",
    'test 1': 'Snow White'
    }
  },
  methods: {
    testCase1: function(){
      this['test'] = 'I am Cat in Boots' //works
      this['test 1'] = 'I am Cat in Boots' //works
    }
  }
})
span {
  background-color:green
}

a {
  color:red
}
<script src="https://unpkg.com/vue@2.5.16/dist/vue.js"></script>
<div id="app">
    <button @click="testCase1()">Test Case 1</button>It will change the data successfully.
    <h2>Name:<span>{{test}}</span></h2>
    <input v-model="test">
    <h2>Name:<span>{{$data['test 1']}}</span></h2>
    <input v-model="$data['test 1']">
    <h2>Name:<span>{{this['test 1']}}</span></h2>
    <input v-model="this['test 1']"><a>Type something in this input, the name will not be changed.</a>
</div>

最佳答案

您不能在模板中使用 this,因为它不引用模板中的组件,因此在这种情况下需要使用 $data

关于javascript - v-model 的这个 ['key' ] 和 $data ['key' ] 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50008446/

相关文章:

javascript - 如果已被用户脚本覆盖,如何调用 Chrome 实现的原始 `console.log`?

php - 当不同文件的内容发生变化时,如何刷新 HTML 文件?

javascript - 如何使用 reactjs 和 material ui 删除表中的特定文本字段 onclick of a button

vue.js - Vuelidate 复选框验证

javascript - vue.js TreeView 初学者

javascript - 为什么 CSS 过渡在新的 dom 中不起作用?

javascript 函数化 if 语句

javascript - 等待用 RxJs 解决的 promise

vue.js - Axios 响应数据替换

vue.js - 单击 vue 组件中的保存按钮后如何关闭模式?