질문은 다음과 같습니다. 해결하도록 도와주세요
먼저 개인적인 이해부터 말씀드리겠습니다
모델 레이어를 변경하면 뷰 레이어에 반영되고, 뷰 레이어를 변경하면 모델에도 반영됩니다. .vue 파일에서 모델 레이어는 data对象里面的数据(此处假设不存在store仓库)
입니다. vue에서 뷰는 템플릿에 있는 콘텐츠이고, 모델은 데이터 객체에 존재하는 데이터이며, 메소드와 유사한 메소드는 Controller 레이어에 분류되어야 합니다.
mvvm 모델은 아직 나오지 않았습니다. 대부분의 사람들은 코드가 더 명확해 보이도록 데이터, 뷰, 비즈니스 로직을 분리하여 작성합니다.
vuex는 주로 Vue의 여러 구성 요소와 일부 형제 구성 요소가 특정 상태를 공유할 때 발생하는 통신 불편을 해결하기 위한 창고입니다. vuex가 있다고 해서 모든 데이터가 vuex에 저장되어야 한다는 의미는 아닙니다.
내 문제를 알려주세요
으아악 으아악 으아악그렇다면 뷰와 데이터, 비즈니스 로직을 분리하려는 본래의 의도에서 출발하여 코드를 이런 식으로 구성하는 것이 타당할까요? 실제로 이 목록에는 이전 페이지와 다음 페이지의 기능도 있습니다. 어떤 페이지의 데이터가 요청되고 얼마나 많은 데이터가 요청되는지 서버에 알려주는 요청 매개변수를 구성해야 합니다. 기능은 어렵지 않습니다. 하지만 동료는 이전 페이지, 다음 페이지와 같은 기능은 데이터 레이어에 속하며(핵심은 데이터가 변경되었기 때문에) 이러한 것들은 스토어에 배치되어야 한다고 말했습니다. 하지만 내가 이해한 바는 우선 내 목록이 이 구성 요소에만 해당되며 다른 구성 요소와 어떤 상태도 공유할 필요가 없다는 것입니다. 그래서 요청한 데이터를 디스패치를 통해 페이지에 배포하고, 이전 페이지나 다음 페이지를 클릭할 때 currentPage를 계산해야 합니다. 이는 모델 레이어가 아닌 비즈니스 로직(컨트롤러 레이어)에 속해야 합니다. 최종 변경 사항은 여전히 데이터이지만 데이터가 어떻게 변경되어야 하는지 판단하려면 논리를 사용해야 합니다.
이 비즈니스 상황에서 뷰, 데이터, 비즈니스 로직을 분리하여 코드를 더욱 우아하게 만들려는 원래 의도에 맞게 더 합리적이고 코드를 구성하는 방법을 알려주십시오. (이 프로젝트는 작은 프로젝트가 아니기 때문에 vuex가 도입되었습니다. 이 코드는 작은 부분일 뿐입니다. 매장에는 다양한 모듈이 있습니다.) 여러분의 이해와 의견을 나눠주세요
阿神2017-07-03 11:43:41
프라이빗 컴포넌트라고 했는데, 굳이 내부적으로 계산을 해야 하는데 왜 굳이 통일 관리를 위해 매장에 넣어두는 걸까요?
데이터를 요청하는 데 사용하는 API는 캡슐화되어 있으므로 currentPage를 직접 전달하세요