美文网首页web前端
vue3的状态管理

vue3的状态管理

作者: 姜治宇 | 来源:发表于2022-11-07 16:49 被阅读0次

vue3的状态管理比较简单,摒弃了繁琐的vuex,改用肥肠好用的pinia。

声明store

在根路径新建一个store文件夹,然后创建一个index.ts:

import {createPinia} from 'pinia'

const store = createPinia()

export default store

然后在main.js引用一下。

import { createApp } from 'vue'
import App from './App.vue'
import store from '@/store'
const app = createApp(App)
app.use(store) //引用store
app.mount('#app')

创建业务state

我们可以根据业务划分相关state,然后单独创建相关的ts文件。比如用户信息相关的状态,我可以在store文件夹下新建一个user.ts:

import {defineStore}  from 'pinia'

const userInfo = defineStore({
    id:'user',
    state:()=>{
        return {
            name:'',
            sex:0,
            interest:null
        }
    },
    actions:{
        setUserInfo(data:any){
            this.name = data.userName;
            this.sex = data.userSex;
            this.interest = data.userInterest;
        },
        async getUserInfo(){
            const data = await new Promise(resolve=>{
                setTimeout(()=>{
                    resolve({userName:'jack',userSex:1,interest:['reading','football']}) 
                },1000)
            })
           
            this.setUserInfo(data)
        }
    }
})

export default userInfo

actions同步和异步都支持,简单明了,这也是优于vuex的地方;访问的时候还是跟之前一样,直接访问state即可。

使用

建好了业务state,我们就可以在组件下使用了。

<template>
   <div class="greetings">
      <span v-if="user.name">{{userStates.name}}--{{userStates.sex}}</span>
  </div>

</template>
<script setup lang="ts">
import userInfo from '../store/user'
const userStates = userInfo()
userStates.getUserInfo() //异步函数,注意前面不要加await
</script>

相关文章

  • Vue3中使用Pinia

    Vue2 中使用Vuex进行状态管理,在Vue3中,引入了Pinia,如果使用Vue3的脚手架搭建项目,其中包含了...

  • vue3的状态管理

    vue3的状态管理比较简单,摒弃了繁琐的vuex,改用肥肠好用的pinia。 声明store 在根路径新建一个st...

  • 使用proxy 给状态加一个跟踪功能

    上一篇介绍了一个自己做的轻量级的状态管理,好多网友说,状态主要的是跟踪功能,不能跟踪算啥状态管理? 因为vue3的...

  • vue3使用pinia管理状态

    Pinia pinia 是一款新的vue3的状态管理库,完整的typescript支持。 安装 创建根store并...

  • 从零开始使用 vite + vue3 + pinia + nai

    构建工具使用vue3推荐的vite;状态管理使用pinia,该库的作者也是vuex的核心成员;UI组件库使用尤大推...

  • Vuex最详细教学

    一、Vuex单界面到多界面状态管理切换: 1.安装配置vuex,版本依赖 vue2的项目使用vuex3,vue3的...

  • vue3 使用vuex

    1.前言 vuex作为 vue中最流行的状态管理工具,在vue3版本使用的时候也是有些注意事项的 总结如下 2. ...

  • Vuex4.0(八)在Vue3环境下如何优雅的管理状态?

    基于Vue2.x风格的Vuex的使用方式不适合Vue3了 我们都知道Vuex是专门为Vue开发的一套状态管理方式,...

  • Vue3学习与实战 · Vuex状态管理

    Vuex 是 Vue 全家桶重要组成之一,专为 Vue.js 应用程序开发的 状态管理模式 + 库 ,它采用集中式...

  • Vue3 UI创建项目

    之前整理了vue3命令行创建项目,vue3还出了图形化管理项目的功能,讲真的,vue越来越简单了,本人认为有点偏向...

网友评论

    本文标题:vue3的状态管理

    本文链接:https://www.haomeiwen.com/subject/umwwtdtx.html