当前位置: 首页 > news >正文

第二十八:5.5.【storeToRefs】5.6.【getters】

LoveTalk.vue: 调用:

// 方法

const talkStore = useTalkStore()

function getLoveTalk(){

talkStore.getATalk()

}

如果是要简短的形式调用:

const talkStore = useTalkStore() // user hooks 的形式调用

const {schoole,local} = talkStore   // 通过这个方式调用

在页面就可以简单调用 不talkStore. schoole  , 而是直接: schoole  的形式调用

因为 这样的不能动态调用响应式操作:最后执行:

/* 使用storeToRefs转换countStore,随后解构 */

注意:使用 storeToRefs 一定要引入:

import { storeToRefs } from "pinia";

const {schoole,local} = storeToRefs(talkStore)

LoveTalk.ts:

import {defineStore} from 'pinia'
import axios from 'axios'
import {nanoid} from 'nanoid'export const useTalkStore = defineStore('talk',{actions:{async getATalk(){// 发请求,下面这行的写法是:连续解构赋值+重命名let {data:{content:title}} = await axios.get('https://api.uomg.com/api/rand.qinghua?format=json')// 把请求回来的字符串,包装成一个对象let obj = {id:nanoid(),title}// 放到数组中this.talkList.unshift(obj)}},// 真正存储数据的地方state(){return {talkList:[{id:'ftrfasdf01',title:'今天你有点怪,哪里怪?怪好看的!'},{id:'ftrfasdf02',title:'草莓、蓝莓、蔓越莓,今天想我了没?'},{id:'ftrfasdf03',title:'心里给你留了一块地,我的死心塌地'}]}}
})

5.5.【storeToRefs】

  • 借助storeToRefsstore中的数据转为ref对象,方便在模板中使用。

  • 注意:pinia提供的storeToRefs只会将数据做转换,而VuetoRefs会转换store中数据。

<template><div class="count"><h2>当前求和为:{{sum}}</h2></div>
</template>
​
<script setup lang="ts" name="Count">import { useCountStore } from '@/store/count'/* 引入storeToRefs */import { storeToRefs } from 'pinia'
​/* 得到countStore */const countStore = useCountStore()/* 使用storeToRefs转换countStore,随后解构 */const {sum} = storeToRefs(countStore)
</script>
​

5.6.【getters】

5.6.【getters】

  1. 概念:当state中的数据,需要经过处理后再使用时,可以使用getters配置。

  2. 追加getters配置。

    // 引入defineStore用于创建store
    import {defineStore} from 'pinia'
    ​
    // 定义并暴露一个store
    export const useCountStore = defineStore('count',{// 动作actions:{/************/},// 状态state(){return {sum:1,school:'atguigu'}}, // 计算getters:{bigSum:(state):number => state.sum *10,upperSchool():string{return this. school.toUpperCase()}}
    })
  3. 组件中读取数据:

    const {increment,decrement} = countStore
    let {sum,school,bigSum,upperSchool} = storeToRefs(countStore)

http://www.lryc.cn/news/543850.html

相关文章:

  • APISIX Dashboard上的配置操作
  • MinIO在 Docker中修改登录账号和密码
  • 英文论文查重,Turnitin和IThenticate两个系统哪个更合适?
  • pnpm的基本用法
  • 【实战中提升自己】防火墙篇之双ISP切换与VRRP切换对于用户的体验
  • Go在1.22版本修复for循环陷阱
  • Nginx+PHP+MYSQL-Ubuntu在线安装
  • SpringDataJPA使用deleteAllInBatch方法逻辑删除失效
  • DOM Node
  • 基于STM32的智能家居能源管理系统
  • 智慧园区后勤单位消防安全管理:安全运营和安全巡检
  • HTML 日常开发常用标签
  • Spring事务失效六大场景
  • 【缓冲区】数据库备份的衍生问题,缓冲区在哪里?JVMor操作系统?(二)
  • 如何免费使用稳定的deepseek
  • 钉钉小程序(企业内部应用)开发--钉钉小程序web-view嵌套H5与小程序之间的通信(H5跳转钉钉小程序小程序postMessage)
  • 超级免费/牛的图片格式转换工具jpg/jpeg/png
  • 毛泽东思想“活的灵魂”
  • RabbitMQ系列(三)基本概念之Consumer
  • 天梯L2-003 月饼
  • 使用DeepSeek/ChatGPT等AI工具辅助编写wireshark过滤器
  • 常用的AI文本大语言模型汇总
  • 《深度剖析:特征工程—机器学习的隐秘基石》
  • 解决npm run dev报错
  • 教你通过腾讯云AI代码助手,免费使用满血版deepseek r1,还可以自定义知识库!
  • 【C++/数据结构】栈的模拟实现
  • StarRocks 开发环境搭建踩坑指北之存算分离篇
  • C++ Qt常见面试题(2):QT中的文件流(QTextStream)和数据流(QDataStream)的区别
  • Linux驱动学习(三)--字符设备架构与注册
  • 软件工程应试复习(考试折磨版)