Lison《vue技术栈开发实战》(二)

状态管理bus的使用

父子组件通信

父组件向子组件传值一定是通过属性,而子组件向父组件传值一定是通过事件的方式
在这里插入图片描述
在这里插入图片描述

v-model语法糖

v-modal是一个语法糖,相当于如下的写法:
在这里插入图片描述

使用bus通信

兄弟组件通信:
在这里插入图片描述
在这里插入图片描述
那么如果时跨文件的组件通信呢?我们就用到了bus:
在这里插入图片描述
注入bus
在这里插入图片描述
然后在其中一个组件传入参数
在这里插入图片描述
另一个组件进行接收
在这里插入图片描述
bus的原理就是通过$emit来触发事件,通过$on来监听这个事件,从而进行组件之间的通信

状态管理Vuex(一)

vuex原理图
在这里插入图片描述
基本配置
在这里插入图片描述
在这里插入图片描述

state和getter

可以在任何地方使用state中的属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

getter
在这里插入图片描述
在这里插入图片描述
也可以使用mapgetters
在这里插入图片描述

辅助函数的使用

也可以用mapState来进行赋值
在这里插入图片描述

模块中的state和getter的使用

模块中的getter
在这里插入图片描述
在这里插入图片描述

使用命名空间时辅助函数的使用

如果使用了命名空间:
在这里插入图片描述
在这里插入图片描述
此时使用模块中的数据的时候就只需要state点就可以了
在这里插入图片描述

状态管理Vuex(二)

mutation

通过mutation更新数据
在这里插入图片描述
在这里插入图片描述
一个参数的写法
在这里插入图片描述
mutation添加数据
在这里插入图片描述
注意:一开始没有的数据是不会添加get和set方法的,需要所以直接赋值时没用的,需要调用vue的set方法。
mapMutation的使用:
在这里插入图片描述
模块中的使用:
在这里插入图片描述
在这里插入图片描述
可以看到在模块中定义的可以直接拿来用,不需要进行模块的区分,但是如果给这个模块加上命名空间的话,就需要在调用的时候加上命名空间的名字了。

action

mutation只能做一些同步的操作,一些异步的操作需要放到action里面去
在这里插入图片描述
这里用到了解构赋值
在这里插入图片描述
也可以用this.$store.dispatch来触发更新
在这里插入图片描述

module

当项目非常大的时候就要进行模块的拆分
在这里插入图片描述
可以通过rootState进行根节点state的获取。
注册模块:
在这里插入图片描述
使用的时候需要做出判断:
在这里插入图片描述
为模块添加子模块则需要使用数组的形式:
在这里插入图片描述
在这里插入图片描述

在action调用接口实操

action之间可以通过dispatch相互触发:
在这里插入图片描述

async/await使用

将上述的请求改成async和await的方式
在这里插入图片描述

状态管理Vuex进阶

Vuex插件的开发与使用

当浏览器刷新的时候,store中的内容会被刷新,因为它时存在内存中的,不是存在本地的。我们希望有内容能存在本地,就要定义一个存储的插件,在store初始化的时候如果local中有store则做替换,每次mutation都把更新的值存下来:
在这里插入图片描述

使用插件:
在这里插入图片描述

严格模式

严格模式是在开发的时候对规范的要求,将strict设置为true即开启了严格模式。在严格模式下,我们必须要通过commit mutation的形式才能修改store中的值,不能直接进行赋值(能成功,但是页面会报错)。
在这里插入图片描述
可以设置在开发环境下会报错,生产环境不会
在这里插入图片描述

Vuex+双向绑定

我们都知道v-model是一个语法糖,那么将store中的数据直接用到v-model中则很明显会产生问题,因为修改值不能直接去修改,必须要通过提交mutation进行修改
在这里插入图片描述
将v-model做拆分
在这里插入图片描述
在这里插入图片描述
如果还是要v-model的写法呢?将state从mapState中取出来,单独定义它的set和get方法
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值