位置: IT常识 - 正文

Pinia(二)了解和使用Store

编辑:rootadmin
Pinia(二)了解和使用Store StoreStore 是保存状态(state)和业务逻辑的实体, store 不应该与我们的组件绑定. 换句话说, store 就是全局状态.store 有三个关键概念, 分别是 state, getters 和 actions, 这与 Vue 组件中的 data, computed 和 methods 是相对应的概念.定义 store通过 defineStore 函数定义 store.defineStore 接收两个参数

id: 唯一的标识, string 类型. Pinia 使用 id 与开发者工具建立联系.第二个参数可以是一个函数, 也可以是一个对象.defineStore 返回一个函数, 一般约定将返回值命名为 use....第二个参数: 对象类型如果要传入对象类型作为第二个参数, 在对象中可以配置state: 状态, 即数据. 📕注意 state 是一个函数, 函数的返回值才是真正定义的数据getters: 计算属性actions: 修改状态的方法export const useCounterStore = defineStore('counter', { state: () => { return { count: 0, } }, getters: { doubleCount: (state) => { return state.count * 2; } }, actions: { increment(a: number) { this.count += a } }})第二个参数: 函数类型在函数中可以通过 ref/reactive 定义响应式数据, 通过 computed 和 watch 定义计算属性和侦听器, 再定义一些修改数据的方法, 并通过返回对象的形式将其中一些数据暴露出去.import { defineStore } from 'pinia';import { ref } from 'vue';export const useNameStore = defineStore('name', () => { const name = ref('tom'); function setName(newName: string) { name.value = newName; } return { name, setName }});使用 store

推荐整理分享Pinia(二)了解和使用Store,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

无论定义 store 时传入的参数是对象类型还是函数类型, 调用方法一致的. 我们需要在 setup() 函数或 <script setup> 中使用

import { useCounterStore } from '../store';import { useNameStore } from '../store/index2'// 第一个store: countconst store = useCounterStore();function countPlus() { store.increment(1);}// 第二个store: nameconst name1 = useNameStore();function updateName1() { name1.setName('jerry1' + Math.random())}

📕store 实例并不会被创建直到调用 useNameStore()

可以直接通过 store. 的方式访问 store 的 state, 和

<h2>{{store.count}}</h2><button @click="countPlus">countPlus</button><hr><h2>{{ name1.name }}</h2><button @click="updateName1">updateName1</button>

Pinia(二)了解和使用Store

📕注意修改数据时, 页面并没有失去响应式, 调用 isProxy 可以看出 use... 返回的结果统统都是响应式的数据

失去响应式的陷阱

如果解构 use.. 的返回值, 那么将失去响应式❗❗❗❗❗const { name, setName } = useNameStore();function updateName() { setName('jerry' + Math.random());}<h2>{{ name }}</h2><button @click="updateName">updateName</button>

storeToRefs

为了从 store 中解构出属性并且保持其响应式, 需要调用 storeToRefs. storeToRefs 将为每个响应式数据创建 ref.先看传入函数类型的 storeconst nameStore2 = storeToRefs(useNameStore());console.log('nameStore2', nameStore2)

📕注意返回的 storeToRefs 返回的对象中只有 name, 而没有 setName, 因此完整的写法应该是

const nameStore = useNameStore();const { setName } = nameStore;const { name } = storeToRefs(useNameStore());再看传入对象类型的 storeconst store = useCounterStore();const countStore2 = storeToRefs(store)console.log('countStore2', countStore2);

📕只有 state 和 getters, 没有 actions, 因此要从 useCounterStore() 的返回值中解构出 actions 中的方法

const store = useCounterStore();const { count, doubleCount } = storeToRefs(store);const { increment } = store;function countPlus1() { increment(2);}

感谢你看到这里😀

本文链接地址:https://www.jiuchutong.com/zhishi/293077.html 转载请保留说明!

上一篇:前端401错误 & 解决方法:响应拦截器(前端报405错误)

下一篇:HTML + CSS + JavaScript 实现注册页面信息验证 详细教程(表单验证)(htmlcssjavascript网页制作)

  • 营销的几个核心价值,如何利用微信做企业营销(营销的几个核心是什么)

    营销的几个核心价值,如何利用微信做企业营销(营销的几个核心是什么)

  • win7不显示隐藏文件(win7不显示移动硬盘)(win7不显示隐藏的文件和文件夹)

    win7不显示隐藏文件(win7不显示移动硬盘)(win7不显示隐藏的文件和文件夹)

  • iphone13怎么共享图片和文件(iPhone13怎么共享Wi-Fi给安卓手机?)

    iphone13怎么共享图片和文件(iPhone13怎么共享Wi-Fi给安卓手机?)

  • oppo手机怎么看电池健康程度(oppo手机怎么看型号)

    oppo手机怎么看电池健康程度(oppo手机怎么看型号)

  • 苹果电量显示如何恢复绿色(苹果电量显示如何恢复绿色模式)

    苹果电量显示如何恢复绿色(苹果电量显示如何恢复绿色模式)

  • 手机里有sim卡为什么显示没有(手机里有sim卡为什么没用)

    手机里有sim卡为什么显示没有(手机里有sim卡为什么没用)

  • word复制表格保留原格式怎么办(word复制表格保留源格式为什么还是会变)

    word复制表格保留原格式怎么办(word复制表格保留源格式为什么还是会变)

  • 华为屏幕黄斑原因(华为手机屏幕黄色斑块)

    华为屏幕黄斑原因(华为手机屏幕黄色斑块)

  • 抖音怎么录1分钟以上的视频(抖音如何录一分钟)

    抖音怎么录1分钟以上的视频(抖音如何录一分钟)

  • 共享文件删除后到哪里(共享文件删除后是所有人都看不到吗)

    共享文件删除后到哪里(共享文件删除后是所有人都看不到吗)

  • 怎样在excel表格中筛选出自己想要的信息(怎样在excel表格里筛选出我要的内容)

    怎样在excel表格中筛选出自己想要的信息(怎样在excel表格里筛选出我要的内容)

  • soyo主板找不到usb启动(soyo主板找不到型号)

    soyo主板找不到usb启动(soyo主板找不到型号)

  • oppo手机分屏为什么不能同时进行(OPPO手机分屏为什么不能添加游戏)

    oppo手机分屏为什么不能同时进行(OPPO手机分屏为什么不能添加游戏)

  • focusky手机版能用吗(focusky有没有手机版)

    focusky手机版能用吗(focusky有没有手机版)

  • 苹果7的访问限制在哪(苹果7的访问限制消失了)

    苹果7的访问限制在哪(苹果7的访问限制消失了)

  • 怎样在头条上发表文章(怎样在头条上发布文章)

    怎样在头条上发表文章(怎样在头条上发布文章)

  • 淘宝小黑盒是什么(淘宝小黑盒质量好吗)

    淘宝小黑盒是什么(淘宝小黑盒质量好吗)

  • kobw09是什么型号(kob w09)

    kobw09是什么型号(kob w09)

  • 微博发帖怎么发(微博发帖怎么发动图)

    微博发帖怎么发(微博发帖怎么发动图)

  • ios运营商设置更新(apple 运营商设置更新)

    ios运营商设置更新(apple 运营商设置更新)

  • 计算机软件包括(计算机软件包括哪两大类)

    计算机软件包括(计算机软件包括哪两大类)

  • 苹果xr有没有无线充电功能(苹果Xr有没有无线充电)

    苹果xr有没有无线充电功能(苹果Xr有没有无线充电)

  • 如何让对方看不到自己的手机号(如何让对方看不见正在输入)

    如何让对方看不到自己的手机号(如何让对方看不见正在输入)

  • phpcms怎么添加统计功能(phpcms使用教程)

    phpcms怎么添加统计功能(phpcms使用教程)

  • 国有划拨土地给个人住宅违法吗
  • 加油站的成品油是石油公司配送吗
  • 什么是涉税信息
  • 市政道路工程建筑包括什么
  • 减资 股东
  • 营业净利率和总资产净利率的区别
  • 货物退回是什么意思
  • 建筑设备租赁如何确定租赁期限
  • 企业审计费入什么科目
  • 银行贷款减值准备转回处理
  • 政府无偿划拨土地涉及的税费
  • 集资款利息走什么科目
  • 在建投资性物业管理办法
  • 固定资产盘亏是营业外支出吗
  • 工业企业外购存货的入账价值一般包括增值税吗
  • 市场开发费用会计分录
  • 退税收入需要缴纳所得税吗
  • 超过一年的保证金怎么交个税
  • 物业管理公司如何纳税
  • 方案讲解:关于员工激励的税收筹划
  • 未结转是什么意思
  • 企业对外投资需要哪些审批
  • 生产企业低值高报骗税
  • 删除所有没有销售业绩的员工记录
  • 单位卖报纸的钱算什么
  • 白酒消费税最低计税价格
  • 总分机构怎么纳税
  • 企业分立账务处理办法
  • 如何清除上网记录?
  • 公司买的理财产品怎么做账
  • Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
  • qqlogin.exe是什么进程 qqlogin.exe应用程序错误解决办法
  • 接受捐赠旧的固定资产以什么价格入帐
  • php socket_create
  • 金门大桥和马林大桥区别
  • 计提工会经费会计账务处理
  • 银行存款也有窍门
  • watch跟computed区别
  • 模式识别与图像处理能做什么
  • 深度学习如何训练出好的模型
  • 未取得增值税发票开具二手车发票
  • 个人退税证明怎么开具
  • 存货盘亏毁损处理方法
  • 劳动法辞退员工补偿标准2023
  • 计提的坏账准备计入什么科目
  • 人力资源行业企业成长
  • 首次购买金税盘怎么做账
  • 什么是库存现金限额?为什么要核定库存现金限额
  • 私营企业员工享受探亲假吗
  • 如何计算政府补贴应摊销
  • 总包分包怎么区分
  • 金税盘可以用热点吗
  • 企业购置软件的会计处理
  • 让渡是什么
  • 成本法与权益法的区别会计分录
  • 发现以前的账做错了
  • xp附件游戏
  • windows xp 注册表故障恢复
  • 怎么用手机号查快递
  • ubuntu命令行打开火狐浏览器
  • avc文件用什么打开
  • Win10 Mobile 10581预览版升级界面曝光 上手视频观赏
  • virtualbox虚拟机菜单找不到了
  • xp开机chkdsk
  • win10系统怎么设置屏幕
  • js下拉加载
  • cocos屏幕适配方案
  • perl 哈希用法
  • 根据公司发展需求
  • js封装是什么意思
  • dom 和bom
  • jquery控制css样式
  • python 转换为字符
  • 支付境外服务费代扣代缴增值税 会计凭证
  • 税务总局副局长饶
  • 企业破产享有的债权可否提前到期
  • 免抵退税办法不得抵扣的进项
  • 缴纳耕地占用税的好处
  • 如果企业所得税没有做计提怎么办?
  • 房地产契税2023年最新政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设