首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

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

2024-12-17 来源:化拓教育网

其实很简单,vuex底层对传入辅助函数的参数都进行了一个转化处理,来看源码(以mapState为例):

export function mapState (states) {
  const res = {}
  normalizeMap(states).forEach(({ key, val }) => {
    res[key] = function mappedState () {
      return typeof val === 'function'
        ? val.call(this,this.$store.state,this.$store.getters)
        : this.$store.state[val]
    }
  })
  return res
}

mapState,对传入的参数首先调用normalizeMap方法,来看normalizeMap的源码:

function normalizeMap (map) {
  return Array.isArray(map)
    ? map.map(key => ({ key, val: key }))
    : Object.keys(map).map(key => ({ key, val: map[key] }))
}

对传入的参数先判断是不是数组,如果是数组调用数组的map方法,转化为{key, val: key} 对象的形式,如果不是数组, (那就是对象),便利对象的key 转化为{key, val: map[key]}对象的形式。
最后返回。

今天还学到了一点,在项目里通常需要取到表单的值, 我一般是这么做的:

    const { userName, password, checked } = this.form

发现原来可以给变量一个初始值

    const { userName, password, checked = [] } = this.form

在学习es6 时,只知道能够给函数的参数给默认值,类似于下面:

    function name (a, b = [], c = {}) {
        // 其他代码
    }

完。


显示全文