2017-09-18 4 views
1

경로를 탐색 할 때 계산 된 속성이 그에 따라 업데이트하고 그에 따라 내보기를 업데이트하는 상황이 있습니다. 다른 경로로 전환 한 후 뒤로 -이 범위에서 할당 된 모든 데이터가 손실됩니다. 나는이 변수들을 초기화하기 위해 생성 된 것을 사용하고, 다시 널 상태로 다시 초기화한다.vue-router 및 데이터 속성 이해

내 계산 된 속성에 나는 이들 다른 (생성 된 변수)를 채우고 뷰에서 사용됩니다.

내 질문은 - 다시 초기화하는 것입니까? 나는 이것에 대해 잘못 갈까?

created: function() { 
      this.abc = {}; 
    }, 
    computed: { 
     myData: function() { 
      return this.$store.state.myData; 
     }, 
     setupData: function() { 
      console.log('only update now!') 
      var myData = this.myData; 

      //doSomething that updates this.abc 
     } 
    }, 
    watch: { 
     myData: { 
      handler: function(newValue) { 
       this.setupData(newValue); 
      }, 
      deep: true 
     } 
    }, 
+0

예, 정상적인 동작입니다. 새 구성 요소로 라우팅 할 때마다 해당 구성 요소가 만들어지고 이전 경로의 구성 요소가 소멸됩니다. http://jsfiddle.net/yqtgpapd/ – thanksd

+0

@thanksd 그래서 혼란스러워. 그에 따라 업데이트되는 계산 된 속성이있는 경우. 그런 다음 해당 속성에서 특정 기준을 필터링하고 다른 변수를 통해보기에 표시합니다. 매번 지워지지만 계산 된 속성이 채워지면 어떻게해야합니까? – KingKongFrog

+0

문제를 충분히 설명하지 못했거나 일어날 것으로 예상되는 것과 실제로 경험하고있는 것을 알 수있는 충분한 코드를 공유하지 않았습니다. 제공된 답이 당신에게 효과가 없습니까? 제발 정교하게 대답하십시오 – thanksd

답변

3

예, 재 초기화가 정상입니다. 당신 자신의 상태를 유지하거나 다시 렌더링을 피할 수 있도록 메모리에 스위치 - 아웃 구성 요소를 유지하려면

, 동적 을 포장 할 수 있습니다 당신이 당신의 구성 요소를 유지하려면 keep-alive tag 사용 a 요소의 구성 요소 :

: 또한 <router-view> refers to it에 대한

<keep-alive> 
    <component :is="currentView"> 
    <!-- inactive components will be cached! --> 
    </component> 
</keep-alive> 

문서3210

구성 요소 일 뿐이므로 <transition><keep-alive>과 작동합니다.

+0

Dang nabit! 나를 때려. – Kano

+0

cello @Kano이 작업 한 - 내가보기에 하나의 문제는 내가보기 시작한 경로를 전환 할 때마다 서로 밑바닥에보기가 추가된다는 것입니다. 이걸 본 적있어? 나는이 코드의 다른 부분이이 문제를 일으키는 것과 관련이 없지만 너의 thougts를보고 싶었는지 확인하려고 노력 중이다. – KingKongFrog