最新要闻
- 最新消息:realme 10 Pro可口可乐版发布:骁龙695 背壳logo爱了
- 【世界热闻】微信、微博全部断更!老干妈回应“退网”:经营一切正常
- 当前讯息:1TB版本太香了 真我GT Neo5供不应求 徐起:会加紧拧螺丝
- 焦点滚动:零添加:太太乐900ml*2瓶酱油最低26.4元
- 美少女手游《妮姬:胜利女神》即将推出PC版 推荐配置1650S
- 全球热讯:非油炸!吃欢天荞麦面皮10袋到手19.9元:麻酱、酸辣随便挑
- 世界今热点:ChatGPT版必应被华人小哥攻破:一句话“催眠”问出所有Prompt
- 世界热门:钙钛矿-硅光伏电池效率突破30%!可稳定工作30年
- 世界即时:公交车刹车提醒是2B请注意 当地回应:考虑不周将“改名”
- 环球热议:苹果忍不住反驳乔布斯女儿吐槽:iPhone 14比iPhone 13 Pro还要好
- 环球资讯:让地球“流浪”前 先来研究下这一个更现实的威胁
- 女子疑吃自热火锅去世:不排除急性中毒、家属索赔176万元
- 当前消息!最香的i9+RTX 4080游戏本!ROG枪神7超竞版仅需18999元起
- 全球热讯:泰国1月份纯电动车上牌量排行:比亚迪称王、国产车霸榜
- GTX 1060落魄了?《原子之心》1080P高画质需GTX 1080
- 《流浪地球2》全球爆火背后!《三体》导演:中国科幻的内核是文化自信
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
vuex相关笔记
vuex是什么?
vuex是管理应用程序状态,实现组件间通信的。
(资料图片仅供参考)
为什么使用vuex?
在开发大型应用的项目时,会出现多个视图组件依赖一个同一个状态,来自不同视图的行为需要变更同一个状态。
在遇到以上问题,就要用到vuex,他能把组件的共享状态抽取出来,当做一个全局单例模式进行管理,不管在何处改变状态,都会通知使用该状态的组件作出相应的修改。
最简单的vuex实例
1 import Vue from "vue"; 2 import Vuex form "vuex"; 3 4 Vue.use(Vuex); 5 6 const store = new Vuex.Store({ 7 state: { 8 count: 0 9 },10 mutations: {11 increment (state) {12 state.count++13 }14 }15 })
以上就是一个简单的vuex实例,每一个vuex应用就是一个store,在store中包含组件中的共享状态state和改变状态的方法mutations。
需要注意的是只能通过mutations
改变store的state
的状态,不能通过store.state.count = 5;
直接更改,state
相当于对外的只读属性。
使用store.commit
方法触发mutations
改变state
:
1 store.commit("increment"); 2 3 console.log(store.state.count) //
在Vue组件中使用vuex
如果希望Vuex状态更新,相应的Vue组件也得到更新,最简单的方法就是在Vue的computed
(计算属性)获取state
// Counter 组件const Counter = { template: `{{ count }}`, computed: { count () { return store.state.count; } }}
上面的例子是直接操作全局状态store.state.count
,那么每个使用该Vuex的组件都要引入。为了解决这个,Vuex通过store
选项,提供了一种机制将状态从根组件注入到每一个子组件中。
1 // 根组件 2 import Vue from "vue"; 3 import Vuex form "vuex"; 4 5 Vue.use(Vuex); 6 const app = new Vue({ 7 el: "#app", 8 store, 9 components: {10 Counter11 },12 template: `131416 `17 })15
通过这种注入机制,就能在子组件Counter
通过this.$store
访问:
1 // Counter 组件2 const Counter = {3 template: `{{ count }}`,4 computed: {5 count () {6 return this.$store.state.count7 }8 }9 }
mapState函数
1 computed: {2 count () {3 return this.$store.state.count4 }5 }
这样通过count
计算属性获取同名state.count
属性,是不是显得太重复了,我们可以使用mapState
函数简化这个过程。
1 import { mapState } from "vuex";2 3 export default {4 computed: mapState ({5 count: state => state.count,6 countAlias: "count", // 别名 `count` 等价于 state => state.count7 })8 }
简便方法为:
computed: mapState([ // 映射 this.count 为 store.state.count "count"])
Getters对象:
如果我们需要对state
对象进行做处理计算,如下:
1 computed: {2 3 doneTodosCount () {4 5 return this.$store.state.todos.filter(todo => todo.done).length6 7 }8 9 }
如果多个组件都要进行这样的处理,那么就要在多个组件中复制该函数。这样是很没有效率的事情,当这个处理过程更改了,还有在多个组件中进行同样的更改,这就更加不易于维护。
Vuex中getters
对象,可以方便我们在store
中做集中的处理。Getters接受state
作为第一个参数:
1 const store = new Vuex.Store({ 2 state: { 3 todos: [ 4 { id: 1, text: "...", done: true }, 5 { id: 2, text: "...", done: false } 6 ] 7 }, 8 getters: { 9 doneTodos: state => {10 return state.todos.filter(todo => todo.done)11 }12 }13 })
在Vue中通过store.getters
对象调用。
1 computed: {2 doneTodos () {3 return this.$store.getters.doneTodos4 }5 }
Getter也可以接受其他getters作为第二个参数:
1 getters: {2 doneTodos: state => {3 return state.todos.filter(todo => todo.done)4 },5 doneTodosCount: (state, getters) => {6 return getters.doneTodos.length7 }8 }
mapGetters辅助函数
与mapState
类似,都能达到简化代码的效果。mapGetters
辅助函数仅仅是将store中的getters映射到局部计算属性:
1 import { mapGetters } from "vuex" 2 3 export default { 4 // ... 5 computed: { 6 // 使用对象展开运算符将 getters 混入 computed 对象中 7 ...mapGetters([ 8 "doneTodosCount", 9 "anotherGetter",10 // ...11 ])12 }13 }
上面也可写成:
1 computed: mapGetters([2 "doneTodosCount",3 "anotherGetter",4 // ...5 ])
所以在Vue的computed
计算属性中会存在两种辅助函数:
1 import { mapState, mapGetters } form "vuex";2 3 export default {4 // ...5 computed: {6 mapState({ ... }),7 mapGetter({ ... })8 }9 }
Mutations
之前也说过了,更改Vuex的store中的状态的唯一方法就是mutations
。
每一个mutation
都有一个事件类型type
和一个回调函数handler
。
1 const store = new Vuex.Store({ 2 state: { 3 count: 1 4 }, 5 mutations: { 6 increment (state) { 7 // 变更状态 8 state.count++ 9 }10 }11 })
调用mutation
,需要通过store.commit
方法调用:
store.commit("increment")
Payload 提交载荷
也可以向store.commit
传入第二参数,也就是mutation的payload
:
1 mutaion: {2 increment (state, n) {3 state.count += n;4 }5 }6 7 store.commit("increment", 10);
单单传入一个n
,可能并不能满足我们的业务需要,这时候我们可以选择传入一个payload
对象:
1 mutation: { 2 increment (state, payload) { 3 state.totalPrice += payload.price + payload.count; 4 } 5 } 6 7 store.commit({ 8 type: "increment", 9 price: 10,10 count: 811 })
mapMutations函数
mutations也有映射函数mapMutations
,帮助我们简化代码,使用mapMutations
辅助函数将组件中的methods
映射为store.commit
调用。
1 import { mapMutations } from "vuex" 2 3 export default { 4 // ... 5 methods: { 6 ...mapMutations([ 7 "increment" // 映射 this.increment() 为 this.$store.commit("increment") 8 ]), 9 ...mapMutations({10 add: "increment" // 映射 this.add() 为 this.$store.commit("increment")11 })12 }13 }
Mutations必须是同步函数。
如果需要异步操作,Mutations就不能满足我们需求了,这时候我们就需要Actions
了。
vuex相关笔记
最新消息:realme 10 Pro可口可乐版发布:骁龙695 背壳logo爱了
【世界热闻】微信、微博全部断更!老干妈回应“退网”:经营一切正常
当前讯息:1TB版本太香了 真我GT Neo5供不应求 徐起:会加紧拧螺丝
焦点滚动:零添加:太太乐900ml*2瓶酱油最低26.4元
美少女手游《妮姬:胜利女神》即将推出PC版 推荐配置1650S
【全球聚看点】C#教程_编程入门自学教程_菜鸟教程-免费教程分享
环球时讯:【网关开发】8.Openresty 网关自定义健康检查的设计与实现
每日焦点!【0基础学爬虫】爬虫基础之爬虫的基本介绍
记录--千万别让 console.log 上生产!用 Performance 和 Memory 告诉你为什么
省选集训2023年2月9日T2
全球热讯:非油炸!吃欢天荞麦面皮10袋到手19.9元:麻酱、酸辣随便挑
世界今热点:ChatGPT版必应被华人小哥攻破:一句话“催眠”问出所有Prompt
世界热门:钙钛矿-硅光伏电池效率突破30%!可稳定工作30年
世界即时:公交车刹车提醒是2B请注意 当地回应:考虑不周将“改名”
环球热议:苹果忍不住反驳乔布斯女儿吐槽:iPhone 14比iPhone 13 Pro还要好
Entity Framework 教程_编程入门自学教程_菜鸟教程-免费教程分享
全球热文:【Spring】Bean注册注解
【当前独家】算法学习笔记(17): 快速傅里叶变换(FFT)
世界要闻:化繁为简|AIRIOT智慧水务信息化建设解决方案
环球资讯:让地球“流浪”前 先来研究下这一个更现实的威胁
女子疑吃自热火锅去世:不排除急性中毒、家属索赔176万元
当前消息!最香的i9+RTX 4080游戏本!ROG枪神7超竞版仅需18999元起
全球热讯:泰国1月份纯电动车上牌量排行:比亚迪称王、国产车霸榜
GTX 1060落魄了?《原子之心》1080P高画质需GTX 1080
环球关注:一步一腳印的 iOS App 上架和更新流程
当前快看:学习笔记——尚好房项目(项目介绍、环境搭建、配置依赖关系)
[数据结构] 二叉树的层次遍历
全球实时:JVM sandbox 实现热修复示例
《流浪地球2》全球爆火背后!《三体》导演:中国科幻的内核是文化自信
神十五航天员首次出舱视频公布:和地球同框 绝美
每日速看!方向盘助力失灵、AEB抽风!车主:百年凯迪拉克毁于LYRIQ 绝望
速递!Android 14来了:提升续航和流畅度
《狂飙》片头被指抄袭 网友放对比照跟国外一电影太相似:背后公司被扒
环球资讯:剖析字节案例,火山引擎 A/B 测试 DataTester 如何“嵌入”技术研发流程
Docker安装使用Kafka
每日动态!机器学习-KNN
全球热点评!网民称《水浒》应从中小学课文中清除 毒害更多人:浙江官方回应了
24岁生日当天崩了!腾讯QQ回应:服务器挤爆了 现已恢复
【全球报资讯】酒剑仙拿狙蚌埠住了 《仙剑奇侠传》五位角色入驻《和平精英》
如何注册 ChatGPT ,OpenAI
每日头条!A/B测试教程_编程入门自学教程_菜鸟教程-免费教程分享
环球即时看!24亿巨制大片 《速度与激情10》开启预售 片长130分钟
天天热点!魅族20 Pro外观偷跑:矩阵三摄 纯白机身太吸睛
世界今日报丨年轻人别以赚钱为目标!张朝阳称别把考试太当回事:不一定非上好大学
天天即时:中国在土耳其建造电站强震中未受损:稳定保障救援电力供应
实时焦点:微软公布ChatGPT版Bing不到48小时:申请用户量已超百万
天天热推荐:01-数据结构与算法-目录索引
环球快消息!keycloak~再说session和token
学习笔记——redis集群(定义、集群连接、查看集群、节点分配方式、插槽、集群中录入值、查询集群中的值、故障恢复)
滴滴一面:order by 调优10倍,思路是啥?
投诉不断 极氪被爆出现大规模动力故障 官方回应:会升级
焦点讯息:昆虫学硕士因表演双节棍获得工作 2000万粉大V感慨:掌握一门手艺很重要
当前报道:手机QQ崩了:显示无网络 你消息接收正常吗?
【环球新要闻】Moment推出1.55X变形镜头:iPhone也能拍出电影级超宽照片
十八罗汉分别叫什么?十八罗汉排名及顺序
马前泼水指的是什么生肖?马前泼水这个故事是什么意思?
巴黎恋人的结局是什么?巴黎恋人演员表
手净欲摸杯是什么意思?手净欲摸杯的出处是哪里?
环球观点:Linux 命令大全:2万字实现Linux自由
20088乐队现在怎么样?20088乐队现在怎么样了?
milo显示器是什么牌子?milo显示器怎么样?
ec文件是什么的简称?ec文件怎么打开?
神舟笔记本如何下载安装软件?神舟笔记本如何下载驱动?
tplink路由器怎么设置端口映射?tplink路由器怎么重新设置密码?
冰箱电磁阀怎么判断好坏?冰箱电磁阀的颜色代表什么?
票房榜前10稳了!《流浪地球2》总票房突破35亿 官方公布月球美术设计
每日信息:丰田皇冠遭车主集体投诉:空调管短了 漏水漏风
腾讯严惩《和平精英》外挂 一大批玩家一觉醒来发现被封号10年
高速特斯拉自动驾驶 驾驶员座位上睡觉!网友:保险赔吗?
世界实时:女子应聘人事被要求身高1米63以上 追问HR被回怼:不自信就不用了解了
最新资讯:keycloak~JWT没有被持久化_是因为你对方法论理解不到位
快喝不起了!农夫山泉涨价:纯净水、矿泉水啥区别、到底哪个好?
天天微头条丨在ChatGPT眼里 未来的汽车竟长这模样
天天快报!ChatGPT引发失业恐慌?这20种工作要避开:含医生、快递员
天天新动态:果然“超级奶爸”!李想晒六口全家福:期待五胎到来
订单充足不愁卖 国产特斯拉Model Y入门版涨价:贵了2000
环球滚动:学习笔记——redis持久化之RDB、AOF
BigDecimal加减乘除运算整合工具类
天天新资讯:4年还完20万欠款!夫妻回应剪掉名下所有信用卡 告别卡奴引网友感叹
天天热文:Win11又出严重bug:Intel用户程序崩溃 AMD躲过一劫
世界热点!1600人失业 老牌互联网巨头雅虎裁员20%:离职补偿未定
世界讯息:开窍!iPhone 15摄像头终于要升级:苹果设计让人抓狂 背部凸起更严重
环球视讯!3499元爆火!真我GT Neo5 1T版抢购一空:2023年旗舰射门员
世界最资讯丨日本国产大飞机失败:三菱重工不服输 自研新一代战机
天天看点:读Java实战(第二版)笔记06_新的日期和时间API
世界时讯:NVIDIA发布GeForce 528.49驱动:首发支持史上最强移动显卡
全球实时:网友50000元攒机 到底是不是大冤种?
今日热闻!基于高层次综合器(Vivado HLS)的硬件优化[原创www.cnblogs.com/helesheng]
你同意?张朝阳:《流浪地球2》跟好莱坞还是没法比
【天天时快讯】奇葩!哈尔滨机场一旅客为逃避安检把活蜗牛藏嘴里
环球热议:Google放大招对抗ChatGPT:结果低级答错题 市值蒸发1000亿
微头条丨单枪匹马也能拍大片!这次又让大疆给拿捏了
快资讯:史上最强AMD显卡!撼迅正式发布水冷RX 7900 XTX 还是单插槽
Spring配置类理解(Lite模式和Full模式)
环球速讯:JAVA中如何判断一个ResultSet结果集是否为空
【天天速看料】MYSQL脱敏 || 给开发人员限制权限,保证mysql数据库数据安全
重点聚焦!小白也能做应用(二)之fusion app增加B站视频页面
每日观点:法国调香师夸国产花露水清新还美丽 要卖450元 网友:六神YYDS
MATLAB 实现点云累计-坐标系转换-目标范围点云提取(附代码与代码注释)