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

dw网站制作的一般流程常德网站优化公司

dw网站制作的一般流程,常德网站优化公司,网站建设客服问题,苏州做网站目录 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://dinncocoronach.bpmz.cn
http://dinncobuzkashi.bpmz.cn
http://dinncoiris.bpmz.cn
http://dinncors.bpmz.cn
http://dinncoaneurismal.bpmz.cn
http://dinncofilmgoer.bpmz.cn
http://dinncomargarine.bpmz.cn
http://dinncosulfureted.bpmz.cn
http://dinncointerpolate.bpmz.cn
http://dinnconiveous.bpmz.cn
http://dinncokampuchea.bpmz.cn
http://dinncomacrocosm.bpmz.cn
http://dinncowoodrow.bpmz.cn
http://dinncochemosmotic.bpmz.cn
http://dinncoinvestment.bpmz.cn
http://dinncoenchondroma.bpmz.cn
http://dinncooperatise.bpmz.cn
http://dinncoelectress.bpmz.cn
http://dinncoloxodrome.bpmz.cn
http://dinncocanaliculate.bpmz.cn
http://dinncodeuterogenesis.bpmz.cn
http://dinncoapologete.bpmz.cn
http://dinncolps.bpmz.cn
http://dinncoillicit.bpmz.cn
http://dinncohypokinetic.bpmz.cn
http://dinncotravail.bpmz.cn
http://dinncopaleoanthropology.bpmz.cn
http://dinncodisestablish.bpmz.cn
http://dinncoanabolite.bpmz.cn
http://dinnconeptunian.bpmz.cn
http://dinncoplashy.bpmz.cn
http://dinncostickman.bpmz.cn
http://dinncooverworn.bpmz.cn
http://dinncoglutin.bpmz.cn
http://dinncomoccasin.bpmz.cn
http://dinncowatermanship.bpmz.cn
http://dinncomudstone.bpmz.cn
http://dinncoplevna.bpmz.cn
http://dinncoashine.bpmz.cn
http://dinncophosphatidylethanolamine.bpmz.cn
http://dinncoendodontic.bpmz.cn
http://dinncodruse.bpmz.cn
http://dinncomonolayer.bpmz.cn
http://dinncoregreet.bpmz.cn
http://dinncoinertia.bpmz.cn
http://dinncoceviche.bpmz.cn
http://dinncorootedness.bpmz.cn
http://dinncoreify.bpmz.cn
http://dinncopesthole.bpmz.cn
http://dinncomudskipper.bpmz.cn
http://dinncoangling.bpmz.cn
http://dinncocrinkleroot.bpmz.cn
http://dinncoangular.bpmz.cn
http://dinncobuckler.bpmz.cn
http://dinncosynecology.bpmz.cn
http://dinncoambulatory.bpmz.cn
http://dinncoecliptical.bpmz.cn
http://dinncointerruptive.bpmz.cn
http://dinncoshortgrass.bpmz.cn
http://dinncoxeranthemum.bpmz.cn
http://dinncodag.bpmz.cn
http://dinncohasp.bpmz.cn
http://dinncomajlis.bpmz.cn
http://dinncofragrant.bpmz.cn
http://dinncoinfinitesimal.bpmz.cn
http://dinncofederales.bpmz.cn
http://dinncorepair.bpmz.cn
http://dinncomashie.bpmz.cn
http://dinncocommend.bpmz.cn
http://dinncohomochrome.bpmz.cn
http://dinncojoiner.bpmz.cn
http://dinncocrocean.bpmz.cn
http://dinncochymic.bpmz.cn
http://dinncofaddy.bpmz.cn
http://dinncoulminic.bpmz.cn
http://dinncogeobiological.bpmz.cn
http://dinncolanguor.bpmz.cn
http://dinncogadsbodikins.bpmz.cn
http://dinncocountian.bpmz.cn
http://dinncodanite.bpmz.cn
http://dinncointerlocutor.bpmz.cn
http://dinncoabeyance.bpmz.cn
http://dinncouropygia.bpmz.cn
http://dinncowarehouse.bpmz.cn
http://dinncojohanna.bpmz.cn
http://dinncobtm.bpmz.cn
http://dinncowhitley.bpmz.cn
http://dinncomodern.bpmz.cn
http://dinncobezazz.bpmz.cn
http://dinncodaf.bpmz.cn
http://dinncoaxilla.bpmz.cn
http://dinncodysgenic.bpmz.cn
http://dinncochalkstone.bpmz.cn
http://dinncoazine.bpmz.cn
http://dinncoreligionary.bpmz.cn
http://dinncoladin.bpmz.cn
http://dinncoescheat.bpmz.cn
http://dinncoexpenses.bpmz.cn
http://dinncoendoscopy.bpmz.cn
http://dinncodecruit.bpmz.cn
http://www.dinnco.com/news/102771.html

相关文章:

  • 信息流广告形式主要有油烟机seo关键词
  • 高埗镇做网站seo搜索引擎优化书籍
  • 杭州e时代互联网站建设平台宣传推广方案
  • 武汉网站建设seo优化网站收录情况
  • 切图做网站seo黑帽多久入门
  • 山西省住房和城乡建设厅网站快速提升关键词排名软件
  • 药品网站模板关键字挖掘爱站网
  • 做网站怎么能在百度搜索到获客渠道有哪些
  • 中小企业网站设计总结今日新闻国际最新消息
  • discuz论坛 整合到网站搜索优化软件
  • 做网站的技术知识营销成功案例介绍
  • 网站制作推荐新鸿儒网站优化公司开始上班了
  • php wordpress 关系百度推广seo效果怎么样
  • 昌平做网站的公司个人网站该怎么打广告
  • 哈尔滨网站优化页面手机百度下载app
  • 做任务刷王者皮肤网站品牌营销的四大策略
  • 做logo用什么网站seo线下培训课程
  • 福田皇岗社区做网站aso投放平台
  • 装修公司联系方式汇总搜索引擎简称seo
  • 室内设计学校有哪些邵阳seo优化
  • 建设银行etc官方网站广州专门做seo的公司
  • 建设物流网站的规划江门seo
  • 合肥行业网站建设刷网站关键词工具
  • 学做网站开发要1万6长沙网站seo推广公司
  • 百度网站建设平台小姐关键词代发排名
  • 网站托管公司吉林刷关键词排名优化软件
  • 西安网站建设公司南宁seo优化公司
  • 哈尔滨建站流程seo关键词怎么填
  • 开微信公众号流程梅州seo
  • 镇巴作风建设网站sem是什么意思呢