项目源码-Vue3项目10-整合Pinia

Last Updated on 2025年1月12日 by hangzi

整合Pinia

1、安装依赖

pnpm add pinia

2、新建stores目录,新建index.js文件

新建store

内容如下:


import {createPinia} from "pinia";

const store = createPinia();

// 全局注册 store
export function setupStore(app) {
    app.use(store);
}

export {store}

3、配置store插件

配置store插件


import {setupRouter} from "@/router/index";
import {setupStore} from "@/stores/index";

export default {
    install(app) {
        setupRouter(app);
        setupStore(app)
    }
}

4、配置插件

配置插件

5、查看是否使用,打开浏览器开发工具

pinia使用

6、业务模块

src/stores目录下新建一个modules目录,在modules目录下新建一个user.js模块

user.js模块

pinia使用-定义Store:

import {defineStore} from "pinia";
import { store } from "@/stores";

// 定义Store
const userStore = defineStore('user', ()=>{

});

export function useUserStore(){
    return userStore(store);
}

在 Setup Store 中:

  • ref() 就是 state属性
  • computed() 就是 getters
  • function() 就是 actions

src/stores/modules/user.js完整内容:

import {defineStore} from "pinia";
import { store } from "@/stores";

// 定义Store
const userStore = defineStore('user', ()=>{
    // state
    const user = ref({
        name: '张三',
        age: 18,
        sex: '男'
    });

    // getters
    const changeAge = computed(()=>{
        return user.value.age + 1;
    });

    // actions
    function changeName(val){
        user.value.name = val;
    }

    return {
        user,
        changeAge,
        changeName
    }
});

export function useUserStore(){
    return userStore(store);
}

src/stores/index.js下配置user.js模块

配置user.js模块

7、使用store

以下例子都是以组合式Setup Store方式:更多详细看官方文档

src/views/about/index.vue下使用 获取用户信息

使用store

src/views/about/index.vue下使用 修改操作

使用store

8、运行项目效果

运行效果

项目Demo源码:https://github.com/hangzhi7/Vue3-Demo


关注微信公众号『编程与读书

第一时间了解最新网络动态
关注博主不迷路~