vue 구성 요소 화 개발-vuex 상태 관리 라 이브 러 리
이상 은 vuex 의 공식 문서 가 vuex 에 대한 소개 이 고 공식 문 서 는 vuex 의 용법 에 대해 상세 하 게 설명 했다.여기 서 vuex 의 각 용법 을 자세히 설명 하지 않 겠 습 니 다.이 블 로 그 를 쓰 는 목적 은 일부 학생 들 이 vuex 를 더욱 빨리 이해 하고 시작 하도록 돕 는 것 입 니 다.
vuex 를 왜 써 요?
현재 이 블 로 그 를 읽 고 있 는 친구 들 이 Vue 2.0 하위 구성 요소 간 통신,하위 구성 요소 간 의 기본 통신 방식 을 본 적 이 있 는 지 모르겠다.우리 가 통신 하 는 목적 은 흔히 구성 요소 간 에 데이터 나 구성 요소 의 상 태 를 전달 하 는 것 이다.(여기 서 데이터 와 상 태 를 상태 라 고 통칭 한다)더 나 아가 상 태 를 바 꾸 는 것 이다.그러나 우리 가 가장 기본 적 인 방식 으로 통신 을 하면 관리 해 야 할 상태 가 많아 지면 코드 가 혼 란 스 러 워 지 는 것 을 볼 수 있다.모든 상태 에 대한 관 리 는 힘 에 부친 다.특히 여러 사람 이 협력 할 때.
이때 vuex 가 나 타 났 습 니 다.그 는 우리 가 공용 상 태 를 모두 꺼 내 vuex 용기 에 넣 은 다음 에 일정한 규칙 에 따라 관리 하 는 것 을 도 왔 습 니 다.
Vuex 의 핵심
vuex 는 다음 과 같은 몇 부분 으로 구성 되 어 있 습 니 다.
mutations 는 state 의 상 태 를 바 꾸 는 방법 을 저장 합 니 다.
getters 는 state 에서 상 태 를 파생 시 키 는 것 입 니 다.예 를 들 어 state 의 특정한 상 태 를 걸 러 내 고 새로운 상 태 를 가 져 오 는 것 입 니 다.
actions 는 mutation 의 강화 판 입 니 다.commt mutations 의 방법 으로 상 태 를 바 꿀 수 있 습 니 다.가장 중요 한 것 은 비동기 작업 을 할 수 있 습 니 다.
modules 는 말 그대로 이 용기 로 이런 상 태 를 담 는 것 이 혼 란 스 러 울 때 우 리 는 용 기 를 몇 조각 으로 나 누 어 상태 와 관리 규칙 을 분류 하여 담 을 수 있다.이것 은 우리 가 js 모듈 을 만 드 는 것 과 하나의 목적 으로 코드 구 조 를 더욱 명확 하 게 하 는 것 이다.
실례 를 들 어 Vuex 를 이해 하 다
// vuex
var vuexStore = new Vuex.Store({
state:{
message:'Hello World',
bookList:[
{
name:'javascript ',
price:100,
en:'jq'
},
{
name:'angularjs ',
price:80,
en:'aq'
},
{
name:'HTTP ',
price:50,
en:'hq'
}
]
},
mutations:{
//
showMessage:function(state,data){
state.message = 'Store mutations changed this words。'+data;
}
addBook:function(state,data){
state.bookList.push(data)
}
},
getters:{
filterPrice:function(state){
var narr = [];
for(var i = 0;i<state.bookList.length;i++){
state.bookList[i].price<85 ? narr.push(state.bookList[i]) : null;
}
return narr;
}
},
actions:{
//
addBook:function(context){
setTimeout(function(){
context.commit('addBook',{name:'HTML5 ',price:75});
},2000);
}
},
modules:{
a:storeA,b:storeB
}
});
// vue
var vm = new Vue({
el:'app',
store:VuexStore,
methods:{
showMessage:function(){
this.$store.commit('showMessage',' ')
},
filterList:function(){
return this.store.getters.filterPrice();
},
addBooks:function(){
this.$store.dispatch('addBook')
},
}
});
[state]vuex 핵심 개념 은 다섯 가지 가 있 습 니 다.우리 가 모든 상 태 를 각 구성 요소 에서 추출 하여 state 에 넣 었 을 때:message 와 bookList;[mutations]어느 구성 요소 에서 state 의 message 데 이 터 를 바 꿔 야 합 니 다.우 리 는 commit 방법 을 호출 하여 mutations 에 대응 하 는 이벤트 에 제출 해 야 합 니 다.commt('show Message')는 mutations 에서 showMessage 방법 을 호출 합 니 다.호출 방법 은 위의 코드 중 57 줄 과 같은 방식 입 니 다.
[getters]어느 시간,어떤 구성 요 소 는 bookList 의 가격 이 85 이하 인 모든 데 이 터 를 얻 을 필요 가 있 습 니 다.vuex 에 서 는 getters 를 통 해 얻 을 수 있 습 니 다.사용 방법 은 위의 코드 중 60 줄 과 같 습 니 다.
[actions]이것 은 mutations 의 강화 부분 입 니 다.다만 이 안의 함 수 는 비동기 로 조작 할 수 있 습 니 다.예 를 들 어 네트워크 요청 등 입 니 다.이 방법 은 상 태 를 바 꾸 려 면 commt()함 수 를 통 해 mutations 에 제출 하 는 것 이 좋 습 니 다.공식 적 으로 는 그렇게 말 했다.인 스 턴 스 에서 호출 은 보통 dispatch(funName)를 통 해 호출 됩 니 다.예 를 들 어 인 스 턴 스:66 줄 코드
[moduls]modules 는 여러 개의 상태 관리 라 이브 러 리 입 니 다.한 대상 에 놓 습 니 다.예 를 들 어 우 리 는 두 개의 상태 라 이브 러 리 가 있 습 니 다.storeA,storeB.우 리 는 modules 에서 위의 코드 에서 50 줄 의 쓰기 와 같다.
값 을 추출 할 때 인 스 턴 스 에서 직접 호출 합 니 다:this.$store.state.a 는 store A 라 는 store 의 상 태 를 되 돌려 줍 니 다.
여기 서 주의해 야 할 점 이 있 습 니 다.모든 하위 모듈 의 getters 대상 에 있 는 방법 은$store 에 합 쳐 집 니 다.하위 모듈 에 이름 을 바 꾸 는 방법 이 있 으 면 오류 가 발생 할 수 있 습 니 다.
그러나 모든 하위 모듈 에서 actions 와 mutations 의 방법 은 합 쳐 지지 않 고 이름 을 바 꾸 는 것 도 틀 리 지 않 습 니 다.그러나 dispatch 나 commt 가 같은 이름 의 사건 을 수행 할 때 각 하위 모듈 의 사건 을 순서대로 수행 합 니 다.
따라서 서로 다른 하위 모듈 의 actions 와 mutations 에 중복 되 는 함수 이름 을 쓰 지 마 십시오.
Vuex 사용 하기
다음은 Vuex 를 어떻게 도입 하여 우리 의 관리 상 태 를 협조 하 는 지 알려 드 리 겠 습 니 다.
우선 Vuex.js 를 도입 해 야 합 니 다.
그리고 vuex 인 스 턴 스 를 새로 만 듭 니 다.
var store = new VuexStore({
state:{
} ,
mountations:{
},
})
store 를 만 든 후 이 store 를 vue 의 인 스 턴 스 와 구성 요소 에 주입 해 야 합 니 다.
var vm = new Vue({
el:'#app',
store:store
})
그리고 우 리 는 위 에서 소개 한 방법 처럼 사용 할 수 있다.마지막 으로 한 마디 더 하 겠 습 니 다.공식 적 으로 제안 한 디 렉 터 리 구 조 는 mutations,actions,getters 등 일련의 디 렉 터 리 로 나 뉘 어 여러 사람 이 개발 하고 유지 할 수 있 도록 합 니 다.
vue 는 여기 서 이미 많은 연 구 를 했다.백 리 를 가 는 사람 은 반 90 리 이 므 로 더 깊이 연구 해 야 한다.개인 적 으로 vue 2.0 에 대한 총 결 demo 가 gitHub 에 업로드 되 었 습 니 다.주소:https://github.com/HUA1/vue2-summary.git
본 고 는 여기 서 끝 냅 니 다.관련 된 vue 버 전 은 2.0.x 입 니 다.vuex 버 전 은 2.2.1 입 니 다.여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.