source

VueX에 여러 Axios 요청을 저장하는 가장 좋은 방법은 무엇입니까?

gigabyte 2022. 9. 12. 11:42
반응형

VueX에 여러 Axios 요청을 저장하는 가장 좋은 방법은 무엇입니까?

Vue는 처음이라 여러 요청에서 데이터를 가져와 개체에 저장한 다음 데이터에 대한 몇 가지 조작을 미리 작성하는 방법을 알고 싶습니다.(형식 날짜, 통화 속성 추가 등)

예를 들어 다음과 같습니다.

예를 들어 다음과 같이 하겠습니다.

https://jsonplaceholder.typicode.com/posts/1'

https://jsonplaceholder.typicode.com/posts/2'

https://jsonplaceholder.typicode.com/posts/3'

그래서 저는 다음과 같은 것을 하고 싶습니다.

  1. 나중에 루프할 수 있도록 모든 ID를 저장하도록 상태 변수 설정

     state: {
        ids:[1,2,3],
        posts:[],
        alteredPostsArr :[]
      },
    
  2. 요청을 루프하여 모든 데이터 저장

     var dataStored = [];
     var ids = this.state.ids
       for(var i=0; i< ids.length; i++){
            axios
            .get('https://jsonplaceholder.typicode.com/posts/'+ids[i])
            .then(function(response){
              dataStored.push(response.data)
              console.log(response.data);
            })
    
          }
     this.state.posts = dataStored // store all results
    
  3. 데이터를 조작하는 함수를 만듭니다.비슷한 것

    setDate :function(data){ // loop over this.state.posts
    
    
       for(var i=0; i< data.length; i++){
    
              var newDataObj = {
                 "userId": data[i].userId,
                 "id": data[i].id,
                 "title": data[i].title,
                 "body": data[i].body,
                 "date":new Date(),
    
                }
           this.state.alteredPostsArr.push(newDataObj )
        }
    

    }

vuex 튜토리얼을 찾아봤는데, Axios 요청 루프를 어디에 배치해야 하는지 모르겠어요...그래서 액션에 넣으려고 했는데, 빈 배열이 나오네요..

export default new Vuex.Store({
          state: {

            posts:[],
            ids:[1,2,3],
            alteredPostsArr:[],

        },
          methods:{

            setDate:function(data){
              // loop over this.state.posts

              for(var i=0; i< data.length; i++){

                    var newDataObj = {
                        "userId": data[i].userId,
                        "id": data[i].id,
                        "title": data[i].title,
                        "body": data[i].body,
                        "date":new Date(),

                      }
                  this.state.alteredPostsArr.push(newDataObj )
              }

          }
          },

          actions: {
            loadPosts ({ commit }) {
              var dataStored = [];
              var ids = this.state.ids
              for(var i=0; i< ids.length; i++){
                axios
                .get('https://jsonplaceholder.typicode.com/posts/'+ids[i])
                .then(function(response){
                  dataStored.push(response.data)

                })

              }
              this.state.posts = dataStored // store all results
            }
          },
          mutations: {
            SET_POSTS (state, posts) {
              state.posts = posts
            }
  }

언급URL : https://stackoverflow.com/questions/51557111/what-is-the-best-way-to-store-multiple-axios-requests-in-vuex

반응형