首页 > 其他分享 >pinia

pinia

时间:2022-12-24 17:00:58浏览次数:32  
标签:storeToRefs useLayout counter pinia import store

pinia初使用

npm install pinia

import { createPinia } from 'pinia'

app.use(createPinia())

可以直接创建一个pinia文件夹 列如 src/pinia/layout.ts

import { defineStore } from 'pinia'
// useLayout 也称为 id,是必要的,Pinia 使用它来将 store 连接到 devtools。 将返回的函数命名为 use... 是跨可组合项的约定,以使其符合你的使用习惯。
export const useLayout = defineStore('main', {
  // 是一个箭头函数
  state: () => {
    return {
      counter: 'holle',
    }
  },
  getters: {},
  actions: {
     setCounter() {
      this.counter = '你好'
    },
  },
})

页面使用

<template>
  <div>{{ counter }}</div>
  <button @click="checnges">改变</button>
</template>
<script setup lang="ts">
import { useLayout } from "@/pinia/layout";
import { storeToRefs } from "pinia";
// 如果想通过结构的方式拿到store数据就必须通过storeToRefs API去包裹,才能维持响应式数据
const { counter } = storeToRefs(useLayout());
const checnges = () => {
  // 这里支持直接修改
  useLayout().counter = "你好";
  // OR --同时修改多个时使用
  useLayout().$patch({
    counter: "你好",
  });
  // OR --同时修改多个时使用
  useLayout().$patch((store) => {
    store.counter = "你好";
  });
  // OR 通过 actions 内部写方法修改变量
  useLayout().setCounter();
};

</script>
<style lang="less" scoped>
</style>

标签:storeToRefs,useLayout,counter,pinia,import,store
From: https://www.cnblogs.com/newBugs/p/17003034.html

相关文章

  • VUE3状态管理Pinia使用介绍
    vue3中推荐使用的状态管理工具:pinia,真的很好用官方文档,中文文档一、安装piniayarnaddpinia#或者使用npmnpminstallpinia二、src文件夹下新建store文件夹,并新建......
  • Pinia 全局状态管理工具
    Pinia第一章(介绍Pinia)前言全局状态管理工具Pinia.js有如下特点:完整的ts的支持;足够轻量,压缩后的体积只有1kb左右;去除mutations,只有state,getters,a......
  • pinia-plugin-persist 持久化存储失效和使用过程必踩的坑
    技术栈:vue3+vue-Router^4.0+pinia3.0+pinia-plugin-persist持久化存储场景:vue-router路由守卫跳转前判断 pinia状态state的token是否存在,存在就跳转,不存......
  • Pinia使用技巧
    vue2使用的vuex,是一个状态管理器,现在vue3出了最新的pinia,今年偿试一下。首先是安装,这里要注意一下,有一个持久化插件,如果不用的话,页面一刷新,状态会消失。npminstallpin......
  • 前端开发避坑--在组件外使用 pinia 实例的同时,避免持久化无效
    简介pinia官网介绍了在组件外使用pinia实例的方式并不适用于所有场景,只是希望开发者能在实例创建好并注册到app实例后再使用use*Store获取对应仓库的实例。这是链......
  • vite+ts+vue3+router4+Pinia+ElmPlus+axios+mock项目基本配置
    1.vite+TS+Vue3npmcreateviteProjectname:...yourProjectNameSelectaframework:>>VueSelectavariant:>>Typescrit2.修改vite基本配置配置Vite{#configu......
  • pinia
    pinia的优点1.vue3、vue2、都支持2.抛弃了Mutations的操作,只有state、getters和actions3.不需要嵌套模块,符合vue3的Compositionapi4.完整的typescript支持5.代码更加简洁......
  • Vue3+Ts+Vite+Pinia后台管理项目实战
    一、新建有一个文件夹命名cms二、使用VsCode打开cms文件夹,在终端中执行命令npminitvue@latest这一指令将会安装并执行create-vue,它是Vue官方的项目脚手架工具。......
  • NOTE_pinia持久化插件的使用
    E:\song\vue_vue_learn\vite-project\index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><linkrel="icon"type="image/svg+xml"......
  • pinia源码解读三(创建store)
    定义模块这一步很复杂,用几个流程图来梳理一下createOptionsStore方法createSetupStore方法数据流向最后整理下数据的流向变更,对于写pinia插件很有帮助option写法版......