pinia
是一个拥有组合式 API 的 Vue 状态管理库。
pinia
官方文档:https://pinia.vuejs.org/zh/introduction.html
安装
yarn add pinia
整合
创建实例
import { createPinia } from 'pinia'
const store = createPinia()
export default store
挂载
import { createApp } from 'vue'
import App from './App.vue'
import store from '@/store'
const app = createApp(App)
app.use(store)
app.mount('#app')
使用
pinia
通过 defineStore
函数进行定义,第一个参数是名称,名称必须保持唯一,第二个参数有两种实现方法:Option 对象及 Setup 函数,接下来将分别介绍这两种方式如何实现定义。
简单的理解:state
用于定义状态对象,getters
相当于 computed
计算属性,actions
相当于方法
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', {
state: () => ({ count: 0 }),
getters: {
double: (state) => state.count * 2,
},
actions: {
increment() {
this.count++
},
},
})
- Setup Store
setup
函数更像 vue
的组合式函数,在函数中可以定义响应式属性、方法等,最后返回一个需要暴露出去的属性和方法的对象。
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', () => {
const count = ref(0)
function increment() {
count.value++
}
return { count, increment }
})
使用Store
状态对象及计算属性需要使用 storeToRefs
方法进行提取,以保持及响应性,而方法则可以直接调用
const counterStore = useCounterStore()
const { count } = storeToRefs(counterStore)
counterStore.increment()
原文地址:https://blog.csdn.net/gongm24/article/details/134694891
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_20066.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。