vue3-组件中使用setup函数获取vuex中的数据的新方式
传统方式
setup() {
const store = useStore()
//传统方式
const aName = computed(() => store.state.name)
return {
aName
}
如果数据多一点一个一个导入就十分的不方便
我们可以使用这样一种方法
setup() {
const store = useStore() //如果想一次拿到想要的数据
const storeStateFns = mapState(["counter", "name"])
//console.log(storeState[1]);
//这里的storeState展开后的"counter","name"其实是一个一个的函数,counter:function(){}
//使用computed对其进行解构 //name:function(){},键值对函数,拿到key(name)
//Object.keys()返回的是一个数组类型
const storeState={}
Object.keys(storeStateFns).forEach(fnKey=>{
//绑定store,setup中没有this
const fn = storeStateFns[fnKey].bind({$store:store});
//computed生成ref
storeState[fnKey] = computed(fn)
})
return {
...storeState
} }
将其封装成单个js文件的模块
// default导出的函数在引用时不需要大括号
import {computed} from "vue";
import {mapState, useStore} from "vuex"; //注意这里的mapper是一个数组或对象,因为mapState可以解析数组和对象
export default function useState(mapper) {
//拿到store独享
const store = useStore() //获取到对应的functions:{name: function() {},counter: function() {}}
const storeStateFns = mapState(mapper) //对数据进行转换
const storeState = {}
Object.keys(storeStateFns).forEach(fnKey => {
const fn = storeStateFns[fnKey].bind({$store: store});
storeState[fnKey] = computed(fn)
})
return storeState
}
vue3-组件中使用setup函数获取vuex中的数据的新方式的更多相关文章
- 教你一招:Excel中使用MID函数获取身份证中的出生年月日
MID字符串函数,作用是从一个字符串中截取出指定数量的字符 MID(text, start_num, num_chars) text被截取的字符 start_num从左起第几位开始截取(用数字表达 ...
- 借助JavaScript中的时间函数改变Html中Table边框的颜色
借助JavaScript中的时间函数改变Html中Table边框的颜色 <html> <head> <meta http-equiv="Content-Type ...
- python中multiprocessing.pool函数介绍_正在拉磨_新浪博客
python中multiprocessing.pool函数介绍_正在拉磨_新浪博客 python中multiprocessing.pool函数介绍 (2010-06-10 03:46:5 ...
- python3中的 zip()函数 和python2中的 zip()函数 的区别
python3中的 zip()函数 和python2中的 zip()函数 的区别: 描述: zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象. ...
- python2中的unicode()函数在python3中会报错:
python2中的unicode()函数在python3中会报错:NameError: name 'unicode' is not defined There is no such name in P ...
- Inno Setup:获取isl中的多国语言字串
原文 http://zwkufo.blog.163.com/blog/static/25882512010101041626803/?suggestedreading&wumii 用InnoS ...
- MySql中使用日期函数获取昨天的数据
.body-classic{ color:#444; font-family:Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Rom ...
- C中的qsort函数和C++中的sort函数的理解与使用
一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...
- Matlab中的eig函数和Opecv中eigen()函数的区别
奇异值分解的理论参见下面的链接 http://www.cnblogs.com/pinard/p/6251584.html https://blog.csdn.net/shenziheng1/artic ...
随机推荐
- php7.3编译安装 支持微擎2.0
再次整理 //一下配置在命令粘贴时注意句尾加 \ , 在 \ 后不能有空格,不然会自动执行,相当于回车./configure --prefix=/usr/local/php \ --with-co ...
- cmd中删除、添加、修改注册表命令
转自:http://www.jb51.net/article/30586.htm regedit的运行参数 REGEDIT [/L:system] [/R:user] filename1 REGEDI ...
- java 监听redis事件
第一步:利用RDM等redis连接工具查看相应事件,然后去网上搜索 一下,会有redis各种事件的说明,选择契合业务的事件: 第二步:创建监听处理类: 1 package com.lechuang.a ...
- Linux运行级别及解释
Linux中有七个运行级别,分别为0~7 0级:关机 1级:单用户(找回丢失密码) 2级:多用户无网络 3级:多用户有网络,最常用的级别 4级:保留,目前Linux暂无使用 5级:图像界面 6级:重启 ...
- notepad++颜色属性解释
Global Styles Indent guideline style 缩进参考线的颜色Brace highlight style 鼠标指针在框架左右时框架的颜色(如css中{} js中的() ...
- python迭代器对象及异常处理
内容概要 内置函数(可与匿名函数一起使用) 可迭代对象 迭代器对象 for循环内部原理 异常处理 内容详细 一.内置函数 # 1. map() 映射 l1 = [1, 3, 5, 7, 9] res ...
- Solution -「ARC 104D」Multiset Mean
\(\mathcal{Description}\) Link. 读题时间≈想题时间,草.( 给定 \(N,K,M\),对于每个 \(x\in[1,N]\) 的整数 \(x\),统计多重集 ...
- C#颠倒字符串
本函数实现了反转字符串的功能,例如字符串"张赐荣",反转后得到"荣赐张". public static string ReverseText(this stri ...
- SQL注入蠕虫分析//未完待续
蠕虫代码: DECLARE @S VARCHAR(4000);SET @S=CAST(0x4445434C415245204054205641524348415228323535292C4043205 ...
- NFS共享Nginx网页根目录(自动部署)
IP HOSTNAME SERVICE SYSTEM 192.168.131.132 proxy-nfs nginx+nfs-server CentOS 7.6 192.168.131.131 ngi ...