为什么做企业网站,平面设计和室内设计的区别,网络营销与传统营销有哪些区别,联系方式 响应式网站整合状态管理组件 安装整合创建实例挂载使用 pinia 是一个拥有组合式 API 的 Vue 状态管理库。 pinia 官方文档#xff1a;https://pinia.vuejs.org/zh/introduction.html 安装
yarn add pinia整合 所有与状态相关的文件都放置于项目 src/store 目录下#xff0c;方便管理 在… 整合状态管理组件 安装整合创建实例挂载使用 pinia 是一个拥有组合式 API 的 Vue 状态管理库。 pinia 官方文档https://pinia.vuejs.org/zh/introduction.html 安装
yarn add pinia整合 所有与状态相关的文件都放置于项目 src/store 目录下方便管理 在 src 下创建目录 store目录设计如下
index.ts创建 pinia 实例modules状态管理目录所以的状态文件统一放置于该目录下
创建实例
创建 index.ts 文件内容如下
import { createPinia } from piniaconst store createPinia()export default store挂载
在 main.ts 文件中进行挂载
import { createApp } from vue
import App from ./App.vue
import store from /storeconst app createApp(App)
app.use(store)
app.mount(#app)使用
定义Store
pinia 通过 defineStore 函数进行定义第一个参数是名称名称必须保持唯一第二个参数有两种实现方法Option 对象及 Setup 函数接下来将分别介绍这两种方式如何实现定义。
Option Store
简单的理解state 用于定义状态对象getters 相当于 computed 计算属性actions 相当于方法
import { defineStore } from piniaexport const useCounterStore defineStore(counter, {state: () ({ count: 0 }),getters: {double: (state) state.count * 2,},actions: {increment() {this.count},},
})Setup Store
setup 函数更像 vue 的组合式函数在函数中可以定义响应式属性、方法等最后返回一个需要暴露出去的属性和方法的对象。 ref 定义状态对象对应 Option 模式的 statecomputed 定义计算属性对应 Option 模式的 gettersfunction 定义方法对应 Option 模式的 actions import { defineStore } from piniaexport const useCounterStore defineStore(counter, () {const count ref(0)function increment() {count.value}return { count, increment }
})使用Store
状态对象及计算属性需要使用 storeToRefs 方法进行提取以保持及响应性而方法则可以直接调用
const counterStore useCounterStore()
const { count } storeToRefs(counterStore)
counterStore.increment()