Vue3?pinia管理數(shù)據(jù)的3種方式代碼
第一種
我們首先將需要的代碼文件呈現(xiàn)一下
<template>
<div class="count">
<h2>當(dāng)前求和為:{{ countStore.sum }}</h2>
<h3>歡迎來到:{{ countStore.school }},坐落于:{{ countStore.address }}</h3>
<select v-model.number="n">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button @click="_add">加</button>
<button @click="_jian">減</button>
</div>
</template>
<script setup lang='ts' name="Count">
import {ref} from 'vue'
import {useCountStore} from '@/store/Count'
const countStore = useCountStore()
let n = ref(1)
function _add(){
function _jian(){
}
</script>
<style scoped>
.count {
background-color: skyblue;
padding: 10px;
border-radius: 10px;
box-shadow: 0 0 10px;
}
select,button {
margin: 0 5px;
height: 25px;
}
</style>
還有Count.ts
import {defineStore} from 'pinia'
export const useCountStore = defineStore('Count',{
// 真正存儲數(shù)據(jù)的地方
state(){
return {
sum:2,
school:'北京大學(xué)',
address:'北京'
}
}
})
第一種修改方式屬于拿到就可以修改
countStore.sum+=n.value
第二種
第二種修改方式是,適用場景是很多數(shù)據(jù)需要同時的變更
countStore.$patch({
sum:888,
school:'清華大學(xué)',
address:'北京'
})
第三種
第三種方法是使用action
在Count.ts中將action寫好
actions:{
increment(value){
if( this.sum < 10){
// 修改數(shù)據(jù)(this是當(dāng)前的store)
this.sum += value
}
}
}
再回到Count.vue加一行
countStore.increment(n.value)
這樣就可以修改了

附:vue代碼里監(jiān)聽 pinia的某個屬性
我們可以使用 watch 函數(shù)或 watchEffect 函數(shù)來監(jiān)聽 pinia的變化。
使用 watch 函數(shù)來監(jiān)聽 pinia 的變化:
<template>
<div>
Count: {{ pinia.count }}
<button @click="pinia.addCount"></button>
</div>
</template>
<script setup>
import { watch } from 'vue'
<code>import { myPinia} from './pinia'
const pinia = myPinia()
watch(() => pinia .count, (newVal, oldVal) => {
console.log(`count changed from ${oldVal} to ${newVal}`)
})</code>
<code></script> </code> 總結(jié)
以上就是在Vue3中使用Pinia管理數(shù)據(jù)的三種方式
到此這篇關(guān)于Vue3 pinia管理數(shù)據(jù)的3種方式的文章就介紹到這了,更多相關(guān)Vue3 pinia管理數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue.js頁面中有多個input搜索框如何實現(xiàn)防抖操作
debounce是lodash工具庫中的一個非常好用的函數(shù)。這篇文章主要介紹了Vue.js頁面中有多個input搜索框如何實現(xiàn)防抖操作,需要的朋友可以參考下2019-11-11
VUE的history模式下除了index外其他路由404報錯解決辦法
在本篇文章里小編給大家分享的是關(guān)于VUE的history模式下除了index外其他路由404報錯解決辦法,對此有需要的朋友們可以學(xué)習(xí)下。2019-08-08
Vue Router的三種歷史模式應(yīng)用與對比詳解
在 Vue.js 單頁應(yīng)用(SPA)中,vue-router 提供了三種不同的 歷史模式 來管理路由導(dǎo)航和 URL 顯示方式,每種模式適用于不同場景,下面小編就和大家簡單介紹一下吧2025-10-10
vue中window.addEventListener(‘scroll‘,?xx)失效的解決
這篇文章主要介紹了vue中window.addEventListener(‘scroll‘,?xx)失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

