当前位置: 首页 > Web前端 > CSS

关于一些Vue的文章,(1)

时间:2023-03-31 12:13:23 CSS

原文链接到我的博客,欢迎STAR。今天分享的一篇文章是关于vuex源码分析,链接vuex源码分析,当前项目中每个组件至少有一个辅助功能,或者...mapGetters,或者...mapActions,传播算子,解构都是也经常使用。这篇文章解决了一个困扰我很久的疑惑,为什么helper函数中有时传的是字符串数组,有时传的是对象。可能是之前看源码的时候,没有仔细考虑。其实很简单。vuex底层对传递给辅助函数的参数进行了一个转换过程。我们看一下源码(以mapState为例):(){returntypeofval==='function'?val.call(this,this.$store.state,this.$store.getters):this.$store.state[val]}})returnres}mapState,首先调用传入参数的normalizeMap方法,查看normalizeMap的源码:functionnormalizeMap(map){returnArray.isArray(map)?map.map(key=>({key,val:key})):Object.keys(map).map(key=>({key,val:map[key]}))}先判断传入的参数是否都是Array,如果是数组调用数组的map方法,会转换成{key,val:key}对象形式,如果不是数组,(也就是对象),key的方便object会被转换成{key,val:map[key]}形式的对象。终于回归。我今天也学到了一点。在项目中,通常需要获取窗体的值。我一般这样做:const{userName,password,checked}=this.form发现可以给变量赋初值const{userName,password,checked=[]}=this.form学习es6的时候,只知道它可以给函数参数赋默认值,类似下面这样:函数名(a,b=[],c={}){//其他代码}结束了。