还在用vuex?来了解一下pinia

 更新时间:2022年02月10日 15:41:21   作者:别欺负我一个刚毕业的,前端老同志  
这篇文章主要为大家详细介绍了pinia,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

1. 什么是pinia

通俗的讲 :

① vuex精简版 ,而且vue官方更加推荐使用。

②优势又完胜于vuex ,下面我们来了解下pinia。

2.优势

pinavuex
pinia 同时支持vue2和vue3vue2要用vuex 3 版本
vue3要用vuex 4 版本
不分同步异步,更好的ts支持分同步异步,不太兼容ts
享受自动补全
需要注入,导入函数,调用他们

3. 使用 (非常简单)

① 安装

npm install pinia

在 main.js 中 加入

import { createApp } from 'vue'
import App from './App.vue'
import { createPinia } from 'pinia'  //导入pinia
const  pinia = createPinia();        //调用创建pinia
createApp(App)
			.use(pinia)
			.mount('#app')

③去创建 pinia 仓库

一般选在 /src下的 store 文件夹下 例:创建为 pinia.js

/src/store/pinia.js 为:

import { defineStore } from 'pinia'
export const PiniaStore = defineStore('main',{  //导出 pinia仓库
    state:() => { //相当于全局的 data()
        return {
            name:'张三',
            age:18
        }
    },
    getters:{},  //相当于全局的computed
    actions:{}   //相当于全局methods
})

③使用 (非常容易)

以/src/view/index.vue 为例:

Vue3写法:

<template>
    <h3>{{pinia.name}}</h3>  <!--使用-->
    <h3>{{pinia.age}}</h3>
    <button @click="pinia.age++">修改pinia数据</button>   <!--修改-->
</template>
<script setup>
    import { PiniaStore } from '../../store/pinia'
    const pinia = PiniaStore();
</script>

Vue2写法:

<template>
	<div>
       <h3>{{pinia.name}}</h3>
       <h3>{{pinia.age}}</h3>
       <button @click="pinia.age++">修改pinia数据</button>
    </div>
</template>
<script>
    import { PiniaStore } from '../../store/pinia'
    export default {
			created(){const pinia = PiniaStore();}
	}
</script>

大家不用担心用pinia会出问题 ,官方已经明确说了pinia是vuex 5版本的理念,而且官方更推荐pinia而非vuex

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!   

相关文章

  • Vue如何使用patch-package优雅地修改第三方依赖库

    Vue如何使用patch-package优雅地修改第三方依赖库

    在前端开发中,有时我们需要对第三方依赖库进行修改以满足项目需求,patch-package 是一个优秀的工具,可以帮助我们优雅地管理这些修改,下面我们来看看具体操作吧
    2025-03-03
  • Vue 单文件中的数据传递示例

    Vue 单文件中的数据传递示例

    本篇文章主要介绍了Vue 单文件中的数据传递示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • vuedraggable+element ui实现页面控件拖拽排序效果

    vuedraggable+element ui实现页面控件拖拽排序效果

    这篇文章主要为大家详细介绍了vuedraggable+element ui实现页面控件拖拽排序效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Vue编译报错内存溢出问题解决方式

    Vue编译报错内存溢出问题解决方式

    这篇文章主要为大家介绍了Vue编译报错内存溢出问题解决方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Vue引入部分element.ui组件的一些小坑记录

    Vue引入部分element.ui组件的一些小坑记录

    这篇文章主要介绍了Vue引入部分element.ui组件的一些小坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue 3.0x中的Suspense和异步组件详解

    Vue 3.0x中的Suspense和异步组件详解

    这篇文章主要介绍了Vue 3.0x中的Suspense和异步组件,我们将讨论新的defineAsyncComponent函数,以及如何利用Suspense组件来更好地处理异步组件的加载和显示,需要的朋友可以参考下
    2023-08-08
  • Vue3中SetUp函数的参数props、context详解

    Vue3中SetUp函数的参数props、context详解

    我们知道setup函数是组合API的核心入口函数,下面这篇文章主要给大家介绍了关于Vue3中SetUp函数的参数props、context的相关资料,需要的朋友可以参考下
    2021-07-07
  • 详解vue-cli中配置sass

    详解vue-cli中配置sass

    本篇文章主要介绍了详解vue-cli中配置sass ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Vue如何从1.0迁移到2.0

    Vue如何从1.0迁移到2.0

    这篇文章主要介绍了Vue如何从1.0迁移到2.0的相关资料,需要的朋友可以参考下
    2017-10-10
  • Vue-input框checkbox强制刷新问题

    Vue-input框checkbox强制刷新问题

    这篇文章主要介绍了Vue-input框checkbox强制刷新问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04

最新评论