vue3+js+vite学习之pinia的state数据更新

对pinia中state数据更新方法进行总结

原始store文件

import { ref } from 'vue'
import { defineStore } from 'pinia'
export const useSystemInfoStore = defineStore('systemInfo', () => {
  const title = ref('hello world')
  return {
    title
  }
})
1、直接进行更新

store 是一个用 reactive 包裹的对象,可以直接通过reactive更新的方式对其更新

<script setup>
import { useSystemInfoStore } from '@/globalStore/systemInfoStore'
const systemInfoStore = useSystemInfoStore()
// 更新值
systemInfoStore.title = 'new hello world!'
</script>
2、解构之后更新

有时我们会对store里面的数据进行解构使用,解构之后就是ref类型,需要加.value进行数据更新


<script setup>
import { storeToRefs } from 'pinia'
import { useSystemInfoStore } from '@/globalStore/systemInfoStore'
const systemInfoStore = useSystemInfoStore()
// 使用storeToRefs解构
const { title } = storeToRefs(systemInfoStore)
// 更新值
title.value = 'new hello world!'
</script>
3、在store里面写actions方法进行值更新

在store写一个更新值的方法,在使用到的地方进行调用

原始store文件:

import { ref } from 'vue'
import { defineStore } from 'pinia'
export const useSystemInfoStore = defineStore('systemInfo', () => {
  const title = ref('hello world')
  const setTitle = (val) => {
     title.value = val
  }
  return {
    title,
    setTitle
  }
})

引用文件:

<script setup>
import { storeToRefs } from 'pinia'
import { useSystemInfoStore } from '@/globalStore/systemInfoStore'
const systemInfoStore = useSystemInfoStore()
// 更新值
systemInfoStore.setTitle('new hello world!')
</script>

你好!对于使用 Vue 3、TypeScript 和 Vite 来搭建项目,并结合 Pinia 进行状态管理,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了 Node.js 和 npm(或者使用 yarn)。 2. 创建一个新的项目文件夹,并进入该文件夹。 3. 在终端中运行以下命令来初始化一个新的 Vue 3 项目: ``` npm init vite@latest ``` 在初始化过程中,选择使用 Vue 3、TypeScript 和默认配置。 4. 进入项目文件夹并安装依赖: ``` cd <project-folder> npm install ``` 5. 接下来,安装 Pinia: ``` npm install pinia ``` 6. 在 `src` 目录下创建一个 `store` 文件夹,并在其中创建名为 `index.ts` 的文件。 7. 在 `index.ts` 中编写你的 Pinia store。例如,你可以创建一个名为 `counter` 的 store,并且在其中定义一个状态和一些操作: ```typescript import { defineStore } from &#39;pinia&#39;; export const useCounterStore = defineStore(&#39;counter&#39;, { state: () => ({ count: 0, }), actions: { increment() { this.count++; }, decrement() { this.count--; }, }, }); ``` 8. 在应用的入口文件 `main.ts` 中导入并使用 Pinia: ```typescript import { createApp } from &#39;vue&#39;; import { createPinia } from &#39;pinia&#39;; import App from &#39;./App.vue&#39;; const app = createApp(App); const pinia = createPinia(); app.use(pinia); app.mount(&#39;#app&#39;); ``` 9. 在组件中使用 Pinia store。在你的 Vue 组件中,可以使用 `useStore` 函数来访问 Pinia store: ```typescript import { useCounterStore } from &#39;../store&#39;; export default { setup() { const counterStore = useCounterStore(); return { counterStore, }; }, }; ``` 10. 最后,你可以在组件中使用 `counterStore` 来访问状态和操作: ```vue <template> <div> <p>{{ counterStore.count }}</p> <button @click="counterStore.increment()">Increment</button> <button @click="counterStore.decrement()">Decrement</button> </div> </template> <script> import { useCounterStore } from &#39;../store&#39;; export default { setup() { const counterStore = useCounterStore(); return { counterStore, }; }, }; </script> ``` 这样,你就可以使用 Vue 3、TypeScript、VitePinia 搭建一个基本的项目并进行状态管理了。希望对你有帮助!如果还有其他问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值