1. 安装 pinia, npm i pinia

2. 在 main.ts 文件中引入 pinia

import { createApp, App } from 'vue'
import { createPinia, Pinia } from 'pinia'
import AppComponent from './App.vue'const app: App = createApp(AppComponent)
const pinia: Pinia = createPinia()
app.use(pinia)
app.mount('#app')

3. 新建 /src/store 目录存放公共状态文件,例如

3.1 新建 test.type.ts 定义类型
type TestState = {count: numberuser: {age: numbername: string}
}
type TestGetters = {doubleCount: (state: TestState) => numberusername: (state: TestState) => string
}
type TestActions = {setCount: (count: number) => void
}
// 注意:如有导入导出的依赖数据或类型,自定义test类型需要使用export导出;否则可视为全局类型即可直接使用
3.2 新建 test.ts 创建test模块公共状态
import { defineStore } from 'pinia'// 在此约束类型不管编写或使用都可有较好的提示
export const useTestStore = defineStore<string, TestState, TestGetters, TestActions>('TestId', {state: () => ({count: 10,user: {age: 18,name: '小明'}}),getters: {doubleCount: (state) => state.count * 2,username: (state) => state.user.name},actions: {setCount(count: number) {this.count = count}}
})

4. 最后在任意页面使用即可

<script setup lang="ts">
import { useTestStore } from '@/store/test' const testStore = useTestStore()
console.log(testStore.count)
console.log(testStore.user.name)
console.log(testStore.doubleCount)
console.log(testStore.username)// 修改state数据方式1
testStore.count = 11
testStore.$state.count = 11// 修改state数据方式2
testStore.$patch({count: 11
})
testStore.$patch(state => {state.count = 11
})// 修改state数据方式3(不建议)
testStore.$state = {count: 11
}// 修改state数据方式4(建议)
testStore.setCount(11)</script>

vue3 ts 使用 pinia相关推荐

  1. vue3+Ts使用pinia(vue-lic搭建项目)

    1.安装 npm install pinia -S 2.pinia初始化 //在store目录下新建多个.ts文件(为了便于模块化和更好维护) //index.ts import { manage } ...

  2. 一步刷出个后台。Vue3+Ts+element-admin-Vite+Pinia

    首先下载我这个资源.没有分的留邮箱免费发. vite-vue-ts精简模版集成pinia+svg+router+@src-Typescript文档类资源-CSDN下载本源码已经调试通过集成Vite-v ...

  3. vue3+ts+pinia智慧党建模板

    这里写自定义目录标题 vue3+ts+pinia 智慧 门户 模板 vue3+ts+pinia 智慧 门户 模板 智慧党建模板,组织工作, "党员教育", "思想理论&q ...

  4. VUE3中使用pinia

    Vue3中使用pinia 安装依赖 yarn add pinia //下面这个取决你需不需要数据持久化安装 yarn add pinia-plugin-persist 挂载 import {creat ...

  5. 使用Vite创建Vue3+TS项目并整合Element Plus框架等一条龙服务

    记录一下使用Vite创建Vue3+TS项目以及整合Element Plus框架,还有Less.Pinia.Vue-router.monaco-editor等插件或组件. 一.使用Vite创建Vue3+ ...

  6. vite+vue3+ts项目搭建之集成qiankun让其成为子应用模板(vite+vue3+ts+qiankun项目)—新增主应用在线地址可以进入vue2/vue3子应用

    前言 以下操作,是续接之前 第四步 --即:vite+vue3+ts+pinia+element-plus项目已完成搭建好,可以直接业务开发了 主应用技术栈:vue2+webpack+js 集成qia ...

  7. Vue3+TS+Vite+Element Plus搭建后台管理系统

    Vue3+TS+Vite+Element Plus搭建后台管理系统 1.简介 2.效果图 3.技术栈 4.项目目录 5.setting.js(全局配置文件) 6.路由router 7.状态管理stor ...

  8. vite+vue3+ts+ant design vue+tailwindcss搭建前端web应用(2)

    回顾 上篇文章地址:vite+vue3+ts+ant design vue+tailwindcss搭建前端web应用(1)_konsei的博客-CSDN博客 上篇文章搭建了vue3项目,引入了ant ...

  9. vite+vue3+ts项目插件使用(提高开发效率vite+vue3插件使用)新增在线预览地址

    在线预览 Link:https://wocwin.github.io/wocwin-admin/ 一.@vitejs/plugin-vue-jsx vite+vue3项目全面支持jsx语法 npm i ...

最新文章

  1. 8.Spring整合Hibernate_2_声明式的事务管理(Annotation的方式)
  2. JAVA实现斐波那契数列问题(《剑指offer》)
  3. 用TextKit实现表情混排
  4. php中参数传值的三种方法,php cli传递参数的方法
  5. Centos 7 上 查看MySQL当前使用的配置文件my.cnf的方法
  6. Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe
  7. 联想确认再次裁员 称调整主要分布在海外
  8. 笔试编程常用函数(Java)
  9. 免安装版的mysql步骤_mysql免安装版的安装方法及步骤
  10. [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
  11. vue PC端国际化一站式解决方案
  12. aix 查看防火墙状态_Linux 7.x 防火墙amp;端口
  13. windows平台下在Cygwin中运行Nutch1。2的抓取命令提示JAVA_HOME not set解决方案
  14. Spring Cloud(Greenwich版)-03-编写高可用Eureka Server(集群)
  15. 重装驱动:Failed to initialize NVML: Driver/library version mismatch
  16. 解决 ”To prevent a memory leak, the JDBC Driver has been forcibly unregistered“
  17. Thinkpad E450c WIN8 重装系统 如何U盘启动
  18. Android 和 iOS APP 测试的区别
  19. 加密世界“众生相”:僧侣、信徒和骗子
  20. 重拳出击之《JVM》面试官版 (初哥勿看)

热门文章

  1. Stata数据处理:FRED数据导入问题的解决方案
  2. Git 上传忽略文件设置 .ignore exclude
  3. leetcode 695. 岛屿的最大面积 python
  4. 秋晨微凉的第一篇CSDN博客
  5. 博弈论——合作博弈的Shapley值如何求解?
  6. 屁股精神,你知道吗?
  7. puppy linux 教程,Puppy Linux 中文支持包制作方法
  8. python篇-基础知识2
  9. PTA 7-2 简化的插入排序 (15 分)本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。
  10. 差分隐私:原理、应用与展望(新加坡国立大学 萧小奎)