Vite+TS项目:论如何便捷的使用pinia
这里给大家分享我在网上学习总结出来的一些知识,希望对大家有所帮助

pinia
介绍
vue新一代状态管理库,相当于vuex
特性
1.像定义components一样定义store 2.支持ts 3.去除mutations,只有state,getters,actions(支持同步异步) 4.轻量级(1kb) 5.vuex是要有主入口进行统一导入,pinia可以分模块导入
pina简单使用
1.导入path
项目全局安装 @type/node npm install @types/node --save-dev
2.config设置@指标

3.tsconfig.json设置@指标

4.导入pinia
项目全局安装 pinia npm install pinia --save-dev
5.全局导入pinia

6.store内容设置案例

内容:
import { defineStore } from 'pinia'
export default defineStore('myGlobalState', {
state: () => {
return {
count: 1,
message: 'Hello world',
phone: 13811111199
}
},
actions:{
countAdd(){
this.count++
}
},
getters:{
countSum(state){
return state.count*2
}
}
})
7.demo调用方法展示
<script setup lang="ts">
import useCommonStore from '@/store/index'
import {storeToRefs} from "pinia";
const store = useCommonStore()
const data = storeToRefs(store)
// 常规方法修改内容
const storeAdd = ()=>{
data.count.value++
}
// $patch修改内容
const storeAddOne = ()=>{
store.$patch({
count:store.count+1
})
}
// $patch修改内容,内带对象
const storeAddTwo = ()=>{
store.$patch((state)=>{
state.count++
})
}
// $state修改整体内容
const storeRest = ()=>{
store.$state = {
count: 1,
message: 'Hello world',
phone: 13811111199
}
}
// $reset重置为初始内容
const storeRestOne = ()=>{
store.$reset()
}
// $subscribe监听整个仓库变化
store.$subscribe((mutation,store)=>{
console.log("mutation",mutation)
console.log("store",store)
})
</script> <template>
<div class="box">
<h2>
{{store.count}}
getters获取值{{store.countSum}}
<el-button @click="storeAdd" type="primary">添加一</el-button>
<el-button @click="storeAddOne" type="primary">添加二</el-button>
<el-button @click="storeAddTwo" type="primary">添加三</el-button>
<el-button @click="storeRest" type="primary">重置一</el-button>
<el-button @click="storeRestOne" type="primary">重置二</el-button>
<el-button @click="store.countAdd" type="primary">actions调用</el-button>
</h2>
</div>
</template> <style scoped lang="stylus">
.box
text-align center
line-height 150px
</style>
如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

Vite+TS项目:论如何便捷的使用pinia的更多相关文章
- vue3.0+vite+ts项目搭建--初始化项目(一)
vite 初始化项目 使用npm npm init vite@latest 使用yarn yarn create vite 使用pnpm pnpx create-vite 根据提示输入项目名称,选择v ...
- vue3.0+vite+ts项目搭建--基础配置(二)
集成vue-router 使用yarn yarn add vue-router@next --save 安装完成之后在src目录下创建文件夹router/index.ts,创建完成之后需要在Vue-R ...
- vue3.0+vite+ts项目搭建--初始化项目
使用yarn yarn create vite 使用pnpm pnpx create-vite(pnpm create vite + 项目名) 根据提示输入项目名称,选择vue框架,选择vue-ts, ...
- vue3.0+vite+ts项目搭建-分环境打包(四)
分环境打包配置 新建.env.dev(或者.env) VITE_NODE_ENV = 'dev' VITE_HOST = 'http://local.host.com' 执行yarn dev ,控制台 ...
- vue3.0+vite+ts项目搭建(报错处理)
报错一 warning package.json: No license field$ vue-tsc --noEmit && vite build 解决方案,添加这两行,只添加一个是 ...
- vue3.0+vite+ts项目搭建--vite.config.ts配置(三)
vite.config.ts配置 配置路径处理模块 安装ts的类型声明文件 yarn add @types/node -D 通过配置alias来定义路径的别名 resolve: { alias: { ...
- vue3.0+vite+ts项目搭建-axios封装(六)
封装方式一 import axios from 'axios' import qs from 'qs' import { Toast } from 'vant' import Lockr from ' ...
- vue3.0+vite+ts项目搭建-postcss-pxtorem 实现移动自适应(五)
这里不考虑大屏,所以不做amfe-flexible的配置 首先是安装依赖 yarn add postcss-loader postcss-pxtorem -D yarn add autoprefixe ...
- Vite + TS 项目导入 jQuery 包时报错:Could not find a declaration file
TypeScript 需要类型标注,当使用第三方库(除 ts 以外写的库,即 js)时,又缺少声明文件,我们需要引用它的声明文件,才能获得对应的代码补全.接口提示等功能.jQuery 不是 TypeS ...
- vite + ts 快速搭建 vue3 项目 以及介绍相关特性
博客地址:https://ainyi.com/98 Vue3.0,One Piece 接下来得抽空好好学习了 vite 尤大在 Vue 3.0 beta 直播中推荐了 vite 的工具,强调:针对Vu ...
随机推荐
- SP16113 SUBTLEBA - Trucks Transportation 题解
题目传送门 前言 本题样例有问题,如果想要样例可以去 vjudge 上. 本题提交后可能会出现 UKE ,建议前往 link 提交,而且本篇题解中所提供的代码也为 link 代码. 前置知识 Krus ...
- 【Unity3D】UGUI之布局组件
1 概述 布局组件主要有:水平布局(HorizontalLayoutGroup).垂直布局(VerticalLayoutGroup).网格布局(GridLayoutGroup),用于约束子控件的布 ...
- MutationObserver对象
MutationObserver对象 MutationObserver (W3C DOM4)对象提供了监视对DOM树所做更改的能力,其被设计为旧的Mutation Events功能的替代品(该功能是D ...
- win32 - WriteProcessMemory的使用
使用这个api可以在指定的进程中将数据写入内存区域. 注意:以管理员权限运行,并且以x64调试. #include <windows.h> #include <iostream> ...
- 面向对象之封装,类的相关操作,私有成员删除,构造方法__init__---day20
1.面向对象之封装 # ### 面向对象oop -封装 """ 类中封装: 成员属性 成员方法 封装等级: 1.公有:公有成员既能够在类外调用,也可在类内调用 2.私有: ...
- 如何拓展jwt返回的数据
默认的返回值仅有token,我们还需在返回值中增加username和id,方便在客户端页面中显示当前登陆用户 通过修改该视图的返回值可以完成我们的需求. 在user/utils.py中,创建 def ...
- python字符串模板文本处理之Template
from string import Template s = Template('$who 在 $do') ts = s.substitute(who="张三", do=&quo ...
- celery正常启动后能接收任务但不执行(已解决)
错误截图:celery接收到任务却不执行(多出在windows系统中) 解决方法1 添加–pool=solo参数 celery -A celery_tasks.main worker --pool=s ...
- mongo重启、远程连接
1.查看当前mongo启动进程 ps -ef | grep mongo 2.修改mongo启动远程连接配制文件 vi /etc/mongod.conf 将 bind_ip=127.0.0.1 这一行注 ...
- 【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?
问题描述 当 Azure Web App 进行安全扫描后,发现依旧支持很多弱TLS加密套件(Weak TLS Ciphers Suite),那么是否有办法来关闭这些弱的加密套件呢? 在Windows ...