vue+vuex+axios 배경 에서 데 이 터 를 가 져 와 vuex 에 저장 하고 구성 요소 간 에 데 이 터 를 공유 합 니 다.
전체 프로 세 스 는 구성 요소 의 created 에 dispatch 를 제출 한 다음 action 을 통 해 봉 인 된 axios 를 호출 한 다음 mutation 을 실행 하여 상태 변경 state 의 데 이 터 를 제출 한 다음 구성 요소 의 계산 속성 에서 state 의 데 이 터 를 가 져 와 페이지 에 렌 더 링 합 니 다.
우선 프로젝트 에 vuex 를 설치 해 야 합 니 다:
명령 npm install vuex--save-dev 실행
프로젝트 의 입구 js 파일 main.js 에서
import store from './store/index'
vue 에 store 를 마 운 트 합 니 다.
new Vue({
el: '#app',
router,
store,
template: '<App/>',
render: (createElement) => createElement(App)
})
그 다음 에 전체 store 의 디 렉 터 리 구 조 를 보 세 요.modules 폴 더 는 서로 다른 기능 도 면 의 상 태 를 모듈 로 나 누 는 데 사 용 됩 니 다.index.js 폴 더 는 store 의 입구 파일 이 고 types 폴 더 는 상수 mutation 을 정의 하 는 폴 더 입 니 다.전체 vuex 의 디 렉 터 리 구 조 는 다음 과 같다.
여기에 나 는 모든 axios 처리 와 axios 패 키 지 를 작성 하기 위해 폴 더 fetch 를 새로 만 들 었 다.
fetch 폴 더 에 api.js 파일 을 새로 만 듭 니 다:
import axios from 'axios'
export function fetch(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then(response => {
alert('Api--ok');
resolve(response.data);
})
.catch((error) => {
console.log(error)
reject(error)
})
})
}
export default {
//
mineBaseMsgApi() {
alert(' api.js')
return fetch('/api/getBoardList');
}
}
store 의 입구 파일 index.js 에서:
import Vue from 'vue'
import Vuex from 'vuex'
import mine from './modules/mine';
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
mine
}
});
배경 데 이 터 를 요청 하고 vuex 구성 요소 의 created 를 사용 하여 첫 번 째 dispatch 를 나 누 어 주 십시오:
created() {
this.$store.dispatch('getMineBaseApi');
}
그리고 store/modules 에 대응 하 는 모듈 js 파일 에서 제 가 사용 하 는 mine.js 파일 에서 state,action,mutation 을 작성 합 니 다.
import api from './../../fetch/api';
import * as types from './../types.js';
const state = {
getMineBaseMsg: {
errno: 1,
msg: {}
}
}
const actions = {
getMineBaseApi({commit}) {
alert(' action');
api.mineBaseMsgApi()
.then(res => {
alert('action axios ');
console.log('action axios ')
commit(types.GET_BASE_API, res)
})
}
}
const getters = {
getMineBaseMsg: state => state.getMineBaseMsg
}
const mutations = {
[types.GET_BASE_API](state, res) {
alert(' mutation');
state.getMineBaseMsg = { ...state.getMineBaseMsg, msg: res.data.msg }
alert(' mutations state ');
}
}
export default {
state,
actions,
getters,
mutations
}
그리고 state 를 되 찾 으 려 는 구성 요소 에서 mapgetters 를 사용 하여 state 를 가 져 옵 니 다:
import { mapGetters } from 'vuex';
export default {
...
computed: {
...mapGetters([
'getMineBaseMsg'
])
},
...
}
그리고 콘 솔 에서 확인 하 세 요:getter 와 mutation 은 모두 성공 하 였 으 며,동시에 저 는 state 를 제출 하 는 전체 과정 에 alert 를 추 가 했 습 니 다.전체 절차 가 어떻게 가 는 지 보 실 수 있 습 니 다.
이상 의 vue+vuex+axios 는 배경 에서 데 이 터 를 가 져 와 vuex 에 저장 합 니 다.구성 요소 간 에 데 이 터 를 공유 하 는 작업 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.