vuex4 빠르게 시작하세요
vuex4는 vue3과 호환되는 버전이며 vuex3과 동일한 API를 제공합니다. 따라서 vue3에서 기존 vuex 코드를 재사용할 수 있습니다.
추천 학습: "최신 5개 vue.js 비디오 튜토리얼"
1. 설치 및 초기화
vuex4 설치:
npm install vuex@next
vue3 초기화 방법에 맞추기 위해 vuex4는 초기화 방법이 완료되었습니다. 해당 변경 사항에 따라 새로운 createStore 함수를 사용하여 새로운 스토어 인스턴스를 생성합니다.
import { createApp } from 'vue' import App from './App.vue' import router from './router' import { createStore } from "vuex" const store = createStore({ state(){ return{ num:1, } } }) const app = createApp(App) app.use(router) app.use(store) app.mount('#app') //在组件内使用时与之前一样 <div>{{$store.state.num}}</div>
2. 컴포넌트에서 vuex4 사용
2.1. 사용 시나리오 1
이전 API
// 在 main.js 内 const store = createStore({ state(){ return{ num:1, } }, mutations:{ addNum(state){ state.num++ } }, actions:{}, modules:{} }) //组件内 <div> {{$store.state.num}} <button @click="$store.commit('addNum')">num自加</button> </div>
2.2와 일치하도록 컴포넌트의 템플릿에서 직접 사용합니다. useStore를 통해 저장 컴포넌트에 도입한 후 스토어를 운영합니다.
<template> <div> store组件 {{state.num}} <button @click="add">num自加</button> </div> </template> <script> import { useStore } from "vuex" export default { setup(){ const store = useStore() return{ state:store.state, add(){ store.commit('addNum') } } } } </script>
2.3.사용 시나리오 3
store에서 여러 값을 사용하는 경우 toRefs 메서드를 통해 store.state의 데이터를 직접 확장할 수 있습니다.
<template> <div> {{num}} <button @click="add">num自加</button> </div> </template> <script> import { useStore } from 'vuex' import { toRefs } from "vue" export default { setup(){ const store = useStore() return{ ...toRefs(store.state), add(){ store.commit('addNum') } } } } </script>
const store = createStore({ state(){ return{ num:1, } }, getters:{ doubleNum(state){ return state.num*2 } }, }) //使用1:直接在template中使用 <template> {{$store.getters.doubleNum}} </template> //使用2:利用计算属性获取 <template> <div> {{getDouble}} </div> </template> <script> import { useStore } from "vuex" import { computed } from 'vue' export default { setup(){ const store = useStore() return{ state:store.state, getDouble:computed(()=>store.getters.doubleNum) } } } </script>
그리고 작업은 상태의 데이터를 비동기적으로 업데이트하지만 여전히 변형을 거쳐야 합니다.
<template> <div> {{state.num}} <button @click="asyncUpdateNum">更新num</button> </div> </template> <script> import { useStore } from "vuex" export default { setup(){ const store = useStore() return{ state:store.state, asyncUpdateNum(){ store.dispatch('updateNum',88) } } } } </script>
위 내용은 vuex4를 빠르게 시작하려면 단계별로 안내하세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!