js數據賦值後出現兩對象數據聯動問題

       最近在用Vue寫頁面,有一個頁面需求如下:用一個父頁面嵌套了兩個表單子頁面,子頁面中的表單字段相差不多(有部分字段需複用)。初始時默認開啓第一個表單(第二個表單項未開啓),填寫部分數據後,如果再開啓第二個表單,需要將第一個表單中已填寫的可複用項拷貝到第二個表單中(不需要再重複選擇),之後兩個表單間不再有聯動,各改各的!!!

       就是上面那段紅字出問題了!!!

      首先看下頁面想要實現的效果:

1.1- 默認展開效果

       

        父頁面同步實現,想要在某個子頁面啓用時,實現一次複製數據,但是在數據複製後,兩個子表單頁面中的數據居然出現了聯動【改上面表單中的A數據,下面表單中的A數據也會一起變化】,我去咧,想要這種效果的時候沒有,現在給我整事!!!

<div v-if="showVisitView">
   <fund-visit ref="visitView" :pdata="copyfromAct"></fund-visit>
</div>

<div v-if="showActView">
  <fund-activity  ref="actView" :pdata="copyfromVisit"></fund-activity>
</div>

<script>
computed:{
            copyfromAct(){
                return JSON.stringify((this.showActView && this.$refs["actView"])?this.$refs["actView"].store:{});
            },
            copyfromVisit(){
                return JSON.stringify((this.showVisitView && this.$refs["visitView"])?this.$refs["visitView"].store:{});
            }
        }
</script>

        邏輯一點點排查,確認了屬性名重複、代碼邏輯重複、對象關聯等情況,都沒效果,

        最後的最後,終於找到了這篇文章,茅塞頓開呀,還是堆棧沒學好!!!:

                                                   https://www.jianshu.com/p/32d44a047b07

        原理很簡單,就是js的堆棧:

原鏈接複製截圖1
原鏈接複製截圖2

 

 

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章