如果是新我的项目, 齐全基于setup的, 那么倡议应用pinia代替vuex, vuex官网有说pinia能够了解为vuex5, vuex不会出5了.
装置
npm i pinia -S
应用
首先在”main.js”中引入”pinia”, 并关联到”vue”实例上.
import { createApp } from 'vue'
import {createPinia} from 'pinia'
import App from './App.vue'
const pinia = createPinia();
createApp(App).use(pinia).mount('#app')
而后创立”store”, defineStore
的第一个参数是store的id, 能够是任意字符, 定义数据能够用ref
/reactive
/computed
, 留神导出的是一个函数.
import { defineStore } from 'pinia'
import { ref,computed } from 'vue';
export const useStore = defineStore('main', () => {
const title = ref(`hello pinia`)
const list = reactive([1, 2, 3, 4, 5, 6, 7, 8, 9]);
return { title, list }
})
在组件内:
<template>
<p>题目: {{ store.title }}</p>
<p>总数: {{ store.count }}</p>
<p>列表: {{ store.list }}</p>
<button @click="store.add">加1</button>
</template>
<script setup>
import { useStore } from "@/pStore";
const store = useStore();
</script>
vue-devtools控制台中也能够察看”pinia”的数据.
总结
理论pinia有2种应用形式, 一种如本文缩写, 还有一种就是相似vuex那样的定义”state/getters/action”, 从代码简洁角度, 我更喜爱本文的写法, 如果你喜爱vuex的写法, 能够参考pinia官网文档学习.
https://pinia.vuejs.org
在线演示
https://vue3-start-phi.vercel…
🍕学习互动
感激大家的浏览, 如有疑难能够加我微信, 我拉你入群摸鱼🐟
发表回复