programing

동적으로 등록된 모듈의 순서 설정

prostudy 2022. 7. 21. 23:52
반응형

동적으로 등록된 모듈의 순서 설정

내 어플리케이션에는 메인 모델이 하나 있는데, 그 모델을 호출해 봅시다.users모듈이 있습니다.users그 안에 있는 서브모듈이list.

api 엔드포인트를 사용하면 10명의 사용자가 사용자 배열로 돌아갑니다.각 사용자에 대해 동적으로 등록합니다.user각 모듈 내의list내부 모듈users사용방법id열쇠로 삼습니다.

this.registerModule(['users', 'list', user.id], UserModule);

그리고 나서 나는 내 상점에 있는 데이터에 수분을 공급하기 위해 몇 가지 조치를 취한다.이 모든 게 잘 작동한다.

파싱하는 게터가 있어요listmodule(포함된 객체)id를 가리키는 키로서user)를 일련의 사용자로 변환합니다.다음과 같습니다.

users: (state) => {
  const users = Object.keys(state.list).map(key => state.list[key]);
  return users;
}

문제

언제vuex개인을 동적으로 등록하다UserModule이 명령어는 다음 명령어느끼고list모듈을 등록하는 순서가 아니라 알파벳 순으로 모듈을 등록합니다.API에서 들어오는 사용자 배열과 동일한 순서를 원하기 때문에 문제가 됩니다.

엔드포인트가 다음과 같이 2명의 사용자를 반환하는 경우:

[
  { id: '3', name: 'Bob'},
  { id: '1', name: 'Tom'}
]

다음으로 목록 모듈은 다음과 같습니다.

state: {
  list: {
    1: { id: '1', name: 'Tom'},
    3: { id: '3', name: 'Bob'}
  }
}

그리고 그users그러면 getter가 반환됩니다.

[
  { id: '1', name: 'Tom'},
  { id: '3', name: 'Bob'},
]

잠정적인 해결책은 각 모듈이 소비될 때 각 모듈에 주문 속성을 삽입하고 그 주문 속성을 기준으로 getter 정렬하는 것입니다.아무 이유 없이 루프를 추가하여 정렬하는 것 같아서 기분이 좋지 않습니다.

질문

  1. 알파벳 순으로 등록하는 것이 아니라 들어오는 대로 동적으로 등록 모듈을 주문할 수 있는 방법이 있습니까?
  2. "주문" 속성을 주입하는 것 외에 이 문제에 대한 더 나은 해결책을 생각해 낼 수 있는 사람이 있을까요?

언급URL : https://stackoverflow.com/questions/50489777/set-ordering-of-dynamically-registered-modules

반응형