首頁 > web前端 > Vue.js > 手把手帶你快速入門vuex4!

手把手帶你快速入門vuex4!

藏色散人
發布: 2021-11-12 14:02:26
轉載
2342 人瀏覽過

vuex4 極速入門到上手

vuex4 是 vue3的相容版本,提供了和vuex3 的相同API。因此我們可以在 vue3 中重複使用先前已存在的 vuex 程式碼。

推薦學習:《最新的5個vue.js影片教學精選

一、安裝以及初始化

vuex4安裝:

npm install vuex@next
登入後複製

為了向vue3初始化方式看齊,vuex4 初始化方式做了對應的變化,使用新的createStore 函數建立新的store 實例。

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>
登入後複製

二、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、使用場景2

透過useStore 把store 引入元件內,然後操作store 。

<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>
登入後複製

三、 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>
登入後複製

四、mutations 和actions 的用法

呼叫mutations 內的方法時,使用commit 呼叫。上述的使用場景2 就是 mutations 方法的呼叫。

而 actions 非同步更新 state 中的數據,還是需要經過 mutations 。

<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 屬性存取store容器,使用 composition API 可以透過 useStore取代。其他的用法基本上相同。

以上是手把手帶你快速入門vuex4!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:toutiao.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板