vue中為對象添加值的問題


demo:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.js"></script>
  <div id="app">
    <p>{{obj.name}}----{{obj.age}}--{{obj.height}}</p>
    <input type="text" v-model="obj.name">
    <input type="text" v-model="obj.age">
    <input type="text" v-model="obj.height">
  </div>
  <script>
    new Vue({
      el:'#app',
      data:{
         obj:{name: '123'}
      },      
    created(){
      
      this.obj.name = 'lisi';
         this.obj['age']= '12';
         this.obj['height']= '170';
    //在創建的時候添加屬性 age 和 height
    //然而 你就發現,當你在輸入框輸入值的時候,只有name是響應更新的,新增加的屬性是沒有動態更新的
    //詳見 https://cn.vuejs.org/v2/guide/reactivity.html

    // 如此,便這么寫 var temp = {name:'lisi',age: 12,'height':'12'};
    //          this.obj = Object.assign({},this.obj,temp)

    //  或者這樣   var temp = {name:'lisi',age: 12,'height':'12'};
    //          this.obj = temp;

    //          
var temp = {name:'lisi',age: 12,'height':'12'};
    //     for(var key in temp){
    //             Vue.set(this.obj,key,temp[key]);
    //          }
    // 以上三種方法就可以使屬性實時更新了

}
 })
  </script>
</body>
</html>

數組中也會有類似的問題 詳見https://cn.vuejs.org/v2/guide/list.html#對象更改檢測注意事項

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM