Vue3使用pinia

本文演示了如何在Vue项目中安装和使用Pinia进行状态管理。首先通过pnpm安装Pinia,然后挂载到应用中。接着创建src/store文件夹,定义名为test的store,包含state、getter和action。在组件中,使用storeToRefs和actions来交互数据,实现数据的修改、重置和通过action调用方法。
摘要由CSDN通过智能技术生成

安装Pinia依赖

pnpm install pinia

挂载pinia

import { createApp } from 'vue';
import './style.css';
import router from './router';
// 引用Pinia
import { createPinia } from 'pinia';
import App from './App.vue';
// 创建Pinia
const pinia = createPinia();
 
const app = createApp(App);
app.use(router);
// 挂载Pinia
app.use(pinia);
app.mount('#app'); 

使用pinia配置数据

创建/src/store文件夹,在store文件夹下创建各种store,如下test.ts

import { defineStore } from 'pinia';
 
export const useTestStore = defineStore('test', {
    // state属性
    state: () => {
        return {
            name: '杨xx',
            sex: '男',
        };
    },
    // getters
    getters: {
        getNameData: (state) => {
            return '获取到的名字' + state.name;
        },
    },
    // actions
    actions: {
        saveNameData(name: string) {
            this.name = name;
        },
    },
});

调用示例

<template>
    <!-- getter 调用 -->
    <div>{{ testStore.getNameData }}</div>
    <div>{{ sex }}</div>
    <button @click="changeName">change</button>
    <button @click="reset">reset</button>
    <button @click="action">action</button>
</template>
 
<script setup lang="ts">
import { useTestStore } from '../store/test';
import { storeToRefs } from 'pinia';
// 使用store
const testStore = useTestStore();
let { name, sex } = storeToRefs(testStore);
// 修改数据
const changeName = () => {
    name.value = '唐**';
};
// 重置回初始数据
const reset = () => {
    testStore.$reset();
};
// 调用action
const action = () => {
    testStore.saveNameData('陈某');
};
</script>
 
<style scoped lang="postcss"></style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值