pinia 的使用(vue3)

本文介绍了在 Vue3 项目中如何使用 Pinia 进行状态管理。内容涵盖下载安装 Pinia,创建 store 文件,使用 state 和 getters,通过 storeToRefs 解构赋值,以及详细阐述了 actions 的应用方法。
摘要由CSDN通过智能技术生成

pinia 的使用

下载引入 pinia

npm install pinia

// main.ts  (vue3  )

import {
    createPinia } from 'pinia';
app.use(createPinia());

创建 store>index.ts 文件

import {
    defineStore } from 'pinia'
// 主要的全局数据 main只是描述信息
export const useMainStore = defineStore('main', {
   
  // 静态数据
  state: () => {
   
    return {
   
      info: "pinia 可以使用",
      count: 10,
    }
  },
  // 相当于计算属性(有数据缓存)
  getters: {
   
    count10(state) {
   
      return state.count + 10
    },
    // 若使用this.count,则必须指明返回数据的类型
    count11(): number {
   
      
引用的内容是关于在Vue2使用Pinia的安装步骤和引入方式。首先,需要安装Pinia和@vue/composition-api依赖。使用以下命令进行安装: ```cnpm i pinia --save cnpm i pinia @vue/composition-api --save ``` 然后,在main.js文件引入Pinia和PiniaVuePlugin,并创建Pinia实例,将其挂载在Vue实例上,示例如下: ```javascript // 引入pinia import { createPinia, PiniaVuePlugin } from 'pinia' Vue.use(PiniaVuePlugin) const pinia = createPinia() new Vue({ router, pinia, render: h => h(App) }).$mount('#app') ``` 引用的内容是关于在Vue2使用Pinia的模板使用方式。可以直接在template使用Pinia提供的状态和方法。示例如下: ```vue <template> <div> <fieldset> <legend>{{ this.obj.comp }} <button @click="this.obj.increment">{{ this.obj.counter }}</button> </legend> </fieldset> </div> </template> <script> // 导入 pinia 实例 import useMainStore from '../storeioen' // 实例化容器 const mainStore = useMainStore() export default { data() { return { id: '' } }, mounted() { this.obj = mainStore console.log(this.obj) } }; </script> ``` 引用的内容是关于在Vue2使用Pinia的storeToRefs方法。storeToRefs方法可以将Pinia的状态转换为响应式的ref,并将其导出供模板使用。示例如下: ```vue <script> import { mapState, mapActions, storeToRefs } from 'pinia' import storeId from '../storeioen' //storeId就是导出的那个 const ustoreId = storeId() //实例化容器 console.log(ustoreId) const { counter } = storeToRefs(ustoreId) //这样使用 export default { data() { return { id: '' } }, methods: {}, computed: {}, mounted() { this.id = counter // 但是这样出来的会变成一个对象,的键为使用时需要注意 } }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值