首頁 >web前端 >js教程 >在vue元件傳遞物件中實作單向綁定,該怎麼做?

在vue元件傳遞物件中實作單向綁定,該怎麼做?

亚连
亚连原創
2018-06-02 17:12:211788瀏覽

下面我就為大家分享一篇vue元件傳遞物件中實現單向綁定的範例,具有很好的參考價值,希望對大家有所幫助。

當使用vue組件時,組件之間經常需要傳遞數據,這裡不討論傳遞一個字符串變量或者數字變量的情況,那些去看官方文檔就夠了,此處提出我在組件間傳遞物件時遇到的一個坑。

當元件間傳遞物件時,由於此物件的參考類型指向的都是一個位址,所以在子元件中修改物件的某個屬性值,父元件中的物件對應的屬性也會隨之改變,如果有這種雙向綁定的需要,那麼這也算一種不錯的辦法,但如果不需要這種雙向綁定,那就要定義一個新的對象來複製原對象的屬性和值,坑就在這裡,假如你普通的var、let 一個對象,例如:

computed: { 
  data: function () { 
   let obj={}; 
   obj=this.message//this.message是父组件传递的对象 
   return obj 
 } 
 },

將data中各屬性分別綁定到輸入框中,並修改試試,你會發現父組件中對應的屬性值還是會改變,並沒有實現單向綁定的效果,這時就需要加一個方法了

computed: { 
 data: function () { 
  let obj=Object.assign({}, this.message); 
  return obj 
 } 
 },

這樣返回的data就是一個新的對象,並不會指向原對象的地址,所以再對其進行修改就不會對父元件中的物件造成影響了。

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

JS匿名函式與匿名自執行函式概念與用法分析

解決npm管理員身分install時出現權限的問題

vue-router相關基礎與工作原理

#

以上是在vue元件傳遞物件中實作單向綁定,該怎麼做?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn