vue3插件-pinia

本文介绍了Pinia——一个适用于Vue2和Vue3的状态管理库,作为Vuex的替代方案。首先,通过npm或yarn安装并注入Pinia到Vue应用中。接着,展示了如何定义和使用Store,包括state、getters、actions的设置。在Store中,你可以创建和操作状态,并在组件中通过storeToRefs保持响应式。最后,提供了代码示例帮助理解Pinia的使用。

一、pinia是什么?

Pinia 是一个用于 Vue 的状态管理库,类似 Vuex, 是 Vue 的另一种状态管理方案
Pinia 支持 Vue2 和 Vue3

二、使用步骤

1.安装并注入

安装

# 使用 npm
npm install pinia@next
# 使用 yarn
yarn add pinia@next

注入vue

import { createPinia } from 'pinia';
app.use(createPinia());

2.核心概念与基本使用

Store 是一个保存状态和业务逻辑的实体,可以自由读取和写入,并通过导入后在 setup 中使用
创建一个 store.ts和demo.ts

// store.ts
import { defineStore } from "pinia";
import { useDemoStore } from "./demo";

// defineStore 调用后返回一个函数,调用该函数获得 Store 实体
export const useStore = defineStore({
  // id: 必须的,在所有 Store 中唯一
  id: "myGlobalState",
  // state: 返回对象的函数
  state: ()=> ({
    count: 1
  }),
  getters: {
    getCount(state) {
      return state.count + 1;
    },
    getDemo() {
      const demoStore = useDemoStore();
      return demoStore.count;
    },
  },
  actions: {
    setCount(count: number) {
      this.count = count;
    },
  },
});

// demo.ts
import { defineStore } from "pinia";

export const useDemoStore = defineStore({
  id: "otherState",
  state: ()=> ({
    count: 5
  }),
});

使用

//demo.vue
import { storeToRefs } from "pinia";

import {useStore} from '@/store'

const store = useStore()

// 解构会丧失响应式,需使用storeToRefs
const {count} = storeToRefs(store)

store.setCount(10000)

代码参考

https://github.com/wangliuyong/vue3-vite

关于vite、vuepinia和qiankun在部署时的注意点,虽然给定引用未直接提及,但可以结合其涉及的相关技术原理推测: ### Vite部署注意点 - **基础路径配置**:在`vite.config.ts`里要合理设定`base`属性,这是与后台、运维约定好做NG转发的关键。像主应用地址加上子应用`base`会直接进行NG转发,如`base: '/vitedemo'` [^1]。 - **插件配置**:使用`vite-plugin-qiankun`这类插件时,要保证配置无误。比如配置`qiankun`插件时,必须指定当前子应用命名,像`const packName = require('./package').name`,且要正确设置插件选项,如`qiankun(`${packName}`, { useDevMode: true })` [^1]。 ### Vue部署注意点 - **版本兼容性**:要保证主应用和子应用的Vue版本相互兼容。例如以qiankun框架为基础,vite搭建Vue3项目作为主应用,webpack搭建Vue2项目作为子应用时,要确保它们之间能正常集成 [^2]。 - **组件通信**:采用合适的组件通信方式。除了常见方式,还能使用`provide`、`inject`,或者把数据存到`vuex`或`pinia`中 [^4]。 ### Pinia部署注意点 - **状态管理**:在部署时要保证Pinia的状态管理在主应用和子应用间正常工作,确保状态能正确同步和更新。 ### Qiankun部署注意点 - **子应用注册**:qiankun的核心是把多个单页面子应用通过全局的`window`方式在主应用中进行js注册,部署时要保证子应用注册准确无误 [^5]。 - **跨域问题**:由于微前端涉及多个独立的应用,部署时要处理好跨域问题,保证主应用和子应用间的资源能正常加载和通信。 ### 代码示例 ```typescript // vite.config.ts import qiankun from 'vite-plugin-qiankun'; const packName = require('./package').name; export default { base: '/vitedemo', plugins: [ qiankun(`${packName}`, { useDevMode: true }), // 其他插件 ] }; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值