vue3中如何使用pinia,两种模式

使用方式一

一、安装pinia, 并在main.js引入

npm install pinia


//main.js
import { createPinia } from 'pinia'
var app = createApp(App)
app.use(createPinia()) //注册pinia插件
app.mount('#app')

二、创建store 创建文件tabbarStore.js

//tabbarStore.js  //用于隐藏显示tabbar
import {defineStore} from 'pinia'
import {ref} from 'vue'
//第一个参数是唯一storeId
const useTabbarStore = defineStore("tabbar",()=>{
    // ref包装定义的就是 state
    const isTabbarShow = ref(true)

    const change = (value)=>{
        isTabbarShow.value = value  //修改
    }
    return {
        isTabbarShow,
        change
    }
})

export default useTabbarStore

三。vue文件中使用

<script setup>
	import { onMounted,onBeforeMount,onBeforeUnmount } from 'vue';
	import useTabbarStore from '../store/tabbarStore';  //引入
	
	const store = useTabbarStore()
	
	onBeforeMount(()=>{
	    store.change(false)  //挂载前隐藏
	})
	
	onBeforeUnmount(()=>{
	    store.change(true)   //页面卸载后显示
	
	})

</script>

使用方式二

一、安装pinia, 并在main.js引入

npm install pinia


//main.js
import { createPinia } from 'pinia'
var app = createApp(App)
app.use(createPinia()) //注册pinia插件
app.mount('#app')

二、创建store 创建文件tabbarStore.js

import {defineStore} from 'pinia'

//第一个参数是唯一storeId
const useTabbarStore = defineStore("tabbar",{
    //option Store 
    state:()=>({
        isTabbarShow:true
    }),

    actions:{
        change(value){
            this.isTabbarShow = value
        }
    }
    // getters
    // actions
})

export default useTabbarStore

三、vue文件中使用


<script setup>
import { onBeforeMount,onBeforeUnmount } from 'vue';
import useTabbarStore from '../store/tabbarStore';

const store = useTabbarStore()

onBeforeMount(()=>{ //页面挂载前
     //store.isTabbarShow = false
     store.$patch({
        isTabbarShow:false
     })
})

onBeforeUnmount(()=>{  //卸载隐藏
    //store.isTabbarShow = true
     store.$patch({
         isTabbarShow:true
     })

    // store.$reset()
})

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葫芦娃y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值