站長資訊網
最全最豐富的資訊網站

手把手帶你快速入門vuex4!

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('addNum')">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('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>

三、 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 'vue' 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('updateNum',88)    }   }  } } </script>

組件內可以通過 this.$store 屬性訪問store容器,使用 composition API 可以通過 useStore代替。其他的用法基本相同。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产69精品久久久久观看软件 | 国产午夜精品理论片| 中文字幕日韩视频| 国产精品嫩草久久久久| 国产成人精品高清在线观看99| 久久久久久久国产精品电影 | 久久精品aⅴ无码中文字字幕 | 久久久久亚洲精品日久生情 | 日韩精品免费一级视频| 伊人久久精品线影院| 国产福利精品一区二区| 国产午夜精品久久久久免费视| 中文字幕精品一区二区三区视频| 精品无码三级在线观看视频| 亚洲无码精品浪潮| 亚洲国产成人精品91久久久| 日本一区二区三区精品国产| 日韩激情淫片免费看| 日韩免费一级毛片| 日韩a级毛片免费观看| 精品99在线观看| 色老二精品视频在线观看 | 69久久夜色精品国产69小说| 99精品一区二区三区| 久久精品中文无码资源站| 99精品众筹模特自拍视频| 91freevideos精品| 精品国产一区二区三区麻豆| 精品国产精品国产偷麻豆| 国产cosplay精品视频| 2020精品极品国产色在线观看| 国产精品嫩草视频永久网址| 日韩免费精品视频| 欧美人妻少妇精品久久黑人| 四虎影视成人精品| 国产精品久久久久久久网站| 国产69久久精品成人看小说| 精品日韩亚洲AV无码| 日韩中文字幕在线免费观看| 一级一级特黄女人精品毛片| 国产精品无码无卡无需播放器|