当前位置: 首页>编程语言>正文

vue-antd-admin

deepmerge

深度合并对象采用deepmerge模块

const deepMerge = require('deepmerge')
const _config = require('./config')
const {setting} = require('./default')
const config = deepMerge(setting, _config)

module.exports = config

合并时,相同的字段 后者_config会覆盖前者setting的字段值。

clonedeep

用于创建值的深层副本,它以递归方式克隆该值。更改原始值后,值的深层副本没有改变,因为_.cloneDeep()递归地深深复制了该值。
深度克隆采用lodash.clonedeep

import deepClone from 'lodash.clonedeep'

menuData(state, getters, rootState) {
      if (state.filterMenu) {
        const {permissions, roles} = rootState.account
        return filterMenu(deepClone(state.menuData), permissions, roles)
      }
      return state.menuData
    },

js-cookie

js-cookie是一个简单的,轻量级的处理cookies的js API,用来处理cookie相关的插件

/**
 * 设置认证信息
 * @param auth {Object}
 * @param authType {AUTH_TYPE} 认证类型,默认:{AUTH_TYPE.BEARER}
 */
function setAuthorization(auth, authType = AUTH_TYPE.BEARER) {
  switch (authType) {
    case AUTH_TYPE.BEARER:
      Cookie.set(xsrfHeaderName, 'Bearer ' + auth.token, {expires: auth.expireAt})
      break
    case AUTH_TYPE.BASIC:
    case AUTH_TYPE.AUTH1:
    case AUTH_TYPE.AUTH2:
    default:
      break
  }
}

/**
 * 检查认证信息
 * @param authType
 * @returns {boolean}
 */
function checkAuthorization(authType = AUTH_TYPE.BEARER) {
  switch (authType) {
    case AUTH_TYPE.BEARER:
      if (Cookie.get(xsrfHeaderName)) {
        return true
      }
      break
    case AUTH_TYPE.BASIC:
    case AUTH_TYPE.AUTH1:
    case AUTH_TYPE.AUTH2:
    default:
      break
  }
  return false
}

require('').default

  1. ES6 模块导出、导入。如export | import | export default
  2. Node.js模块导出、导入,如module.exports | require

node在处理ES6模块导入export default时,导出的模块格式是{"default": config}

// config.js
// 使用 export default 导出
export default options

// 使用 require.default 导入
require('./config').default

// node处理es6导入格式如下
{
  "default": config
}

在组件或者其它模块引入router模块,可以有以下2种方式:

  1. import *** from ***
  2. CommonJS的模块导入方式require引入router模块,需要使用.default来获取实际的组件选项。
    require('./config').default
    vue-antd-admin,第1张

provide和inject

vue 组件的数据通信方式有vuex、$parent与$children、prop、$emit与$on$attrs与$lisenters、eventBus、ref、provide与inject。


https://www.xamrdz.com/lan/5zf1993995.html

相关文章: