Vue新的状态管理库Pinia入门教程
为什么最近Pinia会火起来呢,主要在于Vue3推出来的时候,Vuex对于Vue3的组合式Api支持的不是特别好,也就是在这个时候Pinia出现了。
前沿
Vue官方推荐的状态管理库是Vuex,那为什么最近Pinia会火起来呢,主要在于Vue3推出来的时候,Vuex对于Vue3的组合式Api支持的不是特别好,也就是在这个时候Pinia出现了,最重要的是,Pinia不但支持Vue3,同时还支持Vue2,这就厉害了,而且最新Vuex5的特性还是参考的Pinia
使用教程
github地址:https://github.com/vuejs/pinia
1、安装
npm install pinia -S
2、vue中引入
// Vue3中引入使用 import { createPinia } from 'pinia' app.use(createPinia()) //Vue2中引入使用 import { createPinia, PiniaVuePlugin } from 'pinia' Vue.use(PiniaVuePlugin) const pinia = createPinia() new Vue({ el: '#app', // 其它配置项 pinia, })
3、基本使用
// 定义store // stores/counter.js import { defineStore } from 'pinia' export const useCounterStore = defineStore('counter', { // 状态值定义 state: () => { return { count: 0 } }, // 状态更改方法定义 actions: { increment() { this.count++ }, }, }) // 在组件中使用 // 导入状态 import { useCounterStore } from '@/stores/counter' export default { setup() { // 初始化一个store实例 const counter = useCounterStore() // state更新 counter.count++ // 或者调用方法更新 counter.increment() }, }
4、也可以像vuex一样使用
const useCounterStore = defineStore('counter', { // 状态值 state: () => ({ count: 0 }), // getter值 getters: { double: (state) => state.count * 2, }, // actions方法 // 注意pinia里没有mutation actions: { increment() { this.count++ } } }) // 定义另外一个store const useUserStore = defineStore('user', { // ... }) export default { // computed里引入使用state里的值 computed: { ...mapStores(useCounterStore, useUserStore) ...mapState(useCounterStore, ['count', 'double']), }, // methods里使用action methods: { ...mapActions(useCounterStore, ['increment']), }, }
好了,Pinia的入门教程就讲到这,是不是语法更加简洁
到此这篇关于Vue新的状态管理库Pinia入门教程的文章就介绍到这了,更多相关Vue Pinia内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Vue3使用vant检索组件van-search遇到的问题小结
当清空按钮与检索按钮同时居右时,点击clear清空按钮事件时会同时触发click-right-icon事件,这个时候容易触发一系列问题,小编小编给大家分享Vue3使用vant检索组件van-search遇到的问题小结,感兴趣的朋友一起看看吧2024-02-02浅谈vue中document.getElementById()拿到的是原值的问题
这篇文章主要介绍了浅谈vue中document.getElementById()拿到的是原值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-07-07
最新评论