Vuex - 구성 요소 간에 어레이를 효율적으로 공유
Vue.js 앱이 있습니다.이 앱에는 여러 개의 단일 파일 구성 요소에서 사용할 항목이 있습니다.이 배열은 상당히 클 수 있습니다.그런 이유로, 저는 메모리에 있는 어레이의 인스턴스를 줄이려고 합니다.
이 어레이를 구성 요소 간에 공유할 예정이기 때문에 중앙 집중식 스토어가 적합하다고 생각했습니다.이러한 이유로 저는 Vuex를 통합하기 시작했습니다.
내 앱에는 다음이 있습니다.
import Vuex from 'vuex';
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
contacts: [
// large number of JSON objects here.
]
}
});
const app = new Vue({
store,
el: '#myApp',
data: {},
created: function() {
}
});
다음과 같은 단일 파일 구성 요소가 있습니다.
<template>
<div>
<table>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
<thead>
<tbody>
<tr v-for="contact in contacts">
<td>{{ contact.firstName }}</td>
<td>{{ contact.lastName }} </td>
<td>{{ contact.email }} </td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
data: function() {
return {};
}
};
</script>
실제로 사용해야 하는 단일 파일 구성 요소가 여러 개 있습니다.contacts
에서store
하지만 각 구성 요소에서 가장 효율적으로 사용할 수 있는 방법이 무엇인지 잘 모르겠습니다.각 구성 요소에는 고유한 격리된 범위가 있기 때문에 사용하면props
또는data
옵션, 나는 나의contacts
각 구성 요소의 배열입니다.이것은 비싼 것 같습니다.아니면, 제가 뭔가를 오해하고 있습니다.
중앙 데이터 저장소에서 어레이를 이미 정의한 경우 어레이를 여러 구성 요소와 공유하는 가장 효율적인 방법은 무엇입니까?
감사해요!
일반적인 접근 방식은 구성 요소에서 도우미를 사용하는 것입니다.예를들면
import { mapState } from 'vuex'
export default {
computed: mapState(['contacts'])
}
이것은 지도를 만들 것입니다.contacts
스토어에 있는 상태를 계산된 속성으로 표시 contacts
사용자 구성요소에 있습니다.
Vuex는 여러 구성 요소 간에 상태 인스턴스를 하나만 효과적으로 공유합니다(앱의 단일 정보원).따라서 이 경우 성능에 대해 걱정할 필요가 없습니다.또한 Vue는 실제로 변경된 구성 요소만 다시 생성하여 변경 사항을 처리하는 방식도 매우 영리합니다.Vuex에서 시작한 것을 후회하지 않을 것입니다.
언급URL : https://stackoverflow.com/questions/50751508/vuex-efficiently-sharing-an-array-across-components
'source' 카테고리의 다른 글
오류: 쓰기를 시도하는 동안 워크북을 압축하지 못했습니다.xlsx (0) | 2023.07.01 |
---|---|
값의 합이 아닌 값을 표시하는 피벗 테이블 (0) | 2023.07.01 |
GitHub - fatal: 'https://github.com '에 대한 사용자 이름을 읽을 수 없음: 해당 파일 또는 디렉토리가 없습니다. (0) | 2023.07.01 |
iOS 5 모범 사례(릴리스/유지?) (0) | 2023.07.01 |
XlsxWriter를 사용하여 맨 위 행과 첫 번째 열을 고정하는 방법은 무엇입니까? (0) | 2023.07.01 |