programing

Vue 없이 Vue를 사용할 수 있습니까? (Vuex 서버 측)

javaba 2022. 8. 7. 17:52
반응형

Vue 없이 Vue를 사용할 수 있습니까? (Vuex 서버 측)

Vuex는 Vue.use(Vuex)를 호출하지 않으면 스토어의 새 인스턴스를 생성할 수 없다고 불평합니다.일반적으로는 괜찮지만, 같은 스토어를 사용하여 백엔드/프런트엔드를 작성하는 것을 생각하고 있습니다.정답 아는 사람?

고마워요.

TL;DR은 장치 테스트에도 브라우저 없이 노드에서 Vuex를 완벽하게 사용할 수 있습니다.그러나 내부적으로 Vuex는 여전히 Vue의 코드를 사용합니다.

Vue 없이는 Vue를 사용할 수 없습니다.이유:

즉, Vue 인스턴스는 필요하지만 Vue 인스턴스는 필요하지 않습니다.브라우저도 필요 없습니다.

네, 서버측 스탠드아론에서도 충분히 사용할 수 있습니다.

예를 들어 다음과 같이 Node.js를 사용하여 실행할 수 있습니다.

  • 샘플 프로젝트 생성:

    npm init -y
    
  • 의존 관계를 인스톨 합니다(주의:axios필요 없습니다.이 데모용으로만 추가합니다.

    npm install --save vue vuex axios
    
  • 스크립트(index.js):

    const axios = require('axios');
    const Vue = require('vue');
    const Vuex = require('vuex');
    Vue.use(Vuex);
    
    const store = new Vuex.Store({
      strict: true,
      state: {name: "John"},
      mutations: {
        changeName(state, data) {
            state.name = data
        }
      },
      actions: {
        fetchRandomName({ commit }) {
          let randomId = Math.floor(Math.random() * 12) + 1  ;
          return axios.get("https://reqres.in/api/users/" + randomId).then(response => {
            commit('changeName', response.data.data.first_name)
          })
        }
      },
      getters: {
        getName: state => state.name,
        getTransformedName: (state) => (upperOrLower) => {
          return upperOrLower ? state.name.toUpperCase() : state.name.toLowerCase()
        }
      }
    });
    console.log('via regular getter:', store.getters.getName);
    console.log('via method-style getter:', store.getters.getTransformedName(true));
    
    store.commit('changeName', 'Charles');
    console.log('after commit:', store.getters.getName);
    
    store.dispatch('fetchRandomName').then(() => {
        console.log('after fetch:', store.getters.getName);
    });
    
  • 실행:

    node index.js
    
  • 출력:

    via regular getter: John
    via method-style getter: JOHN
    after commit: Charles
    after fetch: Byron
    

언급URL : https://stackoverflow.com/questions/49684402/is-it-possible-to-use-vuex-without-vue-vuex-server-side

반응형