美文网首页
vue-antd-admin

vue-antd-admin

作者: 渚清与沙白 | 来源:发表于2023-10-16 10:17 被阅读0次

    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
      image.png

    provide和inject

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

    相关文章

      网友评论

          本文标题:vue-antd-admin

          本文链接:https://www.haomeiwen.com/subject/qsbpbdtx.html