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

藏色散人
풀어 주다: 2021-11-12 14:02:26
앞으로
2281명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿