基本名词与概念

为了实现和便于理解 Vue Human 的设计理念,所以在 Vue 的基础上增加了一些基本名词和概念。

名词
Element
Suites
Popup
全局化的 Popup
项目级的 Popup

Element

当你把项目写在 .vue 的文件中时,webpack 和 vue-loader 会将 .vue 文件解析成 .js 文件。

那么如果我们去深究的话,这个 js 文件返回的是什么?类似如下的一个 JS 对象。

{
  name: 'xxx',
  // ...
}

那么这个 JS 对象,我们就命名他为一个 element。

如果拿 vue 扩展这个 element,就是:

import element from 'vue-human/suites/someElement'

const Component = vue.extend(element)

形成 Component 的一个类,用于实例化新的组件,如下:

const component = new Component
// 通常 vue 的文档里喜欢将他命名为 vm,
// 但是在 vue-human 项目中,我们更爱命名为 component
// const vm = new Component

那么上面介绍的是 element,那么 Element 是什么?

import Element from 'vue-human/utils/Element'

export new Element({
  name: 'xxx'
})

在 vue-human 概念里,定义组件时,不是直接定一个基础对象 {},而是实例化一个 Element 对象。这样我们可以方便的拓展这个 element。

如果看到 iconElement from 'vue-human/suites/icon/icon' 这样的使用就很好理解了。

Suites

Suites 又是什么概念呢?当有多个 element 的时候,我要一个个引入,很麻烦,这个时候就可以用到 Suites 的概念了。最常见的定义:

import Suites from 'vue-human/utils/Suites'
import icon from 'vue-human/suites/icon/icon'
import button from 'vue-human/suites/button/button'
// more and more

export default new Suites([
  icon,
  button
  // more and more
])

那么就可以带着这个套件一起用了

import core from 'vue-human/suites/core'

// 某一个业务里,不需要使用 Element 来定义
export default {
  componets: {
    ...core.map()
  }
}

为了实现浮层功能,定义两个和 Popup 相同命名的文件,但是两个文件的功能有些不同,容易混杂。分别是:

vue-human/suites/popup/popup.vue
vue-human/utils/Popup.js

第一个文件是 popup 浮层基础组件,控制定位和黑色覆盖层,全局化和项目级的 Popup 都可以使用。

第二个文件是控制全局化的 Popup 的基础类,仅用于全局化的 Popup。

全局化的 Popup

Message, Confirm, Alert, LoadingMask 都属于全局化的 Popup,由 utils 目录里的类文件创建和管理,可能会获得不了 this.$router,this.$stroe 这样的快捷变量。

项目级的 Popup

项目级的 Popup,由开发者定义在项目 .vue 文件中,通过 prop 传值修改。为了方便开发者快速开发,提供了辅助的 ActionSheet 和 Modal 组件。

results matching ""

    No results matching ""