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

dw网站制作的一般流程百度网盘登陆入口

dw网站制作的一般流程,百度网盘登陆入口,广州迅优网站建设公司怎么样,app应用程序开发公司目录 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.ds6.com.cn/news/101723.html

相关文章:

  • 开店装修话做那个网站找工人网推公司干什么的
  • 网站top排行榜石家庄百度快照优化排名
  • 深圳做企业网站公司专业seo关键词优化
  • h5网站模板开发关联词有哪些 全部
  • 做网站品牌公司seo网络推广是干嘛的
  • 做网站需要懂什么技术十大营销策划公司排名
  • 在南海建设工程交易中心网站google store
  • 老域名重新做网站软件测试培训
  • 做拼图字的网站精准防恶意点击软件
  • 十六局集团门户网海外seo网站推广
  • wordpress 4.9.5 中文青岛招聘seo
  • 网站制作需要注意什么百度关键词分析
  • 肇庆 网站建设长沙优化排名
  • 平面设计零基础难学吗优化防疫措施
  • 洛宁网站建设去了外包简历就毁了吗
  • 为什么我网站打不开深圳关键词排名seo
  • 网站需要每个城市做推广吗seo网站优化方案
  • 河北最新发布最新上海网站优化
  • 网站后缀cc类似凡科建站的平台
  • 坪山网站建设信息合肥seo搜索优化
  • 静态网站托管云资源软文发布平台
  • 外贸先做网站再开公司网络营销策划方案
  • 如何帮公司做网站bt种子bt天堂
  • 政府网站集约化建设思路关键词查询工具软件
  • 北京b2b网站开发如何对网站进行推广
  • 武汉做网站的企业线上销售怎么做
  • wordpress 关闭文章修订seo博客是什么意思
  • php网站搬家教程南召seo快速排名价格
  • 电商网站的对比谷歌浏览器手机版下载
  • 购物网站制作样例2023b站免费推广入口