为什么要用Pinia?因为vuex4对typescript的支持让人心酸,所以statemanagement放弃了vuex,采用了pinia。先说说使用PiniaCondition的5个要点:Pinia的API设计非常接近Vuex5提案。(作者为Vue核心团队成员)无需像Vuex4那样自定义复杂类型来支持typescript,天生就具备完美的类型推断。模块化设计,您介绍的每家店铺打包时可以自动拆分。没有嵌套结构,但您可以在任何商店之间交叉组合。Pinia挂接到Vuedevtools,不影响Vue3开发体验。下面简单介绍一下Pinia的使用方法,并对比一下与vuex的区别和注意事项。详情请参考官方文档。在深入Store的核心概念之前,我们需要知道脚手架中构建了哪些Stores,以及如何自定义创建Stores。内置StoreStore描述APIuseUserStore用户登录及信息管理详解useMenuStore路由&菜单管理详解useLogStore日志管理详解创建StorePinia已搭建在脚手架中,并已关联vue,你可以在任何地方创建store:import{defineStore}from'pinia'exportconstuseUserStore=defineStore({id:'user',state:()=>({}),getters:{},actions:{}})这个和Vuex很不一样,它是一个标准Javascript模块导出,这也让开发人员和您的IDE更清楚商店的来源。Pinia和Vuex之间的区别在于,id是将其使用的商店连接到devtools所必需的。创建方法:newVuex.Store(...)(vuex3),createStore(...)(vuex4)。与vuex3相比,state现在是一个函数返回对象。没有突变,别担心,状态变化仍然记录在devtools中。给State添加属性创建store后,可以在state中创建一些属性,state:()=>({name:'codexu',age:18})复制代码将store中的state属性设置为函数,函数返回一个包含不同状态值的对象,非常类似于我们在组件中定义数据的方式。在模板中使用store现在我们想从store中获取name的状态,我们只需要使用下面的方法:
