Vue3中使用pinia

  1. pinia简介

    1. 官方地址:https://pinia.vuejs.org/;
    2. Pinia 简化了Vuex的使用,是 Vue3的新的状态管理工具;
    3. Pinia 对 ts 的支持更好,性能更优, 体积更小,没有 mutations,可用于 Vue2 和 Vue3;
    4. Pinia支持Vue Devtools、 模块热更新和服务端渲染;
  2. pinia 的组成

    1. state(定义状态)、actions(定义方法)、getters(类似计算属性)。
  3. pinia 和 vuex 的比较

    1. Vuex 中核心部分: State、Getters、Mutations(同步) 和 Actions(异步)、modules(模块)
    2. Pinia 中核心部分: State、Getters 和 Actions(同步异步均支持)
  4. 接下来是实战使用方法,为了避免忘记,写一下笔记哈
    import { defineStore } from 'pinia';
    
    // TS 接口类型
    interface CouponStoreVo {
      tempCouponData: StoreTemplateCoupon;
    }
    
    export const useCouponStore = defineStore('couponStore', {
      state: (): CouponStoreVo => {
        return {
          data: {}
        };
      },
      actions: {
    
        // 暂存数据
        save(data: any) {
          this.data= data;
        },
    
        // 清除数据
        clear() {
          this.data= {};
        }
      }
    });
    

    组件中使用
     

    import { useCouponStore } from '@/store/index';
    
    
    <script lang="ts" setup>
    
      const couponStore = useCouponStore();
      
     // 使用仓库中的数据
       const test = ref(couponStore.state.data) 
        
    // 执行仓库中的 clear 方法
    function clearHandle() {
        couponStore.clear();
    }
        
    // 执行仓库中的 save 方法(通过调用 store 中的方法改变state 的数据)
    function saveHandle(data: any) {
        couponStore.save(data);
    }
    
    
    // 通过 $patch 方法修改数据(对pina 中的数据进行统一修改,状态只刷新一次)
    function disPatchHandle() {
        couponStore.$patch((state) => {
          state.data= '你的数据';
        });
    }
    
    // 将状态 重置 到其初始值, 当我们接收到pinia数据且对其数据进行了大量修改又想还原时,调用此方法就可以将接收的pinia数据全部重置还原
    function resetHandle() {
        couponStore.$reset()  
    }
    
    
    </script>
  5. 忘了忘了,还有安装

    npm install pinia
  6. 然后再main.ts 文件下,配置一下
    import { createApp } from 'vue'
    import App from './App.vue'
     
    const app=createApp(App)
     
     
     
    import { createPinia } from 'pinia' //引入pinia
    app.use(createPinia())
     
    app.mount('#app') 
     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Vue 3 可以使用 PWA 相关库 Pinia 来管理状态。 首先,需要在 Vue 3 安装 Pinia: ``` npm install @vueuse/pinia ``` 然后,在项目使用 Pinia,可以在 main.js 进行配置: ``` import { createApp } from 'vue' import App from './App.vue' import { createPinia } from '@vueuse/pinia' const pinia = createPinia() const app = createApp(App) app.use(pinia) app.mount('#app') ``` 在组件使用 Pinia,可以用 `setup()` 函数进行配置: ``` import { useStore } from '@vueuse/pinia' export default { setup() { const store = useStore('example') return { count: store.state.count, increment() { store.commit('increment') } } } } ``` 然后就可以在组件使用 `count` 和 `increment()` 了。 ### 回答2: Pinia 是 Vue 3 生态系统的状态管理库,它是一个为 Vue 3 设计的简单但功能强大的状态管理解决方案。使用 Pinia 可以更好地管理和组织 Vue 3 应用程序的状态。 在 Vue 3 使用 Pinia 非常简单。首先,我们需要安装 Pinia: npm install pinia 然后,在我们的应用程序的入口文件导入并创建一个 Pinia 实例: import { createPinia } from 'pinia' import { createApp } from 'vue' const pinia = createPinia() const app = createApp(App) app.use(pinia) app.mount('#app') 现在,我们可以在我们的组件使用状态管理了。我们可以使用 defineStore 函数来定义一个存储,该存储将包含我们的状态和一些操作。例如,我们可以定义一个名为 "counter" 的存储: import { defineStore } from 'pinia' export const useCounterStore = defineStore('counter', { state: () => ({ count: 0 }), actions: { increment() { this.count++ }, decrement() { this.count-- } } }) 然后,在我们的组件使用该存储: <template> <div> <p>Count: {{ count }}</p> <button @click="increment">Increment</button> <button @click="decrement">Decrement</button> </div> </template> <script> import { useCounterStore } from './store' export default { setup() { const counter = useCounterStore() return { count: counter.count, increment: counter.increment, decrement: counter.decrement } } } </script> 现在,我们可以在组件使用 count 变量来访问存储的计数,并通过点击按钮来增加或减少计数。 总结起来,Vue 3 使用 Pinia 只需几步即可轻松实现状态管理。首先,我们需要安装 Pinia 并在入口文件创建 Pinia 实例。然后,我们使用 defineStore 函数定义我们的存储,并在组件使用该存储。这使得我们可以使用存储的状态和操作来管理和共享应用程序的状态。 ### 回答3: Vue 3是一种用于构建用户界面的现代JavaScript框架,而Pinia是使用Vue 3生态系统的新状态管理库。 Vue 3使用Pinia主要可以提供更好的状态管理和数据流解决方案。 Pinia的主要特点之一是它是基于Vue 3的新响应式系统创建的。与传统的Vue 2响应式系统相比,它具有更高的性能和更好的内存管理。此外,Pinia还提供了更好的组织代码的结构,使项目更加可维护和可扩展。 在Vue 3使用Pinia的第一步是安装Pinia插件。可以通过使用npm或yarn命令来安装它。安装完成后,需要在应用程序的入口文件注册Pinia插件。 接下来,可以在Vue组件使用Pinia状态。首先,需要导入createPinia函数并使用它创建一个Pinia实例。然后,可以使用该实例的`useStore`函数来创建和使用Pinia存储。 Pinia存储是一个类,它通过定义状态和方法来跟踪和管理应用程序的数据。可以在存储类定义一些公共状态、计算属性和方法。存储类可以在Vue组件实例化,并通过Vue组件的provide/inject机制进行共享。 另外,在Vue 3,可以使用defineProps和defineEmits函数来定义组件的输入和输出。这些函数使得组件的属性和事件变得类型安全和更易于维护。 总之,Vue 3和Pinia之间的结合为Vue开发者提供了更好的状态管理和数据流解决方案。通过使用Pinia,可以更好地组织代码并提高应用程序的性能和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清云随笔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值