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

dw网站制作的一般流程cba最新积分榜

dw网站制作的一般流程,cba最新积分榜,创建全国文明城市调查问卷,南阳开网站制作目录 1,Pinia 介绍2,和 Vuex 的对比3,storeToRefs 源码分析 1,Pinia 介绍 官网简介 Pinia 使用上的问题,官方文档很详细,这里不做赘述。 Pinia 是 Vue 的专属状态管理库,支持vue2和vue3&#x…

目录

  • 1,Pinia 介绍
  • 2,和 Vuex 的对比
  • 3,storeToRefs 源码分析

1,Pinia 介绍

官网简介

Pinia 使用上的问题,官方文档很详细,这里不做赘述。

  1. Pinia 是 Vue 的专属状态管理库,支持vue2和vue3,不能应用于其他前端框架。
  2. Pinia 是 Vue 官方团队的成员实现的,原本是为了探索 vue5.x 的可能性,后来发现已经实现了 vue5.x 的提案。所以就作为最新版本的 Vuex ,也就是下一代状态管理库来使用了。

2,和 Vuex 的对比

  1. 删除了 mutations ,只保留了 stategettersactions异步修改 state 现在可以放到 actions 中了。
  2. 不再有模块嵌套,只有 store(状态仓库)的概念,store 之间独立又可相互调用。
  3. 支持插件扩展,比如为 store 新增属性或方法,操作 action 等。
  4. 因为 Pinia 使用 TS 开发的,所以对 TS 有很好的支持。
  5. 兼容 vue2 和 vue3,同时支持选项式风格和组合式风格。
  6. 轻量,压缩后体积只有 1kb 左右。

在使用上,同样应避免直接操作 store,尽量都集中使用 actions 中的方法来操作 store 的状态。

3,storeToRefs 源码分析

在组件中使用 store 的属性时,会有一个问题:

<script setup>
import { useCounterStore } from '@/stores/counter'const store = useCounterStore()
// ❌ 这将不起作用,因为它破坏了响应性,这就和直接解构 `props` 一样
const { name, doubleCount } = store // ✅ 这样写是响应式的,当然也可直接使用 `store.doubleCount`
const doubleValue = computed(() => store.doubleCount)// ✅ 作为 action 的 increment 可以直接解构
const { increment } = store
</script>

这时需要使用 storeToRefs(),它将为每一个响应式属性创建引用。

<script setup>
import { useCounterStore } from '@/stores/counter'
import { storeToRefs } from 'pinia'const store = useCounterStore()
const { name, doubleCount } = storeToRefs(store)
</script>

源码

import { toRaw, ref, isVue2, isRef, isReactive, toRef, toRefs } from 'vue-demi';
/*** @param store - defineStore 定义的 store 对象*/
function storeToRefs(store) {if (isVue2) {return toRefs(store);}else {store = toRaw(store);const refs = {};for (const key in store) {const value = store[key];if (isRef(value) || isReactive(value)) {refs[key] = toRef(store, key);}}return refs;}
}

原理其实很简单,我们在解构 props 时,直接解构也会失去响应式(参考如何响应式解构 Props),需要使用 toRef 与其源属性保持同步。

所以 storeToRefs 的原理:

  1. 首先通过 store = toRaw(store); 将 store 转为普通对象,目的是方便遍历。
  2. 遍历 store 中的响应式属性,并使用 toRef 处理后返回新对象,这样解构新对象得到的属性会和 store 的源属性保持同步,而不失去响应式。

为什么不用 toRefs 一步到位:

return toRefs(store)

因为 toRefs 会将 store 中每个属性都变为响应式返回,而我们只需要 store 中原本就是响应式的数据,并且不需要 actions。


以上。

http://www.qdjiajiao.com/news/4591.html

相关文章:

  • DW如何做明星的个人网站温州seo招聘
  • 山东淄博微信网站制作搜索引擎调词平台哪个好
  • 婚纱摄影网站管理系统网站制作的重要性及步骤详解
  • 化妆品购物网站开发的意义苏州百度
  • 自媒体收入骗局关键词优化的建议
  • 北海做网站哪家好产品营销策略有哪些
  • 上哪儿找做网站的客户网站注册免费
  • 网络建设方案ppt抖音seo供应商
  • 天长网站制作世界杯比分
  • 网站官方认证怎么做口碑营销是什么
  • 清溪做网站百度学术论文查重免费检测
  • 郑州餐饮网站建设公司百度网址提交入口
  • 网站建设线上线下双服务器seo关键词排行优化教程
  • 福州企业网站推广百度收录情况查询
  • 塑胶原料东莞网站建设技术支持怎么关键词优化网站
  • 网站推广应该注意什么引流app推广软件
  • 游戏私服发布网站怎么做网络seo是什么工作
  • 房产信息网站模板b站免费版入口
  • 做网站开发学什么语言好cpa推广接单平台
  • 怎样用网站模板做网站百度一下你就知道官页
  • 甘肃省铁路投资建设集团有限公司网站东莞seo靠谱
  • 大数据时代的智能营销seo短视频网页入口引流免费
  • 重庆有哪些做网站 小程序的网站推广方式组合
  • 设计网站的功能有哪些内容通州区网站快速排名方案
  • 服装网站建设物流配送系统渠道推广策略
  • 舟山网站建设一个新的app如何推广
  • 青岛做网站好的公司自贡网站seo
  • 唐山网站建设外包公司专门代写平台
  • yyf做的搞笑视频网站推广哪些app最挣钱
  • 云南通耀建设工程有限公司网站鸡西seo