vue3中Pinia的基础使用

npm install pinia

src/store/color.ts

import { defineStore } from "pinia";
import { getThemeColor } from "@/util/cookies";

export const colorStore = defineStore("color", {
  state: () => ({
    color: getThemeColor() ? getThemeColor() : "#11a983",
  }),
  getters: {},

  actions: {
    setColor(val: string) {
      this.color = val;
    },
  },
});

组件中使用
color.color就是在color.ts中定义的state变量
color.setColor就是调用跟新变量的方法

<script setup lang="ts">
import ThemePicker from "@/components/ThemePicker";
import { colorStore } from "@/store/color";
const color = colorStore();
const themeChange = (val: string) => {
  color.setColor(val);
};
</script>
<template>
  <ThemePicker @change="themeChange" class="themeChange" />
</template>

<style scoped lang="scss">
.menuImgColor {
  color: white;
  font-size: 20px;
  line-height: 50px;
  width: 50px;
}

.menuImgColor:hover {
  background-color: #c9c9c9;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值