Vue3?pinia管理數據的3種方式代碼
第一種
我們首先將需要的代碼文件呈現一下
<template>
<div class="count">
<h2>當前求和為:{{ 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',{
// 真正存儲數據的地方
state(){
return {
sum:2,
school:'北京大學',
address:'北京'
}
}
})
第一種修改方式屬于拿到就可以修改
countStore.sum+=n.value
第二種
第二種修改方式是,適用場景是很多數據需要同時的變更
countStore.$patch({
sum:888,
school:'清華大學',
address:'北京'
})
第三種
第三種方法是使用action
在Count.ts中將action寫好
actions:{
increment(value){
if( this.sum < 10){
// 修改數據(this是當前的store)
this.sum += value
}
}
}
再回到Count.vue加一行
countStore.increment(n.value)
這樣就可以修改了

附:vue代碼里監(jiān)聽 pinia的某個屬性
我們可以使用 watch 函數或 watchEffect 函數來監(jiān)聽 pinia的變化。
使用 watch 函數來監(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> 總結
以上就是在Vue3中使用Pinia管理數據的三種方式
到此這篇關于Vue3 pinia管理數據的3種方式的文章就介紹到這了,更多相關Vue3 pinia管理數據內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Vue的slot插槽分發(fā)父組件內容實現高度復用、更加靈活的組件(推薦)
這篇文章主要介紹了使用Vue的slot插槽分發(fā)父組件內容實現高度復用、更加靈活的組件 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-05-05
vue+vuecli+webpack中使用mockjs模擬后端數據的示例
本篇文章主要介紹了vue+vuecli+webpack中使用mockjs模擬后端數據的示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-10-10

