>  기사  >  웹 프론트엔드  >  vuex4를 빠르게 시작하려면 단계별로 안내하세요!

vuex4를 빠르게 시작하려면 단계별로 안내하세요!

藏色散人
藏色散人앞으로
2021-11-12 14:02:262199검색

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(&#39;addNum&#39;)">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(&#39;addNum&#39;)
   }
  }
 }
}
</script>

2.3.사용 시나리오 3

store에서 여러 값을 사용하는 경우 toRefs 메서드를 통해 store.state의 데이터를 직접 확장할 수 있습니다.

<template>
 <div>
  {{num}}
  <button @click="add">num自加</button>
 </div>
</template>
<script>
import { useStore } from &#39;vuex&#39;
import { toRefs } from "vue"
export default {
 setup(){
  const store = useStore()
  return{
   ...toRefs(store.state),
   add(){
    store.commit(&#39;addNum&#39;)
   }
  }
 }
}
</script>

3. getters의 사용법은

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 &#39;vue&#39;
export default {
 setup(){
  const store = useStore()
  return{
   state:store.state,
   getDouble:computed(()=>store.getters.doubleNum)
  }
 }
}
</script>
4의 이전 사용법과 일치합니다.

변이 내에서 메서드를 호출할 때는 커밋 호출을 사용하세요. 위의 사용 시나리오 2는 돌연변이 호출 방법입니다.

그리고 작업은 상태의 데이터를 비동기적으로 업데이트하지만 여전히 변형을 거쳐야 합니다.

<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(&#39;updateNum&#39;,88)
   }
  }
 }
}
</script>

스토어 컨테이너는 컴포넌트의 this.$store 속성을 통해 접근할 수 있으며, 대신 useStore를 통해 컴포지션 API를 사용할 수 있습니다. 다른 사용법은 기본적으로 동일합니다.

위 내용은 vuex4를 빠르게 시작하려면 단계별로 안내하세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 toutiao.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제