主要为了记录如何使用Pinia在Vue3中的使用方式(下面会介绍为什么使用Vue3选型)
- 目前我所在的公司中,几乎
新创建的项目全都是Vue3的项目
,基本不存在
.新创建的项目是Vue2的项目
- 个人觉得
现在的招聘市场
也更加的倾向于Vue3+Ts方向的开发者
。
- 虽然现在的市场上也会需要Vue2的开发者,但是我认为更多的是需要对老的Vue2项目的一个维护的需要。
个人感觉,大家还是尽最大能力的去拥抱Vue3+Ts的开发模式吧!!!
1.不论你是使用Vue2还是Vue3的开发者,你肯定接触过Vuex这个Vue最初的状态管理工具。Pinia的功能就是与Vuex类似的一个状态管理工具。
一、基于 Vue 3 的响应式系统,支持 Vue 3 的组合式Api(Composition API) 。
二、面向对象的设计,将状态拆分为模块(module)和 store 的概念。
三、简化的 API,可以通过一些简单的函数和装饰器来定义和使用状态。
npm install pinia //这一步大家都会安装(不会安装该考虑转行了 - -!)
//常规导入
import {createPinia} from 'pinia'
//创建pinia的实例
const pinia =createPinia()
//注册pinia
app.use(pinia)
//第一步:导入 defineStore
import {defineStore} from 'pinia'
//第二步:声明对应的仓库: 参数一:仓库名称,参数二:对应仓库的配置信息
export const storeTestState =defineStore('testState',{
//1.仓库中声明的状态
state:()=>({
count:0,
name:'xiaobai',
email:'[email protected]'
}),
//2.仓库中的计算属性(与Vuex中的getters一样的作用,可以理解成是计算属性)
getters:{
gettersCount:(state)=>' getters计算属性:'+ state.count
},
//3.对应的一个Action方法(与Vuex中的 mutation和Action的组合体很像)
actions:{
subCount(){
this.count--
},
addCount(){
this.count++
},
}
})
export const storeFunctionTest=defineStore('function',()=>{
//1.声明ref的变量|也可以使用reactive进行声明
const count =ref(1)
//2.计算属性可以使用 computed来声明(这里就不展示了)
//3.下面的function对应的就是Action中的方法
const addCount = ()=>{
count.value+=1
}
const subCount = ()=>{
count.value-=1
}
//4.最后记得把 可调用的【状态和方法】导出
return{count,addCount,subCount}
})
<template>
<div class="home-root">
首页首首页shouye
<div class="home-show">
<p>{{ count.count }}-----{{ count.email }}p>
<button
@click="
() => {
count.addCount();
}
">
+1
button>
<button
@click="
() => {
count.subCount();
}
">
-1
button>
div>
div>
template>
<script setup>
//1.将刚才创建的仓库导入(可以导入多个)
import { storeTestState } from "../../store/Test/index.js";
//2.创建仓库实力(可以创建多个)
const count = storeTestState();
</script>
上面就是关于Pinia的基本用法。后续会继续更新其他的用法。
例如:1.仓库数据添加响应式。2.仓库数据持久化存储。
希望可以帮助到你们去了解这个比较新的仓库状态管理工具!!!!!