Vue 3의 Pinia와 Vuex의 이유
저는 Vue.js 개발자로 Vue 2에서 Vue 3에 추가된 새로운 기능, 즉 Composition API(Vue 3에 추가된)에 대해 자세히 알고 있습니다.
상태 관리의 경우 Vue 3의 출시와 함께 커뮤니티가 Vuex의 사용에서 Pinia로 이행하고 있는 것으로 보입니다.
Pinia와 Vuex의 차이점은 무엇입니까?개념적으로 Vue 2에서 Vue 3으로 변경된 점이 Pinia를 Vue 3에 적합하게 만드는 데 있습니까?
감사합니다.
즉, Pinia의 API는 훨씬 단순하고 직관적입니다.주니어 개발자에게도 가게를 쉽게 이용할 수 있습니다.
Composition API의 이점을 제공하지만 Options API와 매우 유사한 구조를 가지고 있습니다.
- 반응성이 있다
state
, 등가data
옵션 API의 함수 - 가지다
getters
, 등가computed
옵션 API에서 - 가지다
actions
, 등가methods
옵션 API에서 - 가지고 있지 않다
mutations
에 대한 변경 사항으로서state
이제 암묵적인 돌연변이를 등록합니다.어디서 실행되든 상관없습니다.
또한 Pinia의 경우:
- 행동은 더 이상 필요하지 않다
async
, 다음 중 하나를 사용할 수 있습니다. - 액션은 더 이상 필요하지 않으므로 첫 번째 파라미터(액션 컨텍스트)가 필요하지 않습니다.
commit
,dispatch
,rootGetters
,rootState
- 다른 스토어는 이제 모든 액션/게터에서 직접 호출할 수 있으며, 심지어 순환 종속성을 허용할 수 있습니다. 이는 여전히 가능하지만 스토어를 중첩할 필요성을 줄여줍니다.
- 모든 스토어가 런타임에 동적으로 등록됩니다(처음 호출될 때, 스토어는 비어 있습니다).
- 안에서.
actions
그리고.getters
기능들,this
현재 스토어이며 모든 주의 소품, 액션 및 게터에 직접 액세스할 수 있습니다. - 함수에 의해 반환된 객체의 모든 액션, 게터 및 상태 소품에 대한 직접 액세스도 입력했습니다(예:
useSomeStore
)가 반환했습니다.defineStore()
모두 TypeScript 친화적이며 회피책이나 타입 캐스팅이 필요하지 않습니다.
전용 페이지에서 2개의 플러그인의 차이에 대해 보다 상세하게 설명하고 설명합니다.
플러그인 작성자의 선언에 따르면 Vuex 5는 Pinia와 유사한 API를 가지며 언젠가 병합될 가능성이 있습니다.
Tony의 코멘트에서 설명한 바와 같이, Pinia는 현재 Vue 팀이 공식적으로 권장하는 상태 관리 솔루션입니다.
Vuex는 현재 유지 보수 모드에 있습니다. 동작은 계속되지만, 새로운 기능은 더 이상 수신되지 않습니다. 새로운 어플리케이션에는 Pinia를 사용하는 것이 좋습니다.--[Evan You가 2021년 12월에 추가했습니다.
참조:
"Vue 2에서 Vue 3으로 무엇이 변경되어 Pinia가 Vue 3에 더 적합하게 되었습니까?"
는 Pinia에서 되었습니다.setup()
. 그 때문에, 외부에서의 사용 방법에 관한 전용 페이지가 있습니다.
더 중요한 것은 Vuex가 Vue2 프로젝트에 더 적합하다는 것입니다.
엄밀히 말하면 그것은 거짓이다.
두 플러그인은 모두 동일한 기능을 제공하지만 Vuex는 더 많은 보일러 플레이트를 갖추고 있으며 전체적으로 직관적인 구문이 부족합니다.따라서 더 오랜 시간 동안 더 잘 훈련된 엔지니어가 필요합니다.
Vuex를 선택하면 프로젝트의 복잡성에 비례하여 프로젝트 비용이 증가하지만 이점은 없습니다.
언급URL : https://stackoverflow.com/questions/71596003/why-pinia-vs-vuex-for-vue-3
'programing' 카테고리의 다른 글
Vue에서 로드/오류 상태를 저장할 위치입니다.JS/Vuex? (0) | 2022.07.31 |
---|---|
스프링 부트에서는 application.yml 또는 bootstrap.yml에 속성을 두는 것과 어떤 차이가 있습니까? (0) | 2022.07.31 |
클리어 방법vuejs 상태 간격 (0) | 2022.07.31 |
C에서 inline 키워드는 어떤 용도로 사용됩니까? (0) | 2022.07.31 |
왜 같은 vue 디렉티브를 여러 번 사용하여 모든 vue 디렉티브에 대해 업데이트를 호출합니까? (0) | 2022.07.31 |