vue打卡-對(duì)象的數(shù)據(jù)響應(yīng)變化

  • vue什么樣的數(shù)據(jù)不能在頁(yè)面顯示
    未計(jì)劃的數(shù)據(jù),即在data中未定義的數(shù)據(jù)
<div id="app">
    <!--<p>{{a}}</p>-->
    <!--該數(shù)據(jù)未計(jì)劃定義,無(wú)法顯示-->
</div>
let message = "計(jì)劃數(shù)據(jù)";

    let vm = new Vue({
        el:"#app",
        //只有計(jì)劃好的數(shù)據(jù)才能做響應(yīng)
        data:{
            message:message,
            addMessage:{}
        }
    });

未定義的數(shù)據(jù).png

頁(yè)面無(wú)內(nèi)容顯示

  • 如何添加未計(jì)劃的數(shù)據(jù)
//這種方法不能添加未計(jì)劃的數(shù)據(jù)
    // vm.addMessage.content="新加入的數(shù)據(jù)";//該數(shù)據(jù)無(wú)法加入

1.使用靜態(tài)方法Vue.set(target,prop,value)
Vue.set(vm.addMessage,"content","使用靜態(tài)方法set()加入的數(shù)據(jù)");
2.使用實(shí)例方法$set(target,prop,value)
vm.$set(vm.addMessage,"text","使用實(shí)例方法$set()加入的數(shù)據(jù)");

添加對(duì)象的屬性.png

3.使用一般方法

  <div id="app">

    <p>原有:{{addMessage.a}}</p>
    <p>添加:{{addMessage.normal}}</p>

    <p>{{addMessage.text}}</p>
</div>
<script>
    let message = "計(jì)劃數(shù)據(jù)";

    let vm = new Vue({
        el:"#app",
        //只有計(jì)劃好的數(shù)據(jù)才能做響應(yīng)
        data:{
            message:message,
            addMessage:{
                a:123
            }
        }
    });
    //使用一般方法,更改屬性,但是不能保存原有的屬性
    vm.addMessage={normal:123}

原有的屬性丟失.png

4.解決上述問題
使用Object.assign方法

 //Object.assign(vm.addMessage,{name:value})
    let o = Object.assign(vm.addMessage,{name:value});
    console.log(o===vm.addMessage);//true,vue的機(jī)制當(dāng)數(shù)值不發(fā)生改變時(shí),默認(rèn)不刷新


    //改寫屬性的數(shù)值,重新賦值,重新得到一個(gè)和原來名稱相同的屬性
    //使用Object.assign({},mv.addMessage,{name:value})
    vm.addMessage = Object.assign({},vm.addMessage,{text:"使用assign添加數(shù)據(jù)"})
assign.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對(duì)于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,167評(píng)論 0 29
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,361評(píng)論 0 6
  • VUE介紹 Vue的特點(diǎn)構(gòu)建用戶界面,只關(guān)注View層簡(jiǎn)單易學(xué),簡(jiǎn)潔、輕量、快速漸進(jìn)式框架 框架VS庫(kù)庫(kù),是一封裝...
    多多醬_DuoDuo_閱讀 2,853評(píng)論 1 17
  • 主要還是自己看的,所有內(nèi)容來自官方文檔。 介紹 Vue.js 是什么 Vue (讀音 /vju?/,類似于 vie...
    Leonzai閱讀 3,535評(píng)論 0 25
  • 深入響應(yīng)式 追蹤變化: 把普通js對(duì)象傳給Vue實(shí)例的data選項(xiàng),Vue將使用Object.defineProp...
    冥冥2017閱讀 4,952評(píng)論 6 16

友情鏈接更多精彩內(nèi)容