这里给大家分享我在网上学习总结出来的一些知识,希望对大家有所帮助

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的更多相关文章

  1. vue3.0+vite+ts项目搭建--初始化项目(一)

    vite 初始化项目 使用npm npm init vite@latest 使用yarn yarn create vite 使用pnpm pnpx create-vite 根据提示输入项目名称,选择v ...

  2. vue3.0+vite+ts项目搭建--基础配置(二)

    集成vue-router 使用yarn yarn add vue-router@next --save 安装完成之后在src目录下创建文件夹router/index.ts,创建完成之后需要在Vue-R ...

  3. vue3.0+vite+ts项目搭建--初始化项目

    使用yarn yarn create vite 使用pnpm pnpx create-vite(pnpm create vite + 项目名) 根据提示输入项目名称,选择vue框架,选择vue-ts, ...

  4. vue3.0+vite+ts项目搭建-分环境打包(四)

    分环境打包配置 新建.env.dev(或者.env) VITE_NODE_ENV = 'dev' VITE_HOST = 'http://local.host.com' 执行yarn dev ,控制台 ...

  5. vue3.0+vite+ts项目搭建(报错处理)

    报错一 warning package.json: No license field$ vue-tsc --noEmit && vite build 解决方案,添加这两行,只添加一个是 ...

  6. vue3.0+vite+ts项目搭建--vite.config.ts配置(三)

    vite.config.ts配置 配置路径处理模块 安装ts的类型声明文件 yarn add @types/node -D 通过配置alias来定义路径的别名 resolve: { alias: { ...

  7. vue3.0+vite+ts项目搭建-axios封装(六)

    封装方式一 import axios from 'axios' import qs from 'qs' import { Toast } from 'vant' import Lockr from ' ...

  8. vue3.0+vite+ts项目搭建-postcss-pxtorem 实现移动自适应(五)

    这里不考虑大屏,所以不做amfe-flexible的配置 首先是安装依赖 yarn add postcss-loader postcss-pxtorem -D yarn add autoprefixe ...

  9. Vite + TS 项目导入 jQuery 包时报错:Could not find a declaration file

    TypeScript 需要类型标注,当使用第三方库(除 ts 以外写的库,即 js)时,又缺少声明文件,我们需要引用它的声明文件,才能获得对应的代码补全.接口提示等功能.jQuery 不是 TypeS ...

  10. vite + ts 快速搭建 vue3 项目 以及介绍相关特性

    博客地址:https://ainyi.com/98 Vue3.0,One Piece 接下来得抽空好好学习了 vite 尤大在 Vue 3.0 beta 直播中推荐了 vite 的工具,强调:针对Vu ...

随机推荐

  1. 详解instanceof底层原理,从零手写一个instanceof

    壹 ❀ 引 本道题的核心考点还是对于javascript原型的掌握程度,比如__proto__,prototype相关概念,以及instanceof底层原理的理解.若你对于原型已经非常熟悉,那么可以直 ...

  2. NC25879 外挂

    题目链接 题目 题目描述 我的就是我的,你也是我的,记住了,狐狸! ​ --韩信-白龙吟 对于打赌输了的小T会遭受到制裁,小s修改了数据库使他可以派出许多军队来围攻小T. 很不幸,小T与小s打赌打输了 ...

  3. Python list 中删除元素的方法

    在python列表中删除元素主要分为以下3种场景: 根据目标元素所在的索引位置进行删除,可以使用del关键字或pop()方法:根据元素本身的值进行删除,可使用列表(list类型)提供的remove() ...

  4. Java编程思想第四版(完整中文高清版)pdf

    ​这是一本有独到.深入的见解的Java语言,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念.本书共22章,包括操作符.控制执行流程.访问权限控制.复用类.多态.接口.通过异常处理错误.字符串.泛 ...

  5. 高效发现和解决insert字段长度不够的报错

    早上发现执行的PostgreSQL 存储过程报错,错误如下: 300-value too long for type character varying(100),一看就是表字段的长度太小,从提示看是 ...

  6. cmake安装及报错解决办法

    安装 yum install cmake 报错 centOS8(x86_64 或 aarch64) 系统下 yum或dnf 默认安装的 cmake-3.18.2-11.el8版本,安装后无法使用,出现 ...

  7. Html飞机大战(十三): 暂停状态编辑

    好家伙,本篇介绍如何添加暂停状态 按照惯例我们依旧先分析思路 什么时候游戏应该暂停? 当我的鼠标不在游戏画面内了,我们就可以直接暂停了 在当我的鼠标回来以后,我们继续进行游戏 所以我们可以监听一个鼠标 ...

  8. 【Azure 事件中心】从Azure Event Hub中消费数据,如何查看当前消费客户端消费数据的Offset和SequenceNumber呢(消息偏移量和序列号)?

    问题描述 当通过Azure Event Hub SDK消费Event Hub中的消息时,必须指定一个Storage Account(存储账号)用于保存 Checkpoint (检查点). 比如在C#代 ...

  9. 【Azure Developer】使用 Azure Python 查看 Azure 所有的 Alert rule

    问题描述 在Azure Alert 门户中,可以列举出所有Azure资源的Alert rule信息,如下图: 如果像通过Python SDK来获取所有的Alert Rule,有什么可以参考的代码吗? ...

  10. GDB调试入门笔记

    目录 What? Why How 安装GDB 安装命令 查看是否安装成功 调试简单的程序 预备一个程序 调试 使用 break info list next print step 一些小技巧 在gdb ...