pinia 基础

78 篇文章 2 订阅
52 篇文章 1 订阅

parent.vue

<template>
    <div>基本数据引用</div>
    <div>{{BaseStore.Obj}}</div>

    <br>
    <a-button type="" @click="BaseStore.addArr">调用 action</a-button>
    <div>调用Getter {{BaseStore.arrString}}</div>

    <div>显示修改的数据</div>
    <div>{{BaseStore.count}}</div>

</template>
<script setup>
import { onUnmounted } from 'vue';
import { useBaseStore } from './store'
const BaseStore = useBaseStore()

var Timer = setInterval(() => {
    BaseStore.count++
}, 1000);

// 注销组件事件
onUnmounted(() => {
    clearInterval(Timer);
})
</script>

<style lang="less" scoped>

</style>

store.js

import { defineStore } from 'pinia'
// 这是一个最简单的 Store 实例
// 这个 Store 并不会注册在全局组件中
// 创建一个 Store 对象
export const useBaseStore = defineStore('Base', {
    state: () => {
        return {
            // 创建基本数据结构
            count: 0,
            Obj: {
                a: '0',
                b: '0'
            },
            arr: [1, 2],
        }
    },
    getters: {
        arrString() {
            // pinia 下的 Getter,actions,state 都会挂载在 this 下,所以,
            // 尽量不要重名
            return this.arr.join('|');
        }
    },
    actions: {
        // 调用事件
        addArr() {
            this.arr.push(parseInt(Math.random() * 100));
        },
    }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值